pax_global_header00006660000000000000000000000064136046445000014514gustar00rootroot0000000000000052 comment=8db9eccc0baf30c9d22c496ab28db0fe1e4e97c5 glslang-8.13.3559/000077500000000000000000000000001360464450000135025ustar00rootroot00000000000000glslang-8.13.3559/.appveyor.yml000066400000000000000000000047211360464450000161540ustar00rootroot00000000000000# Windows Build Configuration for AppVeyor # http://www.appveyor.com/docs/appveyor-yml # build version format version: "{build}" os: Visual Studio 2013 platform: - x64 configuration: - Debug - Release branches: only: - master # Travis advances the master-tot tag to current top of the tree after # each push into the master branch, because it relies on that tag to # upload build artifacts to the master-tot release. This will cause # double testing for each push on Appveyor: one for the push, one for # the tag advance. Disable testing tags. skip_tags: true clone_depth: 5 matrix: fast_finish: true # Show final status immediately if a test fails. # scripts that run after cloning repository install: - 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 - cd External/googletest - git checkout 440527a61e1c91188195f7de212c63c77e8f0a45 - cd ../.. build: parallel: true # enable MSBuild parallel builds verbosity: minimal build_script: - mkdir build && cd build - cmake -G "Visual Studio 12 2013 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\glslang%SUFFIX%.lib lib\HLSL%SUFFIX%.lib lib\OGLCompiler%SUFFIX%.lib lib\OSDependent%SUFFIX%.lib lib\SPIRV%SUFFIX%.lib lib\SPVRemapper%SUFFIX%.lib lib\SPIRV-Tools%SUFFIX%.lib lib\SPIRV-Tools-opt%SUFFIX%.lib artifacts: - path: build\install\*.zip name: artifacts-zip deploy: - provider: GitHub auth_token: secure: YglcSYdl0TylEa59H4K6lylBEDr586NAt2EMgZquSo+iuPrwgZQuJLPCoihSm9y6 release: master-tot description: "Continuous build of the latest master branch by Appveyor and Travis CI" artifact: artifacts-zip draft: false prerelease: false force_update: true on: branch: master APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 glslang-8.13.3559/.clang-format000066400000000000000000000005731360464450000160620ustar00rootroot00000000000000Language: 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 glslang-8.13.3559/.gitattributes000077500000000000000000000010131360464450000163730ustar00rootroot00000000000000# 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 glslang-8.13.3559/.gitignore000066400000000000000000000001401360464450000154650ustar00rootroot00000000000000*.o *.a *.so *.exe tags TAGS build/ Test/localResults/ External/googletest External/spirv-tools glslang-8.13.3559/.travis.yml000066400000000000000000000101721360464450000156140ustar00rootroot00000000000000# Linux and Mac Build Configuration for Travis language: cpp os: - linux - osx # Use Ubuntu 14.04 LTS (Trusty) as the Linux testing environment. sudo: false dist: trusty env: global: - secure: aGFrgzyKp+84hKrGkxVWg8cHV61uqrKEHT38gfSQK6+WS4GfLOyH83p7WnsEBb7AMhzU7LMNFdvOFr6+NaMpVnqRvc40CEG1Q+lNg9Pq9mhIZLowvDrfqTL9kQ+8Nbw5Q6/dg6CTvY7fvRfpfCEmKIUZBRkoKUuHeuM1uy3IupFcdNuL5bSYn3Beo+apSJginh9DI4BLDXFUgBzTRSLLyCX5g3cpaeGGOCr8quJlYx75W6HRck5g9SZuLtUoH9GFEV3l+ZEWB8noErW+J56L03bwNwFuuAh321evw++oQk5KFa8rlDvar3SJ3b1RHB8u/eq5DBYMyaK/fS8+Q7QbGr8diF/wDe68bKO7U9IhpNfExXmczCpExjHomW5TQv4rYdGhygPMfW97aIsPRYyNKcl4fkmb7NDrM8w0Jscdq2g5c2Kz0ItyZoBri/NXLwFQQjaVCs7Pf97TjuMA7mK0GJmDTRzi6SrDYlWMt5BQL3y0CCojyfLIRcTh0CQjQI29s97bLfQrYAxt9GNNFR+HTXRLLrkaAlJkPGEPwUywlSfEThnvHLesNxYqemolAYpQT4ithoL4GehGIHmaxsW295aKVhuRf8K9eBODNqrfblvM42UHhjntT+92ZnQ/Gkq80GqaMxnxi4PO5FyPIxt0r981b54YBkWi8YA4P7w5pNI= matrix: - GLSLANG_BUILD_TYPE=Release - GLSLANG_BUILD_TYPE=Debug compiler: - clang - gcc matrix: fast_finish: true # Show final status immediately if a test fails. exclude: # Skip GCC builds on Mac OS X. - os: osx compiler: gcc include: # Additional build using Android NDK. - env: BUILD_NDK=ON cache: apt: true branches: only: - master addons: apt: packages: - clang-3.6 install: # Make sure that clang-3.6 is selected on Linux. - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CC" == "clang" ]]; then export CC=clang-3.6 CXX=clang++-3.6; fi # Download a recent Android NDK and use its android.toolchain.cmake file. - if [[ "$BUILD_NDK" == "ON" ]]; then 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; export TOOLCHAIN_PATH=$ANDROID_NDK/build/cmake/android.toolchain.cmake; fi before_script: - git clone --depth=1 https://github.com/google/googletest.git External/googletest - ./update_glslang_sources.py script: - mkdir build && cd build # For Android, do release building using NDK without testing. # Use android-14, the oldest native API level supporeted by NDK r17b. # We can use newer API levels if we want. # For Linux and macOS, do debug/release building with testing. - if [[ "$BUILD_NDK" == "ON" ]]; then cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH} -DANDROID_NATIVE_API_LEVEL=android-14 -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi-v7a with NEON" -DBUILD_TESTING=OFF ..; make -j4; else cmake -DCMAKE_BUILD_TYPE=${GLSLANG_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=`pwd`/install ..; make -j4 install; ctest --output-on-failure && cd ../Test && ./runtests; fi after_success: # For debug build, the generated dll has a postfix "d" in its name. - if [[ "${GLSLANG_BUILD_TYPE}" == "Debug" ]]; then export SUFFIX="d"; else export SUFFIX=""; fi # Create tarball for deployment - if [[ ${CC} == clang* && "${BUILD_NDK}" != "ON" ]]; then cd ../build/install; export TARBALL=glslang-master-${TRAVIS_OS_NAME}-${GLSLANG_BUILD_TYPE}.zip; zip ${TARBALL} bin/glslangValidator include/glslang/* lib/libglslang${SUFFIX}.a lib/libHLSL${SUFFIX}.a lib/libOGLCompiler${SUFFIX}.a lib/libOSDependent${SUFFIX}.a lib/libSPIRV${SUFFIX}.a lib/libSPVRemapper${SUFFIX}.a lib/libSPIRV-Tools${SUFFIX}.a lib/libSPIRV-Tools-opt${SUFFIX}.a; fi before_deploy: # Tag the current top of the tree as "master-tot". # Travis CI replies on the tag name to properly push to GitHub Releases. - git config --global user.name "Travis CI" - git config --global user.email "builds@travis-ci.org" - git tag -f master-tot - git push -q -f https://${glslangtoken}@github.com/KhronosGroup/glslang --tags deploy: provider: releases api_key: ${glslangtoken} on: branch: master condition: ${CC} == clang* && ${BUILD_NDK} != ON file: ${TARBALL} skip_cleanup: true overwrite: true glslang-8.13.3559/Android.mk000066400000000000000000000073251360464450000154220ustar00rootroot00000000000000LOCAL_PATH := $(call my-dir) 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 Glslang's HLSL parser library. include $(CLEAR_VARS) LOCAL_MODULE:=HLSL LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES) LOCAL_SRC_FILES:= \ hlsl/hlslAttributes.cpp \ hlsl/hlslGrammar.cpp \ hlsl/hlslOpMap.cpp \ hlsl/hlslParseables.cpp \ hlsl/hlslParseHelper.cpp \ hlsl/hlslScanContext.cpp \ hlsl/hlslTokenStream.cpp LOCAL_C_INCLUDES:=$(LOCAL_PATH) \ $(LOCAL_PATH)/hlsl include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) GLSLANG_OUT_PATH=$(if $(call host-path-is-absolute,$(TARGET_OUT)),$(TARGET_OUT),$(abspath $(TARGET_OUT))) 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/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/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_OUT_PATH) LOCAL_STATIC_LIBRARIES:=OSDependent OGLCompiler HLSL include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:=SPIRV LOCAL_CXXFLAGS:=-std=c++11 -fno-exceptions -fno-rtti -Werror $(GLSLANG_DEFINES) LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH) 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 LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)/glslang/SPIRV LOCAL_STATIC_LIBRARIES:=glslang include $(BUILD_STATIC_LIBRARY) glslang-8.13.3559/BUILD.bazel000066400000000000000000000134631360464450000153670ustar00rootroot00000000000000package( default_visibility = ["//visibility:public"], ) # Description: # # Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator. licenses(["notice"]) exports_files(["LICENSE"]) 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/MachineIndependent/*.cpp", "glslang/MachineIndependent/preprocessor/*.cpp", "hlsl/*.cpp", ], exclude = [ "glslang/MachineIndependent/pch.cpp", "glslang/MachineIndependent/pch.h", "hlsl/pch.cpp", "hlsl/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/Include/*.h", "glslang/MachineIndependent/*.h", "glslang/MachineIndependent/preprocessor/*.h", "hlsl/*.h", ]) + [ "OGLCompilersDLL/InitializeDll.h", "StandAlone/DirStackFileIncluder.h", "glslang/OSDependent/osinclude.h", "glslang/Public/ShaderLang.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/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/spirv.hpp", ], cmd = "mkdir -p $(@D)/include/SPIRV && cp $(SRCS) $(@D)/include/SPIRV/", ) 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", ], 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] glslang-8.13.3559/BUILD.gn000066400000000000000000000200221360464450000146630ustar00rootroot00000000000000# 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" ] } spirv_tools_dir = glslang_spirv_tools_dir config("glslang_public") { include_dirs = [ "." ] defines = [ "ENABLE_HLSL=1" ] } source_set("glslang_sources") { public_configs = [ ":glslang_public" ] 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/SPVRemapper.cpp", "SPIRV/SPVRemapper.h", "SPIRV/SpvBuilder.cpp", "SPIRV/SpvBuilder.h", "SPIRV/SpvPostProcess.cpp", "SPIRV/SpvTools.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/Types.h", "glslang/Include/arrays.h", "glslang/Include/intermediate.h", "glslang/Include/revision.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/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", "hlsl/hlslAttributes.cpp", "hlsl/hlslAttributes.h", "hlsl/hlslGrammar.cpp", "hlsl/hlslGrammar.h", "hlsl/hlslOpMap.cpp", "hlsl/hlslOpMap.h", "hlsl/hlslParseHelper.cpp", "hlsl/hlslParseHelper.h", "hlsl/hlslParseables.cpp", "hlsl/hlslParseables.h", "hlsl/hlslScanContext.cpp", "hlsl/hlslScanContext.h", "hlsl/hlslTokenStream.cpp", "hlsl/hlslTokenStream.h", "hlsl/hlslTokens.h", ] defines = [ "ENABLE_OPT=1" ] 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-sign-compare", "-Wno-unused-variable", "-Wno-missing-field-initializers", "-Wno-newline-eof", ] } if (is_win && !is_clang) { cflags = [ "/wd4018", # signed/unsigned mismatch "/wd4189", # local variable is initialized but not referenced ] } deps = [ "${spirv_tools_dir}:spvtools_opt", "${spirv_tools_dir}:spvtools_val", ] configs -= _configs_to_remove configs += _configs_to_add } source_set("glslang_default_resource_limits_sources") { sources = [ "StandAlone/ResourceLimits.cpp", "StandAlone/ResourceLimits.h", ] deps = [ ":glslang_sources", ] 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_default_resource_limits_sources", ":glslang_sources", ] configs -= _configs_to_remove configs += _configs_to_add } executable("spirv-remap") { sources = [ "StandAlone/spirv-remap.cpp", ] defines = [ "ENABLE_OPT=1" ] deps = [ ":glslang_sources", ] configs -= _configs_to_remove configs += _configs_to_add } glslang-8.13.3559/CMakeLists.txt000066400000000000000000000166641360464450000162570ustar00rootroot00000000000000# increase to 3.1 once all major distributions # include a version of CMake >= 3.1 cmake_minimum_required(VERSION 2.8.12) if (POLICY CMP0048) cmake_policy(SET CMP0048 NEW) endif() set_property(GLOBAL PROPERTY USE_FOLDERS ON) # 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() 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_WEB "Reduces glslang to minimum needed for web use" OFF) option(ENABLE_GLSLANG_WEB_DEVEL "For ENABLE_GLSLANG_WEB builds, enables compilation error messages" OFF) option(ENABLE_EMSCRIPTEN_SINGLE_FILE "If using Emscripten, enables SINGLE_FILE build" OFF) option(ENABLE_EMSCRIPTEN_ENVIRONMENT_NODE "If using Emscripten, builds to run on Node instead of Web" OFF) CMAKE_DEPENDENT_OPTION(ENABLE_HLSL "Enables HLSL input support" ON "NOT ENABLE_GLSLANG_WEB" OFF) option(ENABLE_OPT "Enables spirv-opt capability if present" ON) option(ENABLE_PCH "Enables Precompiled header" ON) option(ENABLE_CTEST "Enables testing" ON) if(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(CCACHE_FOUND) endif() # Precompiled header macro. Parameters are source file list and filename for pch cpp file. macro(glslang_pch SRCS PCHCPP) if(MSVC AND CMAKE_GENERATOR MATCHES "^Visual Studio" AND ENABLE_PCH) set(PCH_NAME "$(IntDir)\\pch.pch") # make source files use/depend on PCH_NAME set_source_files_properties(${${SRCS}} PROPERTIES COMPILE_FLAGS "/Yupch.h /FIpch.h /Fp${PCH_NAME} /Zm300" OBJECT_DEPENDS "${PCH_NAME}") # make PCHCPP file compile and generate PCH_NAME set_source_files_properties(${PCHCPP} PROPERTIES COMPILE_FLAGS "/Ycpch.h /Fp${PCH_NAME} /Zm300" OBJECT_OUTPUTS "${PCH_NAME}") list(APPEND ${SRCS} "${PCHCPP}") endif() endmacro(glslang_pch) project(glslang) if(ENABLE_CTEST) include(CTest) endif() if(ENABLE_HLSL) add_definitions(-DENABLE_HLSL) endif(ENABLE_HLSL) if(ENABLE_GLSLANG_WEB) add_definitions(-DGLSLANG_WEB) if(ENABLE_GLSLANG_WEB_DEVEL) add_definitions(-DGLSLANG_WEB_DEVEL) endif(ENABLE_GLSLANG_WEB_DEVEL) endif(ENABLE_GLSLANG_WEB) if(WIN32) set(CMAKE_DEBUG_POSTFIX "d") if(MSVC) include(ChooseMSVCCRT.cmake) endif(MSVC) add_definitions(-DGLSLANG_OSINCLUDE_WIN32) elseif(UNIX) add_definitions(-DGLSLANG_OSINCLUDE_UNIX) else(WIN32) message("unknown platform") endif(WIN32) if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") add_compile_options(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs -Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable -fno-exceptions) add_compile_options(-Wno-reorder) # disable this from -Wall, since it happens all over. add_compile_options(-fno-rtti) elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") add_compile_options(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs -Wunused-parameter -Wunused-value -Wunused-variable) add_compile_options(-Wno-reorder) # disable this from -Wall, since it happens all over. add_compile_options(-fno-rtti) elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "MSVC") add_compile_options(/GR-) # Disable RTTI endif() if(EMSCRIPTEN) add_compile_options(-Os -fno-exceptions) add_compile_options("SHELL: -s WASM=1") add_compile_options("SHELL: -s WASM_OBJECT_FILES=0") add_link_options(-Os) add_link_options("SHELL: -s FILESYSTEM=0") add_link_options("SHELL: --llvm-lto 1") add_link_options("SHELL: --closure 1") add_link_options("SHELL: -s ALLOW_MEMORY_GROWTH=1") if(ENABLE_EMSCRIPTEN_SINGLE_FILE) add_link_options("SHELL: -s SINGLE_FILE=1") endif(ENABLE_EMSCRIPTEN_SINGLE_FILE) else() if(ENABLE_GLSLANG_WEB) if(MSVC) add_compile_options(/Os /GR-) else() add_compile_options(-Os -fno-exceptions) add_link_options(-Os) endif() endif(ENABLE_GLSLANG_WEB) endif(EMSCRIPTEN) # Request C++11 if(${CMAKE_VERSION} VERSION_LESS 3.1) # CMake versions before 3.1 do not understand CMAKE_CXX_STANDARD # remove this block once CMake >=3.1 has fixated in the ecosystem add_compile_options(-std=c++11) else() set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) endif() function(glslang_set_link_args TARGET) # For MinGW compiles, statically link against the GCC and C++ runtimes. # This avoids the need to ship those runtimes as DLLs. if(WIN32 AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "-static -static-libgcc -static-libstdc++") endif() endfunction(glslang_set_link_args) # CMake needs to find the right version of python, right from the beginning, # otherwise, it will find the wrong version and fail later if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External) find_package(PythonInterp 3 REQUIRED) # 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(ENABLE_HLSL) if(ENABLE_CTEST) add_subdirectory(gtests) endif() if(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(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) endif(CMAKE_CONFIGURATION_TYPES) 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(BUILD_TESTING) glslang-8.13.3559/CODE_OF_CONDUCT.md000066400000000000000000000004301360464450000162760ustar00rootroot00000000000000A 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. glslang-8.13.3559/ChooseMSVCCRT.cmake000066400000000000000000000074731360464450000170010ustar00rootroot00000000000000# 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) glslang-8.13.3559/External/000077500000000000000000000000001360464450000152645ustar00rootroot00000000000000glslang-8.13.3559/External/CMakeLists.txt000066400000000000000000000030441360464450000200250ustar00rootroot00000000000000# 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() glslang-8.13.3559/LICENSE.txt000066400000000000000000000124131360464450000153260ustar00rootroot00000000000000Here, glslang proper means core GLSL parsing, HLSL parsing, and SPIR-V code generation. Glslang proper requires use of two licenses, one that covers non-preprocessing and an additional one that covers 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: // // 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. // -------------------------------------------------------------------------------- The preprocessor has the core license stated above, plus an additional licence: /****************************************************************************\ 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. \****************************************************************************/ glslang-8.13.3559/OGLCompilersDLL/000077500000000000000000000000001360464450000163355ustar00rootroot00000000000000glslang-8.13.3559/OGLCompilersDLL/CMakeLists.txt000066400000000000000000000010321360464450000210710ustar00rootroot00000000000000set(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) glslang-8.13.3559/OGLCompilersDLL/InitializeDll.cpp000066400000000000000000000114711360464450000216020ustar00rootroot00000000000000// // 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 glslang-8.13.3559/OGLCompilersDLL/InitializeDll.h000066400000000000000000000037251360464450000212520ustar00rootroot00000000000000// // 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 glslang-8.13.3559/README-spirv-remap.txt000066400000000000000000000120241360464450000174420ustar00rootroot00000000000000 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) glslang-8.13.3559/README.md000077500000000000000000000351151360464450000147710ustar00rootroot00000000000000Also see the Khronos landing page for glslang as a reference front end: https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/ The above page includes where to get binaries, and is kept up to date regarding the feature level of glslang. glslang ======= [![Build Status](https://travis-ci.org/KhronosGroup/glslang.svg?branch=master)](https://travis-ci.org/KhronosGroup/glslang) [![Build status](https://ci.appveyor.com/api/projects/status/q6fi9cb0qnhkla68/branch/master?svg=true)](https://ci.appveyor.com/project/Khronoswebmaster/glslang/branch/master) An OpenGL and OpenGL ES shader front end and validator. There are several components: 1. A GLSL/ESSL front-end for reference validation and translation of GLSL/ESSL into an AST. 2. An HLSL front-end for translation of a broad generic HLL into the AST. See [issue 362](https://github.com/KhronosGroup/glslang/issues/362) and [issue 701](https://github.com/KhronosGroup/glslang/issues/701) for current status. 3. A SPIR-V back end for translating the AST to SPIR-V. 4. A standalone wrapper, `glslangValidator`, that can be used as a command-line tool for the above. How to add a feature protected by a version/extension/stage/profile: See the comment in `glslang/MachineIndependent/Versions.cpp`. Tasks waiting to be done are documented as GitHub issues. Deprecations ------------ 1. 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 then May 1, 2020. See issue #1964. 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 There is also a non-shader extension * `.conf` for a configuration file of limits, see usage statement for example Building -------- Instead of building manually, you can also download the binaries for your platform directly from the [master-tot release][master-tot-release] on GitHub. Those binaries are automatically uploaded by the buildbots after successful testing and they always reflect the current top of the tree of the master branch. ### Dependencies * A C++11 compiler. (For MSVS: 2015 is recommended, 2013 is fully supported/tested, and 2010 support is attempted, but not tested.) * [CMake][cmake]: for generating compilation targets. * make: _Linux_, ninja is an alternative, if configured. * [Python 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 ``` If you want to use googletest with Visual Studio 2013, you also need to check out an older version: ```bash # to use googletest with Visual Studio 2013 cd External/googletest git checkout 440527a61e1c91188195f7de212c63c77e8f0a45 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 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. ### 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 Use the steps in [Build Steps](#build-steps), with the following notes/exceptions: * For building the web subset of core glslang: + execute `updateGrammar web` from the glslang subdirectory (or if using your own scripts, `m4` needs a `-DGLSLANG_WEB` argument) + set `-DENABLE_HLSL=OFF -DBUILD_TESTING=OFF -DENABLE_OPT=OFF -DINSTALL_GTEST=OFF` + turn on `-DENABLE_GLSLANG_WEB=ON` + optionally, for GLSL compilation error messages, turn on `-DENABLE_GLSLANG_WEB_DEVEL=ON` * `emsdk` needs to be present in your executable search path, *PATH* for Bash-like enivironments + [Instructions located here](https://emscripten.org/docs/getting_started/downloads.html#sdk-download-and-install) * Wrap cmake call: `emcmake cmake` * 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_WEB=ON \ -DENABLE_HLSL=OFF -DBUILD_TESTING=OFF -DENABLE_OPT=OFF -DINSTALL_GTEST=OFF .. ``` 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), subsitute 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 backend 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 propogated 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` [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 glslang-8.13.3559/SPIRV/000077500000000000000000000000001360464450000144055ustar00rootroot00000000000000glslang-8.13.3559/SPIRV/CMakeLists.txt000077500000000000000000000061331360464450000171530ustar00rootroot00000000000000set(SOURCES GlslangToSpv.cpp InReadableOrder.cpp Logger.cpp SpvBuilder.cpp SpvPostProcess.cpp doc.cpp SpvTools.cpp disassemble.cpp) set(SPVREMAP_SOURCES SPVRemapper.cpp doc.cpp) set(HEADERS bitutils.h spirv.hpp GLSL.std.450.h GLSL.ext.EXT.h GLSL.ext.KHR.h GlslangToSpv.h hex_float.h Logger.h SpvBuilder.h spvIR.h doc.h SpvTools.h disassemble.h GLSL.ext.AMD.h GLSL.ext.NV.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 $ $) 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 glslang SPIRV-Tools-opt) target_include_directories(SPIRV PUBLIC $ $) else() target_link_libraries(SPIRV glslang) endif(ENABLE_OPT) if(WIN32) source_group("Source" FILES ${SOURCES} ${HEADERS}) source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) endif(WIN32) if(ENABLE_GLSLANG_INSTALL) if(BUILD_SHARED_LIBS) if (ENABLE_SPVREMAPPER) install(TARGETS SPVRemapper EXPORT SPVRemapperTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) 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}/SPIRV/) install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/) endif(ENABLE_GLSLANG_INSTALL) glslang-8.13.3559/SPIRV/GLSL.ext.AMD.h000066400000000000000000000070401360464450000165170ustar00rootroot00000000000000/* ** 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 glslang-8.13.3559/SPIRV/GLSL.ext.EXT.h000066400000000000000000000037731360464450000165670ustar00rootroot00000000000000/* ** 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"; #endif // #ifndef GLSLextEXT_H glslang-8.13.3559/SPIRV/GLSL.ext.KHR.h000066400000000000000000000054701360464450000165470ustar00rootroot00000000000000/* ** Copyright (c) 2014-2016 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and/or associated documentation files (the "Materials"), ** to deal in the Materials without restriction, including without limitation ** the rights to use, copy, modify, merge, publish, distribute, sublicense, ** and/or sell copies of the Materials, and to permit persons to whom the ** Materials are furnished to do so, subject to the following conditions: ** ** The above copyright notice and this permission notice shall be included in ** all copies or substantial portions of the Materials. ** ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS ** IN THE MATERIALS. */ #ifndef GLSLextKHR_H #define GLSLextKHR_H 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"; #endif // #ifndef GLSLextKHR_H glslang-8.13.3559/SPIRV/GLSL.ext.NV.h000066400000000000000000000063341360464450000164460ustar00rootroot00000000000000/* ** 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_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 glslang-8.13.3559/SPIRV/GLSL.std.450.h000066400000000000000000000100371360464450000164200ustar00rootroot00000000000000/* ** 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 glslang-8.13.3559/SPIRV/GlslangToSpv.cpp000077500000000000000000012721761360464450000175170ustar00rootroot00000000000000// // Copyright (C) 2014-2016 LunarG, Inc. // 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. // // 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" } // Glslang includes #include "../glslang/MachineIndependent/localintermediate.h" #include "../glslang/MachineIndependent/SymbolTable.h" #include "../glslang/Include/Common.h" #include "../glslang/Include/revision.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::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 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); 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 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(spv::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; 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; 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; }; // // 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; #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 EShLangRayGenNV: return spv::ExecutionModelRayGenerationNV; case EShLangIntersectNV: return spv::ExecutionModelIntersectionNV; case EShLangAnyHitNV: return spv::ExecutionModelAnyHitNV; case EShLangClosestHitNV: return spv::ExecutionModelClosestHitNV; case EShLangMissNV: return spv::ExecutionModelMissNV; case EShLangCallableNV: return spv::ExecutionModelCallableNV; 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; #ifndef GLSLANG_WEB case glslang::EvqPayloadNV: return spv::DecorationBlock; case glslang::EvqPayloadInNV: return spv::DecorationBlock; case glslang::EvqHitAttrNV: return spv::DecorationBlock; case glslang::EvqCallableDataNV: return spv::DecorationBlock; case glslang::EvqCallableDataInNV: 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::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::EvqPayloadNV: case glslang::EvqPayloadInNV: case glslang::EvqHitAttrNV: case glslang::EvqCallableDataNV: case glslang::EvqCallableDataInNV: 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; } 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.volatil || coherentFlags.coherent || coherentFlags.devicecoherent || coherentFlags.queuefamilycoherent || coherentFlags.workgroupcoherent || coherentFlags.subgroupcoherent) { 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.coherent || coherentFlags.devicecoherent || coherentFlags.queuefamilycoherent || coherentFlags.workgroupcoherent || coherentFlags.subgroupcoherent) { 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.volatil = type.getQualifier().volatil; // *coherent variables are implicitly nonprivate in GLSL flags.nonprivate = type.getQualifier().nonprivate || flags.subgroupcoherent || flags.workgroupcoherent || flags.queuefamilycoherent || flags.devicecoherent || flags.coherent || flags.volatil; flags.isImage = type.getBasicType() == glslang::EbtSampler; #endif 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; } 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: builder.addCapability(spv::CapabilityMultiViewport); if (glslangIntermediate->getStage() == EShLangVertex || glslangIntermediate->getStage() == EShLangTessControl || glslangIntermediate->getStage() == EShLangTessEvaluation) { builder.addIncorporatedExtension(spv::E_SPV_EXT_shader_viewport_index_layer, spv::Spv_1_5); builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT); } 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; } builder.addCapability(spv::CapabilityGeometry); if (glslangIntermediate->getStage() == EShLangVertex || glslangIntermediate->getStage() == EShLangTessControl || glslangIntermediate->getStage() == EShLangTessEvaluation) { builder.addIncorporatedExtension(spv::E_SPV_EXT_shader_viewport_index_layer, spv::Spv_1_5); builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT); } 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::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::EbvLaunchIdNV: return spv::BuiltInLaunchIdNV; case glslang::EbvLaunchSizeNV: return spv::BuiltInLaunchSizeNV; case glslang::EbvWorldRayOriginNV: return spv::BuiltInWorldRayOriginNV; case glslang::EbvWorldRayDirectionNV: return spv::BuiltInWorldRayDirectionNV; case glslang::EbvObjectRayOriginNV: return spv::BuiltInObjectRayOriginNV; case glslang::EbvObjectRayDirectionNV: return spv::BuiltInObjectRayDirectionNV; case glslang::EbvRayTminNV: return spv::BuiltInRayTminNV; case glslang::EbvRayTmaxNV: return spv::BuiltInRayTmaxNV; case glslang::EbvInstanceCustomIndexNV: return spv::BuiltInInstanceCustomIndexNV; case glslang::EbvHitTNV: return spv::BuiltInHitTNV; case glslang::EbvHitKindNV: return spv::BuiltInHitKindNV; case glslang::EbvObjectToWorldNV: return spv::BuiltInObjectToWorldNV; case glslang::EbvWorldToObjectNV: return spv::BuiltInWorldToObjectNV; case glslang::EbvIncomingRayFlagsNV: return spv::BuiltInIncomingRayFlagsNV; // 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; 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; 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.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().isShaderRecordNV()) { return spv::StorageClassShaderRecordBufferNV; } 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; } 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::EvqPayloadNV: return spv::StorageClassRayPayloadNV; case glslang::EvqPayloadInNV: return spv::StorageClassIncomingRayPayloadNV; case glslang::EvqHitAttrNV: return spv::StorageClassHitAttributeNV; case glslang::EvqCallableDataNV: return spv::StorageClassCallableDataNV; case glslang::EvqCallableDataInNV: return spv::StorageClassIncomingCallableDataNV; #endif default: assert(0); break; } return spv::StorageClassFunction; } // Add capabilities pertaining to how an array is indexed. void TGlslangToSpvTraverser::addIndirectionIndexCapabilities(const glslang::TType& baseType, const glslang::TType& indexType) { #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().isShaderRecordNV() && ! 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) 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.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 } 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()) { 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_EXT_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); } 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->getDepth() != glslang::EldUnchanged && 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; 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); 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 EShLangRayGenNV: case EShLangIntersectNV: case EShLangAnyHitNV: case EShLangClosestHitNV: case EShLangMissNV: case EShLangCallableNV: 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); 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; } } // 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().getQualifier().isSpecConstant()) spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); // 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)) { // 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 && sc != spv::StorageClassFunction) || (sc == spv::StorageClassInput || sc == spv::StorageClassOutput)) { iOSet.insert(id); } } // If the SPIR-V type is required to be different than the AST type, // 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()); 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 OpDecorations decorations = { TranslatePrecisionDecoration(node->getOperationPrecision()), TranslateNoContractionDecoration(node->getType().getQualifier()), TranslateNonUniformDecoration(node->getType().getQualifier()) }; rValue = createBinaryOperation(node->getOp(), decorations, convertGlslangToSpvType(node->getType()), leftRValue, rValue, node->getType().getBasicType()); // 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) { // 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()), TranslateCoherent(node->getLeft()->getType()), 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. std::vector& remapper = memberRemapper[node->getLeft()->getType().getStruct()]; assert(remapper.size() > 0); spvIndex = remapper[glslangIndex]; } // normal case for indexing array or structure or block builder.accessChainPush(builder.makeIntConstant(spvIndex), TranslateCoherent(node->getLeft()->getType()), 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); if (! node->getLeft()->getType().isArray() && node->getLeft()->getType().isVector()) { int dummySize; builder.accessChainPushComponent(index, convertGlslangToSpvType(node->getLeft()->getType()), TranslateCoherent(node->getLeft()->getType()), glslangIntermediate->getBaseAlignmentScalar(node->getLeft()->getType(), dummySize)); } else builder.accessChainPush(index, TranslateCoherent(node->getLeft()->getType()), 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; } } // 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(spv::BuiltIn builtIn, const glslang::TType& glslangType) { switch(builtIn) { case spv::BuiltInSubgroupEqMask: case spv::BuiltInSubgroupGeMask: case spv::BuiltInSubgroupGtMask: case spv::BuiltInSubgroupLeMask: case spv::BuiltInSubgroupLtMask: { // these require changing a 64-bit scaler -> a vector of 32-bit components if (glslangType.isVector()) break; std::pair ret(builder.makeVectorType(builder.makeUintType(32), 4), builder.makeUintType(64)); 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, 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 { 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) { operand = builder.accessChainGetLValue(); // Special case l-value operands lvalueCoherentFlags = builder.getAccessChain().coherentFlags; lvalueCoherentFlags |= TranslateCoherent(operandNode->getAsTyped()->getType()); } 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); 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); 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; #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 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()); // 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); // assert(result); // this can happen for bad shaders because the call graph completeness checking is not yet done if (result) { builder.clearAccessChain(); builder.setAccessChainRValue(result); } 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()); 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::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::EOpExecuteCallableNV: case glslang::EOpWritePackedPrimitiveIndices4x8NV: noReturnValue = true; 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 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::EOpAtomicAdd: 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) { lvalue = true; // Does it need a swizzle inversion? If so, evaluation is inverted; // operate first on the swizzle base, then apply the swizzle. if (glslangOperands[0]->getAsOperator() && 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; #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 if (lvalue) { operands.push_back(builder.accessChainGetLValue()); lvalueCoherentFlags = builder.getAccessChain().coherentFlags; lvalueCoherentFlags |= TranslateCoherent(glslangOperands[arg]->getAsTyped()->getType()); } else { builder.setLine(node->getLoc().line, node->getLoc().getFilename()); 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 result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType(), lvalueCoherentFlags); } 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) result = createInvertedSwizzle(precision, *glslangOperands[0]->getAsBinaryNode(), result); } 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(spv::StorageClassFunction, convertGlslangToSpvType(node->getType())); // Selection control: const spv::SelectionControlMask control = TranslateSelectionControl(*node); // make an "if" based on the value created by the condition spv::Builder::If ifBuilder(condition, control, builder); // emit the "then" statement builder.createStore(trueValue, result); ifBuilder.makeBeginElse(); // emit the "else" statement builder.createStore(falseValue, result); // finish off the control flow ifBuilder.makeEndIf(); builder.clearAccessChain(); builder.setAccessChainLValue(result); } }; // Execute the one side needed, as per the condition const auto executeOneSide = [&]() { // Always emit control flow. if (node->getBasicType() != glslang::EbtVoid) result = builder.createVariable(spv::StorageClassFunction, convertGlslangToSpvType(node->getType())); // Selection control: const spv::SelectionControlMask control = TranslateSelectionControl(*node); // make an "if" based on the value created by the condition spv::Builder::If ifBuilder(condition, control, builder); // emit the "then" statement if (node->getTrueBlock() != nullptr) { node->getTrueBlock()->traverse(this); if (result != spv::NoResult) builder.createStore(accessChainLoad(node->getTrueBlock()->getAsTyped()->getType()), result); } if (node->getFalseBlock() != nullptr) { ifBuilder.makeBeginElse(); // emit the "else" statement node->getFalseBlock()->traverse(this); if (result != spv::NoResult) builder.createStore(accessChainLoad(node->getFalseBlock()->getAsTyped()->getType()), result); } // finish off the control flow ifBuilder.makeEndIf(); if (result != spv::NoResult) { builder.clearAccessChain(); builder.setAccessChainLValue(result); } }; // Try for OpSelect (or a requirement to execute both sides) if (bothSidesPolicy()) { SpecConstantOpModeGuard spec_constant_op_mode_setter(&builder); if (node->getType().getQualifier().isSpecConstant()) spec_constant_op_mode_setter.turnOnSpecConstantOpMode(); executeBothSides(); } else executeOneSide(); return false; } 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) { 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: builder.makeDiscard(); 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()) { const glslang::TType& glslangReturnType = node->getExpression()->getType(); spv::Id returnId = accessChainLoad(glslangReturnType); if (builder.getTypeId(returnId) != currentFunction->getReturnType()) { builder.clearAccessChain(); spv::Id copyId = builder.createVariable(spv::StorageClassFunction, currentFunction->getReturnType()); builder.setAccessChainLValue(copyId); multiTypeStore(glslangReturnType, returnId); returnId = builder.createLoad(copyId); } builder.makeReturn(false, returnId); } else builder.makeReturn(false); builder.clearAccessChain(); 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; #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 (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 { builder.addCapability(spv::CapabilityInt8); } } const char* name = node->getName().c_str(); if (glslang::IsAnonymous(name)) name = ""; return builder.createVariable(storageClass, spvType, name); } // 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); #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::EbtAccStructNV: spvType = builder.makeAccelerationStructureNVType(); 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[glslangMembers].resize(glslangMembers->size()); spvType = convertGlslangStructToSpvType(type, glslangMembers, explicitLayout, qualifier); } break; 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[glslangMembers][i] = -1; } else { if (type.getBasicType() == glslang::EbtBlock) { if (filterMember(glslangMember)) { memberDelta++; memberRemapper[glslangMembers][i] = -1; continue; } memberRemapper[glslangMembers][i] = i - memberDelta; } // modify just this child's view of the qualifier glslang::TQualifier memberQualifier = glslangMember.getQualifier(); InheritQualifiers(memberQualifier, qualifier); // manually inherit location 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; int locationOffset = 0; // for use within the members of this struct for (int i = 0; i < (int)glslangMembers->size(); i++) { glslang::TType& glslangMember = *(*glslangMembers)[i].type; int member = i; if (type.getBasicType() == glslang::EbtBlock) { member = memberRemapper[glslangMembers][i]; 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 (! type.isArray() && memberQualifier.hasLocation()) builder.addMemberDecoration(spvType, member, spv::DecorationLocation, memberQualifier.layoutLocation); if (qualifier.hasLocation()) // track for upcoming inheritance locationOffset += glslangIntermediate->computeTypeLocationSize( glslangMember, glslangIntermediate->getStage()); // component, XFB, others if (glslangMember.getQualifier().hasComponent()) builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangMember.getQualifier().layoutComponent); if (glslangMember.getQualifier().hasXfbOffset()) builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangMember.getQualifier().layoutXfbOffset); else if (explicitLayout != glslang::ElpNone) { // figure out what to do with offset, which is accumulating int nextOffset; updateMemberOffset(type, glslangMember, offset, nextOffset, explicitLayout, memberQualifier.layoutMatrix); if (offset >= 0) builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset); offset = nextOffset; } if (glslangMember.isMatrix() && explicitLayout != glslang::ElpNone) builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, getMatrixStride(glslangMember, explicitLayout, memberQualifier.layoutMatrix)); // built-in variable decorations spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangMember.getQualifier().builtIn, true); if (builtIn != spv::BuiltInMax) builder.addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn); #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); } #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(); 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(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) { if (builder.isScalarType(nominalTypeId)) { // Conversion for bool spv::Id boolType = builder.makeBoolType(); if (nominalTypeId != boolType) loadedId = 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)); } } 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, 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().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::EvqConstReadOnly); return qualifier != glslang::EvqConstReadOnly; } // Is parameter pass-by-original? bool TGlslangToSpvTraverser::originalParam(glslang::TStorageQualifier qualifier, const glslang::TType& paramType, bool implicitThisParam) { if (implicitThisParam) // implicit this return true; if (glslangIntermediate->getSource() == glslang::EShSourceHlsl) return paramType.getBasicType() == glslang::EbtBlock; return paramType.containsOpaque() || // sampler, etc. (paramType.getBasicType() == glslang::EbtBlock && qualifier == glslang::EvqBuffer); // SSBO } // Make all the functions, skeletally, without actually visiting their bodies. void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslFunctions) { const auto getParamDecorations = [&](std::vector& decorations, const glslang::TType& type, 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); } } } // 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) { arguments.push_back(builder.accessChainGetLValue()); lvalueCoherentFlags = builder.getAccessChain().coherentFlags; 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->getOperationPrecision()); spv::Builder::TextureParameters params = { }; params.sampler = arguments[0]; glslang::TCrackedTextureOp cracked; node->crackTexture(sampler, cracked); const bool isUnsignedResult = node->getType().getBasicType() == glslang::EbtUint; // Check for queries if (cracked.query) { // OpImageQueryLod works on a sampled image, for other queries the image has to be extracted first if (node->getOp() != glslang::EOpTextureQueryLod && builder.isSampledImage(params.sampler)) params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); switch (node->getOp()) { case glslang::EOpImageQuerySize: case glslang::EOpTextureQuerySize: 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::EOpTextureFetch) { // These must produce 4 components, per SPIR-V spec. We'll add a conversion constructor if needed. // This will only happen through the HLSL path for operator[], so we do not have to handle e.g. // the EOpTexture/Proj/Lod/etc family. It would be harmless to do so, but would need more logic // here around e.g. which ones return scalars or other types. components = 4; } glslang::TType returnType(node->getType().getBasicType(), glslang::EvqTemporary, components); auto resultType = [&returnType,this]{ return convertGlslangToSpvType(returnType); }; // Check for image functions other than queries if (node->isImage()) { std::vector operands; 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(operands[2].word)); } else { resultTypeId = builder.makePointer(spv::StorageClassImage, resultType()); } spv::Id pointer = builder.createOp(spv::OpImageTexelPointer, resultTypeId, operands); 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; // Extract the image if necessary if (builder.isSampledImage(params.sampler)) params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); operands.push_back(params.sampler); ++opIt; if (sampler.isSubpass()) { // add on the (0,0) coordinate spv::Id zero = builder.makeIntConstant(0); std::vector comps; comps.push_back(zero); comps.push_back(zero); operands.push_back(builder.makeCompositeConstant(builder.makeVectorType(builder.makeIntType(32), 2), comps)); } for (; opIt != arguments.end(); ++opIt) operands.push_back(*opIt); spv::Op fragMaskOp = spv::OpNop; if (node->getOp() == glslang::EOpFragmentMaskFetch) fragMaskOp = spv::OpFragmentMaskFetchAMD; else if (node->getOp() == glslang::EOpFragmentFetch) fragMaskOp = spv::OpFragmentFetchAMD; builder.addExtension(spv::E_SPV_AMD_shader_fragment_mask); builder.addCapability(spv::CapabilityFragmentMaskAMD); return builder.createOp(fragMaskOp, resultType(), operands); } #endif // Check for texture functions other than queries bool sparse = node->isSparseTexture(); bool 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; } // See if the sampler param should really be just the SPV image part if (cracked.fetch) { // a fetch needs to have the image extracted first if (builder.isSampledImage(params.sampler)) params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); } #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)); } 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(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) != convertGlslangToSpvType(*argTypes[a])) { spv::Id argCopy = builder.createVariable(spv::StorageClassFunction, function->getParamType(a), "arg"); builder.clearAccessChain(); builder.setAccessChainLValue(argCopy); multiTypeStore(*argTypes[a], rValues[rValueCount]); arg = builder.createLoad(argCopy); } else arg = rValues[rValueCount]; ++rValueCount; } spvArgs.push_back(arg); } // 3. Make the call. spv::Id result = builder.createFunctionCall(function, spvArgs); builder.setPrecision(result, TranslatePrecisionDecoration(node->getType())); // 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]); 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::OpFOrdNotEqual; 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::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; #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::OpFOrdNotEqual, 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::OpFOrdNotEqual, destType, operand, zero); case glslang::EOpConvFloat16ToBool: zero = builder.makeFloat16Constant(0.0F); zero = makeSmearedConstant(zero, vectorSize); return builder.createBinOp(spv::OpFOrdNotEqual, 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: if (builder.isVector(operand)) builder.promoteIncorporatedExtension(spv::E_SPV_EXT_physical_storage_buffer, spv::E_SPV_KHR_physical_storage_buffer, spv::Spv_1_5); 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; break; case glslang::EOpAtomicCounterSubtract: opCode = spv::OpAtomicISub; break; case glslang::EOpAtomicMin: case glslang::EOpImageAtomicMin: case glslang::EOpAtomicCounterMin: opCode = (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) ? spv::OpAtomicUMin : spv::OpAtomicSMin; break; case glslang::EOpAtomicMax: case glslang::EOpImageAtomicMax: case glslang::EOpAtomicCounterMax: opCode = (typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64) ? spv::OpAtomicUMax : spv::OpAtomicSMax; break; case glslang::EOpAtomicAnd: case glslang::EOpImageAtomicAnd: case glslang::EOpAtomicCounterAnd: opCode = spv::OpAtomicAnd; break; case glslang::EOpAtomicOr: case glslang::EOpImageAtomicOr: case glslang::EOpAtomicCounterOr: opCode = spv::OpAtomicOr; break; case glslang::EOpAtomicXor: case glslang::EOpImageAtomicXor: case glslang::EOpAtomicCounterXor: opCode = spv::OpAtomicXor; break; case glslang::EOpAtomicExchange: case glslang::EOpImageAtomicExchange: case glslang::EOpAtomicCounterExchange: opCode = spv::OpAtomicExchange; break; case glslang::EOpAtomicCompSwap: case glslang::EOpImageAtomicCompSwap: case glslang::EOpAtomicCounterCompSwap: opCode = spv::OpAtomicCompareExchange; break; case glslang::EOpAtomicCounterIncrement: 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 (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; 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::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::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::EOpReportIntersectionNV: { typeId = builder.makeBoolType(); opCode = spv::OpReportIntersectionNV; } break; case glslang::EOpTraceNV: { builder.createNoResultOp(spv::OpTraceNV, operands); return 0; } break; case glslang::EOpExecuteCallableNV: { builder.createNoResultOp(spv::OpExecuteCallableNV, operands); return 0; } 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::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(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()) 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) { builder.addDecoration(id, spv::DecorationBuiltIn, (int)builtIn); } #ifndef GLSLANG_WEB if (symbol->getType().isImage()) { std::vector memory; TranslateMemoryDecoration(symbol->getType().getQualifier(), memory, glslangIntermediate->usingVulkanMemoryModel()); for (unsigned int i = 0; i < memory.size(); ++i) builder.addDecoration(id, memory[i]); } // nonuniform builder.addDecoration(id, TranslateNonUniformDecoration(symbol->getType().getQualifier())); 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); } #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 // 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: spvConsts.push_back(builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const())); break; case glslang::EbtUint8: spvConsts.push_back(builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const())); break; case glslang::EbtInt16: spvConsts.push_back(builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const())); break; case glslang::EbtUint16: spvConsts.push_back(builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const())); break; case glslang::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: 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: scalar = builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const(), specConstant); break; case glslang::EbtUint8: scalar = builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const(), specConstant); break; case glslang::EbtInt16: scalar = builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const(), specConstant); break; case glslang::EbtUint16: scalar = builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const(), specConstant); break; case glslang::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: 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 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 } // 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) { #ifndef GLSLANG_WEB 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_MINOR_VERSION << "." << GLSLANG_PATCH_LEVEL << std::endl; if (varName != nullptr) { out << "\t #pragma once" << std::endl; out << "const uint32_t " << varName << "[] = {" << std::endl; } const int WORDS_PER_LINE = 8; for (int i = 0; i < (int)spirv.size(); i += WORDS_PER_LINE) { out << "\t"; 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.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 ((intermediate.getSource() == EShSourceHlsl || options->optimizeSize) && !options->disableOptimizer) { SpirvToolsLegalize(intermediate, spirv, logger, options); prelegalization = false; } if (options->validate) SpirvToolsValidate(intermediate, spirv, logger, prelegalization); if (options->disassemble) SpirvToolsDisassemble(std::cout, spirv); #endif GetThreadPoolAllocator().pop(); } }; // end namespace glslang glslang-8.13.3559/SPIRV/GlslangToSpv.h000077500000000000000000000046721360464450000171550ustar00rootroot00000000000000// // 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); } glslang-8.13.3559/SPIRV/InReadableOrder.cpp000066400000000000000000000131631360464450000200770ustar00rootroot00000000000000// // 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); } glslang-8.13.3559/SPIRV/Logger.cpp000066400000000000000000000053071360464450000163350ustar00rootroot00000000000000// // 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 #endifglslang-8.13.3559/SPIRV/Logger.h000066400000000000000000000056431360464450000160050ustar00rootroot00000000000000// // 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 glslang-8.13.3559/SPIRV/SPVRemapper.cpp000066400000000000000000001470011360464450000172600ustar00rootroot00000000000000// // 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; literal.reserve(16); const char* bytes = reinterpret_cast(spv.data() + word); while (bytes && *bytes) literal += *bytes++; return literal; } 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) { 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 = opCounter[thisOpCode] * thisOpCode * 50047 + idCounter + 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) glslang-8.13.3559/SPIRV/SPVRemapper.h000066400000000000000000000273271360464450000167350ustar00rootroot00000000000000// // 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 glslang-8.13.3559/SPIRV/SpvBuilder.cpp000066400000000000000000003174641360464450000172070ustar00rootroot00000000000000// // Copyright (C) 2014-2015 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. // // 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(); } // 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::makeAccelerationStructureNVType() { Instruction *type; if (groupedTypes[OpTypeAccelerationStructureNV].size() == 0) { type = new Instruction(getUniqueId(), NoType, OpTypeAccelerationStructureNV); groupedTypes[OpTypeAccelerationStructureNV].push_back(type); constantsTypesGlobals.push_back(std::unique_ptr(type)); module.mapInstruction(type); } else { type = groupedTypes[OpTypeAccelerationStructureNV].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; } } // 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::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::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(OpDecorateStringGOOGLE); dec->addIdOperand(id); dec->addImmediateOperand(decoration); dec->addStringOperand(s); decorations.push_back(std::unique_ptr(dec)); } void Builder::addDecorationId(Id id, Decoration decoration, Id idDecoration) { if (decoration == spv::DecorationMax) return; Instruction* dec = new Instruction(OpDecorateId); dec->addIdOperand(id); dec->addImmediateOperand(decoration); dec->addIdOperand(idDecoration); decorations.push_back(std::unique_ptr(dec)); } void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decoration, int num) { if (decoration == spv::DecorationMax) return; Instruction* dec = new Instruction(OpMemberDecorate); dec->addIdOperand(id); dec->addImmediateOperand(member); 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)); } // 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); for (unsigned p = 0; p < (unsigned)decorations.size(); ++p) { for (int d = 0; d < (int)decorations[p].size(); ++d) addDecoration(firstParamId + p, decorations[p][d]); } // CFG if (entry) { *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::makeDiscard() { buildPoint->addInstruction(std::unique_ptr(new Instruction(OpKill))); createAndSetNoPredecessorBlock("post-discard"); } // Comments in header Id Builder::createVariable(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); 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::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)); return load->getResultId(); } // Comments in header Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vector& offsets) { // Figure out the final resulting type. spv::Id typeId = getTypeId(base); assert(isPointerType(typeId) && offsets.size() > 0); typeId = getContainedTypeId(typeId); for (int i = 0; i < (int)offsets.size(); ++i) { if (isStructType(typeId)) { assert(isConstantScalar(offsets[i])); typeId = getContainedTypeId(typeId, getConstantScalar(offsets[i])); } else typeId = getContainedTypeId(typeId, offsets[i]); } 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 : OpFOrdNotEqual; 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(); ++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++; } } } } // 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, spv::MemoryAccessMask memoryAccess, spv::Scope scope, unsigned int alignment) { assert(accessChain.isRValue == false); transferAccessChainSwizzle(true); Id base = collapseAccessChain(); Id source = rvalue; // dynamic component should be gone assert(accessChain.component == NoResult); // If swizzle still exists, it is out-of-order or not full, we must load the target vector, // extract and insert elements to perform writeMask and/or swizzle. if (accessChain.swizzle.size() > 0) { Id tempBaseId = createLoad(base); 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 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); } else { Id lValue = NoResult; if (spvVersion >= Spv_1_4) { // 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(StorageClassFunction, getTypeId(accessChain.base), "indexable", accessChain.base); addDecoration(lValue, DecorationNonWritable); } else { lValue = createVariable(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()); } setPrecision(id, 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 = createLoad(collapseAccessChain(), memoryAccess, scope, alignment); setPrecision(id, precision); addDecoration(id, 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, 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 glslang-8.13.3559/SPIRV/SpvBuilder.h000066400000000000000000001075771360464450000166560ustar00rootroot00000000000000// // Copyright (C) 2014-2015 LunarG, Inc. // 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. // // "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)); 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); // accelerationStructureNV type Id makeAccelerationStructureNVType(); // 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); } 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)); } 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 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 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 addDecorationId(Id id, Decoration, Id idDecoration); void addMemberDecoration(Id, unsigned int member, Decoration, int num = -1); void addMemberDecoration(Id, unsigned int member, Decoration, const char*); // At the end of what block do the next create*() instructions go? void setBuildPoint(Block* bp) { buildPoint = bp; } 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 a discard. void makeDiscard(); // Create a global or function local or IO variable. Id createVariable(StorageClass, Id type, const char* name = 0, 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::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); // return argument // 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&); }; // 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; } unsigned coherent : 1; unsigned devicecoherent : 1; unsigned queuefamilycoherent : 1; unsigned workgroupcoherent : 1; unsigned subgroupcoherent : 1; unsigned nonprivate : 1; unsigned volatil : 1; unsigned isImage : 1; void clear() { coherent = 0; devicecoherent = 0; queuefamilycoherent = 0; workgroupcoherent = 0; subgroupcoherent = 0; nonprivate = 0; volatil = 0; isImage = 0; } CoherentFlags operator |=(const CoherentFlags &other) { coherent |= other.coherent; devicecoherent |= other.devicecoherent; queuefamilycoherent |= other.queuefamilycoherent; workgroupcoherent |= other.workgroupcoherent; subgroupcoherent |= other.subgroupcoherent; nonprivate |= other.nonprivate; volatil |= other.volatil; isImage |= other.isImage; 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, 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 nonUniform, Id ResultType, spv::MemoryAccessMask memoryAccess = spv::MemoryAccessMaskNone, spv::Scope scope = spv::ScopeMax, unsigned int alignment = 0); // 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 std::unordered_map> groupedConstants; // map type opcodes to constant inst. std::unordered_map> groupedStructConstants; // map struct-id to constant instructions std::unordered_map> groupedTypes; // map type opcodes to type instructions // stack of switches std::stack switchMerges; // 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 glslang-8.13.3559/SPIRV/SpvPostProcess.cpp000066400000000000000000000465051360464450000201000ustar00rootroot00000000000000// // 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" #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" } 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 OpAccessChain: case OpPtrAccessChain: 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() < glslang::EShTargetSpv_1_3 && containsType(typeId, OpTypeInt, 16)) addExtension(spv::E_SPV_AMD_gpu_shader_int16); break; case GLSLstd450InterpolateAtCentroid: case GLSLstd450InterpolateAtSample: case GLSLstd450InterpolateAtOffset: if (getSpvVersion() < glslang::EShTargetSpv_1_3 && containsType(typeId, OpTypeFloat, 16)) addExtension(spv::E_SPV_AMD_gpu_shader_half_float); break; default: break; } break; default: if (basicTypeOp == OpTypeFloat && width == 16) addCapability(CapabilityFloat16); if (basicTypeOp == OpTypeInt && width == 16) addCapability(CapabilityInt16); if (basicTypeOp == OpTypeInt && width == 8) addCapability(CapabilityInt8); 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); } } } } } } #endif // comment in header void Builder::postProcess() { postProcessCFG(); #ifndef GLSLANG_WEB postProcessFeatures(); #endif } }; // end spv namespace glslang-8.13.3559/SPIRV/SpvTools.cpp000066400000000000000000000204211360464450000167010ustar00rootroot00000000000000// // 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. // #if ENABLE_OPT #include #include #include "SpvTools.h" #include "spirv-tools/optimizer.hpp" #include "spirv-tools/libspirv.h" 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; } 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; } // Use the SPIRV-Tools disassembler to print SPIR-V. void SpirvToolsDisassemble(std::ostream& out, const std::vector& spirv) { // disassemble spv_context context = spvContextCreate(SPV_ENV_UNIVERSAL_1_3); 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); 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, for the purpose of // legalizing HLSL SPIR-V. void SpirvToolsLegalize(const glslang::TIntermediate&, std::vector& spirv, spv::SpvBuildLogger*, const SpvOptions* options) { spv_target_env target_env = SPV_ENV_UNIVERSAL_1_2; spvtools::Optimizer optimizer(target_env); optimizer.SetMessageConsumer( [](spv_message_level_t level, const char *source, const spv_position_t &position, const char *message) { 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; }); // 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->generateDebugInfo) { optimizer.RegisterPass(spvtools::CreatePropagateLineInfoPass()); } 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()); if (options->optimizeSize) { optimizer.RegisterPass(spvtools::CreateRedundancyEliminationPass()); } optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); optimizer.RegisterPass(spvtools::CreateCFGCleanupPass()); if (options->generateDebugInfo) { optimizer.RegisterPass(spvtools::CreateRedundantLineInfoElimPass()); } spvtools::OptimizerOptions spvOptOptions; spvOptOptions.set_run_validator(false); // The validator may run as a seperate step later on optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions); } }; // end namespace glslang #endif glslang-8.13.3559/SPIRV/SpvTools.h000066400000000000000000000055771360464450000163650ustar00rootroot00000000000000// // 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 #ifdef ENABLE_OPT #include #include #endif #include "glslang/MachineIndependent/localintermediate.h" #include "Logger.h" namespace glslang { struct SpvOptions { SpvOptions() : generateDebugInfo(false), disableOptimizer(true), optimizeSize(false), disassemble(false), validate(false) { } bool generateDebugInfo; bool disableOptimizer; bool optimizeSize; bool disassemble; bool validate; }; #ifdef ENABLE_OPT // Use the SPIRV-Tools disassembler to print SPIR-V. void SpirvToolsDisassemble(std::ostream& out, const std::vector& spirv); // 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, for the purpose of // legalizing HLSL SPIR-V. void SpirvToolsLegalize(const glslang::TIntermediate& intermediate, std::vector& spirv, spv::SpvBuildLogger*, const SpvOptions*); #endif } // end namespace glslang #endif // GLSLANG_SPV_TOOLS_H glslang-8.13.3559/SPIRV/bitutils.h000066400000000000000000000063641360464450000164260ustar00rootroot00000000000000// 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_ glslang-8.13.3559/SPIRV/disassemble.cpp000066400000000000000000000705121360464450000174110ustar00rootroot00000000000000// // 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 "disassemble.h" #include "doc.h" #include "SpvTools.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, }; // 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); 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 << " "; } } // return the number of operands consumed by the string int SpirvStream::disassembleString() { int startWord = word; out << " \""; const char* wordString; bool done = false; do { unsigned int content = stream[word]; wordString = (const char*)&content; for (int charCount = 0; charCount < 4; ++charCount) { if (*wordString == 0) { done = true; break; } out << *(wordString++); } ++word; } while (! done); out << "\""; return word - startWord; } 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] = (const char*)(&stream[word]); } 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]] = (const char*)(&stream[word]); 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 (0 == memcmp("OpenCL", name, 6)) { extInstSet = OpenCLExtInst; } 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) << ")"; } } break; case OperandOptionalLiteralString: case OperandLiteralString: numOperands -= disassembleString(); break; 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 glslang-8.13.3559/SPIRV/disassemble.h000066400000000000000000000036061360464450000170560ustar00rootroot00000000000000// // 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 glslang-8.13.3559/SPIRV/doc.cpp000066400000000000000000004126361360464450000156720ustar00rootroot00000000000000// // 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. // // 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 ExecutionModelRayGenerationNV: return "RayGenerationNV"; case ExecutionModelIntersectionNV: return "IntersectionNV"; case ExecutionModelAnyHitNV: return "AnyHitNV"; case ExecutionModelClosestHitNV: return "ClosestHitNV"; case ExecutionModelMissNV: return "MissNV"; case ExecutionModelCallableNV: return "CallableNV"; } } 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 = 33; 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 4446: return "PostDepthCoverage"; 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 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 StorageClassRayPayloadNV: return "RayPayloadNV"; case StorageClassHitAttributeNV: return "HitAttributeNV"; case StorageClassIncomingRayPayloadNV: return "IncomingRayPayloadNV"; case StorageClassShaderRecordBufferNV: return "ShaderRecordBufferNV"; case StorageClassCallableDataNV: return "CallableDataNV"; case StorageClassIncomingCallableDataNV: return "IncomingCallableDataNV"; 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 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 BuiltInLaunchIdNV: return "LaunchIdNV"; case BuiltInLaunchSizeNV: return "LaunchSizeNV"; case BuiltInWorldRayOriginNV: return "WorldRayOriginNV"; case BuiltInWorldRayDirectionNV: return "WorldRayDirectionNV"; case BuiltInObjectRayOriginNV: return "ObjectRayOriginNV"; case BuiltInObjectRayDirectionNV: return "ObjectRayDirectionNV"; case BuiltInRayTminNV: return "RayTminNV"; case BuiltInRayTmaxNV: return "RayTmaxNV"; case BuiltInInstanceCustomIndexNV: return "InstanceCustomIndexNV"; case BuiltInObjectToWorldNV: return "ObjectToWorldNV"; case BuiltInWorldToObjectNV: return "WorldToObjectNV"; case BuiltInHitTNV: return "HitTNV"; case BuiltInHitKindNV: return "HitKindNV"; case BuiltInIncomingRayFlagsNV: return "IncomingRayFlagsNV"; 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"; 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"; 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 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 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 CapabilityDemoteToHelperInvocationEXT: return "DemoteToHelperInvocationEXT"; case CapabilityShaderClockKHR: return "ShaderClockKHR"; case CapabilityIntegerFunctions2INTEL: return "CapabilityIntegerFunctions2INTEL"; 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 OpDecorateId: return "OpDecorateId"; case 333: return "OpGroupNonUniformElect"; case 334: return "OpGroupNonUniformAll"; case 335: return "OpGroupNonUniformAny"; case 336: return "OpGroupNonUniformAllEqual"; case 337: return "OpGroupNonUniformBroadcast"; case 338: return "OpGroupNonUniformBroadcastFirst"; case 339: return "OpGroupNonUniformBallot"; case 340: return "OpGroupNonUniformInverseBallot"; case 341: return "OpGroupNonUniformBallotBitExtract"; case 342: return "OpGroupNonUniformBallotBitCount"; case 343: return "OpGroupNonUniformBallotFindLSB"; case 344: return "OpGroupNonUniformBallotFindMSB"; case 345: return "OpGroupNonUniformShuffle"; case 346: return "OpGroupNonUniformShuffleXor"; case 347: return "OpGroupNonUniformShuffleUp"; case 348: return "OpGroupNonUniformShuffleDown"; case 349: return "OpGroupNonUniformIAdd"; case 350: return "OpGroupNonUniformFAdd"; case 351: return "OpGroupNonUniformIMul"; case 352: return "OpGroupNonUniformFMul"; case 353: return "OpGroupNonUniformSMin"; case 354: return "OpGroupNonUniformUMin"; case 355: return "OpGroupNonUniformFMin"; case 356: return "OpGroupNonUniformSMax"; case 357: return "OpGroupNonUniformUMax"; case 358: return "OpGroupNonUniformFMax"; case 359: return "OpGroupNonUniformBitwiseAnd"; case 360: return "OpGroupNonUniformBitwiseOr"; case 361: return "OpGroupNonUniformBitwiseXor"; case 362: return "OpGroupNonUniformLogicalAnd"; case 363: return "OpGroupNonUniformLogicalOr"; case 364: return "OpGroupNonUniformLogicalXor"; case 365: return "OpGroupNonUniformQuadBroadcast"; case 366: return "OpGroupNonUniformQuadSwap"; case 4421: return "OpSubgroupBallotKHR"; case 4422: return "OpSubgroupFirstInvocationKHR"; case 4428: return "OpSubgroupAllKHR"; case 4429: return "OpSubgroupAnyKHR"; case 4430: return "OpSubgroupAllEqualKHR"; case 4432: return "OpSubgroupReadInvocationKHR"; 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 OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV"; case OpReportIntersectionNV: return "OpReportIntersectionNV"; case OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV"; case OpTerminateRayNV: return "OpTerminateRayNV"; case OpTraceNV: return "OpTraceNV"; case OpTypeAccelerationStructureNV: return "OpTypeAccelerationStructureNV"; case OpExecuteCallableNV: return "OpExecuteCallableNV"; case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV"; case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV"; 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[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[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[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(OperandLiteralString, "'Literal String'"); InstructionDesc[OpMemberDecorate].operands.push(OperandId, "'Structure Type'"); InstructionDesc[OpMemberDecorate].operands.push(OperandLiteralNumber, "'Member'"); InstructionDesc[OpMemberDecorate].operands.push(OperandDecoration, ""); InstructionDesc[OpMemberDecorate].operands.push(OperandVariableLiterals, "See <>."); InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandId, "'Structure Type'"); InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandLiteralNumber, "'Member'"); InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandDecoration, ""); InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandLiteralString, "'Literal String'"); InstructionDesc[OpGroupDecorate].operands.push(OperandId, "'Decoration Group'"); InstructionDesc[OpGroupDecorate].operands.push(OperandVariableIds, "'Targets'"); 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[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[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(OperandLiteralNumber, "'Direction'"); InstructionDesc[OpSubgroupBallotKHR].operands.push(OperandId, "'Predicate'"); InstructionDesc[OpSubgroupFirstInvocationKHR].operands.push(OperandId, "'Value'"); InstructionDesc[OpSubgroupAnyKHR].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpSubgroupAnyKHR].operands.push(OperandId, "'Predicate'"); InstructionDesc[OpSubgroupAllKHR].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpSubgroupAllKHR].operands.push(OperandId, "'Predicate'"); InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandScope, "'Execution'"); InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandId, "'Predicate'"); InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Value'"); InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Index'"); InstructionDesc[OpModuleProcessed].operands.push(OperandLiteralString, "'process'"); 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[OpTypeAccelerationStructureNV].setResultAndType(true, false); InstructionDesc[OpTraceNV].operands.push(OperandId, "'NV 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[OpReportIntersectionNV].operands.push(OperandId, "'Hit Parameter'"); InstructionDesc[OpReportIntersectionNV].operands.push(OperandId, "'Hit Kind'"); InstructionDesc[OpIgnoreIntersectionNV].setResultAndType(false, false); InstructionDesc[OpTerminateRayNV].setResultAndType(false, false); InstructionDesc[OpExecuteCallableNV].operands.push(OperandId, "SBT Record Index"); InstructionDesc[OpExecuteCallableNV].operands.push(OperandId, "CallableData ID"); InstructionDesc[OpExecuteCallableNV].setResultAndType(false, false); 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 glslang-8.13.3559/SPIRV/doc.h000066400000000000000000000174561360464450000153400ustar00rootroot00000000000000// // 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, 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 glslang-8.13.3559/SPIRV/hex_float.h000066400000000000000000001151331360464450000165330ustar00rootroot00000000000000// 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_ glslang-8.13.3559/SPIRV/spirv.hpp000066400000000000000000002725351360464450000162770ustar00rootroot00000000000000// Copyright (c) 2014-2019 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 0x10400 #define SPV_REVISION 1 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010400; 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, SourceLanguageMax = 0x7fffffff, }; enum ExecutionModel { ExecutionModelVertex = 0, ExecutionModelTessellationControl = 1, ExecutionModelTessellationEvaluation = 2, ExecutionModelGeometry = 3, ExecutionModelFragment = 4, ExecutionModelGLCompute = 5, ExecutionModelKernel = 6, ExecutionModelTaskNV = 5267, ExecutionModelMeshNV = 5268, ExecutionModelRayGenerationNV = 5313, ExecutionModelIntersectionNV = 5314, ExecutionModelAnyHitNV = 5315, ExecutionModelClosestHitNV = 5316, ExecutionModelMissNV = 5317, 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, 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, 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, StorageClassCallableDataNV = 5328, StorageClassIncomingCallableDataNV = 5329, StorageClassRayPayloadNV = 5338, StorageClassHitAttributeNV = 5339, StorageClassIncomingRayPayloadNV = 5342, StorageClassShaderRecordBufferNV = 5343, StorageClassPhysicalStorageBuffer = 5349, StorageClassPhysicalStorageBufferEXT = 5349, 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, 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, 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, }; enum FPFastMathModeShift { FPFastMathModeNotNaNShift = 0, FPFastMathModeNotInfShift = 1, FPFastMathModeNSZShift = 2, FPFastMathModeAllowRecipShift = 3, FPFastMathModeFastShift = 4, FPFastMathModeMax = 0x7fffffff, }; enum FPFastMathModeMask { FPFastMathModeMaskNone = 0, FPFastMathModeNotNaNMask = 0x00000001, FPFastMathModeNotInfMask = 0x00000002, FPFastMathModeNSZMask = 0x00000004, FPFastMathModeAllowRecipMask = 0x00000008, FPFastMathModeFastMask = 0x00000010, }; enum FPRoundingMode { FPRoundingModeRTE = 0, FPRoundingModeRTZ = 1, FPRoundingModeRTP = 2, FPRoundingModeRTN = 3, FPRoundingModeMax = 0x7fffffff, }; enum LinkageType { LinkageTypeExport = 0, LinkageTypeImport = 1, 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, DecorationPerVertexNV = 5285, DecorationNonUniform = 5300, DecorationNonUniformEXT = 5300, DecorationRestrictPointer = 5355, DecorationRestrictPointerEXT = 5355, DecorationAliasedPointer = 5356, DecorationAliasedPointerEXT = 5356, DecorationCounterBuffer = 5634, DecorationHlslCounterBufferGOOGLE = 5634, DecorationHlslSemanticGOOGLE = 5635, DecorationUserSemantic = 5635, DecorationUserTypeGOOGLE = 5636, 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, BuiltInDeviceIndex = 4438, BuiltInViewIndex = 4440, BuiltInBaryCoordNoPerspAMD = 4992, BuiltInBaryCoordNoPerspCentroidAMD = 4993, BuiltInBaryCoordNoPerspSampleAMD = 4994, BuiltInBaryCoordSmoothAMD = 4995, BuiltInBaryCoordSmoothCentroidAMD = 4996, BuiltInBaryCoordSmoothSampleAMD = 4997, BuiltInBaryCoordPullModelAMD = 4998, BuiltInFragStencilRefEXT = 5014, BuiltInViewportMaskNV = 5253, BuiltInSecondaryPositionNV = 5257, BuiltInSecondaryViewportMaskNV = 5258, BuiltInPositionPerViewNV = 5261, BuiltInViewportMaskPerViewNV = 5262, BuiltInFullyCoveredEXT = 5264, BuiltInTaskCountNV = 5274, BuiltInPrimitiveCountNV = 5275, BuiltInPrimitiveIndicesNV = 5276, BuiltInClipDistancePerViewNV = 5277, BuiltInCullDistancePerViewNV = 5278, BuiltInLayerPerViewNV = 5279, BuiltInMeshViewCountNV = 5280, BuiltInMeshViewIndicesNV = 5281, BuiltInBaryCoordNV = 5286, BuiltInBaryCoordNoPerspNV = 5287, BuiltInFragSizeEXT = 5292, BuiltInFragmentSizeNV = 5292, BuiltInFragInvocationCountEXT = 5293, BuiltInInvocationsPerPixelNV = 5293, BuiltInLaunchIdNV = 5319, BuiltInLaunchSizeNV = 5320, BuiltInWorldRayOriginNV = 5321, BuiltInWorldRayDirectionNV = 5322, BuiltInObjectRayOriginNV = 5323, BuiltInObjectRayDirectionNV = 5324, BuiltInRayTminNV = 5325, BuiltInRayTmaxNV = 5326, BuiltInInstanceCustomIndexNV = 5327, BuiltInObjectToWorldNV = 5330, BuiltInWorldToObjectNV = 5331, BuiltInHitTNV = 5332, BuiltInHitKindNV = 5333, BuiltInIncomingRayFlagsNV = 5351, 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, LoopControlMax = 0x7fffffff, }; enum LoopControlMask { LoopControlMaskNone = 0, LoopControlUnrollMask = 0x00000001, LoopControlDontUnrollMask = 0x00000002, LoopControlDependencyInfiniteMask = 0x00000004, LoopControlDependencyLengthMask = 0x00000008, LoopControlMinIterationsMask = 0x00000010, LoopControlMaxIterationsMask = 0x00000020, LoopControlIterationMultipleMask = 0x00000040, LoopControlPeelCountMask = 0x00000080, LoopControlPartialCountMask = 0x00000100, }; enum FunctionControlShift { FunctionControlInlineShift = 0, FunctionControlDontInlineShift = 1, FunctionControlPureShift = 2, FunctionControlConstShift = 3, FunctionControlMax = 0x7fffffff, }; enum FunctionControlMask { FunctionControlMaskNone = 0, FunctionControlInlineMask = 0x00000001, FunctionControlDontInlineMask = 0x00000002, FunctionControlPureMask = 0x00000004, FunctionControlConstMask = 0x00000008, }; 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, 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, CapabilitySubgroupBallotKHR = 4423, CapabilityDrawParameters = 4427, CapabilitySubgroupVoteKHR = 4431, CapabilityStorageBuffer16BitAccess = 4433, CapabilityStorageUniformBufferBlock16 = 4433, CapabilityStorageUniform16 = 4434, CapabilityUniformAndStorageBuffer16BitAccess = 4434, CapabilityStoragePushConstant16 = 4435, CapabilityStorageInputOutput16 = 4436, CapabilityDeviceGroup = 4437, CapabilityMultiView = 4439, CapabilityVariablePointersStorageBuffer = 4441, CapabilityVariablePointers = 4442, CapabilityAtomicStorageOps = 4445, CapabilitySampleMaskPostDepthCoverage = 4447, CapabilityStorageBuffer8BitAccess = 4448, CapabilityUniformAndStorageBuffer8BitAccess = 4449, CapabilityStoragePushConstant8 = 4450, CapabilityDenormPreserve = 4464, CapabilityDenormFlushToZero = 4465, CapabilitySignedZeroInfNanPreserve = 4466, CapabilityRoundingModeRTE = 4467, CapabilityRoundingModeRTZ = 4468, CapabilityFloat16ImageAMD = 5008, CapabilityImageGatherBiasLodAMD = 5009, CapabilityFragmentMaskAMD = 5010, CapabilityStencilExportEXT = 5013, CapabilityImageReadWriteLodAMD = 5015, CapabilityShaderClockKHR = 5055, CapabilitySampleMaskOverrideCoverageNV = 5249, CapabilityGeometryShaderPassthroughNV = 5251, CapabilityShaderViewportIndexLayerEXT = 5254, CapabilityShaderViewportIndexLayerNV = 5254, CapabilityShaderViewportMaskNV = 5255, CapabilityShaderStereoViewNV = 5259, CapabilityPerViewAttributesNV = 5260, CapabilityFragmentFullyCoveredEXT = 5265, CapabilityMeshShadingNV = 5266, CapabilityImageFootprintNV = 5282, 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, CapabilityVulkanMemoryModel = 5345, CapabilityVulkanMemoryModelKHR = 5345, CapabilityVulkanMemoryModelDeviceScope = 5346, CapabilityVulkanMemoryModelDeviceScopeKHR = 5346, CapabilityPhysicalStorageBufferAddresses = 5347, CapabilityPhysicalStorageBufferAddressesEXT = 5347, CapabilityComputeDerivativeGroupLinearNV = 5350, CapabilityCooperativeMatrixNV = 5357, CapabilityFragmentShaderSampleInterlockEXT = 5363, CapabilityFragmentShaderShadingRateInterlockEXT = 5372, CapabilityShaderSMBuiltinsNV = 5373, CapabilityFragmentShaderPixelInterlockEXT = 5378, CapabilityDemoteToHelperInvocationEXT = 5379, CapabilitySubgroupShuffleINTEL = 5568, CapabilitySubgroupBufferBlockIOINTEL = 5569, CapabilitySubgroupImageBlockIOINTEL = 5570, CapabilitySubgroupImageMediaBlockIOINTEL = 5579, CapabilityIntegerFunctions2INTEL = 5584, CapabilitySubgroupAvcMotionEstimationINTEL = 5696, CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, CapabilityMax = 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, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpSubgroupReadInvocationKHR = 4432, OpGroupIAddNonUniformAMD = 5000, OpGroupFAddNonUniformAMD = 5001, OpGroupFMinNonUniformAMD = 5002, OpGroupUMinNonUniformAMD = 5003, OpGroupSMinNonUniformAMD = 5004, OpGroupFMaxNonUniformAMD = 5005, OpGroupUMaxNonUniformAMD = 5006, OpGroupSMaxNonUniformAMD = 5007, OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpImageSampleFootprintNV = 5283, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpReportIntersectionNV = 5334, OpIgnoreIntersectionNV = 5335, OpTerminateRayNV = 5336, OpTraceNV = 5337, OpTypeAccelerationStructureNV = 5341, OpExecuteCallableNV = 5344, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, OpCooperativeMatrixStoreNV = 5360, OpCooperativeMatrixMulAddNV = 5361, OpCooperativeMatrixLengthNV = 5362, OpBeginInvocationInterlockEXT = 5364, OpEndInvocationInterlockEXT = 5365, OpDemoteToHelperInvocationEXT = 5380, OpIsHelperInvocationEXT = 5381, 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, 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, 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 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 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 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 OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break; case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; 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 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; } } #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)); } } // end namespace spv #endif // #ifndef spirv_HPP glslang-8.13.3559/SPIRV/spvIR.h000077500000000000000000000377201360464450000156350ustar00rootroot00000000000000// // 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 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; char* wordString = (char*)&word; char* wordPtr = wordString; int charCount = 0; char c; do { c = *(str++); *(wordPtr++) = c; ++charCount; if (charCount == 4) { addImmediateOperand(word); wordPtr = wordString; charCount = 0; } } while (c != 0); // deal with partial last word if (charCount > 0) { // pad with 0s for (; charCount < 4; ++charCount) *(wordPtr++) = 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(); Instruction* unreachable = new Instruction(OpUnreachable); addInstruction(std::unique_ptr(unreachable)); } // 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 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 setImplicitThis() { implicitThis = true; } bool hasImplicitThis() const { return implicitThis; } 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 }; // // 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) { // 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 glslang-8.13.3559/StandAlone/000077500000000000000000000000001360464450000155325ustar00rootroot00000000000000glslang-8.13.3559/StandAlone/CMakeLists.txt000066400000000000000000000045171360464450000203010ustar00rootroot00000000000000add_library(glslang-default-resource-limits ${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp) set_property(TARGET glslang-default-resource-limits PROPERTY FOLDER glslang) set_property(TARGET glslang-default-resource-limits PROPERTY POSITION_INDEPENDENT_CODE ON) target_include_directories(glslang-default-resource-limits PUBLIC $ PUBLIC $) set(SOURCES StandAlone.cpp DirStackFileIncluder.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(WIN32) target_link_libraries(glslangValidator ${LIBRARIES}) target_include_directories(glslangValidator PUBLIC $ $) 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(WIN32) 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 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(EXPORT glslang-default-resource-limitsTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) endif() endif(ENABLE_GLSLANG_INSTALL) glslang-8.13.3559/StandAlone/DirStackFileIncluder.h000066400000000000000000000127221360464450000217010ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2017 Google, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of 3Dlabs Inc. Ltd. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // #pragma once #include #include #include #include #include "./../glslang/Public/ShaderLang.h" // Default include class for normal include convention of search backward // through the stack of active include paths (for nested includes). // Can be overridden to customize. class DirStackFileIncluder : public glslang::TShader::Includer { public: DirStackFileIncluder() : externalLocalDirectoryCount(0) { } virtual IncludeResult* includeLocal(const char* headerName, const char* includerName, size_t inclusionDepth) override { return readLocalPath(headerName, includerName, (int)inclusionDepth); } virtual IncludeResult* includeSystem(const char* headerName, const char* /*includerName*/, size_t /*inclusionDepth*/) override { return readSystemPath(headerName); } // Externally set directories. E.g., from a command-line -I. // - Most-recently pushed are checked first. // - All these are checked after the parse-time stack of local directories // is checked. // - This only applies to the "local" form of #include. // - Makes its own copy of the path. virtual void pushExternalLocalDirectory(const std::string& dir) { directoryStack.push_back(dir); externalLocalDirectoryCount = (int)directoryStack.size(); } virtual void releaseInclude(IncludeResult* result) override { if (result != nullptr) { delete [] static_cast(result->userData); delete result; } } virtual ~DirStackFileIncluder() override { } protected: typedef char tUserDataElement; std::vector directoryStack; int externalLocalDirectoryCount; // Search for a valid "local" path based on combining the stack of include // directories and the nominal name of the header. virtual IncludeResult* readLocalPath(const char* headerName, const char* includerName, int depth) { // Discard popped include directories, and // initialize when at parse-time first level. directoryStack.resize(depth + externalLocalDirectoryCount); if (depth == 1) directoryStack.back() = getDirectory(includerName); // Find a directory that works, using a reverse search of the include stack. for (auto it = directoryStack.rbegin(); it != directoryStack.rend(); ++it) { std::string path = *it + '/' + headerName; std::replace(path.begin(), path.end(), '\\', '/'); std::ifstream file(path, std::ios_base::binary | std::ios_base::ate); if (file) { directoryStack.push_back(getDirectory(path)); return newIncludeResult(path, file, (int)file.tellg()); } } return nullptr; } // Search for a valid path. // Not implemented yet; returning nullptr signals failure to find. virtual IncludeResult* readSystemPath(const char* /*headerName*/) const { return nullptr; } // Do actual reading of the file, filling in a new include result. virtual IncludeResult* newIncludeResult(const std::string& path, std::ifstream& file, int length) const { char* content = new tUserDataElement [length]; file.seekg(0, file.beg); file.read(content, length); return new IncludeResult(path, content, length, content); } // If no path markers, return current working directory. // Otherwise, strip file name and return path leading up to it. virtual std::string getDirectory(const std::string path) const { size_t last = path.find_last_of("/\\"); return last == std::string::npos ? "." : path.substr(0, last); } }; glslang-8.13.3559/StandAlone/ResourceLimits.cpp000066400000000000000000000753431360464450000212230ustar00rootroot00000000000000// // 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, /* .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" << "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 glslang-8.13.3559/StandAlone/ResourceLimits.h000066400000000000000000000044771360464450000206700ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/StandAlone/StandAlone.cpp000066400000000000000000002121161360464450000202710ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2013-2016 LunarG, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of 3Dlabs Inc. Ltd. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // // this only applies to the standalone wrapper, not the front end in general #ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #endif #include "ResourceLimits.h" #include "Worklist.h" #include "DirStackFileIncluder.h" #include "./../glslang/Include/ShHandle.h" #include "./../glslang/Include/revision.h" #include "./../glslang/Public/ShaderLang.h" #include "../SPIRV/GlslangToSpv.h" #include "../SPIRV/GLSL.std.450.h" #include "../SPIRV/doc.h" #include "../SPIRV/disassemble.h" #include #include #include #include #include #include #include #include #include "../glslang/OSDependent/osinclude.h" extern "C" { SH_IMPORT_EXPORT void ShOutputHtml(); } // Command-line options enum TOptions { EOptionNone = 0, EOptionIntermediate = (1 << 0), EOptionSuppressInfolog = (1 << 1), EOptionMemoryLeakMode = (1 << 2), EOptionRelaxedErrors = (1 << 3), EOptionGiveWarnings = (1 << 4), EOptionLinkProgram = (1 << 5), EOptionMultiThreaded = (1 << 6), EOptionDumpConfig = (1 << 7), EOptionDumpReflection = (1 << 8), EOptionSuppressWarnings = (1 << 9), EOptionDumpVersions = (1 << 10), EOptionSpv = (1 << 11), EOptionHumanReadableSpv = (1 << 12), EOptionVulkanRules = (1 << 13), EOptionDefaultDesktop = (1 << 14), EOptionOutputPreprocessed = (1 << 15), EOptionOutputHexadecimal = (1 << 16), EOptionReadHlsl = (1 << 17), EOptionCascadingErrors = (1 << 18), EOptionAutoMapBindings = (1 << 19), EOptionFlattenUniformArrays = (1 << 20), EOptionNoStorageFormat = (1 << 21), EOptionKeepUncalled = (1 << 22), EOptionHlslOffsets = (1 << 23), EOptionHlslIoMapping = (1 << 24), EOptionAutoMapLocations = (1 << 25), EOptionDebug = (1 << 26), EOptionStdin = (1 << 27), EOptionOptimizeDisable = (1 << 28), EOptionOptimizeSize = (1 << 29), EOptionInvertY = (1 << 30), EOptionDumpBareVersion = (1 << 31), }; bool targetHlslFunctionality1 = false; bool SpvToolsDisassembler = false; bool SpvToolsValidate = false; bool NaNClamp = 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* entryPointName = nullptr; const char* sourceEntryPointName = nullptr; const char* shaderStageName = nullptr; const char* variableName = nullptr; bool HlslEnable16BitTypes = false; bool HlslDX9compatible = 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 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; // Add things like "#define ..." to a preamble to use in the beginning of the shader. class TPreamble { public: TPreamble() { } bool isSet() const { return text.size() > 0; } const char* get() const { return text.c_str(); } // #define... void addDef(std::string def) { text.append("#define "); fixLine(def); Processes.push_back("D"); Processes.back().append(def); // The first "=" needs to turn into a space const size_t equal = def.find_first_of("="); if (equal != def.npos) def[equal] = ' '; text.append(def); text.append("\n"); } // #undef... void addUndef(std::string undef) { text.append("#undef "); fixLine(undef); Processes.push_back("U"); Processes.back().append(undef); text.append(undef); text.append("\n"); } protected: void fixLine(std::string& line) { // Can't go past a newline in the line const size_t end = line.find_first_of("\n"); if (end != line.npos) line = line.substr(0, end); } std::string text; // contents of preamble }; TPreamble UserPreamble; // // Create the default name for saving a binary if -o is not provided. // const char* GetBinaryName(EShLanguage stage) { const char* name; if (binaryFileName == nullptr) { switch (stage) { case EShLangVertex: name = "vert.spv"; break; case EShLangTessControl: name = "tesc.spv"; break; case EShLangTessEvaluation: name = "tese.spv"; break; case EShLangGeometry: name = "geom.spv"; break; case EShLangFragment: name = "frag.spv"; break; case EShLangCompute: name = "comp.spv"; break; case EShLangRayGenNV: name = "rgen.spv"; break; case EShLangIntersectNV: name = "rint.spv"; break; case EShLangAnyHitNV: name = "rahit.spv"; break; case EShLangClosestHitNV: name = "rchit.spv"; break; case EShLangMissNV: name = "rmiss.spv"; break; case EShLangCallableNV: 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 while ((argc - arg) > 2 && isdigit(argv[arg+0][0]) && isdigit(argv[arg+1][0])) { const int baseNum = atoi(argv[arg++]); const int setNum = atoi(argv[arg++]); perSetBase[setNum] = baseNum; } } else { // Parse single binding base singleBase = atoi(argv[arg++]); } argc -= (arg-1); argv += (arg-1); // Set one or all languages const int langMin = (lang < EShLangCount) ? lang+0 : 0; const int langMax = (lang < EShLangCount) ? lang+1 : EShLangCount; for (int lang = langMin; lang < langMax; ++lang) { if (!perSetBase.empty()) baseBindingForSet[res][lang].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>& 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 == "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 == "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 == "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 == "resource-set-bindings" || // synonyms lowerword == "resource-set-binding" || lowerword == "rsb") { ProcessResourceSetBindingBase(argc, argv, baseResourceSetBinding); } else if (lowerword == "shift-image-bindings" || // synonyms lowerword == "shift-image-binding" || lowerword == "sib") { ProcessBindingBase(argc, argv, glslang::EResImage); } else if (lowerword == "shift-sampler-bindings" || // synonyms lowerword == "shift-sampler-binding" || lowerword == "ssb") { ProcessBindingBase(argc, argv, glslang::EResSampler); } else if (lowerword == "shift-uav-bindings" || // synonyms lowerword == "shift-uav-binding" || lowerword == "suavb") { ProcessBindingBase(argc, argv, glslang::EResUav); } else if (lowerword == "shift-texture-bindings" || // synonyms lowerword == "shift-texture-binding" || lowerword == "stb") { ProcessBindingBase(argc, argv, glslang::EResTexture); } else if (lowerword == "shift-ubo-bindings" || // synonyms lowerword == "shift-ubo-binding" || lowerword == "shift-cbuffer-bindings" || lowerword == "shift-cbuffer-binding" || lowerword == "sub" || lowerword == "scb") { ProcessBindingBase(argc, argv, glslang::EResUbo); } else if (lowerword == "shift-ssbo-bindings" || // synonyms lowerword == "shift-ssbo-binding" || lowerword == "sbb") { ProcessBindingBase(argc, argv, glslang::EResSsbo); } else if (lowerword == "source-entrypoint" || // synonyms lowerword == "sep") { if (argc <= 1) Error("no provided", 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], "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 Error("--target-env expected one of: vulkan1.0, vulkan1.1, opengl,\n" "spirv1.0, spirv1.1, spirv1.2, spirv1.3, spirv1.4, or spirv1.5"); } 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 == "version") { Options |= EOptionDumpVersions; } 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 macro name")); 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"); break; case 'H': Options |= EOptionHumanReadableSpv; if ((Options & EOptionSpv) == 0) { // default to Vulkan setVulkanSpv(); } break; case 'I': IncludeDirectoryList.push_back(getStringOperand("-I include path")); break; case 'O': if (argv[0][2] == 'd') Options |= EOptionOptimizeDisable; else if (argv[0][2] == 's') #if ENABLE_OPT Options |= EOptionOptimizeSize; #else Error("-Os not available; optimizer not linked"); #endif else Error("unknown -O option"); break; case 'S': if (argc <= 1) Error("no specified for -S"); shaderStageName = argv[1]; bumpArg(); break; case 'U': UserPreamble.addUndef(getStringOperand("-U: macro name")); break; case 'V': setVulkanSpv(); if (argv[0][2] != 0) ClientInputSemanticsVersion = getAttachedNumber("-V client input semantics"); break; case 'c': Options |= EOptionDumpConfig; break; case 'd': if (strncmp(&argv[0][1], "dumpversion", strlen(&argv[0][1]) + 1) == 0 || strncmp(&argv[0][1], "dumpfullversion", strlen(&argv[0][1]) + 1) == 0) Options |= EOptionDumpBareVersion; else Options |= EOptionDefaultDesktop; break; case 'e': entryPointName = argv[1]; if (argc <= 1) Error("no provided for -e"); bumpArg(); break; case 'f': if (strcmp(&argv[0][2], "hlsl_functionality1") == 0) targetHlslFunctionality1 = true; else Error("-f: expected hlsl_functionality1"); break; case 'g': Options |= EOptionDebug; break; case 'h': usage(); break; case 'i': Options |= EOptionIntermediate; break; case 'l': Options |= EOptionLinkProgram; break; case 'm': Options |= EOptionMemoryLeakMode; break; case 'o': if (argc <= 1) Error("no provided for -o"); binaryFileName = argv[1]; bumpArg(); break; case 'q': Options |= EOptionDumpReflection; break; case 'r': Options |= EOptionRelaxedErrors; break; case 's': Options |= EOptionSuppressInfolog; break; case 't': Options |= EOptionMultiThreaded; break; case 'v': Options |= EOptionDumpVersions; break; case 'w': Options |= EOptionSuppressWarnings; break; case 'x': Options |= EOptionOutputHexadecimal; break; default: 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."); // 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::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); } // // 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; } }; // // For linking mode: Will independently parse each compilation unit, but then put them // in the same program and link them together, making at most one linked module per // pipeline stage. // // Uses the new C++ interface instead of the old handle-based interface. // void CompileAndLinkShaderUnits(std::vector compUnits) { // keep track of what to free std::list shaders; EShMessages messages = EShMsgDefault; SetMessageOptions(messages); // // Per-shader processing... // glslang::TProgram& program = *new glslang::TProgram; for (auto it = compUnits.cbegin(); it != compUnits.cend(); ++it) { const auto &compUnit = *it; glslang::TShader* shader = new glslang::TShader(compUnit.stage); shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, compUnit.count); if (entryPointName) shader->setEntryPoint(entryPointName); if (sourceEntryPointName) { if (entryPointName == nullptr) printf("Warning: Changing source entry point name without setting an entry-point name.\n" "Use '-e '.\n"); shader->setSourceEntryPoint(sourceEntryPointName); } if (UserPreamble.isSet()) shader->setPreamble(UserPreamble.get()); shader->addProcesses(Processes); #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 (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 shader->setNanMinMaxClamp(NaNClamp); #ifdef ENABLE_HLSL shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0); if (Options & EOptionHlslIoMapping) shader->setHlslIoMapping(true); #endif if (Options & EOptionInvertY) shader->setInvertY(true); // 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 } shaders.push_back(shader); const int defaultVersion = Options & EOptionDefaultDesktop ? 110 : 100; DirStackFileIncluder includer; std::for_each(IncludeDirectoryList.rbegin(), IncludeDirectoryList.rend(), [&includer](const std::string& dir) { includer.pushExternalLocalDirectory(dir); }); #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)) { 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 // Dump SPIR-V if (Options & EOptionSpv) { if (CompileFailed || LinkFailed) printf("SPIR-V is not generated for failed compile or link\n"); else { for (int stage = 0; stage < EShLangCount; ++stage) { if (program.getIntermediate((EShLanguage)stage)) { std::vector spirv; std::string warningsErrors; spv::SpvBuildLogger logger; glslang::SpvOptions spvOptions; if (Options & EOptionDebug) spvOptions.generateDebugInfo = true; spvOptions.disableOptimizer = (Options & EOptionOptimizeDisable) != 0; spvOptions.optimizeSize = (Options & EOptionOptimizeSize) != 0; 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)); } #ifndef GLSLANG_WEB if (!SpvToolsDisassembler && (Options & EOptionHumanReadableSpv)) spv::Disassemble(std::cout, spirv); #endif } } } } } // 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\n", glslang::GetSpirvGeneratorVersion(), GLSLANG_MINOR_VERSION, GLSLANG_PATCH_LEVEL); if (workList.empty()) return ESuccess; } else if (Options & EOptionDumpVersions) { printf("Glslang Version: %d.%d.%d\n", glslang::GetSpirvGeneratorVersion(), GLSLANG_MINOR_VERSION, GLSLANG_PATCH_LEVEL); printf("ESSL Version: %s\n", glslang::GetEsslVersionString()); printf("GLSL Version: %s\n", glslang::GetGlslVersionString()); std::string spirvVersion; glslang::GetSpirvVersion(spirvVersion); printf("SPIR-V Version %s\n", spirvVersion.c_str()); printf("GLSL.std.450 Version %d, Revision %d\n", GLSLstd450Version, GLSLstd450Revision); printf("Khronos Tool ID %d\n", glslang::GetKhronosToolId()); printf("SPIR-V Generator Version %d\n", glslang::GetSpirvGeneratorVersion()); printf("GL_KHR_vulkan_glsl version %d\n", 100); printf("ARB_GL_gl_spirv version %d\n", 100); if (workList.empty()) return ESuccess; } if (workList.empty() && ((Options & EOptionStdin) == 0)) { usage(); } if (Options & EOptionStdin) { WorkItems.push_back(std::unique_ptr{new glslang::TWorkItem("stdin")}); workList.add(WorkItems.back().get()); } ProcessConfigFile(); 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 EShLangRayGenNV; else if (stageName == "rint") return EShLangIntersectNV; else if (stageName == "rahit") return EShLangAnyHitNV; else if (stageName == "rchit") return EShLangClosestHitNV; else if (stageName == "rmiss") return EShLangMissNV; else if (stageName == "rcall") return EShLangCallableNV; 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\n" " -D define a pre-processor macro\n" " -E print pre-processed GLSL; cannot be used with -l;\n" " errors will appear on stderr\n" " -G[ver] create SPIR-V binary, under OpenGL semantics; turns on -l;\n" " default file name is .spv (-o overrides this);\n" " 'ver', when present, is the version of the input semantics,\n" " which will appear in #define GL_SPIRV ver;\n" " '--client opengl100' is the same as -G100;\n" " a '--target-env' for OpenGL will also imply '-G'\n" " -H print human readable form of SPIR-V; turns on -V\n" " -I add dir to the include search path; includer's directory\n" " is searched first, followed by left-to-right order of -I\n" " -Od disables optimization; may cause illegal SPIR-V for HLSL\n" " -Os optimizes SPIR-V to minimize size\n" " -S uses specified stage rather than parsing the file extension\n" " choices for are vert, tesc, tese, geom, frag, or comp\n" " -U undefine a pre-processor macro\n" " -V[ver] create SPIR-V binary, under Vulkan semantics; turns on -l;\n" " default file name is .spv (-o overrides this)\n" " 'ver', when present, is the version of the input semantics,\n" " which will appear in #define VULKAN ver\n" " '--client vulkan100' is the same as -V100\n" " a '--target-env' for Vulkan will also imply '-V'\n" " -c configuration dump;\n" " creates the default configuration file (redirect to a .conf file)\n" " -d default to desktop (#version 110) when there is no shader #version\n" " (default is ES version 100)\n" " -e | --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" " -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" " --client {vulkan|opengl} see -V and -G\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" " --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" " --invert-y | --iy invert position.Y output in vertex shader\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" " --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" " --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 | opengl | \n" " spirv1.0 | spirv1.1 | spirv1.2 | spirv1.3 | spirv1.4 | spirv1.5}\n" " set execution environment that emitted code\n" " will execute in (versus source language\n" " semantics selected by --client) defaults:\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" " multiple --targen-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); } glslang-8.13.3559/StandAlone/Worklist.h000066400000000000000000000054051360464450000175250ustar00rootroot00000000000000// // 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 glslang-8.13.3559/StandAlone/spirv-remap.cpp000066400000000000000000000303761360464450000205140ustar00rootroot00000000000000// // 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"); std::string errmsg; // Main operations: read, remap, and write. execute(inputFile, outputDir, opts, verbosity); // If we get here, everything went OK! Nothing more to be done. } glslang-8.13.3559/Test/000077500000000000000000000000001360464450000144215ustar00rootroot00000000000000glslang-8.13.3559/Test/100.conf000066400000000000000000000012501360464450000155660ustar00rootroot00000000000000MaxLights 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 glslang-8.13.3559/Test/100.frag000066400000000000000000000116331360464450000155660ustar00rootroot00000000000000// okay #version 100 int a[3] = { 2, 3, 4, }; // ERROR (lots) #version 100 int uint; attribute vec4 v[3]; // ERROR float f = 2; // ERROR uniform block { // ERROR int x; }; void foo(float); void main() { foo(3); // ERROR int s = 1 << 4; // ERROR s = 16 >> 2; // ERROR if (a == a); // ERROR int b, c; b = c & 4; // ERROR b = c % 4; // ERROR b = c | 4; // ERROR b >>= 2; // ERROR b <<= 2; // ERROR b %= 3; // ERROR struct S { float f; float a[10]; } s1, s2; s1 = s2; // ERROR if (s1 == s2); // ERROR if (s1 != s2); // ERROR switch(b) { // ERROR } } invariant gl_FragColor; float fa[]; // ERROR float f13; invariant f13; // ERROR struct S { int a; }; invariant S; // ERROR, not an input or output invariant float fi; // ERROR varying vec4 av; invariant av; // okay in v100 void foo10() { invariant f; // ERROR invariant float f2; // ERROR float f3; invariant f3; // ERROR } uniform vec2 uv2; invariant uv2; // ERROR invariant uniform vec3 uv3; // ERROR sampler2D glob2D; // ERROR void f11(sampler2D p2d) { sampler2D v2D; // ERROR } varying sampler2D vary2D; // ERROR struct sp { highp float f; in float g; // ERROR uniform float h; // ERROR invariant float i; // ERROR }; uniform sampler3D s3D; // ERROR #extension GL_OES_texture_3D : enable precision highp sampler3D; uniform sampler3D s3D2; void foo234() { texture3D(s3D2, vec3(0.2), 0.2); texture3DProj(s3D2, v[1], 0.4); dFdx(v[0]); // ERROR dFdy(3.2); // ERROR fwidth(f13); // ERROR } #extension GL_OES_standard_derivatives : enable void foo236() { dFdx(v[0]); dFdy(3.2); fwidth(f13); gl_FragDepth = f13; // ERROR gl_FragDepthEXT = f13; // ERROR } #extension GL_EXT_frag_depth : enable void foo239() { gl_FragDepth = f13; // ERROR gl_FragDepthEXT = f13; } #extension GL_OES_EGL_image_external : enable uniform samplerExternalOES sExt; void foo245() { texture2D(sExt, vec2(0.2)); texture2DProj(sExt, vec3(f13)); texture2DProj(sExt, v[2]); } precision mediump samplerExternalOES; uniform samplerExternalOES mediumExt; uniform highp samplerExternalOES highExt; void foo246() { texture2D(mediumExt, vec2(0.2)); texture2DProj(highExt, v[2]); texture3D(sExt, vec3(f13)); // ERROR texture2DProjLod(sExt, vec3(f13), f13); // ERROR int a; ~a; // ERROR a | a; // ERROR a & a; // ERROR } #extension GL_OES_EGL_image_external : disable uniform sampler2D s2Dg; int foo203940(int a, float b, float a) // ERROR, a redefined { texture2DProjGradEXT(s2Dg, vec3(f13), uv2, uv2); // ERROR, extension not enabled return a; } float f123 = 4.0f; // ERROR float f124 = 5e10F; // ERROR #extension GL_EXT_shader_texture_lod : enable uniform samplerCube sCube; void foo323433() { texture2DLodEXT(s2Dg, uv2, f13); texture2DProjGradEXT(s2Dg, vec3(f13), uv2, uv2); texture2DGradEXT(s2Dg, uv2, uv2, uv2); textureCubeGradEXT(sCube, vec3(f13), vec3(f13), vec3(f13)); } int fgfg(float f, mediump int i); int fgfg(float f, highp int i) { return 2; } // ERROR, precision qualifier difference int fffg(float f); int fffg(float f); // ERROR, can't have multiple prototypes int gggf(float f); int gggf(float f) { return 2; } int agggf(float f) { return 2; } int agggf(float f); int agggf(float f); // ERROR, second prototype varying struct SSS { float f; } s; // ERROR int vf(void); int vf2(); int vf3(void v); // ERROR int vf4(int, void); // ERROR int vf5(int, void v); // ERROR void badswizzle() { vec3 a[5]; a.y; // ERROR, no array swizzle a.zy; // ERROR, no array swizzle a.nothing; // ERROR a.length(); // ERROR, not this version a.method(); // ERROR } float fooinit(); float fooinittest() { return fooinit(); } // Test extra-function initializers const float fi1 = 3.0; const float fi2 = 4.0; const float fi3 = 5.0; float fooinit() { return fi1 + fi2 + fi3; // should make a constant of 12.0 } int init1 = gl_FrontFacing ? 1 : 2; // ERROR, non-const initializer #ifdef GL_EXT_shader_non_constant_global_initializers #extension GL_EXT_shader_non_constant_global_initializers : enable #endif int init2 = gl_FrontFacing ? 1 : 2; #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 glslang-8.13.3559/Test/100Limits.vert000066400000000000000000000036651360464450000170170ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/100samplerExternal.frag000066400000000000000000000024061360464450000206530ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/100scope.vert000066400000000000000000000030241360464450000166540ustar00rootroot00000000000000#version 100 int f(int a, int b, int c) { int a = b; // ERROR, redefinition { float a = float(a) + 1.0; } return a; } int f(int a, int b, int c); // okay to redeclare bool b; float b(int a); // ERROR: redefinition float c(int a); bool c; // ERROR: redefinition float f; // ERROR: redefinition float tan; // okay, built-in is in an outer scope float sin(float x); // ERROR: can't redefine built-in functions float cos(float x) // ERROR: can't redefine built-in functions { return 1.0; } bool radians(bool x) // okay, can overload built-in functions { return true; } invariant gl_Position; void main() { int g(); // ERROR: no local function declarations g(); float sin; // okay sin; sin(0.7); // ERROR, use of hidden function f(1,2,3); float f; // hides f() f = 3.0; gl_Position = vec4(f); for (int f = 0; f < 10; ++f) ++f; int x = 1; { float x = 2.0, /* 2nd x visible here */ y = x; // y is initialized to 2 int z = z; // ERROR: z not previously defined. } { int x = x; // x is initialized to '1' } struct S { int x; }; { S S = S(0); // 'S' is only visible as a struct and constructor S.x; // 'S' is now visible as a variable } int degrees; degrees(3.2); // ERROR, use of hidden built-in function } varying struct SSS { float f; } s; // ERROR glslang-8.13.3559/Test/110scope.vert000066400000000000000000000032751360464450000166650ustar00rootroot00000000000000#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; }; } } glslang-8.13.3559/Test/120.frag000066400000000000000000000121011360464450000155570ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/120.vert000066400000000000000000000107721360464450000156340ustar00rootroot00000000000000#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; };glslang-8.13.3559/Test/130.frag000066400000000000000000000110021360464450000155570ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/130.vert000066400000000000000000000026011360464450000156250ustar00rootroot00000000000000#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); glslang-8.13.3559/Test/140.frag000066400000000000000000000016321360464450000155700ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/140.vert000066400000000000000000000040331360464450000156270ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/150.frag000066400000000000000000000025531360464450000155740ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/150.geom000066400000000000000000000100161360464450000155750ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/150.tesc000066400000000000000000000015561360464450000156150ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/150.tese000066400000000000000000000016261360464450000156150ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/150.vert000066400000000000000000000007261360464450000156350ustar00rootroot00000000000000#version 150 core #ifndef GL_core_profile # error standard macro GL_core_profile not defined #endif in vec4 iv4; uniform float ps; invariant gl_Position; void main() { gl_Position = iv4; gl_PointSize = ps; gl_ClipDistance[2] = iv4.x; gl_ClipVertex = iv4; } out float gl_ClipDistance[4]; uniform foob { int a[]; }; int a[5]; // ERROR, resizing user-block member #line 3000 #error line of this error should be 3001 glslang-8.13.3559/Test/300.frag000066400000000000000000000102241360464450000155630ustar00rootroot00000000000000#version 300 es void nodef1(float f); // ERROR, no default precision uniform sampler2D s2D; uniform lowp sampler3D s3D; uniform samplerCube sCube; uniform lowp samplerCubeShadow sCubeShadow; uniform lowp sampler2DShadow s2DShadow; uniform lowp sampler2DArray s2DArray; uniform lowp sampler2DArrayShadow s2DArrayShadow; uniform lowp isampler2D is2D; uniform lowp isampler3D is3D; uniform lowp isamplerCube isCube; uniform lowp isampler2DArray is2DArray; uniform lowp usampler2D us2D; uniform lowp usampler3D us3D; uniform lowp usamplerCube usCube; uniform lowp usampler2DArray us2DArray; precision lowp float; in float c1D; in vec2 c2D; in vec3 c3D; smooth vec4 c4D; flat in int ic1D; flat in ivec2 ic2D; flat in ivec3 ic3D; flat in ivec4 ic4D; noperspective in vec4 badv; // ERROR in sampler2D bads; // ERROR precision lowp uint; // ERROR struct s { int i; sampler2D s; }; in s badout; // ERROR, can't contain a sampler // ERROR, can't have int in struct without flat struct S2 { vec3 c; float f; }; in S2 s2; out vec3 sc; out float sf; uniform sampler2D arrayedSampler[5]; void main() { float f; vec4 v; v = texture(s2D, c2D); v = textureProj(s3D, c4D); v = textureLod(s2DArray, c3D, 1.2); f = textureOffset(s2DShadow, c3D, ic2D, c1D); // ERROR, offset argument not constant v = texelFetch(s3D, ic3D, ic1D); v = texelFetchOffset(arrayedSampler[2], ic2D, 4, ic2D); // ERROR, offset argument not constant f = textureLodOffset(s2DShadow, c3D, c1D, ic2D); v = textureProjLodOffset(s2D, c3D, c1D, ic2D); v = textureGrad(sCube, c3D, c3D, c3D); f = textureGradOffset(s2DArrayShadow, c4D, c2D, c2D, ic2D); v = textureProjGrad(s3D, c4D, c3D, c3D); v = textureProjGradOffset(s2D, c3D, c2D, c2D, ic2D); v = texture(arrayedSampler[ic1D], c2D); // ERROR ivec4 iv; iv = texture(is2D, c2D); iv = textureProjOffset(is2D, c4D, ic2D); iv = textureProjLod(is2D, c3D, c1D); iv = textureProjGrad(is2D, c3D, c2D, c2D); iv = texture(is3D, c3D, 4.2); iv = textureLod(isCube, c3D, c1D); iv = texelFetch(is2DArray, ic3D, ic1D); iv.xy = textureSize(sCubeShadow, 2); float precise; double boo; // ERROR dvec2 boo2; // ERROR dvec3 boo3; // ERROR dvec4 boo4; // ERROR f += gl_FragCoord.y; gl_FragDepth = f; sc = s2.c; sf = s2.f; sinh(c1D) + cosh(c1D) * tanh(c2D); asinh(c4D) + acosh(c4D); atanh(c3D); } uniform multi { int[2] a[3]; // ERROR int[2][3] b; // ERROR int c[2][3]; // ERROR } multiInst[2][3]; // ERROR out vec4 colors[4]; void foo() { colors[2] = c4D; colors[ic1D] = c4D; // ERROR } uniform s st1; uniform s st2; void foo13(s inSt2) { if (st1 == st2); // ERROR if (st1 != st2); // ERROR st1.s == st2.s; // ERROR inSt2 = st1; // ERROR inSt2 == st1; // ERROR } void foo23() { textureOffset(s2DShadow, c3D, ivec2(-8, 7), c1D); textureOffset(s2DShadow, c3D, ivec2(-9, 8), c1D); } void foo324(void) { float p = pow(3.2, 4.6); p += sin(0.4); p += distance(vec2(10.0, 11.0), vec2(13.0, 15.0)); // 5 p += dot(vec3(2,3,5), vec3(-2,-1,4)); // 13 vec3 c3 = cross(vec3(3,-3,1), vec3(4,9,2)); // (-15, -2, 39) c3 += faceforward(vec3(1,2,3), vec3(2,3,5), vec3(-2,-1,4)); // (-1,-2,-3) c3 += faceforward(vec3(1,2,3), vec3(-2,-3,-5), vec3(-2,-1,4)); // (1,2,3) vec2 c2 = reflect(vec2(1,3), vec2(0,1)); // (1,-3) c2 += refract(vec2(1,3), vec2(0,1), 1.0); // (1,-3) c2 += refract(vec2(1,3), vec2(0,1), 3.0); c2 += refract(vec2(1,0.1), vec2(0,1), 5.0); // (0,0) mat3x2 m32 = outerProduct(vec2(2,3), vec3(5,7,11));// rows: (10, 14, 22), (15, 21, 33) } uniform mediump; // ERROR layout(early_fragment_tests) in; // ERROR #ifndef GL_FRAGMENT_PRECISION_HIGH #error missing GL_FRAGMENT_PRECISION_HIGH #endif invariant in; // ERROR invariant in vec4; // ERROR invariant in vec4 fooinv; // ERROR float imageBuffer; // ERROR, reserved float uimage2DRect; // ERROR, reserved glslang-8.13.3559/Test/300.vert000066400000000000000000000111721360464450000156270ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/300BuiltIns.frag000066400000000000000000000030351360464450000172370ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/300block.frag000066400000000000000000000020161360464450000165760ustar00rootroot00000000000000#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. glslang-8.13.3559/Test/300layout.frag000066400000000000000000000007451360464450000170300ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/300layout.vert000066400000000000000000000027741360464450000170750ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/300link.frag000066400000000000000000000001431360464450000164400ustar00rootroot00000000000000#version 300 es precision highp float; out vec4 color1; out vec4 color2; void main() {} glslang-8.13.3559/Test/300link2.frag000066400000000000000000000002711360464450000165240ustar00rootroot00000000000000#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() { } glslang-8.13.3559/Test/300link3.frag000066400000000000000000000001211360464450000165170ustar00rootroot00000000000000#version 300 es precision highp float; out vec4 color1; void main() {} glslang-8.13.3559/Test/300operations.frag000066400000000000000000000030101360464450000176620ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/300samplerExternal.frag000066400000000000000000000023531360464450000206560ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/300samplerExternalYUV.frag000066400000000000000000000021451360464450000212610ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/300scope.vert000066400000000000000000000026401360464450000166610ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/310.comp000066400000000000000000000161661360464450000156160ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/310.frag000077500000000000000000000361621360464450000156000ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/310.geom000066400000000000000000000103761360464450000156040ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/310.inheritMemory.frag000066400000000000000000000016011360464450000204150ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/310.tesc000066400000000000000000000106471360464450000156140ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/310.tese000066400000000000000000000064561360464450000156210ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/310.vert000066400000000000000000000307131360464450000156320ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/310AofA.vert000066400000000000000000000055211360464450000163600ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/310implicitSizeArrayError.vert000066400000000000000000000002301360464450000222200ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/310runtimeArray.vert000066400000000000000000000004721360464450000202340ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/320.comp000066400000000000000000000003321360464450000156030ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/320.frag000066400000000000000000000165231360464450000155750ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/320.geom000066400000000000000000000076131360464450000156050ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/320.tesc000066400000000000000000000100301360464450000155770ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/320.tese000066400000000000000000000055511360464450000156150ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/320.vert000066400000000000000000000202441360464450000156310ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/330.frag000066400000000000000000000101341360464450000155660ustar00rootroot00000000000000#version 330 compatibility in vec4 inVar; layout(location=0, index=0) out vec4 outVar; varying vec4 varyingVar; void main() { gl_FragColor = varyingVar; // link ERROR: user output was used gl_FragData[1] = inVar; // link ERROR: user output was used int buffer = 4; } #extension GL_ARB_separate_shader_objects : enable in gl_PerFragment { vec4 gl_Color; }; void foo() { vec4 c = gl_Color; outVar = inVar; } in gl_block { // ERROR int gl_i; } gl_name; in myBlock { int gl_i; // ERROR } gl_name; // ERROR in gl_PerVertex { // ERROR vec4 gl_FragCoord; } gl_in[]; in gl_PerVertex { // ERROR vec4 gl_FragCoord; }; // ERROR const int start = 6; layout(location = -2) in vec4 v1; // ERROR layout(location = start + 2) in vec4 v2; // ERROR layout(location = 4.7e10) in vec4 v20; // ERROR layout(location = +60) in float v21; // ERROR layout(location = (2)) in float v22; // ERROR struct S { float f1; layout(location = 3) float f2; // ERROR }; layout(location = 1) in inblock { // ERROR float f1; layout(location = 3) float f2; // ERROR }; layout(location = 1) uniform ublock { // ERROR float f1; layout(location = 3) float f2; // ERROR } uinst; #extension GL_ARB_enhanced_layouts : enable layout(location = start) in vec4 v3; layout(location = -2) in vec4 v4; // ERROR layout(location = -start) in vec4 v5; // ERROR layout(location = start*start - 2 - 4) in vec4 v6; layout(location = +61) in float v23; layout(location = (62)) in float v24; struct S2 { float f1; layout(location = 3) float f2; // ERROR }; layout(location = 28) in inblock2 { bool b1; float f1; layout(location = 25) float f2; vec4 f3; layout(location = 21) S2 s2; vec4 f4; vec4 f5; } ininst2; layout(location = 13) uniform ublock2 { // ERROR float f1; layout(location = 3) float f2; // ERROR } uinst2; in inblock3 { // ERROR, mix of location internal with no location external float f1; layout(location = 40) float f2; } in3; in ublock4 { layout(location = 50) float f1; layout(location = 51) float f2; } in4; layout(location = 33) in struct SS { vec3 a; // gets location 33 mat2 b; // gets locations 34 and 35 vec4 c[2]; // gets locations 36 and 37 layout (location = 38) vec2 A; // ERROR, can't use on struct member } s; layout(location = 44) in block { vec4 d; // gets location 44 vec4 e; // gets location 45 layout(location = 47) vec4 f; // gets location 47 vec4 g; // gets location 48 layout (location = 41) vec4 h; // gets location 41 vec4 i; // gets location 42 vec4 j; // gets location 43 vec4 k; // ERROR, location 44 already used }; layout(index=0) out vec4 outVar2; // ERROR: missing explicit location layout(location=0, index=1) out vec4 outVar3; // no error even though location is overlapping layout(location=0, index=1) out vec4 outVar4; // ERROR overlapping layout(location=27, index=0) in vec4 indexIn; // ERROR, not on in layout(location=0, index=0) in; // ERROR, not just on in layout(location=0, index=0) out; // ERROR, need a variable layout(location=26, index=0) out indexBlock { int a; } indexBlockI; // ERROR, not on a block uniform sampler1D samp1D; uniform sampler2DShadow samp2Ds; void qlod() { vec2 lod; float pf; vec2 pf2; vec3 pf3; lod = textureQueryLod(samp1D, pf); // ERROR, not until 400 lod = textureQueryLod(samp2Ds, pf2); // ERROR, not until 400 } int precise; // okay, not a keyword yet struct SKeyMem { int precise; } KeyMem; // okay, not a keyword yet void fooKeyMem() { KeyMem.precise; } layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range 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; glslang-8.13.3559/Test/330comp.frag000066400000000000000000000002671360464450000164530ustar00rootroot00000000000000#version 330 compatibility in vec4 inVar; out vec4 outVar; varying vec4 varyingVar; void main() { gl_FragColor = varyingVar; gl_FragData[1] = inVar * gl_ModelViewMatrix; } glslang-8.13.3559/Test/400.frag000066400000000000000000000132201360464450000155630ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/400.geom000066400000000000000000000225671360464450000156110ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/400.tesc000066400000000000000000000052501360464450000156060ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/400.tese000066400000000000000000000055571360464450000156220ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/400.vert000066400000000000000000000032351360464450000156310ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/410.geom000066400000000000000000000015251360464450000156010ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/410.tesc000066400000000000000000000002211360464450000156000ustar00rootroot00000000000000#version 400 core // no layout(vertices = ...) out; int outa[gl_out.length()]; // ERROR patch out vec4 patchOut; void main() { } glslang-8.13.3559/Test/410.vert000066400000000000000000000001141360464450000156230ustar00rootroot00000000000000#version 410 core in double d; in dvec3 d3; in dmat4 dm4; void main() { } glslang-8.13.3559/Test/420.comp000066400000000000000000000016441360464450000156130ustar00rootroot00000000000000#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(); }glslang-8.13.3559/Test/420.frag000066400000000000000000000006131360464450000155670ustar00rootroot00000000000000#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[]; glslang-8.13.3559/Test/420.geom000066400000000000000000000017611360464450000156040ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/420.tesc000066400000000000000000000021151360464450000156050ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/420.tese000066400000000000000000000041371360464450000156150ustar00rootroot00000000000000#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) ; } glslang-8.13.3559/Test/420.vert000066400000000000000000000113741360464450000156360ustar00rootroot00000000000000#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[]; glslang-8.13.3559/Test/420_size_gl_in.geom000066400000000000000000000006431360464450000200040ustar00rootroot00000000000000#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[]; glslang-8.13.3559/Test/430.comp000066400000000000000000000042031360464450000156060ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/430.vert000066400000000000000000000146351360464450000156420ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/430AofA.frag000066400000000000000000000071041360464450000163210ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/430scope.vert000066400000000000000000000026001360464450000166610ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/435.vert000066400000000000000000000000341360464450000156330ustar00rootroot00000000000000#version 435 void main() {}glslang-8.13.3559/Test/440.frag000066400000000000000000000122511360464450000155720ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/440.vert000066400000000000000000000166611360464450000156440ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/450.comp000066400000000000000000000002221360464450000156050ustar00rootroot00000000000000#version 450 core layout(local_size_x = 0) in; // ERROR, 0 not allowed void main() { shared float f; // ERROR shared must be global } glslang-8.13.3559/Test/450.frag000066400000000000000000000033241360464450000155740ustar00rootroot00000000000000#version 450 core in float in1; in vec2 in2; in vec3 in3; in vec4 in4; void main() { vec2 v2 = dFdxFine(in2); vec3 v3 = dFdyCoarse(in3); vec4 v4 = fwidth(in4); v4 = dFdyFine(in4); v3 = dFdyFine(in3); float f = dFdx(in1) + dFdxFine(in1) + dFdxCoarse(in1); v4 = fwidthCoarse(in4) + fwidthFine(in4); float cull = gl_CullDistance[2]; float consts = gl_MaxCullDistances + gl_MaxCombinedClipAndCullDistances + gl_MaxSamples; if (gl_HelperInvocation) ++v4; int sum = gl_MaxVertexImageUniforms + gl_MaxFragmentImageUniforms + gl_MaxComputeImageUniforms + gl_MaxCombinedImageUniforms + gl_MaxCombinedShaderOutputResources; bool b1, b3, b; uint uin; bvec2 b2 = mix(bvec2(b1), bvec2(b3), bvec2(b)); uint um = mix(uin, uin, b); ivec3 im3 = mix(ivec3(uin), ivec3(uin), bvec3(b)); } uniform sampler2DMS s2dms; uniform usampler2DMSArray us2dmsa; layout(rgba32i) uniform iimage2DMS ii2dms; layout(rgba32f) uniform image2DMSArray i2dmsa; void foo() { int s = textureSamples(s2dms); s += textureSamples(us2dmsa); s += imageSamples(ii2dms); s += imageSamples(i2dmsa); float f = imageAtomicExchange(i2dmsa, ivec3(in3), 2, 4.5); } in float gl_CullDistance[6]; float cull(int i) { return (i >= 6) ? gl_CullDistance[5] : gl_CullDistance[i]; } layout(location = 6) in bName1 { float f; layout(location = 7) float g; mat4 m; } bInst1; layout(location = 12) in bName2 { float f; layout(location = 13) float g; // ERROR, location on array } bInst2[3]; layout(early_fragment_tests) in float f; // ERROR, must be standalone glslang-8.13.3559/Test/450.geom000066400000000000000000000005421360464450000156030ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/450.tesc000066400000000000000000000007631360464450000156170ustar00rootroot00000000000000#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]; glslang-8.13.3559/Test/450.tese000066400000000000000000000013011360464450000156060ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/450.vert000066400000000000000000000027701360464450000156410ustar00rootroot00000000000000#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; }; glslang-8.13.3559/Test/460.frag000066400000000000000000000011701360464450000155720ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/460.vert000066400000000000000000000003201360464450000156270ustar00rootroot00000000000000#version 460 core int i; ; // extraneous semicolon okay float f;;; void main() { bool b1; b1 = anyInvocation(b1); b1 = allInvocations(b1); b1 = allInvocationsEqual(b1); } ; ; glslang-8.13.3559/Test/Operations.frag000066400000000000000000000056661360464450000174220ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/aggOps.frag000066400000000000000000000014211360464450000165000ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/always-discard.frag000066400000000000000000000012301360464450000201650ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/always-discard2.frag000066400000000000000000000004651360464450000202600ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/array.frag000066400000000000000000000041171360464450000164030ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/array100.frag000066400000000000000000000017451360464450000166300ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/atomic_uint.frag000066400000000000000000000027351360464450000176040ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/badChars.frag000066400000000000000000000000661360464450000167730ustar00rootroot00000000000000#ifþ #endif #error AÿB #if #endif int aÿ #define A "ÿglslang-8.13.3559/Test/badMacroArgs.frag000066400000000000000000000000431360464450000176040ustar00rootroot00000000000000#version 400 #define m(a) a m()glslang-8.13.3559/Test/bar.h000066400000000000000000000000131360464450000153300ustar00rootroot00000000000000float4 i1; glslang-8.13.3559/Test/baseLegalResults/000077500000000000000000000000001360464450000176625ustar00rootroot00000000000000glslang-8.13.3559/Test/baseLegalResults/hlsl.aliasOpaque.frag.out000066400000000000000000000044771360464450000245520ustar00rootroot00000000000000hlsl.aliasOpaque.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 87 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 62 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 47 "gss" Name 51 "gtex" Name 62 "@entryPointOutput" Decorate 47(gss) DescriptorSet 0 Decorate 47(gss) Binding 0 Decorate 51(gtex) DescriptorSet 0 Decorate 51(gtex) Binding 0 Decorate 62(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler 7: TypeFloat 32 8: TypeImage 7(float) 2D sampled format:Unknown 11: TypeVector 7(float) 4 32: TypeSampledImage 8 34: TypeVector 7(float) 2 35: 7(float) Constant 1045220557 36: 7(float) Constant 1050253722 37: 34(fvec2) ConstantComposite 35 36 43: TypePointer UniformConstant 6 47(gss): 43(ptr) Variable UniformConstant 50: TypePointer UniformConstant 8 51(gtex): 50(ptr) Variable UniformConstant 54: 7(float) Constant 1077936128 61: TypePointer Output 11(fvec4) 62(@entryPointOutput): 61(ptr) Variable Output 4(main): 2 Function None 3 5: Label 70: 6 Load 47(gss) 72: 8 Load 51(gtex) 84: 32 SampledImage 72 70 85: 11(fvec4) ImageSampleImplicitLod 84 37 86: 11(fvec4) VectorTimesScalar 85 54 Store 62(@entryPointOutput) 86 Return FunctionEnd glslang-8.13.3559/Test/baseLegalResults/hlsl.flattenOpaque.frag.out000066400000000000000000000066261360464450000251140ustar00rootroot00000000000000hlsl.flattenOpaque.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 185 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 120 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 38 "tex" Name 82 "s.s2D" Name 97 "s2.s2D" Name 100 "s2.tex" Name 120 "@entryPointOutput" Decorate 38(tex) DescriptorSet 0 Decorate 38(tex) Binding 0 Decorate 82(s.s2D) DescriptorSet 0 Decorate 82(s.s2D) Binding 0 Decorate 97(s2.s2D) DescriptorSet 0 Decorate 97(s2.s2D) Binding 0 Decorate 100(s2.tex) DescriptorSet 0 Decorate 100(s2.tex) Binding 0 Decorate 120(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler 9: TypeFloat 32 10: TypeVector 9(float) 4 15: TypeVector 9(float) 2 22: TypeImage 9(float) 2D sampled format:Unknown 37: TypePointer UniformConstant 22 38(tex): 37(ptr) Variable UniformConstant 45: TypeSampledImage 22 47: 9(float) Constant 1045220557 48: 9(float) Constant 1050253722 49: 15(fvec2) ConstantComposite 47 48 81: TypePointer UniformConstant 6 82(s.s2D): 81(ptr) Variable UniformConstant 97(s2.s2D): 81(ptr) Variable UniformConstant 100(s2.tex): 37(ptr) Variable UniformConstant 119: TypePointer Output 10(fvec4) 120(@entryPointOutput): 119(ptr) Variable Output 4(main): 2 Function None 3 5: Label 134: 6 Load 82(s.s2D) 158: 22 Load 38(tex) 161: 45 SampledImage 158 134 162: 10(fvec4) ImageSampleImplicitLod 161 49 138: 6 Load 82(s.s2D) 164: 22 Load 38(tex) 167: 45 SampledImage 164 138 169: 10(fvec4) ImageSampleImplicitLod 167 49 142: 10(fvec4) FAdd 162 169 143: 6 Load 97(s2.s2D) 145: 22 Load 100(s2.tex) 175: 45 SampledImage 145 143 176: 10(fvec4) ImageSampleImplicitLod 175 49 149: 10(fvec4) FAdd 142 176 150: 6 Load 97(s2.s2D) 152: 22 Load 100(s2.tex) 182: 45 SampledImage 152 150 184: 10(fvec4) ImageSampleImplicitLod 182 49 156: 10(fvec4) FAdd 149 184 Store 120(@entryPointOutput) 156 Return FunctionEnd glslang-8.13.3559/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out000066400000000000000000000054171360464450000257760ustar00rootroot00000000000000hlsl.flattenOpaqueInit.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 134 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 80 Source HLSL 500 Name 4 "main" Name 43 "g_tInputTexture_sampler" Name 47 "g_tInputTexture" Name 80 "@entryPointOutput" Decorate 43(g_tInputTexture_sampler) DescriptorSet 0 Decorate 43(g_tInputTexture_sampler) Binding 0 Decorate 47(g_tInputTexture) DescriptorSet 0 Decorate 47(g_tInputTexture) Binding 0 Decorate 80(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler 7: TypeFloat 32 8: TypeImage 7(float) 2D sampled format:Unknown 11: TypeVector 7(float) 4 31: TypeSampledImage 8 33: TypeVector 7(float) 2 34: 7(float) Constant 1050253722 35: 7(float) Constant 1053609165 36: 33(fvec2) ConstantComposite 34 35 37: 7(float) Constant 0 42: TypePointer UniformConstant 6 43(g_tInputTexture_sampler): 42(ptr) Variable UniformConstant 46: TypePointer UniformConstant 8 47(g_tInputTexture): 46(ptr) Variable UniformConstant 79: TypePointer Output 11(fvec4) 80(@entryPointOutput): 79(ptr) Variable Output 4(main): 2 Function None 3 5: Label 90: 6 Load 43(g_tInputTexture_sampler) 91: 8 Load 47(g_tInputTexture) 111: 31 SampledImage 91 90 112: 11(fvec4) ImageSampleExplicitLod 111 36 Lod 37 115: 6 Load 43(g_tInputTexture_sampler) 117: 8 Load 47(g_tInputTexture) 125: 31 SampledImage 117 115 126: 11(fvec4) ImageSampleExplicitLod 125 36 Lod 37 99: 11(fvec4) FAdd 112 126 132: 31 SampledImage 91 90 133: 11(fvec4) ImageSampleExplicitLod 132 36 Lod 37 104: 11(fvec4) FAdd 99 133 Store 80(@entryPointOutput) 104 Return FunctionEnd glslang-8.13.3559/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out000066400000000000000000000044501360464450000264500ustar00rootroot00000000000000hlsl.flattenOpaqueInitMix.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 97 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 57 Source HLSL 500 Name 4 "main" Name 44 "g_tInputTexture_sampler" Name 47 "g_tInputTexture" Name 57 "@entryPointOutput" Decorate 44(g_tInputTexture_sampler) DescriptorSet 0 Decorate 44(g_tInputTexture_sampler) Binding 0 Decorate 47(g_tInputTexture) DescriptorSet 0 Decorate 47(g_tInputTexture) Binding 0 Decorate 57(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler 7: TypeFloat 32 8: TypeImage 7(float) 2D sampled format:Unknown 11: TypeVector 7(float) 4 28: TypeSampledImage 8 36: TypeVector 7(float) 2 38: 7(float) Constant 0 43: TypePointer UniformConstant 6 44(g_tInputTexture_sampler): 43(ptr) Variable UniformConstant 46: TypePointer UniformConstant 8 47(g_tInputTexture): 46(ptr) Variable UniformConstant 49: 7(float) Constant 1056964608 56: TypePointer Output 11(fvec4) 57(@entryPointOutput): 56(ptr) Variable Output 96: 36(fvec2) ConstantComposite 49 49 4(main): 2 Function None 3 5: Label 63: 6 Load 44(g_tInputTexture_sampler) 64: 8 Load 47(g_tInputTexture) 73: 28 SampledImage 64 63 79: 11(fvec4) ImageSampleExplicitLod 73 96 Lod 38 Store 57(@entryPointOutput) 79 Return FunctionEnd glslang-8.13.3559/Test/baseLegalResults/hlsl.flattenSubset.frag.out000066400000000000000000000045731360464450000251260ustar00rootroot00000000000000hlsl.flattenSubset.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 66 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 47 50 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 21 "samp" Name 33 "tex" Name 47 "vpos" Name 50 "@entryPointOutput" Decorate 21(samp) DescriptorSet 0 Decorate 21(samp) Binding 0 Decorate 33(tex) DescriptorSet 0 Decorate 33(tex) Binding 0 Decorate 47(vpos) Location 0 Decorate 50(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 13: TypeSampler 20: TypePointer UniformConstant 13 21(samp): 20(ptr) Variable UniformConstant 31: TypeImage 6(float) 2D sampled format:Unknown 32: TypePointer UniformConstant 31 33(tex): 32(ptr) Variable UniformConstant 37: TypeSampledImage 31 39: TypeVector 6(float) 2 40: 6(float) Constant 1056964608 41: 39(fvec2) ConstantComposite 40 40 46: TypePointer Input 7(fvec4) 47(vpos): 46(ptr) Variable Input 49: TypePointer Output 7(fvec4) 50(@entryPointOutput): 49(ptr) Variable Output 4(main): 2 Function None 3 5: Label 57: 13 Load 21(samp) 61: 31 Load 33(tex) 64: 37 SampledImage 61 57 65: 7(fvec4) ImageSampleImplicitLod 64 41 Store 50(@entryPointOutput) 65 Return FunctionEnd glslang-8.13.3559/Test/baseLegalResults/hlsl.flattenSubset2.frag.out000066400000000000000000000026461360464450000252070ustar00rootroot00000000000000hlsl.flattenSubset2.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 53 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 49 52 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 49 "vpos" Name 52 "@entryPointOutput" Decorate 49(vpos) Location 0 Decorate 52(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 43: 6(float) Constant 0 44: 7(fvec4) ConstantComposite 43 43 43 43 48: TypePointer Input 7(fvec4) 49(vpos): 48(ptr) Variable Input 51: TypePointer Output 7(fvec4) 52(@entryPointOutput): 51(ptr) Variable Output 4(main): 2 Function None 3 5: Label Store 52(@entryPointOutput) 44 Return FunctionEnd glslang-8.13.3559/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out000066400000000000000000000073741360464450000262730ustar00rootroot00000000000000hlsl.partialFlattenLocal.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 158 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 83 86 Source HLSL 500 Name 4 "main" Name 83 "pos" Name 86 "@entryPointOutput" Decorate 83(pos) Location 0 Decorate 86(@entryPointOutput) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 14: TypeVector 6(float) 3 15: TypeInt 32 0 16: 15(int) Constant 3 17: TypeArray 14(fvec3) 16 18: TypeVector 6(float) 2 19: 15(int) Constant 2 20: TypeArray 18(fvec2) 19 21: TypeInt 32 1 25: 21(int) Constant 0 31: 21(int) Constant 1 32: 6(float) Constant 0 33: 14(fvec3) ConstantComposite 32 32 32 34: TypePointer Function 14(fvec3) 37: 6(float) Constant 1065353216 38: 18(fvec2) ConstantComposite 32 37 39: TypePointer Function 18(fvec2) 54: TypeBool 82: TypePointer Input 7(fvec4) 83(pos): 82(ptr) Variable Input 85: TypePointer Output 7(fvec4) 86(@entryPointOutput): 85(ptr) Variable Output 130: TypePointer Function 17 132: TypePointer Function 20 4(main): 2 Function None 3 5: Label 133: 132(ptr) Variable Function 131: 130(ptr) Variable Function 84: 7(fvec4) Load 83(pos) 136: 34(ptr) AccessChain 131 25 Store 136 33 137: 39(ptr) AccessChain 133 25 Store 137 38 Branch 100 100: Label 157: 21(int) Phi 25 5 119 106 105: 54(bool) SLessThan 157 31 LoopMerge 101 106 None BranchConditional 105 106 101 106: Label 138: 39(ptr) AccessChain 133 157 110: 18(fvec2) Load 138 139: 34(ptr) AccessChain 131 157 112: 14(fvec3) Load 139 113: 18(fvec2) VectorShuffle 112 112 0 1 114: 18(fvec2) FAdd 113 110 140: 34(ptr) AccessChain 131 157 116: 14(fvec3) Load 140 117: 14(fvec3) VectorShuffle 116 114 3 4 2 Store 140 117 119: 21(int) IAdd 157 31 Branch 100 101: Label 142: 17 Load 131 156: 14(fvec3) CompositeExtract 142 0 124: 6(float) CompositeExtract 156 0 125: 6(float) CompositeExtract 156 1 126: 6(float) CompositeExtract 156 2 127: 7(fvec4) CompositeConstruct 124 125 126 32 128: 7(fvec4) FAdd 84 127 Store 86(@entryPointOutput) 128 Return FunctionEnd glslang-8.13.3559/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out000066400000000000000000000024651360464450000263030ustar00rootroot00000000000000hlsl.partialFlattenMixed.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/000077500000000000000000000000001360464450000167155ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/100.frag.out000066400000000000000000000655271360464450000207030ustar00rootroot00000000000000100.frag ERROR: 0:3: '{ } style initializers' : not supported with this profile: es ERROR: 0:3: 'initializer' : not supported for this version or the enabled extensions ERROR: 0:3: 'array initializer' : not supported for this version or the enabled extensions ERROR: 0:4: '#version' : must occur first in shader ERROR: 0:7: 'attribute' : not supported in this stage: fragment ERROR: 0:7: 'float' : type requires declaration of default precision qualifier ERROR: 0:9: '=' : cannot convert from ' const int' to ' global mediump float' ERROR: 0:11: 'uniform block' : not supported for this version or the enabled extensions ERROR: 0:19: 'foo' : no matching overloaded function found ERROR: 0:20: 'bit shift left' : not supported for this version or the enabled extensions ERROR: 0:21: 'bit shift right' : not supported for this version or the enabled extensions ERROR: 0:22: 'array comparison' : not supported for this version or the enabled extensions ERROR: 0:24: 'bitwise and' : not supported for this version or the enabled extensions ERROR: 0:25: '%' : not supported for this version or the enabled extensions ERROR: 0:26: 'bitwise inclusive or' : not supported for this version or the enabled extensions ERROR: 0:27: 'bit-shift right assign' : not supported for this version or the enabled extensions ERROR: 0:28: 'bit-shift left assign' : not supported for this version or the enabled extensions ERROR: 0:29: '%=' : not supported for this version or the enabled extensions ERROR: 0:36: 'array assignment' : not supported for this version or the enabled extensions ERROR: 0:37: 'array comparison' : not supported for this version or the enabled extensions ERROR: 0:38: 'array comparison' : not supported for this version or the enabled extensions ERROR: 0:40: 'switch' : Reserved word. ERROR: 0:40: 'switch statements' : not supported for this version or the enabled extensions ERROR: 0:45: '' : array size required ERROR: 0:47: 'invariant' : can only apply to an output, or to an input in a non-vertex stage ERROR: 0:49: 'invariant' : can only apply to an output, or to an input in a non-vertex stage ERROR: 0:50: 'invariant' : can only apply to an output, or to an input in a non-vertex stage ERROR: 0:56: 'invariant' : not allowed in nested scope ERROR: 0:56: 'invariant' : can only apply to an output, or to an input in a non-vertex stage ERROR: 0:57: 'invariant' : not allowed in nested scope ERROR: 0:57: 'invariant' : can only apply to an output, or to an input in a non-vertex stage ERROR: 0:59: 'invariant' : not allowed in nested scope ERROR: 0:59: 'invariant' : can only apply to an output, or to an input in a non-vertex stage ERROR: 0:63: 'invariant' : can only apply to an output, or to an input in a non-vertex stage ERROR: 0:64: 'invariant' : can only apply to an output, or to an input in a non-vertex stage ERROR: 0:66: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: glob2D ERROR: 0:69: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: v2D ERROR: 0:71: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: vary2D ERROR: 0:75: 'in for stage inputs' : not supported for this version or the enabled extensions ERROR: 0:77: 'invariant' : can only apply to an output, or to an input in a non-vertex stage ERROR: 0:75: 'g' : cannot use storage or interpolation qualifiers on structure members ERROR: 0:76: 'h' : cannot use storage or interpolation qualifiers on structure members ERROR: 0:77: 'i' : cannot use invariant qualifier on structure members ERROR: 0:80: 'sampler3D' : Reserved word. ERROR: 0:80: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:91: 'dFdx' : required extension not requested: GL_OES_standard_derivatives ERROR: 0:92: 'dFdy' : required extension not requested: GL_OES_standard_derivatives ERROR: 0:93: 'fwidth' : required extension not requested: GL_OES_standard_derivatives ERROR: 0:103: 'gl_FragDepth' : undeclared identifier ERROR: 0:104: 'gl_FragDepthEXT' : required extension not requested: GL_EXT_frag_depth ERROR: 0:111: 'gl_FragDepth' : undeclared identifier ERROR: 0:134: 'texture3D' : no matching overloaded function found ERROR: 0:135: 'texture2DProjLod' : no matching overloaded function found ERROR: 0:137: 'bitwise not' : not supported for this version or the enabled extensions ERROR: 0:138: 'bitwise inclusive or' : not supported for this version or the enabled extensions ERROR: 0:139: 'bitwise and' : not supported for this version or the enabled extensions ERROR: 0:145: 'a' : redefinition ERROR: 0:147: 'texture2DProjGradEXT' : required extension not requested: GL_EXT_shader_texture_lod ERROR: 0:151: 'floating-point suffix' : not supported for this version or the enabled extensions ERROR: 0:152: 'floating-point suffix' : not supported for this version or the enabled extensions ERROR: 0:167: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 2 ERROR: 0:170: 'multiple prototypes for same function' : not supported for this version or the enabled extensions ERROR: 0:177: 'multiple prototypes for same function' : not supported for this version or the enabled extensions ERROR: 0:179: 'fragment-shader struct input' : not supported for this version or the enabled extensions ERROR: 0:183: 'v' : illegal use of type 'void' ERROR: 0:184: 'void' : cannot be an argument type except for '(void)' ERROR: 0:185: 'v' : illegal use of type 'void' ERROR: 0:185: 'void' : cannot be an argument type except for '(void)' ERROR: 0:190: '.' : cannot apply to an array: y ERROR: 0:191: '.' : cannot apply to an array: zy ERROR: 0:192: '.' : cannot apply to an array: nothing ERROR: 0:193: '.length' : not supported for this version or the enabled extensions ERROR: 0:194: '.' : cannot apply to an array: method ERROR: 0:194: 'a' : can't use function syntax on variable ERROR: 0:214: 'non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)' : not supported for this version or the enabled extensions ERROR: 0:222: '#define' : names containing consecutive underscores are reserved, and an error if version < 300: A__B ERROR: 0:223: '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: 79 compilation errors. No code generated. Shader version: 100 Requested GL_EXT_frag_depth Requested GL_EXT_shader_non_constant_global_initializers Requested GL_EXT_shader_texture_lod Requested GL_OES_EGL_image_external Requested GL_OES_standard_derivatives Requested GL_OES_texture_3D ERROR: node is still EOpNull! 0:3 Sequence 0:3 move second child to first child ( temp 3-element array of mediump int) 0:3 'a' ( global 3-element array of mediump int) 0:3 Constant: 0:3 2 (const int) 0:3 3 (const int) 0:3 4 (const int) 0:17 Function Definition: main( ( global void) 0:17 Function Parameters: 0:19 Sequence 0:19 Constant: 0:19 0.000000 0:20 Sequence 0:20 move second child to first child ( temp mediump int) 0:20 's' ( temp mediump int) 0:20 Constant: 0:20 16 (const int) 0:21 move second child to first child ( temp mediump int) 0:21 's' ( temp mediump int) 0:21 Constant: 0:21 4 (const int) 0:22 Test condition and select ( temp void) 0:22 Condition 0:22 Compare Equal ( temp bool) 0:22 'a' ( global 3-element array of mediump int) 0:22 'a' ( global 3-element array of mediump int) 0:22 true case is null 0:24 move second child to first child ( temp mediump int) 0:24 'b' ( temp mediump int) 0:24 bitwise and ( temp mediump int) 0:24 'c' ( temp mediump int) 0:24 Constant: 0:24 4 (const int) 0:25 move second child to first child ( temp mediump int) 0:25 'b' ( temp mediump int) 0:25 mod ( temp mediump int) 0:25 'c' ( temp mediump int) 0:25 Constant: 0:25 4 (const int) 0:26 move second child to first child ( temp mediump int) 0:26 'b' ( temp mediump int) 0:26 inclusive-or ( temp mediump int) 0:26 'c' ( temp mediump int) 0:26 Constant: 0:26 4 (const int) 0:27 right shift second child into first child ( temp mediump int) 0:27 'b' ( temp mediump int) 0:27 Constant: 0:27 2 (const int) 0:28 left shift second child into first child ( temp mediump int) 0:28 'b' ( temp mediump int) 0:28 Constant: 0:28 2 (const int) 0:29 mod second child into first child ( temp mediump int) 0:29 'b' ( temp mediump int) 0:29 Constant: 0:29 3 (const int) 0:36 move second child to first child ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:36 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:36 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:37 Test condition and select ( temp void) 0:37 Condition 0:37 Compare Equal ( temp bool) 0:37 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:37 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:37 true case is null 0:38 Test condition and select ( temp void) 0:38 Condition 0:38 Compare Not Equal ( temp bool) 0:38 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:38 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:38 true case is null 0:40 'b' ( temp mediump int) 0:54 Function Definition: foo10( ( global void) 0:54 Function Parameters: 0:67 Function Definition: f11(s21; ( global void) 0:67 Function Parameters: 0:67 'p2d' ( in lowp sampler2D) 0:87 Function Definition: foo234( ( global void) 0:87 Function Parameters: 0:89 Sequence 0:89 texture ( global highp 4-component vector of float) 0:89 's3D2' ( uniform highp sampler3D) 0:89 Constant: 0:89 0.200000 0:89 0.200000 0:89 0.200000 0:89 Constant: 0:89 0.200000 0:90 textureProj ( global highp 4-component vector of float) 0:90 's3D2' ( uniform highp sampler3D) 0:90 direct index ( smooth temp mediump 4-component vector of float) 0:90 'v' ( smooth in 3-element array of mediump 4-component vector of float) 0:90 Constant: 0:90 1 (const int) 0:90 Constant: 0:90 0.400000 0:91 dPdx ( global mediump 4-component vector of float) 0:91 direct index ( smooth temp mediump 4-component vector of float) 0:91 'v' ( smooth in 3-element array of mediump 4-component vector of float) 0:91 Constant: 0:91 0 (const int) 0:92 Constant: 0:92 0.000000 0:93 fwidth ( global mediump float) 0:93 'f13' ( invariant global mediump float) 0:98 Function Definition: foo236( ( global void) 0:98 Function Parameters: 0:100 Sequence 0:100 dPdx ( global mediump 4-component vector of float) 0:100 direct index ( smooth temp mediump 4-component vector of float) 0:100 'v' ( smooth in 3-element array of mediump 4-component vector of float) 0:100 Constant: 0:100 0 (const int) 0:101 Constant: 0:101 0.000000 0:102 fwidth ( global mediump float) 0:102 'f13' ( invariant global mediump float) 0:103 move second child to first child ( temp mediump float) 0:103 'gl_FragDepth' ( temp mediump float) 0:103 'f13' ( invariant global mediump float) 0:104 move second child to first child ( temp highp float) 0:104 'gl_FragDepthEXT' ( gl_FragDepth highp float FragDepth) 0:104 'f13' ( invariant global mediump float) 0:109 Function Definition: foo239( ( global void) 0:109 Function Parameters: 0:111 Sequence 0:111 move second child to first child ( temp mediump float) 0:111 'gl_FragDepth' ( temp mediump float) 0:111 'f13' ( invariant global mediump float) 0:112 move second child to first child ( temp highp float) 0:112 'gl_FragDepthEXT' ( gl_FragDepth highp float FragDepth) 0:112 'f13' ( invariant global mediump float) 0:119 Function Definition: foo245( ( global void) 0:119 Function Parameters: 0:121 Sequence 0:121 texture ( global lowp 4-component vector of float) 0:121 'sExt' ( uniform lowp samplerExternalOES) 0:121 Constant: 0:121 0.200000 0:121 0.200000 0:122 textureProj ( global lowp 4-component vector of float) 0:122 'sExt' ( uniform lowp samplerExternalOES) 0:122 Construct vec3 ( temp lowp 3-component vector of float) 0:122 'f13' ( invariant global mediump float) 0:123 textureProj ( global lowp 4-component vector of float, operation at mediump) 0:123 'sExt' ( uniform lowp samplerExternalOES) 0:123 direct index ( smooth temp mediump 4-component vector of float) 0:123 'v' ( smooth in 3-element array of mediump 4-component vector of float) 0:123 Constant: 0:123 2 (const int) 0:130 Function Definition: foo246( ( global void) 0:130 Function Parameters: 0:132 Sequence 0:132 texture ( global mediump 4-component vector of float) 0:132 'mediumExt' ( uniform mediump samplerExternalOES) 0:132 Constant: 0:132 0.200000 0:132 0.200000 0:133 textureProj ( global highp 4-component vector of float) 0:133 'highExt' ( uniform highp samplerExternalOES) 0:133 direct index ( smooth temp mediump 4-component vector of float) 0:133 'v' ( smooth in 3-element array of mediump 4-component vector of float) 0:133 Constant: 0:133 2 (const int) 0:134 Constant: 0:134 0.000000 0:135 Constant: 0:135 0.000000 0:137 Bitwise not ( temp mediump int) 0:137 'a' ( temp mediump int) 0:138 inclusive-or ( temp mediump int) 0:138 'a' ( temp mediump int) 0:138 'a' ( temp mediump int) 0:139 bitwise and ( temp mediump int) 0:139 'a' ( temp mediump int) 0:139 'a' ( temp mediump int) 0:145 Function Definition: foo203940(i1;f1;f1; ( global mediump int) 0:145 Function Parameters: 0:145 'a' ( in mediump int) 0:145 'b' ( in mediump float) 0:147 Sequence 0:147 textureProjGrad ( global lowp 4-component vector of float, operation at mediump) 0:147 's2Dg' ( uniform lowp sampler2D) 0:147 Construct vec3 ( temp mediump 3-component vector of float) 0:147 'f13' ( invariant global mediump float) 0:147 'uv2' ( invariant uniform mediump 2-component vector of float) 0:147 'uv2' ( invariant uniform mediump 2-component vector of float) 0:148 Branch: Return with expression 0:148 'a' ( in mediump int) 0:151 Sequence 0:151 move second child to first child ( temp mediump float) 0:151 'f123' ( global mediump float) 0:151 Constant: 0:151 4.000000 0:152 Sequence 0:152 move second child to first child ( temp mediump float) 0:152 'f124' ( global mediump float) 0:152 Constant: 0:152 50000000000.000000 0:158 Function Definition: foo323433( ( global void) 0:158 Function Parameters: 0:160 Sequence 0:160 textureLod ( global lowp 4-component vector of float, operation at mediump) 0:160 's2Dg' ( uniform lowp sampler2D) 0:160 'uv2' ( invariant uniform mediump 2-component vector of float) 0:160 'f13' ( invariant global mediump float) 0:161 textureProjGrad ( global lowp 4-component vector of float, operation at mediump) 0:161 's2Dg' ( uniform lowp sampler2D) 0:161 Construct vec3 ( temp mediump 3-component vector of float) 0:161 'f13' ( invariant global mediump float) 0:161 'uv2' ( invariant uniform mediump 2-component vector of float) 0:161 'uv2' ( invariant uniform mediump 2-component vector of float) 0:162 textureGrad ( global lowp 4-component vector of float, operation at mediump) 0:162 's2Dg' ( uniform lowp sampler2D) 0:162 'uv2' ( invariant uniform mediump 2-component vector of float) 0:162 'uv2' ( invariant uniform mediump 2-component vector of float) 0:162 'uv2' ( invariant uniform mediump 2-component vector of float) 0:163 textureGrad ( global lowp 4-component vector of float) 0:163 'sCube' ( uniform lowp samplerCube) 0:163 Construct vec3 ( temp lowp 3-component vector of float) 0:163 'f13' ( invariant global mediump float) 0:163 Construct vec3 ( temp lowp 3-component vector of float) 0:163 'f13' ( invariant global mediump float) 0:163 Construct vec3 ( temp lowp 3-component vector of float) 0:163 'f13' ( invariant global mediump float) 0:167 Function Definition: fgfg(f1;i1; ( global mediump int) 0:167 Function Parameters: 0:167 'f' ( in mediump float) 0:167 'i' ( in highp int) 0:167 Sequence 0:167 Branch: Return with expression 0:167 Constant: 0:167 2 (const int) 0:173 Function Definition: gggf(f1; ( global mediump int) 0:173 Function Parameters: 0:173 'f' ( in mediump float) 0:173 Sequence 0:173 Branch: Return with expression 0:173 Constant: 0:173 2 (const int) 0:175 Function Definition: agggf(f1; ( global mediump int) 0:175 Function Parameters: 0:175 'f' ( in mediump float) 0:175 Sequence 0:175 Branch: Return with expression 0:175 Constant: 0:175 2 (const int) 0:187 Function Definition: badswizzle( ( global void) 0:187 Function Parameters: 0:? Sequence 0:190 'a' ( temp 5-element array of mediump 3-component vector of float) 0:191 'a' ( temp 5-element array of mediump 3-component vector of float) 0:192 'a' ( temp 5-element array of mediump 3-component vector of float) 0:193 Constant: 0:193 5 (const int) 0:194 Constant: 0:194 0.000000 0:199 Function Definition: fooinittest( ( global mediump float) 0:199 Function Parameters: 0:201 Sequence 0:201 Branch: Return with expression 0:201 Function Call: fooinit( ( global mediump float) 0:209 Function Definition: fooinit( ( global mediump float) 0:209 Function Parameters: 0:211 Sequence 0:211 Branch: Return with expression 0:211 Constant: 0:211 12.000000 0:214 Sequence 0:214 move second child to first child ( temp mediump int) 0:214 'init1' ( global mediump int) 0:214 Test condition and select ( temp mediump int) 0:214 Condition 0:214 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:214 true case 0:214 Constant: 0:214 1 (const int) 0:214 false case 0:214 Constant: 0:214 2 (const int) 0:220 Sequence 0:220 move second child to first child ( temp mediump int) 0:220 'init2' ( global mediump int) 0:220 Test condition and select ( temp mediump int) 0:220 Condition 0:220 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:220 true case 0:220 Constant: 0:220 1 (const int) 0:220 false case 0:220 Constant: 0:220 2 (const int) 0:? Linker Objects 0:? 'a' ( global 3-element array of mediump int) 0:? 'uint' ( global mediump int) 0:? 'v' ( smooth in 3-element array of mediump 4-component vector of float) 0:? 'f' ( invariant global mediump float) 0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump int x}) 0:? 'fa' ( global unsized 1-element array of mediump float) 0:? 'f13' ( invariant global mediump float) 0:? 'fi' ( invariant temp mediump float) 0:? 'av' ( invariant smooth in mediump 4-component vector of float) 0:? 'uv2' ( invariant uniform mediump 2-component vector of float) 0:? 'uv3' ( invariant uniform mediump 3-component vector of float) 0:? 'glob2D' ( global lowp sampler2D) 0:? 'vary2D' ( smooth in lowp sampler2D) 0:? 's3D' ( uniform mediump sampler3D) 0:? 's3D2' ( uniform highp sampler3D) 0:? 'sExt' ( uniform lowp samplerExternalOES) 0:? 'mediumExt' ( uniform mediump samplerExternalOES) 0:? 'highExt' ( uniform highp samplerExternalOES) 0:? 's2Dg' ( uniform lowp sampler2D) 0:? 'f123' ( global mediump float) 0:? 'f124' ( global mediump float) 0:? 'sCube' ( uniform lowp samplerCube) 0:? 's' ( smooth in structure{ global mediump float f}) 0:? 'fi1' ( const mediump float) 0:? 3.000000 0:? 'fi2' ( const mediump float) 0:? 4.000000 0:? 'fi3' ( const mediump float) 0:? 5.000000 0:? 'init1' ( global mediump int) 0:? 'init2' ( global mediump int) 0:? 'a__b' ( global mediump int) Linked fragment stage: Shader version: 100 Requested GL_EXT_frag_depth Requested GL_EXT_shader_non_constant_global_initializers Requested GL_EXT_shader_texture_lod Requested GL_OES_EGL_image_external Requested GL_OES_standard_derivatives Requested GL_OES_texture_3D ERROR: node is still EOpNull! 0:3 Sequence 0:3 move second child to first child ( temp 3-element array of mediump int) 0:3 'a' ( global 3-element array of mediump int) 0:3 Constant: 0:3 2 (const int) 0:3 3 (const int) 0:3 4 (const int) 0:17 Function Definition: main( ( global void) 0:17 Function Parameters: 0:19 Sequence 0:19 Constant: 0:19 0.000000 0:20 Sequence 0:20 move second child to first child ( temp mediump int) 0:20 's' ( temp mediump int) 0:20 Constant: 0:20 16 (const int) 0:21 move second child to first child ( temp mediump int) 0:21 's' ( temp mediump int) 0:21 Constant: 0:21 4 (const int) 0:22 Test condition and select ( temp void) 0:22 Condition 0:22 Compare Equal ( temp bool) 0:22 'a' ( global 3-element array of mediump int) 0:22 'a' ( global 3-element array of mediump int) 0:22 true case is null 0:24 move second child to first child ( temp mediump int) 0:24 'b' ( temp mediump int) 0:24 bitwise and ( temp mediump int) 0:24 'c' ( temp mediump int) 0:24 Constant: 0:24 4 (const int) 0:25 move second child to first child ( temp mediump int) 0:25 'b' ( temp mediump int) 0:25 mod ( temp mediump int) 0:25 'c' ( temp mediump int) 0:25 Constant: 0:25 4 (const int) 0:26 move second child to first child ( temp mediump int) 0:26 'b' ( temp mediump int) 0:26 inclusive-or ( temp mediump int) 0:26 'c' ( temp mediump int) 0:26 Constant: 0:26 4 (const int) 0:27 right shift second child into first child ( temp mediump int) 0:27 'b' ( temp mediump int) 0:27 Constant: 0:27 2 (const int) 0:28 left shift second child into first child ( temp mediump int) 0:28 'b' ( temp mediump int) 0:28 Constant: 0:28 2 (const int) 0:29 mod second child into first child ( temp mediump int) 0:29 'b' ( temp mediump int) 0:29 Constant: 0:29 3 (const int) 0:36 move second child to first child ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:36 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:36 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:37 Test condition and select ( temp void) 0:37 Condition 0:37 Compare Equal ( temp bool) 0:37 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:37 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:37 true case is null 0:38 Test condition and select ( temp void) 0:38 Condition 0:38 Compare Not Equal ( temp bool) 0:38 's1' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:38 's2' ( temp structure{ temp mediump float f, temp 10-element array of mediump float a}) 0:38 true case is null 0:40 'b' ( temp mediump int) 0:151 Sequence 0:151 move second child to first child ( temp mediump float) 0:151 'f123' ( global mediump float) 0:151 Constant: 0:151 4.000000 0:152 Sequence 0:152 move second child to first child ( temp mediump float) 0:152 'f124' ( global mediump float) 0:152 Constant: 0:152 50000000000.000000 0:214 Sequence 0:214 move second child to first child ( temp mediump int) 0:214 'init1' ( global mediump int) 0:214 Test condition and select ( temp mediump int) 0:214 Condition 0:214 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:214 true case 0:214 Constant: 0:214 1 (const int) 0:214 false case 0:214 Constant: 0:214 2 (const int) 0:220 Sequence 0:220 move second child to first child ( temp mediump int) 0:220 'init2' ( global mediump int) 0:220 Test condition and select ( temp mediump int) 0:220 Condition 0:220 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:220 true case 0:220 Constant: 0:220 1 (const int) 0:220 false case 0:220 Constant: 0:220 2 (const int) 0:? Linker Objects 0:? 'a' ( global 3-element array of mediump int) 0:? 'uint' ( global mediump int) 0:? 'v' ( smooth in 3-element array of mediump 4-component vector of float) 0:? 'f' ( invariant global mediump float) 0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump int x}) 0:? 'fa' ( global 1-element array of mediump float) 0:? 'f13' ( invariant global mediump float) 0:? 'fi' ( invariant temp mediump float) 0:? 'av' ( invariant smooth in mediump 4-component vector of float) 0:? 'uv2' ( invariant uniform mediump 2-component vector of float) 0:? 'uv3' ( invariant uniform mediump 3-component vector of float) 0:? 'glob2D' ( global lowp sampler2D) 0:? 'vary2D' ( smooth in lowp sampler2D) 0:? 's3D' ( uniform mediump sampler3D) 0:? 's3D2' ( uniform highp sampler3D) 0:? 'sExt' ( uniform lowp samplerExternalOES) 0:? 'mediumExt' ( uniform mediump samplerExternalOES) 0:? 'highExt' ( uniform highp samplerExternalOES) 0:? 's2Dg' ( uniform lowp sampler2D) 0:? 'f123' ( global mediump float) 0:? 'f124' ( global mediump float) 0:? 'sCube' ( uniform lowp samplerCube) 0:? 's' ( smooth in structure{ global mediump float f}) 0:? 'fi1' ( const mediump float) 0:? 3.000000 0:? 'fi2' ( const mediump float) 0:? 4.000000 0:? 'fi3' ( const mediump float) 0:? 5.000000 0:? 'init1' ( global mediump int) 0:? 'init2' ( global mediump int) 0:? 'a__b' ( global mediump int) glslang-8.13.3559/Test/baseResults/100Limits.vert.out000066400000000000000000001004131360464450000221060ustar00rootroot00000000000000100Limits.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 glslang-8.13.3559/Test/baseResults/100LimitsConf.vert.out000066400000000000000000000033261360464450000227210ustar00rootroot00000000000000100Limits.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. glslang-8.13.3559/Test/baseResults/100samplerExternal.frag.out000066400000000000000000000131461360464450000237600ustar00rootroot00000000000000100samplerExternal.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) glslang-8.13.3559/Test/baseResults/100scope.vert.out000066400000000000000000000203631360464450000217630ustar00rootroot00000000000000100scope.vert ERROR: 0:5: 'a' : redefinition ERROR: 0:17: 'b' : function name is redeclaration of existing name ERROR: 0:20: 'c' : redefinition ERROR: 0:22: 'f' : redefinition ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es ERROR: 0:24: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1 ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es ERROR: 0:25: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1 ERROR: 0:38: 'local function declaration' : not supported with this profile: es ERROR: 0:43: 'sin' : can't use function syntax on variable ERROR: 0:57: 'z' : undeclared identifier ERROR: 0:57: 'z' : redefinition ERROR: 0:73: 'degrees' : can't use function syntax on variable ERROR: 0:76: 'vertex-shader struct output' : not supported for this version or the enabled extensions ERROR: 14 compilation errors. No code generated. Shader version: 100 ERROR: node is still EOpNull! 0:3 Function Definition: f(i1;i1;i1; ( global highp int) 0:3 Function Parameters: 0:3 'a' ( in highp int) 0:3 'b' ( in highp int) 0:3 'c' ( in highp int) 0:? Sequence 0:8 Sequence 0:8 Sequence 0:8 move second child to first child ( temp highp float) 0:8 'a' ( temp highp float) 0:8 add ( temp highp float) 0:8 Convert int to float ( temp highp float) 0:8 'a' ( in highp int) 0:8 Constant: 0:8 1.000000 0:11 Branch: Return with expression 0:11 'a' ( in highp int) 0:25 Function Definition: cos(f1; ( global highp float) 0:25 Function Parameters: 0:25 'x' ( in highp float) 0:27 Sequence 0:27 Branch: Return with expression 0:27 Constant: 0:27 1.000000 0:29 Function Definition: radians(b1; ( global bool) 0:29 Function Parameters: 0:29 'x' ( in bool) 0:31 Sequence 0:31 Branch: Return with expression 0:31 Constant: 0:31 true (const bool) 0:36 Function Definition: main( ( global void) 0:36 Function Parameters: 0:? Sequence 0:39 Function Call: g( ( temp highp int) 0:42 'sin' ( temp highp float) 0:43 Constant: 0:43 0.000000 0:44 Function Call: f(i1;i1;i1; ( global highp int) 0:44 Constant: 0:44 1 (const int) 0:44 Constant: 0:44 2 (const int) 0:44 Constant: 0:44 3 (const int) 0:47 move second child to first child ( temp highp float) 0:47 'f' ( temp highp float) 0:47 Constant: 0:47 3.000000 0:49 move second child to first child ( temp highp 4-component vector of float) 0:49 'gl_Position' ( invariant gl_Position highp 4-component vector of float Position) 0:49 Construct vec4 ( temp highp 4-component vector of float) 0:49 'f' ( temp highp float) 0:51 Sequence 0:51 Sequence 0:51 move second child to first child ( temp highp int) 0:51 'f' ( temp highp int) 0:51 Constant: 0:51 0 (const int) 0:51 Loop with condition tested first 0:51 Loop Condition 0:51 Compare Less Than ( temp bool) 0:51 'f' ( temp highp int) 0:51 Constant: 0:51 10 (const int) 0:51 Loop Body 0:52 Pre-Increment ( temp highp int) 0:52 'f' ( temp highp int) 0:51 Loop Terminal Expression 0:51 Pre-Increment ( temp highp int) 0:51 'f' ( temp highp int) 0:54 Sequence 0:54 move second child to first child ( temp highp int) 0:54 'x' ( temp highp int) 0:54 Constant: 0:54 1 (const int) 0:56 Sequence 0:56 Sequence 0:56 move second child to first child ( temp highp float) 0:56 'x' ( temp highp float) 0:56 Constant: 0:56 2.000000 0:56 move second child to first child ( temp highp float) 0:56 'y' ( temp highp float) 0:56 'x' ( temp highp float) 0:60 Sequence 0:60 Sequence 0:60 move second child to first child ( temp highp int) 0:60 'x' ( temp highp int) 0:60 'x' ( temp highp int) 0:68 Sequence 0:68 Sequence 0:68 move second child to first child ( temp structure{ temp highp int x}) 0:68 'S' ( temp structure{ temp highp int x}) 0:68 Constant: 0:68 0 (const int) 0:69 x: direct index for structure ( temp highp int) 0:69 'S' ( temp structure{ temp highp int x}) 0:69 Constant: 0:69 0 (const int) 0:73 Constant: 0:73 0.000000 0:? Linker Objects 0:? 'b' ( global bool) 0:? 'tan' ( global highp float) 0:? 's' ( smooth out structure{ global highp float f}) Linked vertex stage: ERROR: Linking vertex stage: No function definition (body) found: g( Shader version: 100 ERROR: node is still EOpNull! 0:3 Function Definition: f(i1;i1;i1; ( global highp int) 0:3 Function Parameters: 0:3 'a' ( in highp int) 0:3 'b' ( in highp int) 0:3 'c' ( in highp int) 0:? Sequence 0:8 Sequence 0:8 Sequence 0:8 move second child to first child ( temp highp float) 0:8 'a' ( temp highp float) 0:8 add ( temp highp float) 0:8 Convert int to float ( temp highp float) 0:8 'a' ( in highp int) 0:8 Constant: 0:8 1.000000 0:11 Branch: Return with expression 0:11 'a' ( in highp int) 0:36 Function Definition: main( ( global void) 0:36 Function Parameters: 0:? Sequence 0:39 Function Call: g( ( temp highp int) 0:42 'sin' ( temp highp float) 0:43 Constant: 0:43 0.000000 0:44 Function Call: f(i1;i1;i1; ( global highp int) 0:44 Constant: 0:44 1 (const int) 0:44 Constant: 0:44 2 (const int) 0:44 Constant: 0:44 3 (const int) 0:47 move second child to first child ( temp highp float) 0:47 'f' ( temp highp float) 0:47 Constant: 0:47 3.000000 0:49 move second child to first child ( temp highp 4-component vector of float) 0:49 'gl_Position' ( invariant gl_Position highp 4-component vector of float Position) 0:49 Construct vec4 ( temp highp 4-component vector of float) 0:49 'f' ( temp highp float) 0:51 Sequence 0:51 Sequence 0:51 move second child to first child ( temp highp int) 0:51 'f' ( temp highp int) 0:51 Constant: 0:51 0 (const int) 0:51 Loop with condition tested first 0:51 Loop Condition 0:51 Compare Less Than ( temp bool) 0:51 'f' ( temp highp int) 0:51 Constant: 0:51 10 (const int) 0:51 Loop Body 0:52 Pre-Increment ( temp highp int) 0:52 'f' ( temp highp int) 0:51 Loop Terminal Expression 0:51 Pre-Increment ( temp highp int) 0:51 'f' ( temp highp int) 0:54 Sequence 0:54 move second child to first child ( temp highp int) 0:54 'x' ( temp highp int) 0:54 Constant: 0:54 1 (const int) 0:56 Sequence 0:56 Sequence 0:56 move second child to first child ( temp highp float) 0:56 'x' ( temp highp float) 0:56 Constant: 0:56 2.000000 0:56 move second child to first child ( temp highp float) 0:56 'y' ( temp highp float) 0:56 'x' ( temp highp float) 0:60 Sequence 0:60 Sequence 0:60 move second child to first child ( temp highp int) 0:60 'x' ( temp highp int) 0:60 'x' ( temp highp int) 0:68 Sequence 0:68 Sequence 0:68 move second child to first child ( temp structure{ temp highp int x}) 0:68 'S' ( temp structure{ temp highp int x}) 0:68 Constant: 0:68 0 (const int) 0:69 x: direct index for structure ( temp highp int) 0:69 'S' ( temp structure{ temp highp int x}) 0:69 Constant: 0:69 0 (const int) 0:73 Constant: 0:73 0.000000 0:? Linker Objects 0:? 'b' ( global bool) 0:? 'tan' ( global highp float) 0:? 's' ( smooth out structure{ global highp float f}) glslang-8.13.3559/Test/baseResults/110scope.vert.out000066400000000000000000000216171360464450000217670ustar00rootroot00000000000000110scope.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) glslang-8.13.3559/Test/baseResults/120.frag.out000066400000000000000000001044261360464450000206750ustar00rootroot00000000000000120.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) glslang-8.13.3559/Test/baseResults/120.vert.out000066400000000000000000000555321360464450000207410ustar00rootroot00000000000000120.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) glslang-8.13.3559/Test/baseResults/130.frag.out000066400000000000000000000512001360464450000206650ustar00rootroot00000000000000130.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) glslang-8.13.3559/Test/baseResults/130.vert.out000066400000000000000000000316371360464450000207420ustar00rootroot00000000000000130.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) glslang-8.13.3559/Test/baseResults/140.frag.out000066400000000000000000000153261360464450000206770ustar00rootroot00000000000000140.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) glslang-8.13.3559/Test/baseResults/140.vert.out000066400000000000000000000277331360464450000207450ustar00rootroot00000000000000140.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) glslang-8.13.3559/Test/baseResults/150.frag.out000066400000000000000000000160061360464450000206740ustar00rootroot00000000000000150.frag ERROR: 0:4: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord ERROR: 0:5: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord ERROR: 0:6: 'layout qualifier' : can only apply origin_upper_left and pixel_center_origin to gl_FragCoord ERROR: 0:14: 'gl_FragCoord' : cannot redeclare after use ERROR: 0:50: 'gl_PerFragment' : cannot be used (maybe an instance name is needed) ERROR: 0:50: 'gl_PerFragment' : undeclared identifier ERROR: 6 compilation errors. No code generated. Shader version: 150 gl_FragCoord pixel center is integer gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:9 Function Definition: main( ( global void) 0:9 Function Parameters: 0:11 Sequence 0:11 Sequence 0:11 move second child to first child ( temp 4-component vector of float) 0:11 'c' ( temp 4-component vector of float) 0:11 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) 0:18 Sequence 0:18 move second child to first child ( temp float) 0:18 'patch' ( global float) 0:18 Constant: 0:18 3.100000 0:31 Function Definition: barWxyz( ( global void) 0:31 Function Parameters: 0:33 Sequence 0:33 Sequence 0:33 move second child to first child ( temp 2-component vector of int) 0:33 't11' ( temp 2-component vector of int) 0:33 textureSize ( global 2-component vector of int) 0:33 'sms' ( uniform sampler2DMS) 0:34 Sequence 0:34 move second child to first child ( temp 2-component vector of int) 0:34 't12' ( temp 2-component vector of int) 0:34 textureSize ( global 2-component vector of int) 0:34 'isms' ( uniform isampler2DMS) 0:35 Sequence 0:35 move second child to first child ( temp 2-component vector of int) 0:35 't13' ( temp 2-component vector of int) 0:35 textureSize ( global 2-component vector of int) 0:35 'usms' ( uniform usampler2DMS) 0:36 Sequence 0:36 move second child to first child ( temp 3-component vector of int) 0:36 't21' ( temp 3-component vector of int) 0:36 textureSize ( global 3-component vector of int) 0:36 'smsa' ( uniform sampler2DMSArray) 0:37 Sequence 0:37 move second child to first child ( temp 3-component vector of int) 0:37 't22' ( temp 3-component vector of int) 0:37 textureSize ( global 3-component vector of int) 0:37 'ismsa' ( uniform isampler2DMSArray) 0:38 Sequence 0:38 move second child to first child ( temp 3-component vector of int) 0:38 't23' ( temp 3-component vector of int) 0:38 textureSize ( global 3-component vector of int) 0:38 'usmsa' ( uniform usampler2DMSArray) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 't31' ( temp 4-component vector of float) 0:39 textureFetch ( global 4-component vector of float) 0:39 'sms' ( uniform sampler2DMS) 0:39 'p2' ( flat in 2-component vector of int) 0:39 'samp' ( flat in int) 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 't32' ( temp 4-component vector of int) 0:40 textureFetch ( global 4-component vector of int) 0:40 'isms' ( uniform isampler2DMS) 0:40 'p2' ( flat in 2-component vector of int) 0:40 'samp' ( flat in int) 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 't33' ( temp 4-component vector of uint) 0:41 textureFetch ( global 4-component vector of uint) 0:41 'usms' ( uniform usampler2DMS) 0:41 'p2' ( flat in 2-component vector of int) 0:41 Constant: 0:41 3 (const int) 0:42 Sequence 0:42 move second child to first child ( temp 4-component vector of float) 0:42 't41' ( temp 4-component vector of float) 0:42 textureFetch ( global 4-component vector of float) 0:42 'smsa' ( uniform sampler2DMSArray) 0:42 'p3' ( flat in 3-component vector of int) 0:42 'samp' ( flat in int) 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of int) 0:43 't42' ( temp 4-component vector of int) 0:43 textureFetch ( global 4-component vector of int) 0:43 'ismsa' ( uniform isampler2DMSArray) 0:43 Constant: 0:43 2 (const int) 0:43 2 (const int) 0:43 2 (const int) 0:43 'samp' ( flat in int) 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of uint) 0:44 't43' ( temp 4-component vector of uint) 0:44 textureFetch ( global 4-component vector of uint) 0:44 'usmsa' ( uniform usampler2DMSArray) 0:44 'p3' ( flat in 3-component vector of int) 0:44 'samp' ( flat in int) 0:47 Function Definition: primitiveID( ( global int) 0:47 Function Parameters: 0:49 Sequence 0:49 Branch: Return with expression 0:49 'gl_PrimitiveID' ( flat in int PrimitiveID) 0:50 'gl_PerFragment' ( temp float) 0:? Linker Objects 0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) 0:? 'foo' ( smooth in 4-component vector of float) 0:? 's' ( smooth in structure{ global float f}) 0:? 'patch' ( global float) 0:? 'sms' ( uniform sampler2DMS) 0:? 'isms' ( uniform isampler2DMS) 0:? 'usms' ( uniform usampler2DMS) 0:? 'smsa' ( uniform sampler2DMSArray) 0:? 'ismsa' ( uniform isampler2DMSArray) 0:? 'usmsa' ( uniform usampler2DMSArray) 0:? 'p2' ( flat in 2-component vector of int) 0:? 'p3' ( flat in 3-component vector of int) 0:? 'samp' ( flat in int) Linked fragment stage: Shader version: 150 gl_FragCoord pixel center is integer gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:9 Function Definition: main( ( global void) 0:9 Function Parameters: 0:11 Sequence 0:11 Sequence 0:11 move second child to first child ( temp 4-component vector of float) 0:11 'c' ( temp 4-component vector of float) 0:11 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) 0:18 Sequence 0:18 move second child to first child ( temp float) 0:18 'patch' ( global float) 0:18 Constant: 0:18 3.100000 0:? Linker Objects 0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) 0:? 'foo' ( smooth in 4-component vector of float) 0:? 's' ( smooth in structure{ global float f}) 0:? 'patch' ( global float) 0:? 'sms' ( uniform sampler2DMS) 0:? 'isms' ( uniform isampler2DMS) 0:? 'usms' ( uniform usampler2DMS) 0:? 'smsa' ( uniform sampler2DMSArray) 0:? 'ismsa' ( uniform isampler2DMSArray) 0:? 'usmsa' ( uniform usampler2DMSArray) 0:? 'p2' ( flat in 2-component vector of int) 0:? 'p3' ( flat in 3-component vector of int) 0:? 'samp' ( flat in int) glslang-8.13.3559/Test/baseResults/150.geom.out000066400000000000000000000444421360464450000207110ustar00rootroot00000000000000150.geom ERROR: 0:15: 'fromVertex' : block instance name redefinition ERROR: 0:19: 'fromVertex' : redefinition ERROR: 0:21: 'fooC' : block instance name redefinition ERROR: 0:29: 'EmitStreamVertex' : no matching overloaded function found ERROR: 0:30: 'EndStreamPrimitive' : no matching overloaded function found ERROR: 0:44: 'stream' : can only be used on an output ERROR: 0:45: 'stream' : can only be used on an output ERROR: 0:46: 'stream' : can only be used on an output ERROR: 0:47: 'stream' : can only be used on an output ERROR: 0:47: 'stream' : can only be used on an output ERROR: 0:60: 'stream' : member cannot contradict block ERROR: 0:66: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices ERROR: 0:66: 'max_vertices' : cannot change previously set layout value ERROR: 0:67: 'max_vertices' : can only apply to a standalone qualifier ERROR: 0:72: 'points' : cannot change previously set output primitive ERROR: 0:73: 'points' : cannot change previously set output primitive ERROR: 0:74: 'triangle_strip' : cannot apply to input ERROR: 0:75: 'triangle_strip' : cannot apply to: uniform ERROR: 0:76: 'triangle_strip' : can only apply to a standalone qualifier ERROR: 0:77: 'triangle_strip' : can only apply to a standalone qualifier ERROR: 0:78: 'invocations' : not supported for this version or the enabled extensions ERROR: 0:78: 'invocations' : can only apply to a standalone qualifier ERROR: 0:80: 'invocations' : not supported for this version or the enabled extensions ERROR: 0:80: 'invocations' : can only apply to a standalone qualifier ERROR: 0:81: 'max_vertices' : can only apply to a standalone qualifier ERROR: 0:82: 'triangle_strip' : can only apply to a standalone qualifier ERROR: 0:85: 'lines' : cannot apply to 'out' ERROR: 0:87: 'triangles' : cannot change previously set input primitive ERROR: 0:88: 'triangles_adjacency' : cannot change previously set input primitive ERROR: 0:89: 'invocations' : not supported for this version or the enabled extensions ERROR: 0:92: 'stream' : member cannot contradict block ERROR: 0:92: 'stream' : can only be used on an output ERROR: 0:129: 'gl_ViewportIndex' : required extension not requested: GL_ARB_viewport_array ERROR: 0:129: 'gl_MaxViewports' : required extension not requested: GL_ARB_viewport_array ERROR: 0:139: 'gl_ViewportIndex' : identifiers starting with "gl_" are reserved ERROR: 35 compilation errors. No code generated. Shader version: 150 Requested GL_ARB_viewport_array invocations = 4 max_vertices = 200 input primitive = lines_adjacency output primitive = triangle_strip ERROR: node is still EOpNull! 0:25 Function Definition: main( ( global void) 0:25 Function Parameters: 0:27 Sequence 0:27 EmitVertex ( global void) 0:28 EndPrimitive ( global void) 0:29 Constant: 0:29 0.000000 0:30 Constant: 0:30 0.000000 0:32 move second child to first child ( temp 3-component vector of float) 0:32 color: direct index for structure (layout( stream=0) out 3-component vector of float) 0:32 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) 0:32 Constant: 0:32 0 (const uint) 0:32 color: direct index for structure ( in 3-component vector of float) 0:32 direct index ( temp block{ in 3-component vector of float color}) 0:32 'fromV' ( in 4-element array of block{ in 3-component vector of float color}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: 0:32 0 (const int) 0:33 move second child to first child ( temp float) 0:33 direct index (layout( stream=0) temp float ClipDistance) 0:33 gl_ClipDistance: direct index for structure (layout( stream=0) out unsized 4-element array of float ClipDistance) 0:33 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance}) 0:33 Constant: 0:33 2 (const uint) 0:33 Constant: 0:33 3 (const int) 0:33 direct index ( temp float ClipDistance) 0:33 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) 0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:33 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 2 (const int) 0:33 Constant: 0:33 2 (const int) 0:34 move second child to first child ( temp 4-component vector of float) 0:34 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) 0:34 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance}) 0:34 Constant: 0:34 0 (const uint) 0:34 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:34 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:34 Constant: 0:34 0 (const int) 0:34 Constant: 0:34 0 (const int) 0:35 move second child to first child ( temp float) 0:35 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize float PointSize) 0:35 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance}) 0:35 Constant: 0:35 1 (const uint) 0:35 gl_PointSize: direct index for structure ( in float PointSize) 0:35 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:35 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:35 Constant: 0:35 3 (const int) 0:35 Constant: 0:35 1 (const int) 0:36 move second child to first child ( temp int) 0:36 'gl_PrimitiveID' (layout( stream=0) out int PrimitiveID) 0:36 'gl_PrimitiveIDIn' ( in int PrimitiveID) 0:37 move second child to first child ( temp int) 0:37 'gl_Layer' (layout( stream=0) out int Layer) 0:37 Constant: 0:37 2 (const int) 0:67 Function Definition: foo(i1; ( global void) 0:67 Function Parameters: 0:67 'a' ( in int) 0:69 Sequence 0:69 move second child to first child ( temp 4-component vector of float) 0:69 a: direct index for structure (layout( stream=6) out 4-component vector of float) 0:69 'ouuaa6' (layout( stream=6) out block{layout( stream=6) out 4-component vector of float a}) 0:69 Constant: 0:69 0 (const int) 0:69 Constant: 0:69 1.000000 0:69 1.000000 0:69 1.000000 0:69 1.000000 0:107 Sequence 0:107 move second child to first child ( temp float) 0:107 'summ' ( global float) 0:107 Constant: 0:107 11332.000000 0:127 Function Definition: fooe1( ( global void) 0:127 Function Parameters: 0:129 Sequence 0:129 move second child to first child ( temp int) 0:129 'gl_ViewportIndex' (layout( stream=0) out int ViewportIndex) 0:129 Constant: 0:129 15 (const int) 0:134 Function Definition: fooe2( ( global void) 0:134 Function Parameters: 0:136 Sequence 0:136 move second child to first child ( temp int) 0:136 'gl_ViewportIndex' (layout( stream=0) out int ViewportIndex) 0:136 Constant: 0:136 15 (const int) 0:? Linker Objects 0:? 'fromV' ( in 4-element array of block{ in 3-component vector of float color}) 0:? 'toF' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) 0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) 0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 4-element array of float ClipDistance gl_ClipDistance}) 0:? 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:? 'ov0' (layout( stream=0) out 4-component vector of float) 0:? 'ov4' (layout( stream=4) out 4-component vector of float) 0:? 'o1v0' (layout( stream=0) out 4-component vector of float) 0:? 'ua' (layout( stream=3) uniform int) 0:? 'ibb' (layout( stream=3 column_major shared) uniform block{layout( stream=3 column_major shared) uniform int ua}) 0:? 'ov3' (layout( stream=3) out 4-component vector of float) 0:? 'ouuaa6' (layout( stream=6) out block{layout( stream=6) out 4-component vector of float a}) 0:? 'ouua6' (layout( stream=6) out block{layout( stream=6) out 4-component vector of float a}) 0:? 'ouua7' (layout( stream=7) out block{layout( stream=6) out 4-component vector of float a}) 0:? 'ov2s3' (layout( stream=3) out 4-component vector of float) 0:? 'badv4' (layout( stream=3) out 4-component vector of float) 0:? 'bad2v4' ( in 4-element array of 4-component vector of float) 0:? 'anon@2' (layout( stream=3) out block{layout( stream=3) out int a}) 0:? 'outbi' (layout( stream=3) out block{layout( stream=3) out int a, layout( stream=3) out int b, layout( stream=3) out int c}) 0:? 'inbi' ( in 4-element array of block{layout( stream=2) in int a}) 0:? 'insn' ( in 4-element array of block{ in int a15}) 0:? 'anon@3' (layout( stream=3) out block{layout( stream=3) out float f15}) 0:? 'anon@4' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) 0:? 'summ' ( global float) 0:? 'gl_ViewportIndex' (layout( stream=3) out int) Linked geometry stage: Shader version: 150 Requested GL_ARB_viewport_array invocations = 4 max_vertices = 200 input primitive = lines_adjacency output primitive = triangle_strip ERROR: node is still EOpNull! 0:25 Function Definition: main( ( global void) 0:25 Function Parameters: 0:27 Sequence 0:27 EmitVertex ( global void) 0:28 EndPrimitive ( global void) 0:29 Constant: 0:29 0.000000 0:30 Constant: 0:30 0.000000 0:32 move second child to first child ( temp 3-component vector of float) 0:32 color: direct index for structure (layout( stream=0) out 3-component vector of float) 0:32 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) 0:32 Constant: 0:32 0 (const uint) 0:32 color: direct index for structure ( in 3-component vector of float) 0:32 direct index ( temp block{ in 3-component vector of float color}) 0:32 'fromV' ( in 4-element array of block{ in 3-component vector of float color}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: 0:32 0 (const int) 0:33 move second child to first child ( temp float) 0:33 direct index (layout( stream=0) temp float ClipDistance) 0:33 gl_ClipDistance: direct index for structure (layout( stream=0) out 4-element array of float ClipDistance) 0:33 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 4-element array of float ClipDistance gl_ClipDistance}) 0:33 Constant: 0:33 2 (const uint) 0:33 Constant: 0:33 3 (const int) 0:33 direct index ( temp float ClipDistance) 0:33 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) 0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:33 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 2 (const int) 0:33 Constant: 0:33 2 (const int) 0:34 move second child to first child ( temp 4-component vector of float) 0:34 gl_Position: direct index for structure (layout( stream=0) gl_Position 4-component vector of float Position) 0:34 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 4-element array of float ClipDistance gl_ClipDistance}) 0:34 Constant: 0:34 0 (const uint) 0:34 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:34 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:34 Constant: 0:34 0 (const int) 0:34 Constant: 0:34 0 (const int) 0:35 move second child to first child ( temp float) 0:35 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize float PointSize) 0:35 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 4-element array of float ClipDistance gl_ClipDistance}) 0:35 Constant: 0:35 1 (const uint) 0:35 gl_PointSize: direct index for structure ( in float PointSize) 0:35 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:35 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:35 Constant: 0:35 3 (const int) 0:35 Constant: 0:35 1 (const int) 0:36 move second child to first child ( temp int) 0:36 'gl_PrimitiveID' (layout( stream=0) out int PrimitiveID) 0:36 'gl_PrimitiveIDIn' ( in int PrimitiveID) 0:37 move second child to first child ( temp int) 0:37 'gl_Layer' (layout( stream=0) out int Layer) 0:37 Constant: 0:37 2 (const int) 0:107 Sequence 0:107 move second child to first child ( temp float) 0:107 'summ' ( global float) 0:107 Constant: 0:107 11332.000000 0:? Linker Objects 0:? 'fromV' ( in 4-element array of block{ in 3-component vector of float color}) 0:? 'toF' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) 0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-component vector of float color}) 0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 4-element array of float ClipDistance gl_ClipDistance}) 0:? 'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:? 'ov0' (layout( stream=0) out 4-component vector of float) 0:? 'ov4' (layout( stream=4) out 4-component vector of float) 0:? 'o1v0' (layout( stream=0) out 4-component vector of float) 0:? 'ua' (layout( stream=3) uniform int) 0:? 'ibb' (layout( stream=3 column_major shared) uniform block{layout( stream=3 column_major shared) uniform int ua}) 0:? 'ov3' (layout( stream=3) out 4-component vector of float) 0:? 'ouuaa6' (layout( stream=6) out block{layout( stream=6) out 4-component vector of float a}) 0:? 'ouua6' (layout( stream=6) out block{layout( stream=6) out 4-component vector of float a}) 0:? 'ouua7' (layout( stream=7) out block{layout( stream=6) out 4-component vector of float a}) 0:? 'ov2s3' (layout( stream=3) out 4-component vector of float) 0:? 'badv4' (layout( stream=3) out 4-component vector of float) 0:? 'bad2v4' ( in 4-element array of 4-component vector of float) 0:? 'anon@2' (layout( stream=3) out block{layout( stream=3) out int a}) 0:? 'outbi' (layout( stream=3) out block{layout( stream=3) out int a, layout( stream=3) out int b, layout( stream=3) out int c}) 0:? 'inbi' ( in 4-element array of block{layout( stream=2) in int a}) 0:? 'insn' ( in 4-element array of block{ in int a15}) 0:? 'anon@3' (layout( stream=3) out block{layout( stream=3) out float f15}) 0:? 'anon@4' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) 0:? 'summ' ( global float) 0:? 'gl_ViewportIndex' (layout( stream=3) out int) glslang-8.13.3559/Test/baseResults/150.tesc.out000066400000000000000000002606211360464450000207170ustar00rootroot00000000000000150.tesc Shader version: 150 Requested GL_ARB_tessellation_shader vertices = 4 0:? Sequence 0:10 Function Definition: main( ( global void) 0:10 Function Parameters: 0:12 Sequence 0:12 Barrier ( global void) 0:14 Sequence 0:14 move second child to first child ( temp int) 0:14 'a' ( temp int) 0:14 Constant: 0:14 5392 (const int) 0:20 Sequence 0:20 move second child to first child ( temp 4-component vector of float) 0:20 'p' ( temp 4-component vector of float) 0:20 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:20 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:20 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:20 Constant: 0:20 1 (const int) 0:20 Constant: 0:20 0 (const int) 0:21 Sequence 0:21 move second child to first child ( temp float) 0:21 'ps' ( temp float) 0:21 gl_PointSize: direct index for structure ( in float PointSize) 0:21 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:21 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:21 Constant: 0:21 1 (const int) 0:21 Constant: 0:21 1 (const int) 0:22 Sequence 0:22 move second child to first child ( temp float) 0:22 'cd' ( temp float) 0:22 direct index ( temp float ClipDistance) 0:22 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) 0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:22 Constant: 0:22 1 (const int) 0:22 Constant: 0:22 2 (const int) 0:22 Constant: 0:22 2 (const int) 0:24 Sequence 0:24 move second child to first child ( temp int) 0:24 'pvi' ( temp int) 0:24 'gl_PatchVerticesIn' ( in int PatchVertices) 0:25 Sequence 0:25 move second child to first child ( temp int) 0:25 'pid' ( temp int) 0:25 'gl_PrimitiveID' ( in int PrimitiveID) 0:26 Sequence 0:26 move second child to first child ( temp int) 0:26 'iid' ( temp int) 0:26 'gl_InvocationID' ( in int InvocationID) 0:28 move second child to first child ( temp 4-component vector of float) 0:28 gl_Position: direct index for structure ( out 4-component vector of float Position) 0:28 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:28 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:28 'gl_InvocationID' ( in int InvocationID) 0:28 Constant: 0:28 0 (const int) 0:28 'p' ( temp 4-component vector of float) 0:29 move second child to first child ( temp float) 0:29 gl_PointSize: direct index for structure ( out float PointSize) 0:29 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:29 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:29 'gl_InvocationID' ( in int InvocationID) 0:29 Constant: 0:29 1 (const int) 0:29 'ps' ( temp float) 0:30 move second child to first child ( temp float) 0:30 direct index ( temp float ClipDistance) 0:30 gl_ClipDistance: direct index for structure ( out unsized 2-element array of float ClipDistance) 0:30 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:30 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:30 'gl_InvocationID' ( in int InvocationID) 0:30 Constant: 0:30 2 (const int) 0:30 Constant: 0:30 1 (const int) 0:30 'cd' ( temp float) 0:32 move second child to first child ( temp float) 0:32 direct index ( patch temp float TessLevelOuter) 0:32 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) 0:32 Constant: 0:32 3 (const int) 0:32 Constant: 0:32 3.200000 0:33 move second child to first child ( temp float) 0:33 direct index ( patch temp float TessLevelInner) 0:33 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1.300000 0:? Linker Objects 0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:? 'outa' ( global 4-element array of int) 0:? 'patchOut' ( patch out 4-component vector of float) 150.tese ERROR: 0:12: 'barrier' : no matching overloaded function found ERROR: 1 compilation errors. No code generated. Shader version: 150 Requested GL_ARB_tessellation_shader input primitive = quads vertex spacing = fractional_odd_spacing triangle order = cw using point mode ERROR: node is still EOpNull! 0:10 Function Definition: main( ( global void) 0:10 Function Parameters: 0:12 Sequence 0:12 Constant: 0:12 0.000000 0:14 Sequence 0:14 move second child to first child ( temp int) 0:14 'a' ( temp int) 0:14 Constant: 0:14 1512 (const int) 0:22 Sequence 0:22 move second child to first child ( temp 4-component vector of float) 0:22 'p' ( temp 4-component vector of float) 0:22 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:22 Constant: 0:22 1 (const int) 0:22 Constant: 0:22 0 (const int) 0:23 Sequence 0:23 move second child to first child ( temp float) 0:23 'ps' ( temp float) 0:23 gl_PointSize: direct index for structure ( in float PointSize) 0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:23 Constant: 0:23 1 (const int) 0:23 Constant: 0:23 1 (const int) 0:24 Sequence 0:24 move second child to first child ( temp float) 0:24 'cd' ( temp float) 0:24 direct index ( temp float ClipDistance) 0:24 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) 0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:24 Constant: 0:24 1 (const int) 0:24 Constant: 0:24 2 (const int) 0:24 Constant: 0:24 2 (const int) 0:26 Sequence 0:26 move second child to first child ( temp int) 0:26 'pvi' ( temp int) 0:26 'gl_PatchVerticesIn' ( in int PatchVertices) 0:27 Sequence 0:27 move second child to first child ( temp int) 0:27 'pid' ( temp int) 0:27 'gl_PrimitiveID' ( in int PrimitiveID) 0:28 Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 'tc' ( temp 3-component vector of float) 0:28 'gl_TessCoord' ( in 3-component vector of float TessCoord) 0:29 Sequence 0:29 move second child to first child ( temp float) 0:29 'tlo' ( temp float) 0:29 direct index ( patch temp float TessLevelOuter) 0:29 'gl_TessLevelOuter' ( patch in 4-element array of float TessLevelOuter) 0:29 Constant: 0:29 3 (const int) 0:30 Sequence 0:30 move second child to first child ( temp float) 0:30 'tli' ( temp float) 0:30 direct index ( patch temp float TessLevelInner) 0:30 'gl_TessLevelInner' ( patch in 2-element array of float TessLevelInner) 0:30 Constant: 0:30 1 (const int) 0:32 move second child to first child ( temp 4-component vector of float) 0:32 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) 0:32 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:32 Constant: 0:32 0 (const uint) 0:32 'p' ( temp 4-component vector of float) 0:33 move second child to first child ( temp float) 0:33 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) 0:33 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:33 Constant: 0:33 1 (const uint) 0:33 'ps' ( temp float) 0:34 move second child to first child ( temp float) 0:34 direct index ( temp float ClipDistance) 0:34 gl_ClipDistance: direct index for structure ( out unsized 3-element array of float ClipDistance) 0:34 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:34 Constant: 0:34 2 (const uint) 0:34 Constant: 0:34 2 (const int) 0:34 'cd' ( temp float) 0:? Linker Objects 0:? 'patchIn' ( patch in 4-component vector of float) 0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) 400.tesc ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main() ERROR: 0:64: 'vertices' : can only apply to 'out' ERROR: 0:65: 'vertices' : cannot change previously set layout value ERROR: 0:69: '[' : array index out of range '4' ERROR: 0:71: '' : tessellation control barrier() must be in main() ERROR: 0:74: 'in' : type must be an array: ina ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized ERROR: 0:83: 'location' : overlapping use of location 4 ERROR: 0:87: 'location' : overlapping use of location 4 ERROR: 0:104: '' : precise qualifier must appear first ERROR: 0:105: '' : precise qualifier must appear first ERROR: 0:105: '' : precise qualifier must appear first ERROR: 0:109: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group ERROR: 0:110: 'gl_ViewIndex' : required extension not requested: GL_EXT_multiview ERROR: 23 compilation errors. No code generated. Shader version: 400 Requested GL_ARB_separate_shader_objects Requested GL_EXT_device_group Requested GL_EXT_multiview vertices = 4 ERROR: node is still EOpNull! 0:13 Function Definition: main( ( global void) 0:13 Function Parameters: 0:15 Sequence 0:15 Barrier ( global void) 0:17 Sequence 0:17 move second child to first child ( temp int) 0:17 'a' ( temp int) 0:17 Constant: 0:17 5392 (const int) 0:23 Sequence 0:23 move second child to first child ( temp 4-component vector of float) 0:23 'p' ( temp 4-component vector of float) 0:23 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:23 Constant: 0:23 1 (const int) 0:23 Constant: 0:23 0 (const int) 0:24 Sequence 0:24 move second child to first child ( temp float) 0:24 'ps' ( temp float) 0:24 gl_PointSize: direct index for structure ( in float PointSize) 0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:24 Constant: 0:24 1 (const int) 0:24 Constant: 0:24 1 (const int) 0:25 Sequence 0:25 move second child to first child ( temp float) 0:25 'cd' ( temp float) 0:25 direct index ( temp float ClipDistance) 0:25 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) 0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:25 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:25 Constant: 0:25 1 (const int) 0:25 Constant: 0:25 2 (const int) 0:25 Constant: 0:25 2 (const int) 0:27 Sequence 0:27 move second child to first child ( temp int) 0:27 'pvi' ( temp int) 0:27 'gl_PatchVerticesIn' ( in int PatchVertices) 0:28 Sequence 0:28 move second child to first child ( temp int) 0:28 'pid' ( temp int) 0:28 'gl_PrimitiveID' ( in int PrimitiveID) 0:29 Sequence 0:29 move second child to first child ( temp int) 0:29 'iid' ( temp int) 0:29 'gl_InvocationID' ( in int InvocationID) 0:31 move second child to first child ( temp 4-component vector of float) 0:31 gl_Position: direct index for structure ( out 4-component vector of float Position) 0:31 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:31 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:31 'gl_InvocationID' ( in int InvocationID) 0:31 Constant: 0:31 0 (const int) 0:31 'p' ( temp 4-component vector of float) 0:32 move second child to first child ( temp float) 0:32 gl_PointSize: direct index for structure ( out float PointSize) 0:32 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:32 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:32 'gl_InvocationID' ( in int InvocationID) 0:32 Constant: 0:32 1 (const int) 0:32 'ps' ( temp float) 0:33 move second child to first child ( temp float) 0:33 direct index ( temp float ClipDistance) 0:33 gl_ClipDistance: direct index for structure ( out unsized 2-element array of float ClipDistance) 0:33 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:33 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:33 'gl_InvocationID' ( in int InvocationID) 0:33 Constant: 0:33 2 (const int) 0:33 Constant: 0:33 1 (const int) 0:33 'cd' ( temp float) 0:35 move second child to first child ( temp float) 0:35 direct index ( patch temp float TessLevelOuter) 0:35 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) 0:35 Constant: 0:35 3 (const int) 0:35 Constant: 0:35 3.200000 0:36 move second child to first child ( temp float) 0:36 direct index ( patch temp float TessLevelInner) 0:36 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) 0:36 Constant: 0:36 1 (const int) 0:36 Constant: 0:36 1.300000 0:38 Test condition and select ( temp void) 0:38 Condition 0:38 Compare Greater Than ( temp bool) 0:38 'a' ( temp int) 0:38 Constant: 0:38 10 (const int) 0:38 true case 0:39 Barrier ( global void) 0:38 false case 0:41 Barrier ( global void) 0:43 Barrier ( global void) 0:47 Loop with condition not tested first 0:47 Loop Condition 0:47 Compare Greater Than ( temp bool) 0:47 'a' ( temp int) 0:47 Constant: 0:47 10 (const int) 0:47 Loop Body 0:46 Sequence 0:46 Barrier ( global void) 0:49 switch 0:49 condition 0:49 'a' ( temp int) 0:49 body 0:49 Sequence 0:50 default: 0:? Sequence 0:51 Barrier ( global void) 0:52 Branch: Break 0:54 Test condition and select ( temp int) 0:54 Condition 0:54 Compare Less Than ( temp bool) 0:54 'a' ( temp int) 0:54 Constant: 0:54 12 (const int) 0:54 true case 0:54 'a' ( temp int) 0:54 false case 0:54 Comma ( temp int) 0:54 Barrier ( global void) 0:54 'a' ( temp int) 0:56 Sequence 0:56 Barrier ( global void) 0:59 Branch: Return 0:61 Barrier ( global void) 0:67 Function Definition: foo( ( global void) 0:67 Function Parameters: 0:69 Sequence 0:69 gl_PointSize: direct index for structure ( out float PointSize) 0:69 direct index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:69 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:69 Constant: 0:69 4 (const int) 0:69 Constant: 0:69 1 (const int) 0:71 Barrier ( global void) 0:91 Function Definition: foop( ( global void) 0:91 Function Parameters: 0:? Sequence 0:95 multiply second child into first child ( temp 3-component vector of float) 0:95 'pv3' ( noContraction temp 3-component vector of float) 0:95 'pv3' ( noContraction temp 3-component vector of float) 0:96 move second child to first child ( temp 3-component vector of float) 0:96 'pv3' ( noContraction temp 3-component vector of float) 0:96 fma ( global 3-component vector of float) 0:96 'pv3' ( noContraction temp 3-component vector of float) 0:96 'pv3' ( noContraction temp 3-component vector of float) 0:96 'pv3' ( noContraction temp 3-component vector of float) 0:97 move second child to first child ( temp double) 0:97 'd' ( noContraction temp double) 0:97 fma ( global double) 0:97 'd' ( noContraction temp double) 0:97 'd' ( noContraction temp double) 0:97 'd' ( noContraction temp double) 0:107 Function Definition: devi( ( global void) 0:107 Function Parameters: 0:109 Sequence 0:109 'gl_DeviceIndex' ( in int DeviceIndex) 0:110 'gl_ViewIndex' ( in int ViewIndex) 0:121 Function Definition: devie( ( global void) 0:121 Function Parameters: 0:123 Sequence 0:123 'gl_DeviceIndex' ( in int DeviceIndex) 0:124 'gl_ViewIndex' ( in int ViewIndex) 0:? Linker Objects 0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}) 0:? 'outa' ( global 4-element array of int) 0:? 'patchIn' ( patch in 4-component vector of float) 0:? 'patchOut' ( patch out 4-component vector of float) 0:? 'ina' ( in 2-component vector of float) 0:? 'inb' ( in 32-element array of 2-component vector of float) 0:? 'inc' ( in 32-element array of 2-component vector of float) 0:? 'ind' ( in 32-element array of 2-component vector of float) 0:? 'ivla' (layout( location=3) in 32-element array of 4-component vector of float) 0:? 'ivlb' (layout( location=4) in 32-element array of 4-component vector of float) 0:? 'ivlc' (layout( location=4) in 32-element array of 4-component vector of float) 0:? 'ovla' (layout( location=3) out 4-element array of 4-component vector of float) 0:? 'ovlb' (layout( location=4) out 4-element array of 4-component vector of float) 0:? 'ovlc' (layout( location=4) out 4-element array of 4-component vector of float) 0:? 'pv3' ( noContraction temp 3-component vector of float) 0:? 'pinbi' ( patch out block{ out int a}) 0:? 'badOrder' ( invariant noContraction out 4-element array of 4-component vector of float) 400.tese ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:5: 'triangles' : cannot change previously set input primitive ERROR: 0:6: 'isolines' : cannot change previously set input primitive ERROR: 0:8: 'ccw' : cannot change previously set vertex order ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader ERROR: 0:22: 'barrier' : no matching overloaded function found ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use ERROR: 0:64: 'quads' : cannot apply to 'out' ERROR: 0:64: 'cw' : can only apply to 'in' ERROR: 0:65: 'triangles' : cannot apply to 'out' ERROR: 0:66: 'isolines' : cannot apply to 'out' ERROR: 0:67: 'cw' : can only apply to 'in' ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' ERROR: 0:69: 'equal_spacing' : can only apply to 'in' ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' ERROR: 0:71: 'point_mode' : can only apply to 'in' ERROR: 0:73: 'in' : type must be an array: ina ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized ERROR: 0:78: 'in' : type must be an array: bla ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized ERROR: 0:96: 'location' : overlapping use of location 24 ERROR: 0:99: 'location' : overlapping use of location 24 ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved ERROR: 0:109: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group ERROR: 0:110: 'gl_ViewIndex' : required extension not requested: GL_EXT_multiview ERROR: 31 compilation errors. No code generated. Shader version: 400 Requested GL_ARB_separate_shader_objects Requested GL_EXT_device_group Requested GL_EXT_multiview input primitive = quads vertex spacing = fractional_odd_spacing triangle order = cw using point mode ERROR: node is still EOpNull! 0:20 Function Definition: main( ( global void) 0:20 Function Parameters: 0:22 Sequence 0:22 Constant: 0:22 0.000000 0:24 Sequence 0:24 move second child to first child ( temp int) 0:24 'a' ( temp int) 0:24 Constant: 0:24 1512 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of float) 0:32 'p' ( temp 4-component vector of float) 0:32 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:32 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:32 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:32 Constant: 0:32 1 (const int) 0:32 Constant: 0:32 0 (const int) 0:33 Sequence 0:33 move second child to first child ( temp float) 0:33 'ps' ( temp float) 0:33 gl_PointSize: direct index for structure ( in float PointSize) 0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:33 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1 (const int) 0:34 Sequence 0:34 move second child to first child ( temp float) 0:34 'cd' ( temp float) 0:34 direct index ( temp float ClipDistance) 0:34 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) 0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:34 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 2 (const int) 0:34 Constant: 0:34 2 (const int) 0:36 Sequence 0:36 move second child to first child ( temp int) 0:36 'pvi' ( temp int) 0:36 'gl_PatchVerticesIn' ( in int PatchVertices) 0:37 Sequence 0:37 move second child to first child ( temp int) 0:37 'pid' ( temp int) 0:37 'gl_PrimitiveID' ( in int PrimitiveID) 0:38 Sequence 0:38 move second child to first child ( temp 3-component vector of float) 0:38 'tc' ( temp 3-component vector of float) 0:38 'gl_TessCoord' ( in 3-component vector of float TessCoord) 0:39 Sequence 0:39 move second child to first child ( temp float) 0:39 'tlo' ( temp float) 0:39 direct index ( patch temp float TessLevelOuter) 0:39 'gl_TessLevelOuter' ( patch in 4-element array of float TessLevelOuter) 0:39 Constant: 0:39 3 (const int) 0:40 Sequence 0:40 move second child to first child ( temp float) 0:40 'tli' ( temp float) 0:40 direct index ( patch temp float TessLevelInner) 0:40 'gl_TessLevelInner' ( patch in 2-element array of float TessLevelInner) 0:40 Constant: 0:40 1 (const int) 0:42 move second child to first child ( temp 4-component vector of float) 0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) 0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:42 Constant: 0:42 0 (const uint) 0:42 'p' ( temp 4-component vector of float) 0:43 move second child to first child ( temp float) 0:43 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) 0:43 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:43 Constant: 0:43 1 (const uint) 0:43 'ps' ( temp float) 0:44 move second child to first child ( temp float) 0:44 direct index ( temp float ClipDistance) 0:44 gl_ClipDistance: direct index for structure ( out unsized 3-element array of float ClipDistance) 0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:44 Constant: 0:44 2 (const uint) 0:44 Constant: 0:44 2 (const int) 0:44 'cd' ( temp float) 0:107 Function Definition: devi( ( global void) 0:107 Function Parameters: 0:109 Sequence 0:109 'gl_DeviceIndex' ( in int DeviceIndex) 0:110 'gl_ViewIndex' ( in int ViewIndex) 0:121 Function Definition: devie( ( global void) 0:121 Function Parameters: 0:123 Sequence 0:123 'gl_DeviceIndex' ( in int DeviceIndex) 0:124 'gl_ViewIndex' ( in int ViewIndex) 0:? Linker Objects 0:? 'patchIn' ( patch in 4-component vector of float) 0:? 'patchOut' ( patch out 4-component vector of float) 0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:? 'badp1' ( smooth patch in 4-component vector of float) 0:? 'badp2' ( flat patch in 4-component vector of float) 0:? 'badp3' ( noperspective patch in 4-component vector of float) 0:? 'badp4' ( patch sample in 3-component vector of float) 0:? 'gl_in' ( in 32-element array of block{ in 1-element array of float ClipDistance gl_ClipDistance}) 0:? 'ina' ( in 2-component vector of float) 0:? 'inb' ( in 32-element array of 2-component vector of float) 0:? 'inc' ( in 32-element array of 2-component vector of float) 0:? 'ind' ( in 32-element array of 2-component vector of float) 0:? 'bla' ( in block{ in int f}) 0:? 'blb' ( in 32-element array of block{ in int f}) 0:? 'blc' ( in 32-element array of block{ in int f}) 0:? 'bld' ( in 32-element array of block{ in int f}) 0:? 'ivla' (layout( location=23) in 32-element array of 4-component vector of float) 0:? 'ivlb' (layout( location=24) in 32-element array of 4-component vector of float) 0:? 'ivlc' (layout( location=24) in 32-element array of 4-component vector of float) 0:? 'ovla' (layout( location=23) out 2-element array of 4-component vector of float) 0:? 'ovlb' (layout( location=24) out 2-element array of 4-component vector of float) 0:? 'pinbi' ( patch in block{ in int a}) 410.tesc ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier ERROR: 1 compilation errors. No code generated. Shader version: 400 vertices = -1 ERROR: node is still EOpNull! 0:8 Function Definition: main( ( global void) 0:8 Function Parameters: 0:? Linker Objects 0:? 'gl_out' ( out unsized 1-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance}) 0:? 'outa' ( global 1-element array of int) 0:? 'patchOut' ( patch out 4-component vector of float) 420.tesc ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb ERROR: 0:26: 'gl_PointSize' : no such field in structure ERROR: 0:26: 'assign' : cannot convert from ' temp float' to ' temp block{ out 4-component vector of float Position gl_Position}' ERROR: 0:29: 'out' : type must be an array: outf ERROR: 0:43: 'vertices' : must be greater than 0 ERROR: 7 compilation errors. No code generated. Shader version: 420 Requested GL_ARB_separate_shader_objects vertices = 4 ERROR: node is still EOpNull! 0:15 Function Definition: main( ( global void) 0:15 Function Parameters: 0:17 Sequence 0:17 Sequence 0:17 move second child to first child ( temp 4-component vector of float) 0:17 'p' ( temp 4-component vector of float) 0:17 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:17 Constant: 0:17 1 (const int) 0:17 Constant: 0:17 0 (const int) 0:18 Sequence 0:18 move second child to first child ( temp float) 0:18 'ps' ( temp float) 0:18 gl_PointSize: direct index for structure ( in float PointSize) 0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:18 Constant: 0:18 1 (const int) 0:18 Constant: 0:18 1 (const int) 0:19 Sequence 0:19 move second child to first child ( temp float) 0:19 'cd' ( temp float) 0:19 direct index ( temp float ClipDistance) 0:19 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) 0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:19 Constant: 0:19 1 (const int) 0:19 Constant: 0:19 2 (const int) 0:19 Constant: 0:19 2 (const int) 0:21 Sequence 0:21 move second child to first child ( temp int) 0:21 'pvi' ( temp int) 0:21 'gl_PatchVerticesIn' ( in int PatchVertices) 0:22 Sequence 0:22 move second child to first child ( temp int) 0:22 'pid' ( temp int) 0:22 'gl_PrimitiveID' ( in int PrimitiveID) 0:23 Sequence 0:23 move second child to first child ( temp int) 0:23 'iid' ( temp int) 0:23 'gl_InvocationID' ( in int InvocationID) 0:25 move second child to first child ( temp 4-component vector of float) 0:25 gl_Position: direct index for structure ( out 4-component vector of float Position) 0:25 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) 0:25 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:25 'gl_InvocationID' ( in int InvocationID) 0:25 Constant: 0:25 0 (const int) 0:25 'p' ( temp 4-component vector of float) 0:26 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) 0:26 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:26 'gl_InvocationID' ( in int InvocationID) 0:34 Function Definition: foo( ( global void) 0:34 Function Parameters: 0:36 Sequence 0:36 Test condition and select ( temp void) 0:36 Condition 0:36 logical-or ( temp bool) 0:36 Compare Not Equal ( temp bool) 0:36 Constant: 0:36 -0.625000 0:36 -0.500000 0:36 -0.375000 0:36 -0.250000 0:36 -0.375000 0:36 -0.250000 0:36 -0.125000 0:36 0.000000 0:36 direct index (layout( location=0) temp 2X4 matrix of double) 0:36 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) 0:36 Constant: 0:36 0 (const int) 0:37 Compare Not Equal ( temp bool) 0:37 Constant: 0:37 0.375000 0:37 0.500000 0:37 0.625000 0:37 0.750000 0:37 0.625000 0:37 0.750000 0:37 0.875000 0:37 -0.625000 0:37 direct index (layout( location=12) temp 2X4 matrix of double) 0:37 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) 0:37 Constant: 0:37 0 (const int) 0:36 true case is null 0:? Linker Objects 0:? 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:? 'a' ( out 3-element array of int) 0:? 'outb' ( out 5-element array of int) 0:? 'outc' ( out 4-element array of int) 0:? 'outf' ( out float) 0:? 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) 0:? 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) 420.tese ERROR: 0:7: '=' : cannot convert from ' const 3-element array of float' to ' global 2-element array of float' ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): temp 2-component vector of float ERROR: 0:9: 'initializer list' : wrong number of matrix columns: temp 3X3 matrix of float ERROR: 0:10: 'initializer list' : wrong number of matrix columns: temp 2X2 matrix of float ERROR: 0:25: 'initializer list' : wrong number of structure members ERROR: 0:27: '=' : cannot convert from ' const bool' to ' global int' ERROR: 0:28: 'constructor' : cannot convert parameter 2 from ' const float' to ' temp 4-component vector of float' ERROR: 0:29: 'constructor' : cannot convert parameter 2 from ' const 2X2 matrix of float' to ' const 4-component vector of float' ERROR: 0:29: ' const 2-element array of 4-component vector of float' : cannot construct with these arguments ERROR: 0:29: '=' : cannot convert from ' const float' to ' global 2-element array of 4-component vector of float' ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float ERROR: 0:40: 'constructor' : cannot convert parameter 1 from ' const structure{ global 4-component vector of float a, global 4-component vector of float b}' to ' temp structure{ global float s, global float t}' ERROR: 0:70: 'initializer list' : wrong number of structure members ERROR: 13 compilation errors. No code generated. Shader version: 420 input primitive = none vertex spacing = none triangle order = none ERROR: node is still EOpNull! 0:4 Sequence 0:4 move second child to first child ( temp 2X2 matrix of float) 0:4 'b' ( global 2X2 matrix of float) 0:4 Constant: 0:4 1.000000 0:4 0.000000 0:4 0.000000 0:4 1.000000 0:15 Sequence 0:15 move second child to first child ( temp structure{ global float a, global int b}) 0:15 'e' ( global structure{ global float a, global int b}) 0:15 Constant: 0:15 1.200000 0:15 2 (const int) 0:20 Sequence 0:20 move second child to first child ( temp structure{ global float a, global int b}) 0:20 'e2' ( global structure{ global float a, global int b}) 0:20 Constant: 0:20 1.000000 0:20 3 (const int) 0:42 Sequence 0:42 move second child to first child ( temp 5-element array of float) 0:42 'b5' ( global 5-element array of float) 0:42 Constant: 0:42 3.400000 0:42 4.200000 0:42 5.000000 0:42 5.200000 0:42 1.100000 0:55 Sequence 0:55 move second child to first child ( temp structure{ global int f}) 0:55 'single1' ( global structure{ global int f}) 0:55 Constant: 0:55 10 (const int) 0:58 Sequence 0:58 move second child to first child ( temp structure{ global 2-component vector of uint v}) 0:58 'single2' ( global structure{ global 2-component vector of uint v}) 0:58 Constant: 0:58 1 (const uint) 0:58 2 (const uint) 0:61 Sequence 0:61 move second child to first child ( temp structure{ global structure{ global int f} s1}) 0:61 'single3' ( global structure{ global structure{ global int f} s1}) 0:61 Constant: 0:61 3 (const int) 0:64 Sequence 0:64 move second child to first child ( temp structure{ global structure{ global 2-component vector of uint v} s1}) 0:64 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) 0:64 Constant: 0:64 4 (const uint) 0:64 5 (const uint) 0:79 Sequence 0:79 move second child to first child ( temp 3-component vector of float) 0:79 'av3' ( global 3-component vector of float) 0:79 Construct vec3 ( global 3-component vector of float) 0:79 'vc1' ( global float) 0:79 'vc2' ( global float) 0:79 'vc3' ( global float) 0:80 Sequence 0:80 move second child to first child ( temp 3-component vector of float) 0:80 'bv3' ( global 3-component vector of float) 0:80 Construct vec3 ( temp 3-component vector of float) 0:80 'vc1' ( global float) 0:80 'vc2' ( global float) 0:80 'vc3' ( global float) 0:82 Function Definition: main( ( global void) 0:82 Function Parameters: 0:84 Sequence 0:84 MemoryBarrier ( global void) 0:86 Test condition and select ( temp void) 0:86 Condition 0:86 Compare Equal ( temp bool) 0:86 Constant: 0:86 1 (const uint) 0:86 2 (const uint) 0:86 3.000000 0:86 4.000000 0:86 0.000000 0:86 0.000000 0:86 0.000000 0:86 4.000000 0:86 0.000000 0:86 5.000000 0:86 6.000000 0:86 0.000000 0:86 0.000000 0:86 0.000000 0:86 6.000000 0:86 0.000000 0:86 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) 0:86 true case is null 0:88 Test condition and select ( temp void) 0:88 Condition 0:88 Constant: 0:88 true (const bool) 0:88 true case is null 0:? Linker Objects 0:? 'a' ( const 2X2 matrix of float) 0:? 1.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:? 'b' ( global 2X2 matrix of float) 0:? 'c' ( const 2X2 matrix of float) 0:? 1.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:? 'a2' ( global 2-element array of float) 0:? 'b2' ( global 2-component vector of float) 0:? 'c2' ( global 3X3 matrix of float) 0:? 'd' ( global 2X2 matrix of float) 0:? 'e' ( global structure{ global float a, global int b}) 0:? 'e2' ( global structure{ global float a, global int b}) 0:? 'e3' ( global structure{ global float a, global int b}) 0:? 'a3' ( global int) 0:? 'b3' ( global 2-element array of 4-component vector of float) 0:? 'b4' ( global 2-element array of 4-component vector of float) 0:? 'c3' ( global 4X2 matrix of float) 0:? 'd2' ( global unsized 1-element array of structure{ global float s, global float t}) 0:? 'b5' ( global 5-element array of float) 0:? 'single1' ( global structure{ global int f}) 0:? 'single2' ( global structure{ global 2-component vector of uint v}) 0:? 'single3' ( global structure{ global structure{ global int f} s1}) 0:? 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) 0:? 'constructed' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3.000000 0:? 4.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 4.000000 0:? 0.000000 0:? 5.000000 0:? 6.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 6.000000 0:? 0.000000 0:? 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) 0:? 'curlyInit' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3.000000 0:? 4.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 4.000000 0:? 0.000000 0:? 5.000000 0:? 6.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 6.000000 0:? 0.000000 0:? 'vc1' ( global float) 0:? 'vc2' ( global float) 0:? 'vc3' ( global float) 0:? 'av3' ( global 3-component vector of float) 0:? 'bv3' ( global 3-component vector of float) Linked tessellation control stage: ERROR: Linking tessellation control stage: can't handle multiple entry points per stage ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( ERROR: Linking tessellation control stage: can't handle multiple entry points per stage ERROR: Linking tessellation control stage: Contradictory layout vertices values ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( ERROR: Linking tessellation control stage: Types must match: outa: " global 4-element array of int" versus " global 1-element array of int" ERROR: Linking tessellation control stage: can't handle multiple entry points per stage ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: foo( ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( ERROR: Linking tessellation control stage: Types must match: gl_out: " out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}" versus " out 3-element array of block{ out 4-component vector of float Position gl_Position}" Linked tessellation evaluation stage: ERROR: Linking tessellation evaluation stage: can't handle multiple entry points per stage ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( ERROR: Linking tessellation evaluation stage: can't handle multiple entry points per stage ERROR: Linking tessellation evaluation stage: Contradictory input layout primitives ERROR: Linking tessellation evaluation stage: Contradictory input vertex spacing ERROR: Linking tessellation evaluation stage: Contradictory triangle ordering ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( Shader version: 420 Requested GL_ARB_separate_shader_objects Requested GL_ARB_tessellation_shader Requested GL_EXT_device_group Requested GL_EXT_multiview vertices = 4 0:? Sequence 0:10 Function Definition: main( ( global void) 0:10 Function Parameters: 0:12 Sequence 0:12 Barrier ( global void) 0:14 Sequence 0:14 move second child to first child ( temp int) 0:14 'a' ( temp int) 0:14 Constant: 0:14 5392 (const int) 0:20 Sequence 0:20 move second child to first child ( temp 4-component vector of float) 0:20 'p' ( temp 4-component vector of float) 0:20 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:20 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:20 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:20 Constant: 0:20 1 (const int) 0:20 Constant: 0:20 0 (const int) 0:21 Sequence 0:21 move second child to first child ( temp float) 0:21 'ps' ( temp float) 0:21 gl_PointSize: direct index for structure ( in float PointSize) 0:21 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:21 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:21 Constant: 0:21 1 (const int) 0:21 Constant: 0:21 1 (const int) 0:22 Sequence 0:22 move second child to first child ( temp float) 0:22 'cd' ( temp float) 0:22 direct index ( temp float ClipDistance) 0:22 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) 0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:22 Constant: 0:22 1 (const int) 0:22 Constant: 0:22 2 (const int) 0:22 Constant: 0:22 2 (const int) 0:24 Sequence 0:24 move second child to first child ( temp int) 0:24 'pvi' ( temp int) 0:24 'gl_PatchVerticesIn' ( in int PatchVertices) 0:25 Sequence 0:25 move second child to first child ( temp int) 0:25 'pid' ( temp int) 0:25 'gl_PrimitiveID' ( in int PrimitiveID) 0:26 Sequence 0:26 move second child to first child ( temp int) 0:26 'iid' ( temp int) 0:26 'gl_InvocationID' ( in int InvocationID) 0:28 move second child to first child ( temp 4-component vector of float) 0:28 gl_Position: direct index for structure ( out 4-component vector of float Position) 0:28 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:28 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:28 'gl_InvocationID' ( in int InvocationID) 0:28 Constant: 0:28 0 (const int) 0:28 'p' ( temp 4-component vector of float) 0:29 move second child to first child ( temp float) 0:29 gl_PointSize: direct index for structure ( out float PointSize) 0:29 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:29 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:29 'gl_InvocationID' ( in int InvocationID) 0:29 Constant: 0:29 1 (const int) 0:29 'ps' ( temp float) 0:30 move second child to first child ( temp float) 0:30 direct index ( temp float ClipDistance) 0:30 gl_ClipDistance: direct index for structure ( out 2-element array of float ClipDistance) 0:30 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:30 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:30 'gl_InvocationID' ( in int InvocationID) 0:30 Constant: 0:30 2 (const int) 0:30 Constant: 0:30 1 (const int) 0:30 'cd' ( temp float) 0:32 move second child to first child ( temp float) 0:32 direct index ( patch temp float TessLevelOuter) 0:32 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) 0:32 Constant: 0:32 3 (const int) 0:32 Constant: 0:32 3.200000 0:33 move second child to first child ( temp float) 0:33 direct index ( patch temp float TessLevelInner) 0:33 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1.300000 0:13 Function Definition: main( ( global void) 0:13 Function Parameters: 0:15 Sequence 0:15 Barrier ( global void) 0:17 Sequence 0:17 move second child to first child ( temp int) 0:17 'a' ( temp int) 0:17 Constant: 0:17 5392 (const int) 0:23 Sequence 0:23 move second child to first child ( temp 4-component vector of float) 0:23 'p' ( temp 4-component vector of float) 0:23 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:23 Constant: 0:23 1 (const int) 0:23 Constant: 0:23 0 (const int) 0:24 Sequence 0:24 move second child to first child ( temp float) 0:24 'ps' ( temp float) 0:24 gl_PointSize: direct index for structure ( in float PointSize) 0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:24 Constant: 0:24 1 (const int) 0:24 Constant: 0:24 1 (const int) 0:25 Sequence 0:25 move second child to first child ( temp float) 0:25 'cd' ( temp float) 0:25 direct index ( temp float ClipDistance) 0:25 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) 0:25 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:25 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:25 Constant: 0:25 1 (const int) 0:25 Constant: 0:25 2 (const int) 0:25 Constant: 0:25 2 (const int) 0:27 Sequence 0:27 move second child to first child ( temp int) 0:27 'pvi' ( temp int) 0:27 'gl_PatchVerticesIn' ( in int PatchVertices) 0:28 Sequence 0:28 move second child to first child ( temp int) 0:28 'pid' ( temp int) 0:28 'gl_PrimitiveID' ( in int PrimitiveID) 0:29 Sequence 0:29 move second child to first child ( temp int) 0:29 'iid' ( temp int) 0:29 'gl_InvocationID' ( in int InvocationID) 0:31 move second child to first child ( temp 4-component vector of float) 0:31 gl_Position: direct index for structure ( out 4-component vector of float Position) 0:31 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:31 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:31 'gl_InvocationID' ( in int InvocationID) 0:31 Constant: 0:31 0 (const int) 0:31 'p' ( temp 4-component vector of float) 0:32 move second child to first child ( temp float) 0:32 gl_PointSize: direct index for structure ( out float PointSize) 0:32 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:32 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:32 'gl_InvocationID' ( in int InvocationID) 0:32 Constant: 0:32 1 (const int) 0:32 'ps' ( temp float) 0:33 move second child to first child ( temp float) 0:33 direct index ( temp float ClipDistance) 0:33 gl_ClipDistance: direct index for structure ( out 2-element array of float ClipDistance) 0:33 indirect index ( temp block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:33 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:33 'gl_InvocationID' ( in int InvocationID) 0:33 Constant: 0:33 2 (const int) 0:33 Constant: 0:33 1 (const int) 0:33 'cd' ( temp float) 0:35 move second child to first child ( temp float) 0:35 direct index ( patch temp float TessLevelOuter) 0:35 'gl_TessLevelOuter' ( patch out 4-element array of float TessLevelOuter) 0:35 Constant: 0:35 3 (const int) 0:35 Constant: 0:35 3.200000 0:36 move second child to first child ( temp float) 0:36 direct index ( patch temp float TessLevelInner) 0:36 'gl_TessLevelInner' ( patch out 2-element array of float TessLevelInner) 0:36 Constant: 0:36 1 (const int) 0:36 Constant: 0:36 1.300000 0:38 Test condition and select ( temp void) 0:38 Condition 0:38 Compare Greater Than ( temp bool) 0:38 'a' ( temp int) 0:38 Constant: 0:38 10 (const int) 0:38 true case 0:39 Barrier ( global void) 0:38 false case 0:41 Barrier ( global void) 0:43 Barrier ( global void) 0:47 Loop with condition not tested first 0:47 Loop Condition 0:47 Compare Greater Than ( temp bool) 0:47 'a' ( temp int) 0:47 Constant: 0:47 10 (const int) 0:47 Loop Body 0:46 Sequence 0:46 Barrier ( global void) 0:49 switch 0:49 condition 0:49 'a' ( temp int) 0:49 body 0:49 Sequence 0:50 default: 0:? Sequence 0:51 Barrier ( global void) 0:52 Branch: Break 0:54 Test condition and select ( temp int) 0:54 Condition 0:54 Compare Less Than ( temp bool) 0:54 'a' ( temp int) 0:54 Constant: 0:54 12 (const int) 0:54 true case 0:54 'a' ( temp int) 0:54 false case 0:54 Comma ( temp int) 0:54 Barrier ( global void) 0:54 'a' ( temp int) 0:56 Sequence 0:56 Barrier ( global void) 0:59 Branch: Return 0:61 Barrier ( global void) 0:8 Function Definition: main( ( global void) 0:8 Function Parameters: 0:15 Function Definition: main( ( global void) 0:15 Function Parameters: 0:17 Sequence 0:17 Sequence 0:17 move second child to first child ( temp 4-component vector of float) 0:17 'p' ( temp 4-component vector of float) 0:17 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:17 Constant: 0:17 1 (const int) 0:17 Constant: 0:17 0 (const int) 0:18 Sequence 0:18 move second child to first child ( temp float) 0:18 'ps' ( temp float) 0:18 gl_PointSize: direct index for structure ( in float PointSize) 0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:18 Constant: 0:18 1 (const int) 0:18 Constant: 0:18 1 (const int) 0:19 Sequence 0:19 move second child to first child ( temp float) 0:19 'cd' ( temp float) 0:19 direct index ( temp float ClipDistance) 0:19 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) 0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:19 Constant: 0:19 1 (const int) 0:19 Constant: 0:19 2 (const int) 0:19 Constant: 0:19 2 (const int) 0:21 Sequence 0:21 move second child to first child ( temp int) 0:21 'pvi' ( temp int) 0:21 'gl_PatchVerticesIn' ( in int PatchVertices) 0:22 Sequence 0:22 move second child to first child ( temp int) 0:22 'pid' ( temp int) 0:22 'gl_PrimitiveID' ( in int PrimitiveID) 0:23 Sequence 0:23 move second child to first child ( temp int) 0:23 'iid' ( temp int) 0:23 'gl_InvocationID' ( in int InvocationID) 0:25 move second child to first child ( temp 4-component vector of float) 0:25 gl_Position: direct index for structure ( out 4-component vector of float Position) 0:25 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) 0:25 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:25 'gl_InvocationID' ( in int InvocationID) 0:25 Constant: 0:25 0 (const int) 0:25 'p' ( temp 4-component vector of float) 0:26 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) 0:26 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:26 'gl_InvocationID' ( in int InvocationID) 0:? Linker Objects 0:? 'gl_out' ( out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:? 'outa' ( global 4-element array of int) 0:? 'patchOut' ( patch out 4-component vector of float) 0:? 'patchIn' ( patch in 4-component vector of float) 0:? 'ina' ( in 2-component vector of float) 0:? 'inb' ( in 32-element array of 2-component vector of float) 0:? 'inc' ( in 32-element array of 2-component vector of float) 0:? 'ind' ( in 32-element array of 2-component vector of float) 0:? 'ivla' (layout( location=3) in 32-element array of 4-component vector of float) 0:? 'ivlb' (layout( location=4) in 32-element array of 4-component vector of float) 0:? 'ivlc' (layout( location=4) in 32-element array of 4-component vector of float) 0:? 'ovla' (layout( location=3) out 4-element array of 4-component vector of float) 0:? 'ovlb' (layout( location=4) out 4-element array of 4-component vector of float) 0:? 'ovlc' (layout( location=4) out 4-element array of 4-component vector of float) 0:? 'pv3' ( noContraction temp 3-component vector of float) 0:? 'pinbi' ( patch out block{ out int a}) 0:? 'badOrder' ( invariant noContraction out 4-element array of 4-component vector of float) 0:? 'a' ( out 3-element array of int) 0:? 'outb' ( out 5-element array of int) 0:? 'outc' ( out 4-element array of int) 0:? 'outf' ( out float) 0:? 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) 0:? 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) Shader version: 420 Requested GL_ARB_separate_shader_objects Requested GL_ARB_tessellation_shader Requested GL_EXT_device_group Requested GL_EXT_multiview input primitive = quads vertex spacing = fractional_odd_spacing triangle order = cw using point mode ERROR: node is still EOpNull! 0:10 Function Definition: main( ( global void) 0:10 Function Parameters: 0:12 Sequence 0:12 Constant: 0:12 0.000000 0:14 Sequence 0:14 move second child to first child ( temp int) 0:14 'a' ( temp int) 0:14 Constant: 0:14 1512 (const int) 0:22 Sequence 0:22 move second child to first child ( temp 4-component vector of float) 0:22 'p' ( temp 4-component vector of float) 0:22 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:22 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:22 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:22 Constant: 0:22 1 (const int) 0:22 Constant: 0:22 0 (const int) 0:23 Sequence 0:23 move second child to first child ( temp float) 0:23 'ps' ( temp float) 0:23 gl_PointSize: direct index for structure ( in float PointSize) 0:23 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:23 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:23 Constant: 0:23 1 (const int) 0:23 Constant: 0:23 1 (const int) 0:24 Sequence 0:24 move second child to first child ( temp float) 0:24 'cd' ( temp float) 0:24 direct index ( temp float ClipDistance) 0:24 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) 0:24 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:24 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:24 Constant: 0:24 1 (const int) 0:24 Constant: 0:24 2 (const int) 0:24 Constant: 0:24 2 (const int) 0:26 Sequence 0:26 move second child to first child ( temp int) 0:26 'pvi' ( temp int) 0:26 'gl_PatchVerticesIn' ( in int PatchVertices) 0:27 Sequence 0:27 move second child to first child ( temp int) 0:27 'pid' ( temp int) 0:27 'gl_PrimitiveID' ( in int PrimitiveID) 0:28 Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 'tc' ( temp 3-component vector of float) 0:28 'gl_TessCoord' ( in 3-component vector of float TessCoord) 0:29 Sequence 0:29 move second child to first child ( temp float) 0:29 'tlo' ( temp float) 0:29 direct index ( patch temp float TessLevelOuter) 0:29 'gl_TessLevelOuter' ( patch in 4-element array of float TessLevelOuter) 0:29 Constant: 0:29 3 (const int) 0:30 Sequence 0:30 move second child to first child ( temp float) 0:30 'tli' ( temp float) 0:30 direct index ( patch temp float TessLevelInner) 0:30 'gl_TessLevelInner' ( patch in 2-element array of float TessLevelInner) 0:30 Constant: 0:30 1 (const int) 0:32 move second child to first child ( temp 4-component vector of float) 0:32 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) 0:32 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) 0:32 Constant: 0:32 0 (const uint) 0:32 'p' ( temp 4-component vector of float) 0:33 move second child to first child ( temp float) 0:33 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) 0:33 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) 0:33 Constant: 0:33 1 (const uint) 0:33 'ps' ( temp float) 0:34 move second child to first child ( temp float) 0:34 direct index ( temp float ClipDistance) 0:34 gl_ClipDistance: direct index for structure ( out 3-element array of float ClipDistance) 0:34 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) 0:34 Constant: 0:34 2 (const uint) 0:34 Constant: 0:34 2 (const int) 0:34 'cd' ( temp float) 0:20 Function Definition: main( ( global void) 0:20 Function Parameters: 0:22 Sequence 0:22 Constant: 0:22 0.000000 0:24 Sequence 0:24 move second child to first child ( temp int) 0:24 'a' ( temp int) 0:24 Constant: 0:24 1512 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of float) 0:32 'p' ( temp 4-component vector of float) 0:32 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:32 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:32 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:32 Constant: 0:32 1 (const int) 0:32 Constant: 0:32 0 (const int) 0:33 Sequence 0:33 move second child to first child ( temp float) 0:33 'ps' ( temp float) 0:33 gl_PointSize: direct index for structure ( in float PointSize) 0:33 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:33 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1 (const int) 0:34 Sequence 0:34 move second child to first child ( temp float) 0:34 'cd' ( temp float) 0:34 direct index ( temp float ClipDistance) 0:34 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) 0:34 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:34 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 2 (const int) 0:34 Constant: 0:34 2 (const int) 0:36 Sequence 0:36 move second child to first child ( temp int) 0:36 'pvi' ( temp int) 0:36 'gl_PatchVerticesIn' ( in int PatchVertices) 0:37 Sequence 0:37 move second child to first child ( temp int) 0:37 'pid' ( temp int) 0:37 'gl_PrimitiveID' ( in int PrimitiveID) 0:38 Sequence 0:38 move second child to first child ( temp 3-component vector of float) 0:38 'tc' ( temp 3-component vector of float) 0:38 'gl_TessCoord' ( in 3-component vector of float TessCoord) 0:39 Sequence 0:39 move second child to first child ( temp float) 0:39 'tlo' ( temp float) 0:39 direct index ( patch temp float TessLevelOuter) 0:39 'gl_TessLevelOuter' ( patch in 4-element array of float TessLevelOuter) 0:39 Constant: 0:39 3 (const int) 0:40 Sequence 0:40 move second child to first child ( temp float) 0:40 'tli' ( temp float) 0:40 direct index ( patch temp float TessLevelInner) 0:40 'gl_TessLevelInner' ( patch in 2-element array of float TessLevelInner) 0:40 Constant: 0:40 1 (const int) 0:42 move second child to first child ( temp 4-component vector of float) 0:42 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) 0:42 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) 0:42 Constant: 0:42 0 (const uint) 0:42 'p' ( temp 4-component vector of float) 0:43 move second child to first child ( temp float) 0:43 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) 0:43 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) 0:43 Constant: 0:43 1 (const uint) 0:43 'ps' ( temp float) 0:44 move second child to first child ( temp float) 0:44 direct index ( temp float ClipDistance) 0:44 gl_ClipDistance: direct index for structure ( out 3-element array of float ClipDistance) 0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) 0:44 Constant: 0:44 2 (const uint) 0:44 Constant: 0:44 2 (const int) 0:44 'cd' ( temp float) 0:4 Sequence 0:4 move second child to first child ( temp 2X2 matrix of float) 0:4 'b' ( global 2X2 matrix of float) 0:4 Constant: 0:4 1.000000 0:4 0.000000 0:4 0.000000 0:4 1.000000 0:15 Sequence 0:15 move second child to first child ( temp structure{ global float a, global int b}) 0:15 'e' ( global structure{ global float a, global int b}) 0:15 Constant: 0:15 1.200000 0:15 2 (const int) 0:20 Sequence 0:20 move second child to first child ( temp structure{ global float a, global int b}) 0:20 'e2' ( global structure{ global float a, global int b}) 0:20 Constant: 0:20 1.000000 0:20 3 (const int) 0:42 Sequence 0:42 move second child to first child ( temp 5-element array of float) 0:42 'b5' ( global 5-element array of float) 0:42 Constant: 0:42 3.400000 0:42 4.200000 0:42 5.000000 0:42 5.200000 0:42 1.100000 0:55 Sequence 0:55 move second child to first child ( temp structure{ global int f}) 0:55 'single1' ( global structure{ global int f}) 0:55 Constant: 0:55 10 (const int) 0:58 Sequence 0:58 move second child to first child ( temp structure{ global 2-component vector of uint v}) 0:58 'single2' ( global structure{ global 2-component vector of uint v}) 0:58 Constant: 0:58 1 (const uint) 0:58 2 (const uint) 0:61 Sequence 0:61 move second child to first child ( temp structure{ global structure{ global int f} s1}) 0:61 'single3' ( global structure{ global structure{ global int f} s1}) 0:61 Constant: 0:61 3 (const int) 0:64 Sequence 0:64 move second child to first child ( temp structure{ global structure{ global 2-component vector of uint v} s1}) 0:64 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) 0:64 Constant: 0:64 4 (const uint) 0:64 5 (const uint) 0:79 Sequence 0:79 move second child to first child ( temp 3-component vector of float) 0:79 'av3' ( global 3-component vector of float) 0:79 Construct vec3 ( global 3-component vector of float) 0:79 'vc1' ( global float) 0:79 'vc2' ( global float) 0:79 'vc3' ( global float) 0:80 Sequence 0:80 move second child to first child ( temp 3-component vector of float) 0:80 'bv3' ( global 3-component vector of float) 0:80 Construct vec3 ( temp 3-component vector of float) 0:80 'vc1' ( global float) 0:80 'vc2' ( global float) 0:80 'vc3' ( global float) 0:82 Function Definition: main( ( global void) 0:82 Function Parameters: 0:84 Sequence 0:84 MemoryBarrier ( global void) 0:86 Test condition and select ( temp void) 0:86 Condition 0:86 Compare Equal ( temp bool) 0:86 Constant: 0:86 1 (const uint) 0:86 2 (const uint) 0:86 3.000000 0:86 4.000000 0:86 0.000000 0:86 0.000000 0:86 0.000000 0:86 4.000000 0:86 0.000000 0:86 5.000000 0:86 6.000000 0:86 0.000000 0:86 0.000000 0:86 0.000000 0:86 6.000000 0:86 0.000000 0:86 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) 0:86 true case is null 0:88 Test condition and select ( temp void) 0:88 Condition 0:88 Constant: 0:88 true (const bool) 0:88 true case is null 0:? Linker Objects 0:? 'patchIn' ( patch in 4-component vector of float) 0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance}) 0:? 'patchOut' ( patch out 4-component vector of float) 0:? 'badp1' ( smooth patch in 4-component vector of float) 0:? 'badp2' ( flat patch in 4-component vector of float) 0:? 'badp3' ( noperspective patch in 4-component vector of float) 0:? 'badp4' ( patch sample in 3-component vector of float) 0:? 'gl_in' ( in 32-element array of block{ in 1-element array of float ClipDistance gl_ClipDistance}) 0:? 'ina' ( in 2-component vector of float) 0:? 'inb' ( in 32-element array of 2-component vector of float) 0:? 'inc' ( in 32-element array of 2-component vector of float) 0:? 'ind' ( in 32-element array of 2-component vector of float) 0:? 'bla' ( in block{ in int f}) 0:? 'blb' ( in 32-element array of block{ in int f}) 0:? 'blc' ( in 32-element array of block{ in int f}) 0:? 'bld' ( in 32-element array of block{ in int f}) 0:? 'ivla' (layout( location=23) in 32-element array of 4-component vector of float) 0:? 'ivlb' (layout( location=24) in 32-element array of 4-component vector of float) 0:? 'ivlc' (layout( location=24) in 32-element array of 4-component vector of float) 0:? 'ovla' (layout( location=23) out 2-element array of 4-component vector of float) 0:? 'ovlb' (layout( location=24) out 2-element array of 4-component vector of float) 0:? 'pinbi' ( patch in block{ in int a}) 0:? 'a' ( const 2X2 matrix of float) 0:? 1.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:? 'b' ( global 2X2 matrix of float) 0:? 'c' ( const 2X2 matrix of float) 0:? 1.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:? 'a2' ( global 2-element array of float) 0:? 'b2' ( global 2-component vector of float) 0:? 'c2' ( global 3X3 matrix of float) 0:? 'd' ( global 2X2 matrix of float) 0:? 'e' ( global structure{ global float a, global int b}) 0:? 'e2' ( global structure{ global float a, global int b}) 0:? 'e3' ( global structure{ global float a, global int b}) 0:? 'a3' ( global int) 0:? 'b3' ( global 2-element array of 4-component vector of float) 0:? 'b4' ( global 2-element array of 4-component vector of float) 0:? 'c3' ( global 4X2 matrix of float) 0:? 'd2' ( global 1-element array of structure{ global float s, global float t}) 0:? 'b5' ( global 5-element array of float) 0:? 'single1' ( global structure{ global int f}) 0:? 'single2' ( global structure{ global 2-component vector of uint v}) 0:? 'single3' ( global structure{ global structure{ global int f} s1}) 0:? 'single4' ( global structure{ global structure{ global 2-component vector of uint v} s1}) 0:? 'constructed' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3.000000 0:? 4.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 4.000000 0:? 0.000000 0:? 5.000000 0:? 6.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 6.000000 0:? 0.000000 0:? 'curlybad1' ( temp structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) 0:? 'curlyInit' ( const structure{ global 2-component vector of uint uv2, global 2-element array of structure{ global float f, global 2X3 matrix of float m23} s}) 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3.000000 0:? 4.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 4.000000 0:? 0.000000 0:? 5.000000 0:? 6.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 6.000000 0:? 0.000000 0:? 'vc1' ( global float) 0:? 'vc2' ( global float) 0:? 'vc3' ( global float) 0:? 'av3' ( global 3-component vector of float) 0:? 'bv3' ( global 3-component vector of float) glslang-8.13.3559/Test/baseResults/150.vert.out000066400000000000000000000220241360464450000207320ustar00rootroot00000000000000150.vert ERROR: 0:26: 'a' : cannot redeclare a user-block member array ERROR: 0:3001: '#error' : line of this error should be 3001 ERROR: 2 compilation errors. No code generated. Shader version: 150 ERROR: node is still EOpNull! 0:13 Function Definition: main( ( global void) 0:13 Function Parameters: 0:15 Sequence 0:15 move second child to first child ( temp 4-component vector of float) 0:15 gl_Position: direct index for structure ( invariant gl_Position 4-component vector of float Position) 0:15 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:15 Constant: 0:15 0 (const uint) 0:15 'iv4' ( in 4-component vector of float) 0:16 move second child to first child ( temp float) 0:16 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) 0:16 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:16 Constant: 0:16 1 (const uint) 0:16 'ps' ( uniform float) 0:17 move second child to first child ( temp float) 0:17 direct index ( temp float ClipDistance) 0:17 gl_ClipDistance: direct index for structure ( out 4-element array of float ClipDistance) 0:17 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:17 Constant: 0:17 2 (const uint) 0:17 Constant: 0:17 2 (const int) 0:17 direct index ( temp float) 0:17 'iv4' ( in 4-component vector of float) 0:17 Constant: 0:17 0 (const int) 0:18 move second child to first child ( temp 4-component vector of float) 0:18 gl_ClipVertex: direct index for structure ( gl_ClipVertex 4-component vector of float ClipVertex) 0:18 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:18 Constant: 0:18 3 (const uint) 0:18 'iv4' ( in 4-component vector of float) 0:? Linker Objects 0:? 'iv4' ( in 4-component vector of float) 0:? 'ps' ( uniform float) 0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform unsized 1-element array of int a}) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) Linked vertex stage: ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred) Shader version: 150 ERROR: node is still EOpNull! 0:13 Function Definition: main( ( global void) 0:13 Function Parameters: 0:15 Sequence 0:15 move second child to first child ( temp 4-component vector of float) 0:15 gl_Position: direct index for structure ( invariant gl_Position 4-component vector of float Position) 0:15 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:15 Constant: 0:15 0 (const uint) 0:15 'iv4' ( in 4-component vector of float) 0:16 move second child to first child ( temp float) 0:16 gl_PointSize: direct index for structure ( gl_PointSize float PointSize) 0:16 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:16 Constant: 0:16 1 (const uint) 0:16 'ps' ( uniform float) 0:17 move second child to first child ( temp float) 0:17 direct index ( temp float ClipDistance) 0:17 gl_ClipDistance: direct index for structure ( out 4-element array of float ClipDistance) 0:17 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:17 Constant: 0:17 2 (const uint) 0:17 Constant: 0:17 2 (const int) 0:17 direct index ( temp float) 0:17 'iv4' ( in 4-component vector of float) 0:17 Constant: 0:17 0 (const int) 0:18 move second child to first child ( temp 4-component vector of float) 0:18 gl_ClipVertex: direct index for structure ( gl_ClipVertex 4-component vector of float ClipVertex) 0:18 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 4-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:18 Constant: 0:18 3 (const uint) 0:18 'iv4' ( in 4-component vector of float) 0:? Linker Objects 0:? 'iv4' ( in 4-component vector of float) 0:? 'ps' ( uniform float) 0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform 1-element array of int a}) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) glslang-8.13.3559/Test/baseResults/300.frag.out000066400000000000000000001072351360464450000206760ustar00rootroot00000000000000300.frag ERROR: 0:2: 'float' : type requires declaration of default precision qualifier ERROR: 0:30: 'noperspective' : Reserved word. ERROR: 0:30: 'noperspective' : not supported for this version or the enabled extensions ERROR: 0:31: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: bads ERROR: 0:32: 'uint' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type ERROR: 0:39: 'structure' : must be qualified as flat in ERROR: 0:39: 'structure' : non-uniform struct contains a sampler or image: badout ERROR: 0:60: 'texel offset' : argument must be compile-time constant ERROR: 0:62: 'texel offset' : argument must be compile-time constant ERROR: 0:63: 'texel offset' : argument must be compile-time constant ERROR: 0:64: 'texel offset' : argument must be compile-time constant ERROR: 0:66: 'texel offset' : argument must be compile-time constant ERROR: 0:68: 'texel offset' : argument must be compile-time constant ERROR: 0:69: 'variable indexing sampler array' : not supported for this version or the enabled extensions ERROR: 0:73: 'texel offset' : argument must be compile-time constant ERROR: 0:83: 'double' : Reserved word. ERROR: 0:83: 'double' : not supported with this profile: es ERROR: 0:84: 'dvec2' : Reserved word. ERROR: 0:84: 'double vector' : not supported with this profile: es ERROR: 0:85: 'dvec3' : Reserved word. ERROR: 0:85: 'double vector' : not supported with this profile: es ERROR: 0:86: 'dvec4' : Reserved word. ERROR: 0:86: 'double vector' : not supported with this profile: es ERROR: 0:101: 'arrays of arrays' : not supported for this version or the enabled extensions ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled extensions ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions ERROR: 0:100: 'arrays of arrays' : not supported for this version or the enabled extensions ERROR: 0:100: 'array-of-array of block' : not supported with this profile: es ERROR: 0:111: 'variable indexing fragment shader output array' : not supported with this profile: es ERROR: 0:119: '==' : can't use with samplers or structs containing samplers ERROR: 0:120: '!=' : can't use with samplers or structs containing samplers ERROR: 0:121: '==' : can't use with samplers or structs containing samplers ERROR: 0:121: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global lowp sampler2D' and a right operand of type ' global lowp sampler2D' (or there is no acceptable conversion) ERROR: 0:122: '=' : can't use with samplers or structs containing samplers ERROR: 0:123: '==' : can't use with samplers or structs containing samplers ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:129: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:148: 'qualifier' : cannot use auxiliary, memory, interpolation, or precision qualifier in a default qualifier declaration (declaration with no type) ERROR: 0:150: 'early_fragment_tests' : not supported for this version or the enabled extensions ERROR: 0:156: 'invariant' : can only apply to an output ERROR: 0:157: 'invariant' : can only apply to an output ERROR: 0:158: 'invariant' : can only apply to an output ERROR: 0:160: 'imageBuffer' : Reserved word. ERROR: 0:160: '' : syntax error, unexpected IMAGEBUFFER, expecting COMMA or SEMICOLON ERROR: 46 compilation errors. No code generated. Shader version: 300 using early_fragment_tests ERROR: node is still EOpNull! 0:53 Function Definition: main( ( global void) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child ( temp lowp 4-component vector of float) 0:57 'v' ( temp lowp 4-component vector of float) 0:57 texture ( global lowp 4-component vector of float) 0:57 's2D' ( uniform lowp sampler2D) 0:57 'c2D' ( smooth in lowp 2-component vector of float) 0:58 move second child to first child ( temp lowp 4-component vector of float) 0:58 'v' ( temp lowp 4-component vector of float) 0:58 textureProj ( global lowp 4-component vector of float) 0:58 's3D' ( uniform lowp sampler3D) 0:58 'c4D' ( smooth temp lowp 4-component vector of float) 0:59 move second child to first child ( temp lowp 4-component vector of float) 0:59 'v' ( temp lowp 4-component vector of float) 0:59 textureLod ( global lowp 4-component vector of float) 0:59 's2DArray' ( uniform lowp sampler2DArray) 0:59 'c3D' ( smooth in lowp 3-component vector of float) 0:59 Constant: 0:59 1.200000 0:60 move second child to first child ( temp lowp float) 0:60 'f' ( temp lowp float) 0:60 textureOffset ( global lowp float, operation at mediump) 0:60 's2DShadow' ( uniform lowp sampler2DShadow) 0:60 'c3D' ( smooth in lowp 3-component vector of float) 0:60 'ic2D' ( flat in mediump 2-component vector of int) 0:60 'c1D' ( smooth in lowp float) 0:61 move second child to first child ( temp lowp 4-component vector of float) 0:61 'v' ( temp lowp 4-component vector of float) 0:61 textureFetch ( global lowp 4-component vector of float, operation at mediump) 0:61 's3D' ( uniform lowp sampler3D) 0:61 'ic3D' ( flat in mediump 3-component vector of int) 0:61 'ic1D' ( flat in mediump int) 0:62 move second child to first child ( temp lowp 4-component vector of float) 0:62 'v' ( temp lowp 4-component vector of float) 0:62 textureFetchOffset ( global lowp 4-component vector of float, operation at mediump) 0:62 direct index ( temp lowp sampler2D) 0:62 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) 0:62 Constant: 0:62 2 (const int) 0:62 'ic2D' ( flat in mediump 2-component vector of int) 0:62 Constant: 0:62 4 (const int) 0:62 'ic2D' ( flat in mediump 2-component vector of int) 0:63 move second child to first child ( temp lowp float) 0:63 'f' ( temp lowp float) 0:63 textureLodOffset ( global lowp float, operation at mediump) 0:63 's2DShadow' ( uniform lowp sampler2DShadow) 0:63 'c3D' ( smooth in lowp 3-component vector of float) 0:63 'c1D' ( smooth in lowp float) 0:63 'ic2D' ( flat in mediump 2-component vector of int) 0:64 move second child to first child ( temp lowp 4-component vector of float) 0:64 'v' ( temp lowp 4-component vector of float) 0:64 textureProjLodOffset ( global lowp 4-component vector of float, operation at mediump) 0:64 's2D' ( uniform lowp sampler2D) 0:64 'c3D' ( smooth in lowp 3-component vector of float) 0:64 'c1D' ( smooth in lowp float) 0:64 'ic2D' ( flat in mediump 2-component vector of int) 0:65 move second child to first child ( temp lowp 4-component vector of float) 0:65 'v' ( temp lowp 4-component vector of float) 0:65 textureGrad ( global lowp 4-component vector of float) 0:65 'sCube' ( uniform lowp samplerCube) 0:65 'c3D' ( smooth in lowp 3-component vector of float) 0:65 'c3D' ( smooth in lowp 3-component vector of float) 0:65 'c3D' ( smooth in lowp 3-component vector of float) 0:66 move second child to first child ( temp lowp float) 0:66 'f' ( temp lowp float) 0:66 textureGradOffset ( global lowp float, operation at mediump) 0:66 's2DArrayShadow' ( uniform lowp sampler2DArrayShadow) 0:66 'c4D' ( smooth temp lowp 4-component vector of float) 0:66 'c2D' ( smooth in lowp 2-component vector of float) 0:66 'c2D' ( smooth in lowp 2-component vector of float) 0:66 'ic2D' ( flat in mediump 2-component vector of int) 0:67 move second child to first child ( temp lowp 4-component vector of float) 0:67 'v' ( temp lowp 4-component vector of float) 0:67 textureProjGrad ( global lowp 4-component vector of float) 0:67 's3D' ( uniform lowp sampler3D) 0:67 'c4D' ( smooth temp lowp 4-component vector of float) 0:67 'c3D' ( smooth in lowp 3-component vector of float) 0:67 'c3D' ( smooth in lowp 3-component vector of float) 0:68 move second child to first child ( temp lowp 4-component vector of float) 0:68 'v' ( temp lowp 4-component vector of float) 0:68 textureProjGradOffset ( global lowp 4-component vector of float, operation at mediump) 0:68 's2D' ( uniform lowp sampler2D) 0:68 'c3D' ( smooth in lowp 3-component vector of float) 0:68 'c2D' ( smooth in lowp 2-component vector of float) 0:68 'c2D' ( smooth in lowp 2-component vector of float) 0:68 'ic2D' ( flat in mediump 2-component vector of int) 0:69 move second child to first child ( temp lowp 4-component vector of float) 0:69 'v' ( temp lowp 4-component vector of float) 0:69 texture ( global lowp 4-component vector of float) 0:69 indirect index ( temp lowp sampler2D) 0:69 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) 0:69 'ic1D' ( flat in mediump int) 0:69 'c2D' ( smooth in lowp 2-component vector of float) 0:72 move second child to first child ( temp mediump 4-component vector of int) 0:72 'iv' ( temp mediump 4-component vector of int) 0:72 texture ( global lowp 4-component vector of int) 0:72 'is2D' ( uniform lowp isampler2D) 0:72 'c2D' ( smooth in lowp 2-component vector of float) 0:73 move second child to first child ( temp mediump 4-component vector of int) 0:73 'iv' ( temp mediump 4-component vector of int) 0:73 textureProjOffset ( global lowp 4-component vector of int, operation at mediump) 0:73 'is2D' ( uniform lowp isampler2D) 0:73 'c4D' ( smooth temp lowp 4-component vector of float) 0:73 'ic2D' ( flat in mediump 2-component vector of int) 0:74 move second child to first child ( temp mediump 4-component vector of int) 0:74 'iv' ( temp mediump 4-component vector of int) 0:74 textureProjLod ( global lowp 4-component vector of int) 0:74 'is2D' ( uniform lowp isampler2D) 0:74 'c3D' ( smooth in lowp 3-component vector of float) 0:74 'c1D' ( smooth in lowp float) 0:75 move second child to first child ( temp mediump 4-component vector of int) 0:75 'iv' ( temp mediump 4-component vector of int) 0:75 textureProjGrad ( global lowp 4-component vector of int) 0:75 'is2D' ( uniform lowp isampler2D) 0:75 'c3D' ( smooth in lowp 3-component vector of float) 0:75 'c2D' ( smooth in lowp 2-component vector of float) 0:75 'c2D' ( smooth in lowp 2-component vector of float) 0:76 move second child to first child ( temp mediump 4-component vector of int) 0:76 'iv' ( temp mediump 4-component vector of int) 0:76 texture ( global lowp 4-component vector of int) 0:76 'is3D' ( uniform lowp isampler3D) 0:76 'c3D' ( smooth in lowp 3-component vector of float) 0:76 Constant: 0:76 4.200000 0:77 move second child to first child ( temp mediump 4-component vector of int) 0:77 'iv' ( temp mediump 4-component vector of int) 0:77 textureLod ( global lowp 4-component vector of int) 0:77 'isCube' ( uniform lowp isamplerCube) 0:77 'c3D' ( smooth in lowp 3-component vector of float) 0:77 'c1D' ( smooth in lowp float) 0:78 move second child to first child ( temp mediump 4-component vector of int) 0:78 'iv' ( temp mediump 4-component vector of int) 0:78 textureFetch ( global lowp 4-component vector of int, operation at mediump) 0:78 'is2DArray' ( uniform lowp isampler2DArray) 0:78 'ic3D' ( flat in mediump 3-component vector of int) 0:78 'ic1D' ( flat in mediump int) 0:80 move second child to first child ( temp highp 2-component vector of int) 0:80 vector swizzle ( temp mediump 2-component vector of int) 0:80 'iv' ( temp mediump 4-component vector of int) 0:80 Sequence 0:80 Constant: 0:80 0 (const int) 0:80 Constant: 0:80 1 (const int) 0:80 textureSize ( global highp 2-component vector of int, operation at lowp) 0:80 'sCubeShadow' ( uniform lowp samplerCubeShadow) 0:80 Constant: 0:80 2 (const int) 0:88 add second child into first child ( temp highp float) 0:88 'f' ( temp lowp float) 0:88 direct index ( temp highp float) 0:88 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) 0:88 Constant: 0:88 1 (const int) 0:89 move second child to first child ( temp highp float) 0:89 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) 0:89 'f' ( temp lowp float) 0:91 move second child to first child ( temp lowp 3-component vector of float) 0:91 'sc' ( out lowp 3-component vector of float) 0:91 c: direct index for structure ( global lowp 3-component vector of float) 0:91 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) 0:91 Constant: 0:91 0 (const int) 0:92 move second child to first child ( temp lowp float) 0:92 'sf' ( out lowp float) 0:92 f: direct index for structure ( global lowp float) 0:92 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) 0:92 Constant: 0:92 1 (const int) 0:94 add ( temp lowp 2-component vector of float) 0:94 hyp. sine ( global lowp float) 0:94 'c1D' ( smooth in lowp float) 0:95 vector-scale ( temp lowp 2-component vector of float) 0:95 hyp. cosine ( global lowp float) 0:95 'c1D' ( smooth in lowp float) 0:95 hyp. tangent ( global lowp 2-component vector of float) 0:95 'c2D' ( smooth in lowp 2-component vector of float) 0:96 add ( temp lowp 4-component vector of float) 0:96 arc hyp. sine ( global lowp 4-component vector of float) 0:96 'c4D' ( smooth temp lowp 4-component vector of float) 0:96 arc hyp. cosine ( global lowp 4-component vector of float) 0:96 'c4D' ( smooth temp lowp 4-component vector of float) 0:97 arc hyp. tangent ( global lowp 3-component vector of float) 0:97 'c3D' ( smooth in lowp 3-component vector of float) 0:108 Function Definition: foo( ( global void) 0:108 Function Parameters: 0:110 Sequence 0:110 move second child to first child ( temp lowp 4-component vector of float) 0:110 direct index ( temp lowp 4-component vector of float) 0:110 'colors' ( out 4-element array of lowp 4-component vector of float) 0:110 Constant: 0:110 2 (const int) 0:110 'c4D' ( smooth temp lowp 4-component vector of float) 0:111 move second child to first child ( temp lowp 4-component vector of float) 0:111 indirect index ( temp lowp 4-component vector of float) 0:111 'colors' ( out 4-element array of lowp 4-component vector of float) 0:111 'ic1D' ( flat in mediump int) 0:111 'c4D' ( smooth temp lowp 4-component vector of float) 0:117 Function Definition: foo13(struct-s-i1-s211; ( global void) 0:117 Function Parameters: 0:117 'inSt2' ( in structure{ global mediump int i, global lowp sampler2D s}) 0:119 Sequence 0:119 Test condition and select ( temp void) 0:119 Condition 0:119 Compare Equal ( temp bool) 0:119 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) 0:119 'st2' ( uniform structure{ global mediump int i, global lowp sampler2D s}) 0:119 true case is null 0:120 Test condition and select ( temp void) 0:120 Condition 0:120 Compare Not Equal ( temp bool) 0:120 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) 0:120 'st2' ( uniform structure{ global mediump int i, global lowp sampler2D s}) 0:120 true case is null 0:121 Constant: 0:121 false (const bool) 0:122 move second child to first child ( temp structure{ global mediump int i, global lowp sampler2D s}) 0:122 'inSt2' ( in structure{ global mediump int i, global lowp sampler2D s}) 0:122 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) 0:123 Compare Equal ( temp bool) 0:123 'inSt2' ( in structure{ global mediump int i, global lowp sampler2D s}) 0:123 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) 0:126 Function Definition: foo23( ( global void) 0:126 Function Parameters: 0:128 Sequence 0:128 textureOffset ( global lowp float) 0:128 's2DShadow' ( uniform lowp sampler2DShadow) 0:128 'c3D' ( smooth in lowp 3-component vector of float) 0:128 Constant: 0:128 -8 (const int) 0:128 7 (const int) 0:128 'c1D' ( smooth in lowp float) 0:129 textureOffset ( global lowp float) 0:129 's2DShadow' ( uniform lowp sampler2DShadow) 0:129 'c3D' ( smooth in lowp 3-component vector of float) 0:129 Constant: 0:129 -9 (const int) 0:129 8 (const int) 0:129 'c1D' ( smooth in lowp float) 0:132 Function Definition: foo324( ( global void) 0:132 Function Parameters: 0:134 Sequence 0:134 Sequence 0:134 move second child to first child ( temp lowp float) 0:134 'p' ( temp lowp float) 0:134 Constant: 0:134 210.712306 0:135 add second child into first child ( temp lowp float) 0:135 'p' ( temp lowp float) 0:135 Constant: 0:135 0.389418 0:136 add second child into first child ( temp lowp float) 0:136 'p' ( temp lowp float) 0:136 Constant: 0:136 5.000000 0:137 add second child into first child ( temp lowp float) 0:137 'p' ( temp lowp float) 0:137 Constant: 0:137 13.000000 0:138 Sequence 0:138 move second child to first child ( temp lowp 3-component vector of float) 0:138 'c3' ( temp lowp 3-component vector of float) 0:138 Constant: 0:138 -15.000000 0:138 -2.000000 0:138 39.000000 0:139 add second child into first child ( temp lowp 3-component vector of float) 0:139 'c3' ( temp lowp 3-component vector of float) 0:139 Constant: 0:139 -1.000000 0:139 -2.000000 0:139 -3.000000 0:140 add second child into first child ( temp lowp 3-component vector of float) 0:140 'c3' ( temp lowp 3-component vector of float) 0:140 Constant: 0:140 1.000000 0:140 2.000000 0:140 3.000000 0:141 Sequence 0:141 move second child to first child ( temp lowp 2-component vector of float) 0:141 'c2' ( temp lowp 2-component vector of float) 0:141 Constant: 0:141 1.000000 0:141 -3.000000 0:142 add second child into first child ( temp lowp 2-component vector of float) 0:142 'c2' ( temp lowp 2-component vector of float) 0:142 Constant: 0:142 1.000000 0:142 -3.000000 0:143 add second child into first child ( temp lowp 2-component vector of float) 0:143 'c2' ( temp lowp 2-component vector of float) 0:143 Constant: 0:143 3.000000 0:143 -8.544004 0:144 add second child into first child ( temp lowp 2-component vector of float) 0:144 'c2' ( temp lowp 2-component vector of float) 0:144 Constant: 0:144 0.000000 0:144 0.000000 0:145 Sequence 0:145 move second child to first child ( temp lowp 3X2 matrix of float) 0:145 'm32' ( temp lowp 3X2 matrix of float) 0:145 Constant: 0:145 10.000000 0:145 15.000000 0:145 14.000000 0:145 21.000000 0:145 22.000000 0:145 33.000000 0:? Linker Objects 0:? 's2D' ( uniform lowp sampler2D) 0:? 's3D' ( uniform lowp sampler3D) 0:? 'sCube' ( uniform lowp samplerCube) 0:? 'sCubeShadow' ( uniform lowp samplerCubeShadow) 0:? 's2DShadow' ( uniform lowp sampler2DShadow) 0:? 's2DArray' ( uniform lowp sampler2DArray) 0:? 's2DArrayShadow' ( uniform lowp sampler2DArrayShadow) 0:? 'is2D' ( uniform lowp isampler2D) 0:? 'is3D' ( uniform lowp isampler3D) 0:? 'isCube' ( uniform lowp isamplerCube) 0:? 'is2DArray' ( uniform lowp isampler2DArray) 0:? 'us2D' ( uniform lowp usampler2D) 0:? 'us3D' ( uniform lowp usampler3D) 0:? 'usCube' ( uniform lowp usamplerCube) 0:? 'us2DArray' ( uniform lowp usampler2DArray) 0:? 'c1D' ( smooth in lowp float) 0:? 'c2D' ( smooth in lowp 2-component vector of float) 0:? 'c3D' ( smooth in lowp 3-component vector of float) 0:? 'c4D' ( smooth temp lowp 4-component vector of float) 0:? 'ic1D' ( flat in mediump int) 0:? 'ic2D' ( flat in mediump 2-component vector of int) 0:? 'ic3D' ( flat in mediump 3-component vector of int) 0:? 'ic4D' ( flat in mediump 4-component vector of int) 0:? 'badv' ( noperspective in lowp 4-component vector of float) 0:? 'bads' ( smooth in lowp sampler2D) 0:? 'badout' ( smooth in structure{ global mediump int i, global lowp sampler2D s}) 0:? 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) 0:? 'sc' ( out lowp 3-component vector of float) 0:? 'sf' ( out lowp float) 0:? 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) 0:? 'multiInst' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform 3-element array of 2-element array of mediump int a, layout( column_major shared) uniform 2-element array of 3-element array of mediump int b, layout( column_major shared) uniform 2-element array of 3-element array of mediump int c}) 0:? 'colors' ( out 4-element array of lowp 4-component vector of float) 0:? 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) 0:? 'st2' ( uniform structure{ global mediump int i, global lowp sampler2D s}) 0:? 'fooinv' ( invariant smooth in lowp 4-component vector of float) Linked fragment stage: ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers Shader version: 300 using early_fragment_tests ERROR: node is still EOpNull! 0:53 Function Definition: main( ( global void) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child ( temp lowp 4-component vector of float) 0:57 'v' ( temp lowp 4-component vector of float) 0:57 texture ( global lowp 4-component vector of float) 0:57 's2D' ( uniform lowp sampler2D) 0:57 'c2D' ( smooth in lowp 2-component vector of float) 0:58 move second child to first child ( temp lowp 4-component vector of float) 0:58 'v' ( temp lowp 4-component vector of float) 0:58 textureProj ( global lowp 4-component vector of float) 0:58 's3D' ( uniform lowp sampler3D) 0:58 'c4D' ( smooth temp lowp 4-component vector of float) 0:59 move second child to first child ( temp lowp 4-component vector of float) 0:59 'v' ( temp lowp 4-component vector of float) 0:59 textureLod ( global lowp 4-component vector of float) 0:59 's2DArray' ( uniform lowp sampler2DArray) 0:59 'c3D' ( smooth in lowp 3-component vector of float) 0:59 Constant: 0:59 1.200000 0:60 move second child to first child ( temp lowp float) 0:60 'f' ( temp lowp float) 0:60 textureOffset ( global lowp float, operation at mediump) 0:60 's2DShadow' ( uniform lowp sampler2DShadow) 0:60 'c3D' ( smooth in lowp 3-component vector of float) 0:60 'ic2D' ( flat in mediump 2-component vector of int) 0:60 'c1D' ( smooth in lowp float) 0:61 move second child to first child ( temp lowp 4-component vector of float) 0:61 'v' ( temp lowp 4-component vector of float) 0:61 textureFetch ( global lowp 4-component vector of float, operation at mediump) 0:61 's3D' ( uniform lowp sampler3D) 0:61 'ic3D' ( flat in mediump 3-component vector of int) 0:61 'ic1D' ( flat in mediump int) 0:62 move second child to first child ( temp lowp 4-component vector of float) 0:62 'v' ( temp lowp 4-component vector of float) 0:62 textureFetchOffset ( global lowp 4-component vector of float, operation at mediump) 0:62 direct index ( temp lowp sampler2D) 0:62 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) 0:62 Constant: 0:62 2 (const int) 0:62 'ic2D' ( flat in mediump 2-component vector of int) 0:62 Constant: 0:62 4 (const int) 0:62 'ic2D' ( flat in mediump 2-component vector of int) 0:63 move second child to first child ( temp lowp float) 0:63 'f' ( temp lowp float) 0:63 textureLodOffset ( global lowp float, operation at mediump) 0:63 's2DShadow' ( uniform lowp sampler2DShadow) 0:63 'c3D' ( smooth in lowp 3-component vector of float) 0:63 'c1D' ( smooth in lowp float) 0:63 'ic2D' ( flat in mediump 2-component vector of int) 0:64 move second child to first child ( temp lowp 4-component vector of float) 0:64 'v' ( temp lowp 4-component vector of float) 0:64 textureProjLodOffset ( global lowp 4-component vector of float, operation at mediump) 0:64 's2D' ( uniform lowp sampler2D) 0:64 'c3D' ( smooth in lowp 3-component vector of float) 0:64 'c1D' ( smooth in lowp float) 0:64 'ic2D' ( flat in mediump 2-component vector of int) 0:65 move second child to first child ( temp lowp 4-component vector of float) 0:65 'v' ( temp lowp 4-component vector of float) 0:65 textureGrad ( global lowp 4-component vector of float) 0:65 'sCube' ( uniform lowp samplerCube) 0:65 'c3D' ( smooth in lowp 3-component vector of float) 0:65 'c3D' ( smooth in lowp 3-component vector of float) 0:65 'c3D' ( smooth in lowp 3-component vector of float) 0:66 move second child to first child ( temp lowp float) 0:66 'f' ( temp lowp float) 0:66 textureGradOffset ( global lowp float, operation at mediump) 0:66 's2DArrayShadow' ( uniform lowp sampler2DArrayShadow) 0:66 'c4D' ( smooth temp lowp 4-component vector of float) 0:66 'c2D' ( smooth in lowp 2-component vector of float) 0:66 'c2D' ( smooth in lowp 2-component vector of float) 0:66 'ic2D' ( flat in mediump 2-component vector of int) 0:67 move second child to first child ( temp lowp 4-component vector of float) 0:67 'v' ( temp lowp 4-component vector of float) 0:67 textureProjGrad ( global lowp 4-component vector of float) 0:67 's3D' ( uniform lowp sampler3D) 0:67 'c4D' ( smooth temp lowp 4-component vector of float) 0:67 'c3D' ( smooth in lowp 3-component vector of float) 0:67 'c3D' ( smooth in lowp 3-component vector of float) 0:68 move second child to first child ( temp lowp 4-component vector of float) 0:68 'v' ( temp lowp 4-component vector of float) 0:68 textureProjGradOffset ( global lowp 4-component vector of float, operation at mediump) 0:68 's2D' ( uniform lowp sampler2D) 0:68 'c3D' ( smooth in lowp 3-component vector of float) 0:68 'c2D' ( smooth in lowp 2-component vector of float) 0:68 'c2D' ( smooth in lowp 2-component vector of float) 0:68 'ic2D' ( flat in mediump 2-component vector of int) 0:69 move second child to first child ( temp lowp 4-component vector of float) 0:69 'v' ( temp lowp 4-component vector of float) 0:69 texture ( global lowp 4-component vector of float) 0:69 indirect index ( temp lowp sampler2D) 0:69 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) 0:69 'ic1D' ( flat in mediump int) 0:69 'c2D' ( smooth in lowp 2-component vector of float) 0:72 move second child to first child ( temp mediump 4-component vector of int) 0:72 'iv' ( temp mediump 4-component vector of int) 0:72 texture ( global lowp 4-component vector of int) 0:72 'is2D' ( uniform lowp isampler2D) 0:72 'c2D' ( smooth in lowp 2-component vector of float) 0:73 move second child to first child ( temp mediump 4-component vector of int) 0:73 'iv' ( temp mediump 4-component vector of int) 0:73 textureProjOffset ( global lowp 4-component vector of int, operation at mediump) 0:73 'is2D' ( uniform lowp isampler2D) 0:73 'c4D' ( smooth temp lowp 4-component vector of float) 0:73 'ic2D' ( flat in mediump 2-component vector of int) 0:74 move second child to first child ( temp mediump 4-component vector of int) 0:74 'iv' ( temp mediump 4-component vector of int) 0:74 textureProjLod ( global lowp 4-component vector of int) 0:74 'is2D' ( uniform lowp isampler2D) 0:74 'c3D' ( smooth in lowp 3-component vector of float) 0:74 'c1D' ( smooth in lowp float) 0:75 move second child to first child ( temp mediump 4-component vector of int) 0:75 'iv' ( temp mediump 4-component vector of int) 0:75 textureProjGrad ( global lowp 4-component vector of int) 0:75 'is2D' ( uniform lowp isampler2D) 0:75 'c3D' ( smooth in lowp 3-component vector of float) 0:75 'c2D' ( smooth in lowp 2-component vector of float) 0:75 'c2D' ( smooth in lowp 2-component vector of float) 0:76 move second child to first child ( temp mediump 4-component vector of int) 0:76 'iv' ( temp mediump 4-component vector of int) 0:76 texture ( global lowp 4-component vector of int) 0:76 'is3D' ( uniform lowp isampler3D) 0:76 'c3D' ( smooth in lowp 3-component vector of float) 0:76 Constant: 0:76 4.200000 0:77 move second child to first child ( temp mediump 4-component vector of int) 0:77 'iv' ( temp mediump 4-component vector of int) 0:77 textureLod ( global lowp 4-component vector of int) 0:77 'isCube' ( uniform lowp isamplerCube) 0:77 'c3D' ( smooth in lowp 3-component vector of float) 0:77 'c1D' ( smooth in lowp float) 0:78 move second child to first child ( temp mediump 4-component vector of int) 0:78 'iv' ( temp mediump 4-component vector of int) 0:78 textureFetch ( global lowp 4-component vector of int, operation at mediump) 0:78 'is2DArray' ( uniform lowp isampler2DArray) 0:78 'ic3D' ( flat in mediump 3-component vector of int) 0:78 'ic1D' ( flat in mediump int) 0:80 move second child to first child ( temp highp 2-component vector of int) 0:80 vector swizzle ( temp mediump 2-component vector of int) 0:80 'iv' ( temp mediump 4-component vector of int) 0:80 Sequence 0:80 Constant: 0:80 0 (const int) 0:80 Constant: 0:80 1 (const int) 0:80 textureSize ( global highp 2-component vector of int, operation at lowp) 0:80 'sCubeShadow' ( uniform lowp samplerCubeShadow) 0:80 Constant: 0:80 2 (const int) 0:88 add second child into first child ( temp highp float) 0:88 'f' ( temp lowp float) 0:88 direct index ( temp highp float) 0:88 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) 0:88 Constant: 0:88 1 (const int) 0:89 move second child to first child ( temp highp float) 0:89 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) 0:89 'f' ( temp lowp float) 0:91 move second child to first child ( temp lowp 3-component vector of float) 0:91 'sc' ( out lowp 3-component vector of float) 0:91 c: direct index for structure ( global lowp 3-component vector of float) 0:91 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) 0:91 Constant: 0:91 0 (const int) 0:92 move second child to first child ( temp lowp float) 0:92 'sf' ( out lowp float) 0:92 f: direct index for structure ( global lowp float) 0:92 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) 0:92 Constant: 0:92 1 (const int) 0:94 add ( temp lowp 2-component vector of float) 0:94 hyp. sine ( global lowp float) 0:94 'c1D' ( smooth in lowp float) 0:95 vector-scale ( temp lowp 2-component vector of float) 0:95 hyp. cosine ( global lowp float) 0:95 'c1D' ( smooth in lowp float) 0:95 hyp. tangent ( global lowp 2-component vector of float) 0:95 'c2D' ( smooth in lowp 2-component vector of float) 0:96 add ( temp lowp 4-component vector of float) 0:96 arc hyp. sine ( global lowp 4-component vector of float) 0:96 'c4D' ( smooth temp lowp 4-component vector of float) 0:96 arc hyp. cosine ( global lowp 4-component vector of float) 0:96 'c4D' ( smooth temp lowp 4-component vector of float) 0:97 arc hyp. tangent ( global lowp 3-component vector of float) 0:97 'c3D' ( smooth in lowp 3-component vector of float) 0:? Linker Objects 0:? 's2D' ( uniform lowp sampler2D) 0:? 's3D' ( uniform lowp sampler3D) 0:? 'sCube' ( uniform lowp samplerCube) 0:? 'sCubeShadow' ( uniform lowp samplerCubeShadow) 0:? 's2DShadow' ( uniform lowp sampler2DShadow) 0:? 's2DArray' ( uniform lowp sampler2DArray) 0:? 's2DArrayShadow' ( uniform lowp sampler2DArrayShadow) 0:? 'is2D' ( uniform lowp isampler2D) 0:? 'is3D' ( uniform lowp isampler3D) 0:? 'isCube' ( uniform lowp isamplerCube) 0:? 'is2DArray' ( uniform lowp isampler2DArray) 0:? 'us2D' ( uniform lowp usampler2D) 0:? 'us3D' ( uniform lowp usampler3D) 0:? 'usCube' ( uniform lowp usamplerCube) 0:? 'us2DArray' ( uniform lowp usampler2DArray) 0:? 'c1D' ( smooth in lowp float) 0:? 'c2D' ( smooth in lowp 2-component vector of float) 0:? 'c3D' ( smooth in lowp 3-component vector of float) 0:? 'c4D' ( smooth temp lowp 4-component vector of float) 0:? 'ic1D' ( flat in mediump int) 0:? 'ic2D' ( flat in mediump 2-component vector of int) 0:? 'ic3D' ( flat in mediump 3-component vector of int) 0:? 'ic4D' ( flat in mediump 4-component vector of int) 0:? 'badv' ( noperspective in lowp 4-component vector of float) 0:? 'bads' ( smooth in lowp sampler2D) 0:? 'badout' ( smooth in structure{ global mediump int i, global lowp sampler2D s}) 0:? 's2' ( smooth in structure{ global lowp 3-component vector of float c, global lowp float f}) 0:? 'sc' ( out lowp 3-component vector of float) 0:? 'sf' ( out lowp float) 0:? 'arrayedSampler' ( uniform 5-element array of lowp sampler2D) 0:? 'multiInst' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform 3-element array of 2-element array of mediump int a, layout( column_major shared) uniform 2-element array of 3-element array of mediump int b, layout( column_major shared) uniform 2-element array of 3-element array of mediump int c}) 0:? 'colors' ( out 4-element array of lowp 4-component vector of float) 0:? 'st1' ( uniform structure{ global mediump int i, global lowp sampler2D s}) 0:? 'st2' ( uniform structure{ global mediump int i, global lowp sampler2D s}) 0:? 'fooinv' ( invariant smooth in lowp 4-component vector of float) glslang-8.13.3559/Test/baseResults/300.vert.out000066400000000000000000000604251360464450000207360ustar00rootroot00000000000000300.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) glslang-8.13.3559/Test/baseResults/300BuiltIns.frag.out000066400000000000000000000552721360464450000223530ustar00rootroot00000000000000300BuiltIns.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) glslang-8.13.3559/Test/baseResults/300block.frag.out000066400000000000000000000337571360464450000217200ustar00rootroot00000000000000300block.frag ERROR: 0:10: '' : cannot nest a structure definition inside a structure or block ERROR: 0:21: '' : cannot nest a structure definition inside a structure or block ERROR: 0:20: 'sampler' : member of block cannot be or contain a sampler, image, or atomic_uint type ERROR: 0:24: 'fbs' : member of block cannot be or contain a sampler, image, or atomic_uint type ERROR: 0:45: 'variable indexing uniform block array' : not supported for this version or the enabled extensions ERROR: 0:46: 'fooBlock' : cannot be used (maybe an instance name is needed) ERROR: 0:46: 'fooBlock' : undeclared identifier ERROR: 0:47: 'constructor' : not enough data provided for construction ERROR: 0:51: 'unreferenced' : cannot be used (maybe an instance name is needed) ERROR: 0:51: 'unreferenced' : undeclared identifier ERROR: 0:52: '++' : l-value required "s" (can't modify a uniform) ERROR: 0:52: '++' : wrong operand type no operation '++' exists that takes an operand of type uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t} (or there is no acceptable conversion) ERROR: 0:53: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type 'layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}' and a right operand of type ' const int' (or there is no acceptable conversion) ERROR: 0:55: 'barBlockArray' : cannot be used (maybe an instance name is needed) ERROR: 0:55: 'barBlockArray' : undeclared identifier ERROR: 0:55: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type ' const int' and a right operand of type ' temp float' (or there is no acceptable conversion) ERROR: 0:58: 'fooBlock' : redefinition ERROR: 17 compilation errors. No code generated. Shader version: 300 ERROR: node is still EOpNull! 0:42 Function Definition: main( ( global void) 0:42 Function Parameters: 0:44 Sequence 0:44 texture ( global lowp 4-component vector of int) 0:44 sampler: direct index for structure ( global lowp isampler3D) 0:44 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) 0:44 Constant: 0:44 2 (const int) 0:44 Construct vec3 ( temp lowp 3-component vector of float) 0:44 Convert int to float ( temp lowp float) 0:44 ni: direct index for structure (layout( column_major shared) uniform mediump int) 0:44 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:44 Constant: 0:44 1 (const int) 0:44 Convert uint to float ( temp lowp float) 0:44 direct index ( temp mediump uint) 0:44 bv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) 0:44 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t} fbs}) 0:44 Constant: 0:44 0 (const uint) 0:44 Constant: 0:44 1 (const int) 0:44 Convert uint to float ( temp lowp float) 0:44 direct index ( temp mediump uint) 0:44 nbv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) 0:44 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:44 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:44 Constant: 0:44 2 (const int) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: 0:44 2 (const int) 0:45 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:45 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:45 direct index ( temp mediump uint) 0:45 v: direct index for structure ( global mediump 4-component vector of uint) 0:45 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) 0:45 Constant: 0:45 1 (const int) 0:45 Constant: 0:45 0 (const int) 0:46 'fooBlock' ( temp float) 0:47 Constant: 0:47 0.000000 0:50 Construct mat4 ( temp 4X4 matrix of float) 0:50 'barBlock' ( temp mediump float) 0:51 Construct mat4 ( temp 4X4 matrix of float) 0:51 'unreferenced' ( temp float) 0:52 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) 0:53 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:54 Pre-Increment ( temp mediump float) 0:54 'barBlock' ( temp mediump float) 0:55 Constant: 0:55 2 (const int) 0:? Linker Objects 0:? 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) 0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t} fbs}) 0:? 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:? 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f, layout( column_major shared) uniform mediump uint u}) Linked fragment stage: Shader version: 300 ERROR: node is still EOpNull! 0:42 Function Definition: main( ( global void) 0:42 Function Parameters: 0:44 Sequence 0:44 texture ( global lowp 4-component vector of int) 0:44 sampler: direct index for structure ( global lowp isampler3D) 0:44 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) 0:44 Constant: 0:44 2 (const int) 0:44 Construct vec3 ( temp lowp 3-component vector of float) 0:44 Convert int to float ( temp lowp float) 0:44 ni: direct index for structure (layout( column_major shared) uniform mediump int) 0:44 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:44 Constant: 0:44 1 (const int) 0:44 Convert uint to float ( temp lowp float) 0:44 direct index ( temp mediump uint) 0:44 bv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) 0:44 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t} fbs}) 0:44 Constant: 0:44 0 (const uint) 0:44 Constant: 0:44 1 (const int) 0:44 Convert uint to float ( temp lowp float) 0:44 direct index ( temp mediump uint) 0:44 nbv: direct index for structure (layout( column_major shared) uniform mediump 4-component vector of uint) 0:44 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:44 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:44 Constant: 0:44 2 (const int) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: 0:44 2 (const int) 0:45 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:45 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:45 direct index ( temp mediump uint) 0:45 v: direct index for structure ( global mediump 4-component vector of uint) 0:45 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) 0:45 Constant: 0:45 1 (const int) 0:45 Constant: 0:45 0 (const int) 0:46 'fooBlock' ( temp float) 0:47 Constant: 0:47 0.000000 0:50 Construct mat4 ( temp 4X4 matrix of float) 0:50 'barBlock' ( temp mediump float) 0:51 Construct mat4 ( temp 4X4 matrix of float) 0:51 'unreferenced' ( temp float) 0:52 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) 0:53 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:54 Pre-Increment ( temp mediump float) 0:54 'barBlock' ( temp mediump float) 0:55 Constant: 0:55 2 (const int) 0:? Linker Objects 0:? 's' ( uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t}) 0:? 'anon@0' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint bv, layout( column_major shared) uniform mediump 2X2 matrix of float bm2, layout( column_major shared) uniform lowp isampler2D sampler, layout( column_major shared) uniform structure{ global mediump int a} t, layout( column_major shared) uniform structure{ global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{ global mediump int a} t} fbs}) 0:? 'inst' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:? 'insts' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump 4-component vector of uint nbv, layout( column_major shared) uniform mediump int ni}) 0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump float f, layout( column_major shared) uniform mediump uint u}) glslang-8.13.3559/Test/baseResults/300layout.frag.out000066400000000000000000000074351360464450000221350ustar00rootroot00000000000000300layout.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) glslang-8.13.3559/Test/baseResults/300layout.vert.out000066400000000000000000000347251360464450000222000ustar00rootroot00000000000000300layout.vert ERROR: 0:7: 'vertex input arrays' : not supported with this profile: es ERROR: 0:8: 'in' : cannot be a structure or array ERROR: 0:8: 'vertex input arrays' : not supported with this profile: es ERROR: 0:8: 'location' : overlapping use of location 10 ERROR: 0:12: 'layout' : cannot specify matrix layout on a variable declaration ERROR: 0:12: 'layout' : cannot specify packing on a variable declaration ERROR: 0:19: 'badf' : member of uniform or buffer block cannot have an auxiliary or interpolation qualifier ERROR: 0:20: 'badg' : member storage qualifier cannot contradict block storage qualifier ERROR: 0:21: 'bad1' : member of block cannot have a packing layout qualifier ERROR: 0:22: 'bad2' : member of block cannot have a packing layout qualifier ERROR: 0:23: 'bad3' : member of block cannot have a packing layout qualifier ERROR: 0:31: 'T3' : nameless block contains a member that already has a name at global scope ERROR: 0:38: 'vertex output block' : not supported for this version or the enabled extensions ERROR: 0:42: 'location qualifier on output' : not supported in this stage: vertex ERROR: 0:42: 'location qualifier on output' : not supported for this version or the enabled extensions ERROR: 0:50: 'shared' : not supported for this version or the enabled extensions ERROR: 0:50: 'shared' : not supported in this stage: vertex ERROR: 0:54: 'layout' : cannot specify packing on a variable declaration ERROR: 0:57: 'location' : overlapping use of location 40 ERROR: 19 compilation errors. No code generated. Shader version: 300 ERROR: node is still EOpNull! 0:44 Function Definition: main( ( global void) 0:44 Function Parameters: 0:46 Sequence 0:46 move second child to first child ( temp highp 4-component vector of float) 0:46 'pos' ( smooth out highp 4-component vector of float) 0:46 vector-times-matrix ( temp highp 4-component vector of float) 0:46 'p' (layout( location=3) in highp 4-component vector of float) 0:46 add ( temp highp 4X4 matrix of float) 0:46 add ( temp highp 4X4 matrix of float) 0:46 add ( temp highp 4X4 matrix of float) 0:46 add ( temp highp 4X4 matrix of float) 0:46 M1: direct index for structure (layout( row_major std140 offset=0) uniform highp 4X4 matrix of float) 0:46 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) 0:46 Constant: 0:46 0 (const int) 0:46 M2: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float) 0:46 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) 0:46 Constant: 0:46 1 (const int) 0:46 M4: direct index for structure (layout( row_major shared) uniform highp 4X4 matrix of float) 0:46 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp 4X4 matrix of float M3, layout( row_major shared) uniform highp 4X4 matrix of float M4, layout( column_major shared) uniform highp 3X3 matrix of float N2, layout( column_major shared) uniform highp int b}) 0:46 Constant: 0:46 1 (const uint) 0:46 M3: direct index for structure (layout( column_major shared) uniform highp 4X4 matrix of float) 0:46 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp 4X4 matrix of float M3, layout( row_major shared) uniform highp 4X4 matrix of float M4, layout( column_major shared) uniform highp 3X3 matrix of float N2, layout( column_major shared) uniform highp int b}) 0:46 Constant: 0:46 0 (const uint) 0:46 t2m: direct index for structure (layout( row_major shared) uniform highp 4X4 matrix of float) 0:46 'anon@0' (layout( row_major shared) uniform block{layout( row_major shared) uniform bool b, layout( row_major shared) uniform highp 4X4 matrix of float t2m}) 0:46 Constant: 0:46 1 (const uint) 0:47 move second child to first child ( temp highp 3-component vector of float) 0:47 'color' ( smooth out highp 3-component vector of float) 0:47 vector-times-matrix ( temp highp 3-component vector of float) 0:47 'c' (layout( location=7) in highp 3-component vector of float) 0:47 N1: direct index for structure (layout( row_major std140 offset=128) uniform highp 3X3 matrix of float) 0:47 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) 0:47 Constant: 0:47 2 (const int) 0:? Linker Objects 0:? 'c' (layout( location=7) in highp 3-component vector of float) 0:? 'p' (layout( location=3) in highp 4-component vector of float) 0:? 'q' (layout( location=9) in 4-element array of highp 4-component vector of float) 0:? 'r' (layout( location=10) in 4-element array of structure{ global highp 4-component vector of float v}) 0:? 'pos' ( smooth out highp 4-component vector of float) 0:? 'color' ( smooth out highp 3-component vector of float) 0:? 'badm4' (layout( column_major shared) uniform highp 4X4 matrix of float) 0:? 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) 0:? 'anon@0' (layout( row_major shared) uniform block{layout( row_major shared) uniform bool b, layout( row_major shared) uniform highp 4X4 matrix of float t2m}) 0:? 'anon@2' ( out block{ out highp float f}) 0:? 'badoutA' (layout( location=10) smooth out highp 4-component vector of float) 0:? 'compute_only' ( shared highp 4-component vector of float) 0:? 'aoeuntaoeu' (layout( packed) uniform highp float) 0:? 'cd' (layout( location=40) in highp float) 0:? 'ce' (layout( location=37) in highp 4X3 matrix of float) 0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) Linked vertex stage: Shader version: 300 ERROR: node is still EOpNull! 0:44 Function Definition: main( ( global void) 0:44 Function Parameters: 0:46 Sequence 0:46 move second child to first child ( temp highp 4-component vector of float) 0:46 'pos' ( smooth out highp 4-component vector of float) 0:46 vector-times-matrix ( temp highp 4-component vector of float) 0:46 'p' (layout( location=3) in highp 4-component vector of float) 0:46 add ( temp highp 4X4 matrix of float) 0:46 add ( temp highp 4X4 matrix of float) 0:46 add ( temp highp 4X4 matrix of float) 0:46 add ( temp highp 4X4 matrix of float) 0:46 M1: direct index for structure (layout( row_major std140 offset=0) uniform highp 4X4 matrix of float) 0:46 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) 0:46 Constant: 0:46 0 (const int) 0:46 M2: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float) 0:46 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) 0:46 Constant: 0:46 1 (const int) 0:46 M4: direct index for structure (layout( row_major shared) uniform highp 4X4 matrix of float) 0:46 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp 4X4 matrix of float M3, layout( row_major shared) uniform highp 4X4 matrix of float M4, layout( column_major shared) uniform highp 3X3 matrix of float N2, layout( column_major shared) uniform highp int b}) 0:46 Constant: 0:46 1 (const uint) 0:46 M3: direct index for structure (layout( column_major shared) uniform highp 4X4 matrix of float) 0:46 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform highp 4X4 matrix of float M3, layout( row_major shared) uniform highp 4X4 matrix of float M4, layout( column_major shared) uniform highp 3X3 matrix of float N2, layout( column_major shared) uniform highp int b}) 0:46 Constant: 0:46 0 (const uint) 0:46 t2m: direct index for structure (layout( row_major shared) uniform highp 4X4 matrix of float) 0:46 'anon@0' (layout( row_major shared) uniform block{layout( row_major shared) uniform bool b, layout( row_major shared) uniform highp 4X4 matrix of float t2m}) 0:46 Constant: 0:46 1 (const uint) 0:47 move second child to first child ( temp highp 3-component vector of float) 0:47 'color' ( smooth out highp 3-component vector of float) 0:47 vector-times-matrix ( temp highp 3-component vector of float) 0:47 'c' (layout( location=7) in highp 3-component vector of float) 0:47 N1: direct index for structure (layout( row_major std140 offset=128) uniform highp 3X3 matrix of float) 0:47 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) 0:47 Constant: 0:47 2 (const int) 0:? Linker Objects 0:? 'c' (layout( location=7) in highp 3-component vector of float) 0:? 'p' (layout( location=3) in highp 4-component vector of float) 0:? 'q' (layout( location=9) in 4-element array of highp 4-component vector of float) 0:? 'r' (layout( location=10) in 4-element array of structure{ global highp 4-component vector of float v}) 0:? 'pos' ( smooth out highp 4-component vector of float) 0:? 'color' ( smooth out highp 3-component vector of float) 0:? 'badm4' (layout( column_major shared) uniform highp 4X4 matrix of float) 0:? 'tblock' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform highp 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform highp 3X3 matrix of float N1, layout( row_major std140 offset=176) centroid uniform highp float badf, layout( row_major std140 offset=180) uniform highp float badg, layout( row_major std140 offset=184) uniform highp float bad1, layout( row_major shared offset=188) uniform highp float bad2, layout( row_major packed offset=192) uniform highp float bad3}) 0:? 'anon@0' (layout( row_major shared) uniform block{layout( row_major shared) uniform bool b, layout( row_major shared) uniform highp 4X4 matrix of float t2m}) 0:? 'anon@2' ( out block{ out highp float f}) 0:? 'badoutA' (layout( location=10) smooth out highp 4-component vector of float) 0:? 'compute_only' ( shared highp 4-component vector of float) 0:? 'aoeuntaoeu' (layout( packed) uniform highp float) 0:? 'cd' (layout( location=40) in highp float) 0:? 'ce' (layout( location=37) in highp 4X3 matrix of float) 0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) glslang-8.13.3559/Test/baseResults/300link.frag.out000066400000000000000000000012011360464450000215360ustar00rootroot00000000000000300link.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) glslang-8.13.3559/Test/baseResults/300link2.frag.out000066400000000000000000000016161360464450000216320ustar00rootroot00000000000000300link2.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) glslang-8.13.3559/Test/baseResults/300link3.frag.out000066400000000000000000000006421360464450000216310ustar00rootroot00000000000000300link3.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) glslang-8.13.3559/Test/baseResults/300operations.frag.out000066400000000000000000000662321360464450000230030ustar00rootroot00000000000000300operations.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) glslang-8.13.3559/Test/baseResults/300samplerExternal.frag.out000066400000000000000000000155431360464450000237650ustar00rootroot00000000000000300samplerExternal.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) glslang-8.13.3559/Test/baseResults/300samplerExternalYUV.frag.out000066400000000000000000000153101360464450000243610ustar00rootroot00000000000000300samplerExternalYUV.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) glslang-8.13.3559/Test/baseResults/300scope.vert.out000066400000000000000000000210121360464450000217550ustar00rootroot00000000000000300scope.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) glslang-8.13.3559/Test/baseResults/310.comp.out000066400000000000000000001123661360464450000207170ustar00rootroot00000000000000310.comp ERROR: 0:4: 'local_size' : cannot change previously set size ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize ERROR: 0:7: 'local_size_y' : must be at least 1 ERROR: 0:23: '' : array size required ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute shader ERROR: 0:39: 'location qualifier on input' : not supported in this stage: compute ERROR: 0:40: 'in' : global storage input qualifier cannot be used in a compute shader ERROR: 0:41: 'out' : global storage output qualifier cannot be used in a compute shader ERROR: 0:44: 'shared' : cannot apply layout qualifiers to a shared variable ERROR: 0:44: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers ERROR: 0:45: 'shared' : cannot initialize this type of qualifier ERROR: 0:47: 'local_size' : can only apply to 'in' ERROR: 0:47: 'local_size' : can only apply to 'in' ERROR: 0:47: 'local_size' : can only apply to 'in' ERROR: 0:61: 'assign' : l-value required "ro" (can't modify a readonly buffer) ERROR: 0:66: 'buffer' : buffers can be declared only as blocks ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:76: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:82: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:87: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:88: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:89: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:89: 'readonly' : argument cannot drop memory qualifier when passed to formal parameter ERROR: 0:89: 'imageAtomicMin' : only supported on image with format r32i or r32ui ERROR: 0:90: 'imageAtomicMax' : no matching overloaded function found ERROR: 0:94: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter ERROR: 0:97: '' : memory qualifiers cannot be used on this type ERROR: 0:98: '' : memory qualifiers cannot be used on this type ERROR: 0: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: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 3-component vector of int) 0:92 'i' ( temp highp int) 0:92 'i' ( temp highp int) 0:92 'i' ( temp highp int) 0:92 Constant: 0:92 0 (const int) 0:92 0 (const int) 0:92 0 (const int) 0:92 0 (const int) 0:93 imageLoad ( global mediump 4-component vector of float) 0:93 'img2Drgba' (layout( rgba32f) readonly uniform mediump image2D) 0:93 Construct ivec2 ( temp mediump 2-component vector of int) 0:93 'i' ( temp highp int) 0:93 'i' ( temp highp int) 0:94 imageLoad ( global highp 4-component vector of int) 0:94 'ii2da' ( writeonly uniform highp iimage2DArray) 0:94 Construct ivec3 ( temp highp 3-component vector of int) 0:94 'i' ( temp highp int) 0:94 'i' ( temp highp int) 0:94 'i' ( temp highp int) 0:100 Function Definition: passr(iI21; ( global void) 0:100 Function Parameters: 0:100 'image' ( coherent readonly in highp iimage2D) 0:107 Function Definition: passrc( ( global void) 0:107 Function Parameters: 0:109 Sequence 0:109 Function Call: passr(iI21; ( global void) 0:109 'qualim1' (layout( r32i) coherent readonly uniform highp iimage2D) 0:110 Function Call: passr(iI21; ( global void) 0:110 'qualim2' (layout( r32i) coherent restrict readonly uniform highp iimage2D) 0:111 Function Call: passr(iI21; ( global void) 0:111 'iimg2D' (layout( r32i) uniform highp iimage2D) 0:123 Function Definition: func(au1; ( global highp uint) 0:123 Function Parameters: 0:123 'c' ( in highp atomic_uint) 0:125 Sequence 0:125 Branch: Return with expression 0:125 AtomicCounterIncrement ( global highp uint) 0:125 'c' ( in highp atomic_uint) 0:128 Function Definition: func2(au1; ( global highp uint) 0:128 Function Parameters: 0:128 'c' ( out highp atomic_uint) 0:130 Sequence 0:130 Branch: Return with expression 0:130 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) 0:131 Branch: Return with expression 0:131 AtomicCounter ( global highp uint) 0:131 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) 0:134 Function Definition: mainAC( ( global void) 0:134 Function Parameters: 0:? Sequence 0:137 Sequence 0:137 move second child to first child ( temp highp uint) 0:137 'val' ( temp highp uint) 0:137 AtomicCounter ( global highp uint) 0:137 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) 0:138 AtomicCounterDecrement ( global highp uint) 0:138 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) 0:146 Function Definition: opac( ( global void) 0:146 Function Parameters: 0:? Sequence 0:149 indirect index ( temp highp int) 0:149 'a' ( temp 3-element array of highp int) 0:149 'counter' (layout( binding=0 offset=0) uniform highp atomic_uint) 0:150 direct index (layout( binding=2 offset=4) temp highp atomic_uint) 0:150 'countArr' (layout( binding=2 offset=4) uniform 4-element array of highp atomic_uint) 0:150 Constant: 0:150 2 (const int) 0:151 indirect index (layout( binding=2 offset=4) temp highp atomic_uint) 0:151 'countArr' (layout( binding=2 offset=4) uniform 4-element array of highp atomic_uint) 0:151 'i' ( uniform highp int) 0:157 Function Definition: atoms( ( global void) 0:157 Function Parameters: 0:159 Sequence 0:159 Sequence 0:159 move second child to first child ( temp highp int) 0:159 'origi' ( temp highp int) 0:159 AtomicAdd ( global highp int) 0:159 'atomi' ( shared highp int) 0:159 Constant: 0:159 3 (const int) 0:160 Sequence 0:160 move second child to first child ( temp highp uint) 0:160 'origu' ( temp highp uint) 0:160 AtomicAnd ( global highp uint) 0:160 'atomu' ( shared highp uint) 0:160 Constant: 0:160 7 (const uint) 0:161 move second child to first child ( temp highp int) 0:161 'origi' ( temp highp int) 0:161 AtomicExchange ( global highp int) 0:161 'atomi' ( shared highp int) 0:161 Constant: 0:161 4 (const int) 0:162 move second child to first child ( temp highp uint) 0:162 'origu' ( temp highp uint) 0:162 AtomicCompSwap ( global highp uint) 0:162 'atomu' ( shared highp uint) 0:162 Constant: 0:162 10 (const uint) 0:162 Constant: 0:162 8 (const uint) 0:191 Function Definition: foowo( ( global void) 0:191 Function Parameters: 0:? Sequence 0:194 move second child to first child ( temp highp float) 0:194 'g' ( temp highp float) 0:194 direct index (layout( column_major shared) 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:? 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) glslang-8.13.3559/Test/baseResults/310.frag.out000066400000000000000000002052321360464450000206730ustar00rootroot00000000000000310.frag ERROR: 0:2: 'float' : type requires declaration of default precision qualifier ERROR: 0:8: 'origin_upper_left' : not supported with this profile: es ERROR: 0:8: 'pixel_center_integer' : not supported with this profile: es ERROR: 0:8: 'gl_FragCoord' : identifiers starting with "gl_" are reserved ERROR: 0:11: 'location' : overlapping use of location 2 ERROR: 0:15: 'usampler2DRect' : Reserved word. ERROR: 0:15: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:23: 'variable indexing sampler array' : not supported for this version or the enabled extensions ERROR: 0:27: 'textureGatherOffsets' : no matching overloaded function found ERROR: 0:27: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of uint' ERROR: 0:30: 'textureGatherOffset(...)' : must be a compile-time constant: component argument ERROR: 0:31: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument ERROR: 0:34: 'non-constant offset argument' : not supported for this version or the enabled extensions ERROR: 0:42: 'texel offset' : argument must be compile-time constant ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:44: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:66: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:66: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es ERROR: 0:67: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:67: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:68: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es ERROR: 0:69: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:69: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es ERROR: 0:73: 'binding' : requires block, or sampler/image, or atomic-counter type ERROR: 0:77: 'location' : location is too large ERROR: 0:81: 'location' : too large for fragment output ERROR: 0:82: 'location' : too large for fragment output ERROR: 0:82: 'location' : overlapping use of location 40 ERROR: 0:83: 'non-literal layout-id value' : not supported with this profile: es ERROR: 0:83: 'layout-id value' : cannot be negative ERROR: 0:96: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:110: 'out' : cannot be bool ERROR: 0:111: 'image2D' : sampler/image types can only be used in uniform variables or function parameters: imageOut ERROR: 0:111: 'image variables not declared 'writeonly' and without a format layout qualifier' : not supported with this profile: es ERROR: 0:112: 'out' : cannot be a matrix ERROR: 0:114: 'in' : cannot be bool ERROR: 0:115: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: ino ERROR: 0:117: 'fragment-shader array-of-array input' : not supported with this profile: es ERROR: 0:120: 'fragment-shader array-of-struct input' : not supported with this profile: es ERROR: 0:121: 'fragment-shader array-of-struct input' : not supported with this profile: es ERROR: 0:123: 'fragment-shader struct input containing an array' : not supported with this profile: es ERROR: 0:125: 'fragment-shader struct input containing structure' : not supported with this profile: es ERROR: 0:133: 'output block' : not supported in this stage: fragment ERROR: 0:138: '' : cannot nest a structure definition inside a structure or block ERROR: 0:146: 'location' : overlapping use of location 13 ERROR: 0:148: 'inbname2' : Cannot reuse block name within the same interface: in ERROR: 0:153: 'badmember' : nameless block contains a member that already has a name at global scope ERROR: 0:157: 'inbname' : redefinition ERROR: 0:159: 'vAnon' : redefinition ERROR: 0:173: 'origin_upper_left' : not supported with this profile: es ERROR: 0:173: 'pixel_center_integer' : not supported with this profile: es ERROR: 0:173: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord ERROR: 0:177: 'depth layout qualifier' : not supported with this profile: es ERROR: 0:181: 'assign' : l-value required "gl_FragDepth" (can't modify gl_FragDepth if using early_fragment_tests) ERROR: 0:182: 'gl_Layer' : required extension not requested: Possible extensions include: GL_EXT_geometry_shader GL_OES_geometry_shader ERROR: 0:183: 'gl_PrimitiveID' : required extension not requested: Possible extensions include: GL_EXT_geometry_shader GL_OES_geometry_shader ERROR: 0:209: 'precise' : Reserved word. ERROR: 0:209: 'precise' : not supported for this version or the enabled extensions ERROR: 0:210: 'fma' : required extension not requested: Possible extensions include: GL_EXT_gpu_shader5 GL_OES_gpu_shader5 ERROR: 0:211: 'non-constant offset argument' : not supported for this version or the enabled extensions ERROR: 0:212: 'textureGatherOffsets' : required extension not requested: Possible extensions include: GL_EXT_gpu_shader5 GL_OES_gpu_shader5 ERROR: 0:223: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument ERROR: 0:257: 'gl_SampleID' : required extension not requested: GL_OES_sample_variables ERROR: 0:258: 'gl_SamplePosition' : required extension not requested: GL_OES_sample_variables ERROR: 0:259: 'gl_SampleMaskIn' : required extension not requested: GL_OES_sample_variables ERROR: 0:260: 'gl_SampleMask' : required extension not requested: GL_OES_sample_variables ERROR: 0:261: 'gl_NumSamples' : required extension not requested: GL_OES_sample_variables ERROR: 0:289: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:290: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:291: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:292: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:293: 'imageAtomicMax' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:294: 'imageAtomicMax' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:295: 'imageAtomicAnd' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:296: 'imageAtomicAnd' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:297: 'imageAtomicOr' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:298: 'imageAtomicOr' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:299: 'imageAtomicXor' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:300: 'imageAtomicXor' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:301: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:302: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:303: 'imageAtomicExchange' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:304: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:305: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:312: 'rgba32f' : format requires readonly or writeonly memory qualifier ERROR: 0:313: 'rgba8ui' : format requires readonly or writeonly memory qualifier ERROR: 0:314: 'rgba16i' : format requires readonly or writeonly memory qualifier ERROR: 0:340: 'imageAtomicMax' : only supported on image with format r32i or r32ui ERROR: 0:341: 'imageAtomicMax' : only supported on image with format r32i or r32ui ERROR: 0:342: 'imageAtomicExchange' : only supported on image with format r32f ERROR: 0:345: 'sample' : Reserved word. ERROR: 0:346: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output ERROR: 0:347: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output ERROR: 0:348: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output ERROR: 0:349: 'noperspective' : Reserved word. ERROR: 0:349: 'noperspective' : not supported for this version or the enabled extensions ERROR: 0:349: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output ERROR: 0:355: 'interpolateAtCentroid' : required extension not requested: GL_OES_shader_multisample_interpolation ERROR: 0:356: 'interpolateAtSample' : required extension not requested: GL_OES_shader_multisample_interpolation ERROR: 0:357: 'interpolateAtOffset' : required extension not requested: GL_OES_shader_multisample_interpolation ERROR: 0:365: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output ERROR: 0:380: 'interpolateAtCentroid' : no matching overloaded function found ERROR: 0:380: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' ERROR: 0:382: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element ERROR: 0:384: 'interpolateAtSample' : no matching overloaded function found ERROR: 0:384: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' ERROR: 0:386: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element ERROR: 0:389: 'interpolateAtOffset' : no matching overloaded function found ERROR: 0:389: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' ERROR: 0:391: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element ERROR: 0:392: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element ERROR: 0:396: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element ERROR: 0:397: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element ERROR: 0:400: 'blend equation' : not supported for this version or the enabled extensions ERROR: 0:423: 'blend equation' : can only apply to 'out' ERROR: 0:424: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:425: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:426: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:427: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:428: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:429: 'blend_support' : unknown blend equation ERROR: 0:431: 'fragment-shader array-of-array output' : not supported with this profile: es ERROR: 0:435: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group ERROR: 0:436: 'gl_ViewIndex' : required extension not requested: GL_EXT_multiview ERROR: 127 compilation errors. No code generated. Shader version: 310 Requested GL_EXT_device_group Requested GL_EXT_multiview Requested GL_EXT_shader_io_blocks Requested GL_EXT_texture_cube_map_array Requested GL_KHR_blend_equation_advanced Requested GL_OES_geometry_shader Requested GL_OES_gpu_shader5 Requested GL_OES_sample_variables Requested GL_OES_shader_image_atomic Requested GL_OES_shader_io_blocks Requested GL_OES_shader_multisample_interpolation gl_FragCoord pixel center is integer gl_FragCoord origin is upper left using early_fragment_tests using depth_any using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations ERROR: node is still EOpNull! 0:21 Function Definition: main( ( global void) 0:21 Function Parameters: 0:23 Sequence 0:23 Sequence 0:23 move second child to first child ( temp highp 4-component vector of float) 0:23 'v' ( temp mediump 4-component vector of float) 0:23 texture ( global highp 4-component vector of float) 0:23 indirect index ( temp highp sampler2D) 0:23 'arrayedSampler' ( uniform 5-element array of highp sampler2D) 0:23 'i' ( uniform mediump int) 0:23 'c2D' ( smooth in mediump 2-component vector of float) 0:28 Sequence 0:28 move second child to first child ( temp highp 4-component vector of float) 0:28 'v4' ( temp mediump 4-component vector of float) 0:28 textureGather ( global highp 4-component vector of float) 0:28 direct index ( temp highp sampler2D) 0:28 'arrayedSampler' ( uniform 5-element array of highp sampler2D) 0:28 Constant: 0:28 0 (const int) 0:28 'c2D' ( smooth in mediump 2-component vector of float) 0:29 Sequence 0:29 move second child to first child ( temp highp 4-component vector of int) 0:29 'iv4' ( temp mediump 4-component vector of int) 0:29 textureGatherOffset ( global highp 4-component vector of int) 0:29 'isamp2DA' ( uniform highp isampler2DArray) 0:29 Constant: 0:29 0.100000 0:29 0.100000 0:29 0.100000 0:29 Constant: 0:29 1 (const int) 0:29 1 (const int) 0:29 Constant: 0:29 3 (const int) 0:30 move second child to first child ( temp highp 4-component vector of int) 0:30 'iv4' ( temp mediump 4-component vector of int) 0:30 textureGatherOffset ( global highp 4-component vector of int) 0:30 'isamp2DA' ( uniform highp isampler2DArray) 0:30 Constant: 0:30 0.100000 0:30 0.100000 0:30 0.100000 0:30 Constant: 0:30 1 (const int) 0:30 1 (const int) 0:30 'i' ( uniform mediump int) 0:31 move second child to first child ( temp highp 4-component vector of int) 0:31 'iv4' ( temp mediump 4-component vector of int) 0:31 textureGatherOffset ( global highp 4-component vector of int) 0:31 'isamp2DA' ( uniform highp isampler2DArray) 0:31 Constant: 0:31 0.100000 0:31 0.100000 0:31 0.100000 0:31 Constant: 0:31 1 (const int) 0:31 1 (const int) 0:31 Constant: 0:31 4 (const int) 0:32 move second child to first child ( temp highp 4-component vector of int) 0:32 'iv4' ( temp mediump 4-component vector of int) 0:32 textureGatherOffset ( global highp 4-component vector of int) 0:32 'isamp2DA' ( uniform highp isampler2DArray) 0:32 Constant: 0:32 0.100000 0:32 0.100000 0:32 0.100000 0:32 Constant: 0:32 1 (const int) 0:32 1 (const int) 0:32 Constant: 0:32 3 (const int) 0:33 move second child to first child ( temp highp 4-component vector of int) 0:33 'iv4' ( temp mediump 4-component vector of int) 0:33 textureGatherOffset ( global highp 4-component vector of int) 0:33 'isamp2DA' ( uniform highp isampler2DArray) 0:33 Constant: 0:33 0.100000 0:33 0.100000 0:33 0.100000 0:33 Constant: 0:33 0 (const int) 0:33 0 (const int) 0:34 move second child to first child ( temp highp 4-component vector of int) 0:34 'iv4' ( temp mediump 4-component vector of int) 0:34 textureGatherOffset ( global highp 4-component vector of int) 0:34 'isamp2DA' ( uniform highp isampler2DArray) 0:34 Constant: 0:34 0.100000 0:34 0.100000 0:34 0.100000 0:34 Construct ivec2 ( temp highp 2-component vector of int) 0:34 'i' ( uniform mediump int) 0:38 Function Definition: foo23( ( global void) 0:38 Function Parameters: 0:? Sequence 0:42 textureProjGradOffset ( global highp 4-component vector of uint) 0:42 'usamp2d' ( uniform highp usampler2D) 0:42 'outp' ( out mediump 4-component vector of float) 0:42 Constant: 0:42 0.000000 0:42 0.000000 0:42 Constant: 0:42 0.000000 0:42 0.000000 0:42 Convert float to int ( temp highp 2-component vector of int) 0:42 'c2D' ( smooth in mediump 2-component vector of float) 0:43 textureProjGradOffset ( global highp 4-component vector of uint) 0:43 'usamp2d' ( uniform highp usampler2D) 0:43 'outp' ( out mediump 4-component vector of float) 0:43 Constant: 0:43 0.000000 0:43 0.000000 0:43 Constant: 0:43 0.000000 0:43 0.000000 0:43 Constant: 0:43 3 (const int) 0:43 4 (const int) 0:44 textureProjGradOffset ( global highp 4-component vector of uint) 0:44 'usamp2d' ( uniform highp usampler2D) 0:44 'outp' ( out mediump 4-component vector of float) 0:44 Constant: 0:44 0.000000 0:44 0.000000 0:44 Constant: 0:44 0.000000 0:44 0.000000 0:44 Constant: 0:44 15 (const int) 0:44 16 (const int) 0:45 textureProjGradOffset ( global highp 4-component vector of uint) 0:45 'usamp2d' ( uniform highp usampler2D) 0:45 'outp' ( out mediump 4-component vector of float) 0:45 Constant: 0:45 0.000000 0:45 0.000000 0:45 Constant: 0:45 0.000000 0:45 0.000000 0:45 Constant: 0:45 -10 (const int) 0:45 20 (const int) 0:47 Test condition and select ( temp void) 0:47 Condition 0:47 'gl_HelperInvocation' ( in bool HelperInvocation) 0:47 true case 0:48 Pre-Increment ( temp mediump 4-component vector of float) 0:48 'outp' ( out mediump 4-component vector of float) 0:50 Sequence 0:50 move second child to first child ( temp mediump int) 0:50 'sum' ( temp mediump int) 0:50 Constant: 0:50 32 (const int) 0:58 move second child to first child ( temp bool) 0:58 'b1' ( temp bool) 0:58 mix ( global bool) 0:58 'b2' ( temp bool) 0:58 'b3' ( temp bool) 0:58 'b' ( temp bool) 0:59 Sequence 0:59 move second child to first child ( temp mediump 3-component vector of uint) 0:59 'um3' ( temp mediump 3-component vector of uint) 0:59 mix ( global mediump 3-component vector of uint) 0:59 Construct uvec3 ( temp mediump 3-component vector of uint) 0:59 Convert int to uint ( temp mediump uint) 0:59 'i' ( uniform mediump int) 0:59 Construct uvec3 ( temp mediump 3-component vector of uint) 0:59 Convert int to uint ( temp mediump uint) 0:59 'i' ( uniform mediump int) 0:59 Construct bvec3 ( temp 3-component vector of bool) 0:59 'b' ( temp bool) 0:60 Sequence 0:60 move second child to first child ( temp mediump 4-component vector of int) 0:60 'im4' ( temp mediump 4-component vector of int) 0:60 mix ( global mediump 4-component vector of int) 0:60 Construct ivec4 ( temp mediump 4-component vector of int) 0:60 'i' ( uniform mediump int) 0:60 Construct ivec4 ( temp mediump 4-component vector of int) 0:60 'i' ( uniform mediump int) 0:60 Construct bvec4 ( temp 4-component vector of bool) 0:60 'b' ( temp bool) 0: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 highp 2-component vector of int) 0:211 'inf' ( smooth in mediump 2-component vector of float) 0:212 textureGatherOffsets ( global highp 4-component vector of float) 0:212 direct index ( temp highp sampler2D) 0:212 'sArray' ( uniform 4-element array of highp sampler2D) 0:212 Constant: 0:212 0 (const int) 0:212 Constant: 0:212 0.100000 0:212 0.100000 0:212 Constant: 0:212 0 (const int) 0:212 0 (const int) 0:212 0 (const int) 0:212 0 (const int) 0:212 0 (const int) 0:212 0 (const int) 0:212 0 (const int) 0:212 0 (const int) 0:217 Function Definition: pfoo( ( global void) 0:217 Function Parameters: 0:? Sequence 0:220 move second child to first child ( temp mediump 2-component vector of float) 0:220 'h' ( noContraction temp mediump 2-component vector of float) 0:220 fma ( global mediump 2-component vector of float) 0:220 'inf' ( smooth in mediump 2-component vector of float) 0:220 'ing' ( smooth in mediump 2-component vector of float) 0:220 'h' ( noContraction temp mediump 2-component vector of float) 0:221 textureGatherOffset ( global highp 4-component vector of float) 0:221 direct index ( temp highp sampler2D) 0:221 'sArray' ( uniform 4-element array of highp sampler2D) 0:221 Constant: 0:221 0 (const int) 0:221 Constant: 0:221 0.100000 0:221 0.100000 0:221 Convert float to int ( temp highp 2-component vector of int) 0:221 'inf' ( smooth in mediump 2-component vector of float) 0:222 textureGatherOffsets ( global highp 4-component vector of float) 0:222 direct index ( temp highp sampler2D) 0:222 'sArray' ( uniform 4-element array of highp sampler2D) 0:222 Constant: 0:222 0 (const int) 0:222 Constant: 0:222 0.100000 0:222 0.100000 0:222 Constant: 0:222 0 (const int) 0:222 0 (const int) 0:222 0 (const int) 0:222 0 (const int) 0:222 0 (const int) 0:222 0 (const int) 0:222 0 (const int) 0:222 0 (const int) 0:223 textureGatherOffsets ( global highp 4-component vector of float) 0:223 direct index ( temp highp sampler2D) 0:223 'sArray' ( uniform 4-element array of highp sampler2D) 0:223 Constant: 0:223 0 (const int) 0:223 Constant: 0:223 0.100000 0:223 0.100000 0:223 'offsets' ( uniform 4-element array of mediump 2-component vector of int) 0:248 Function Definition: CAT( ( global void) 0:248 Function Parameters: 0:250 Sequence 0:250 Sequence 0:250 move second child to first child ( temp highp 4-component vector of float) 0:250 'b4' ( temp highp 4-component vector of float) 0:250 texture ( global highp 4-component vector of float) 0:250 'CA4' ( uniform highp samplerCubeArray) 0:250 Constant: 0:250 0.500000 0:250 0.500000 0:250 0.500000 0:250 0.500000 0:250 Constant: 0:250 0.240000 0:251 Sequence 0:251 move second child to first child ( temp highp 4-component vector of int) 0:251 'b6' ( temp highp 4-component vector of int) 0:251 texture ( global highp 4-component vector of int) 0:251 'CA6' ( uniform highp isamplerCubeArray) 0:251 Constant: 0:251 0.500000 0:251 0.500000 0:251 0.500000 0:251 0.500000 0:251 Constant: 0:251 0.260000 0:252 Sequence 0:252 move second child to first child ( temp highp 4-component vector of uint) 0:252 'b7' ( temp highp 4-component vector of uint) 0:252 texture ( global highp 4-component vector of uint) 0:252 'CA7' ( uniform highp usamplerCubeArray) 0:252 Constant: 0:252 0.500000 0:252 0.500000 0:252 0.500000 0:252 0.500000 0:252 Constant: 0:252 0.270000 0:255 Function Definition: badSample( ( global void) 0:255 Function Parameters: 0:257 Sequence 0:257 Sequence 0:257 move second child to first child ( temp lowp int) 0:257 'a1' ( temp lowp int) 0:257 'gl_SampleID' ( flat in lowp int SampleId) 0:258 Sequence 0:258 move second child to first child ( temp mediump 2-component vector of float) 0:258 'a2' ( temp mediump 2-component vector of float) 0:258 'gl_SamplePosition' ( smooth in mediump 2-component vector of float SamplePosition) 0:259 Sequence 0:259 move second child to first child ( temp highp int) 0:259 'a3' ( temp highp int) 0:259 direct index ( flat temp highp int SampleMaskIn) 0:259 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) 0:259 Constant: 0:259 0 (const int) 0:260 move second child to first child ( temp highp int) 0:260 direct index ( temp highp int SampleMaskIn) 0:260 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) 0:260 Constant: 0:260 0 (const int) 0:260 'a3' ( temp highp int) 0:261 Sequence 0:261 move second child to first child ( temp mediump int) 0:261 'n' ( temp mediump int) 0:261 'gl_NumSamples' ( uniform lowp int) 0:268 Function Definition: goodSample( ( global void) 0:268 Function Parameters: 0:270 Sequence 0:270 Sequence 0:270 move second child to first child ( temp lowp int) 0:270 'a1' ( temp lowp int) 0:270 'gl_SampleID' ( flat in lowp int SampleId) 0:271 Sequence 0:271 move second child to first child ( temp mediump 2-component vector of float) 0:271 'a2' ( temp mediump 2-component vector of float) 0:271 'gl_SamplePosition' ( smooth in mediump 2-component vector of float SamplePosition) 0:272 Sequence 0:272 move second child to first child ( temp highp int) 0:272 'a3' ( temp highp int) 0:272 direct index ( flat temp highp int SampleMaskIn) 0:272 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) 0:272 Constant: 0:272 0 (const int) 0:273 move second child to first child ( temp highp int) 0:273 direct index ( temp highp int SampleMaskIn) 0:273 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) 0:273 Constant: 0:273 0 (const int) 0:273 'a3' ( temp highp int) 0:274 Sequence 0:274 move second child to first child ( temp mediump int) 0:274 'n1' ( temp mediump int) 0:274 Constant: 0:274 4 (const int) 0:275 Sequence 0:275 move second child to first child ( temp mediump int) 0:275 'n2' ( temp mediump int) 0:275 'gl_NumSamples' ( uniform lowp int) 0:283 Function Definition: badImageAtom( ( global void) 0:283 Function Parameters: 0:? Sequence 0:289 imageAtomicAdd ( global highp int) 0:289 'im2Di' (layout( r32i) uniform highp iimage2D) 0:289 'P' ( uniform mediump 2-component vector of int) 0:289 'dati' ( temp mediump int) 0:290 imageAtomicAdd ( global highp uint) 0:290 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:290 'P' ( uniform mediump 2-component vector of int) 0:290 'datu' ( temp mediump uint) 0:291 imageAtomicMin ( global highp int) 0:291 'im2Di' (layout( r32i) uniform highp iimage2D) 0:291 'P' ( uniform mediump 2-component vector of int) 0:291 'dati' ( temp mediump int) 0:292 imageAtomicMin ( global highp uint) 0:292 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:292 'P' ( uniform mediump 2-component vector of int) 0:292 'datu' ( temp mediump uint) 0:293 imageAtomicMax ( global highp int) 0:293 'im2Di' (layout( r32i) uniform highp iimage2D) 0:293 'P' ( uniform mediump 2-component vector of int) 0:293 'dati' ( temp mediump int) 0:294 imageAtomicMax ( global highp uint) 0:294 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:294 'P' ( uniform mediump 2-component vector of int) 0:294 'datu' ( temp mediump uint) 0:295 imageAtomicAnd ( global highp int) 0:295 'im2Di' (layout( r32i) uniform highp iimage2D) 0:295 'P' ( uniform mediump 2-component vector of int) 0:295 'dati' ( temp mediump int) 0:296 imageAtomicAnd ( global highp uint) 0:296 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:296 'P' ( uniform mediump 2-component vector of int) 0:296 'datu' ( temp mediump uint) 0:297 imageAtomicOr ( global highp int) 0:297 'im2Di' (layout( r32i) uniform highp iimage2D) 0:297 'P' ( uniform mediump 2-component vector of int) 0:297 'dati' ( temp mediump int) 0:298 imageAtomicOr ( global highp uint) 0:298 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:298 'P' ( uniform mediump 2-component vector of int) 0:298 'datu' ( temp mediump uint) 0:299 imageAtomicXor ( global highp int) 0:299 'im2Di' (layout( r32i) uniform highp iimage2D) 0:299 'P' ( uniform mediump 2-component vector of int) 0:299 'dati' ( temp mediump int) 0:300 imageAtomicXor ( global highp uint) 0:300 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:300 'P' ( uniform mediump 2-component vector of int) 0:300 'datu' ( temp mediump uint) 0:301 imageAtomicExchange ( global highp int) 0:301 'im2Di' (layout( r32i) uniform highp iimage2D) 0:301 'P' ( uniform mediump 2-component vector of int) 0:301 'dati' ( temp mediump int) 0:302 imageAtomicExchange ( global highp uint) 0:302 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:302 'P' ( uniform mediump 2-component vector of int) 0:302 'datu' ( temp mediump uint) 0:303 imageAtomicExchange ( global highp float) 0:303 'im2Df' (layout( r32f) uniform highp image2D) 0:303 'P' ( uniform mediump 2-component vector of int) 0:303 'datf' ( temp mediump float) 0:304 imageAtomicCompSwap ( global highp int) 0:304 'im2Di' (layout( r32i) uniform highp iimage2D) 0:304 'P' ( uniform mediump 2-component vector of int) 0:304 Constant: 0:304 3 (const int) 0:304 'dati' ( temp mediump int) 0:305 imageAtomicCompSwap ( global highp uint) 0:305 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:305 'P' ( uniform mediump 2-component vector of int) 0:305 Constant: 0:305 5 (const uint) 0:305 'datu' ( temp mediump uint) 0:316 Function Definition: goodImageAtom( ( global void) 0:316 Function Parameters: 0:? Sequence 0:322 imageAtomicAdd ( global highp int) 0:322 'im2Di' (layout( r32i) uniform highp iimage2D) 0:322 'P' ( uniform mediump 2-component vector of int) 0:322 'dati' ( temp mediump int) 0:323 imageAtomicAdd ( global highp uint) 0:323 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:323 'P' ( uniform mediump 2-component vector of int) 0:323 'datu' ( temp mediump uint) 0:324 imageAtomicMin ( global highp int) 0:324 'im2Di' (layout( r32i) uniform highp iimage2D) 0:324 'P' ( uniform mediump 2-component vector of int) 0:324 'dati' ( temp mediump int) 0:325 imageAtomicMin ( global highp uint) 0:325 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:325 'P' ( uniform mediump 2-component vector of int) 0:325 'datu' ( temp mediump uint) 0:326 imageAtomicMax ( global highp int) 0:326 'im2Di' (layout( r32i) uniform highp iimage2D) 0:326 'P' ( uniform mediump 2-component vector of int) 0:326 'dati' ( temp mediump int) 0:327 imageAtomicMax ( global highp uint) 0:327 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:327 'P' ( uniform mediump 2-component vector of int) 0:327 'datu' ( temp mediump uint) 0:328 imageAtomicAnd ( global highp int) 0:328 'im2Di' (layout( r32i) uniform highp iimage2D) 0:328 'P' ( uniform mediump 2-component vector of int) 0:328 'dati' ( temp mediump int) 0:329 imageAtomicAnd ( global highp uint) 0:329 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:329 'P' ( uniform mediump 2-component vector of int) 0:329 'datu' ( temp mediump uint) 0:330 imageAtomicOr ( global highp int) 0:330 'im2Di' (layout( r32i) uniform highp iimage2D) 0:330 'P' ( uniform mediump 2-component vector of int) 0:330 'dati' ( temp mediump int) 0:331 imageAtomicOr ( global highp uint) 0:331 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:331 'P' ( uniform mediump 2-component vector of int) 0:331 'datu' ( temp mediump uint) 0:332 imageAtomicXor ( global highp int) 0:332 'im2Di' (layout( r32i) uniform highp iimage2D) 0:332 'P' ( uniform mediump 2-component vector of int) 0:332 'dati' ( temp mediump int) 0:333 imageAtomicXor ( global highp uint) 0:333 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:333 'P' ( uniform mediump 2-component vector of int) 0:333 'datu' ( temp mediump uint) 0:334 imageAtomicExchange ( global highp int) 0:334 'im2Di' (layout( r32i) uniform highp iimage2D) 0:334 'P' ( uniform mediump 2-component vector of int) 0:334 'dati' ( temp mediump int) 0:335 imageAtomicExchange ( global highp uint) 0:335 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:335 'P' ( uniform mediump 2-component vector of int) 0:335 'datu' ( temp mediump uint) 0:336 imageAtomicExchange ( global highp float) 0:336 'im2Df' (layout( r32f) uniform highp image2D) 0:336 'P' ( uniform mediump 2-component vector of int) 0:336 'datf' ( temp mediump float) 0:337 imageAtomicCompSwap ( global highp int) 0:337 'im2Di' (layout( r32i) uniform highp iimage2D) 0:337 'P' ( uniform mediump 2-component vector of int) 0:337 Constant: 0:337 3 (const int) 0:337 'dati' ( temp mediump int) 0:338 imageAtomicCompSwap ( global highp uint) 0:338 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:338 'P' ( uniform mediump 2-component vector of int) 0:338 Constant: 0:338 5 (const uint) 0:338 'datu' ( temp mediump uint) 0:340 imageAtomicMax ( global highp int) 0:340 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) 0:340 'P' ( uniform mediump 2-component vector of int) 0:340 'dati' ( temp mediump int) 0:341 imageAtomicMax ( global highp uint) 0:341 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) 0:341 'P' ( uniform mediump 2-component vector of int) 0:341 'datu' ( temp mediump uint) 0:342 imageAtomicExchange ( global highp float) 0:342 'badIm2Df' (layout( rgba32f) uniform highp image2D) 0:342 'P' ( uniform mediump 2-component vector of int) 0:342 'datf' ( temp mediump float) 0:353 Function Definition: badInterp( ( global void) 0:353 Function Parameters: 0:355 Sequence 0:355 interpolateAtCentroid ( global mediump 2-component vector of float) 0:355 'colorfc' ( centroid flat in mediump 2-component vector of float) 0:356 interpolateAtSample ( global mediump 2-component vector of float) 0:356 'colorfc' ( centroid flat in mediump 2-component vector of float) 0:356 Constant: 0:356 1 (const int) 0:357 interpolateAtOffset ( global mediump 2-component vector of float) 0:357 'colorfc' ( centroid flat in mediump 2-component vector of float) 0:357 Constant: 0:357 0.200000 0:357 0.200000 0:369 Function Definition: interp( ( global void) 0:369 Function Parameters: 0:? Sequence 0:376 move second child to first child ( temp mediump 2-component vector of float) 0:376 'res2' ( temp mediump 2-component vector of float) 0:376 interpolateAtCentroid ( global mediump 2-component vector of float) 0:376 'colorfc' ( centroid flat in mediump 2-component vector of float) 0:377 move second child to first child ( temp mediump 4-component vector of float) 0:377 'res4' ( temp mediump 4-component vector of float) 0:377 interpolateAtCentroid ( global mediump 4-component vector of float) 0:377 'colorSampIn' ( smooth sample in mediump 4-component vector of float) 0:378 move second child to first child ( temp mediump 4-component vector of float) 0:378 'res4' ( temp mediump 4-component vector of float) 0:378 interpolateAtCentroid ( global mediump 4-component vector of float) 0:378 'colorfsi' ( flat sample in mediump 4-component vector of float) 0:379 move second child to first child ( temp mediump float) 0:379 'res' ( temp mediump float) 0:379 interpolateAtCentroid ( global mediump float) 0:379 'scalarIn' ( smooth in mediump float) 0:380 'res3' ( temp mediump 3-component vector of float) 0:381 move second child to first child ( temp mediump 3-component vector of float) 0:381 'res3' ( temp mediump 3-component vector of float) 0:381 interpolateAtCentroid ( global mediump 3-component vector of float) 0:381 direct index ( smooth sample temp mediump 3-component vector of float) 0:381 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:381 Constant: 0:381 2 (const int) 0:382 move second child to first child ( temp mediump 2-component vector of float) 0:382 'res2' ( temp mediump 2-component vector of float) 0:382 interpolateAtCentroid ( global mediump 2-component vector of float) 0:382 vector swizzle ( temp mediump 2-component vector of float) 0:382 direct index ( smooth sample temp mediump 3-component vector of float) 0:382 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:382 Constant: 0:382 2 (const int) 0:382 Sequence 0:382 Constant: 0:382 0 (const int) 0:382 Constant: 0:382 1 (const int) 0:384 'res3' ( temp mediump 3-component vector of float) 0:385 move second child to first child ( temp mediump 3-component vector of float) 0:385 'res3' ( temp mediump 3-component vector of float) 0:385 interpolateAtSample ( global mediump 3-component vector of float) 0:385 indirect index ( smooth sample temp mediump 3-component vector of float) 0:385 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:385 'i' ( uniform mediump int) 0:385 Constant: 0:385 0 (const int) 0:386 move second child to first child ( temp mediump 2-component vector of float) 0:386 'res2' ( temp mediump 2-component vector of float) 0:386 interpolateAtSample ( global mediump 2-component vector of float) 0:386 vector swizzle ( temp mediump 2-component vector of float) 0:386 direct index ( smooth sample temp mediump 3-component vector of float) 0:386 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:386 Constant: 0:386 2 (const int) 0:386 Sequence 0:386 Constant: 0:386 0 (const int) 0:386 Constant: 0:386 1 (const int) 0:386 Constant: 0:386 2 (const int) 0:387 move second child to first child ( temp mediump float) 0:387 'res' ( temp mediump float) 0:387 interpolateAtSample ( global mediump float) 0:387 'scalarIn' ( smooth in mediump float) 0:387 Constant: 0:387 1 (const int) 0:389 'res3' ( temp mediump 3-component vector of float) 0:390 move second child to first child ( temp mediump 3-component vector of float) 0:390 'res3' ( temp mediump 3-component vector of float) 0:390 interpolateAtOffset ( global mediump 3-component vector of float) 0:390 direct index ( smooth sample temp mediump 3-component vector of float) 0:390 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:390 Constant: 0:390 2 (const int) 0:390 Constant: 0:390 0.200000 0:390 0.200000 0:391 move second child to first child ( temp mediump 2-component vector of float) 0:391 'res2' ( temp mediump 2-component vector of float) 0:391 interpolateAtOffset ( global mediump 2-component vector of float) 0:391 vector swizzle ( temp mediump 2-component vector of float) 0:391 direct index ( smooth sample temp mediump 3-component vector of float) 0:391 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:391 Constant: 0:391 2 (const int) 0:391 Sequence 0:391 Constant: 0:391 0 (const int) 0:391 Constant: 0:391 1 (const int) 0:391 Constant: 0:391 0.200000 0:391 0.200000 0:392 move second child to first child ( temp mediump float) 0:392 'res' ( temp mediump float) 0:392 interpolateAtOffset ( global mediump float) 0:392 add ( temp mediump float) 0:392 'scalarIn' ( smooth in mediump float) 0:392 'scalarIn' ( smooth in mediump float) 0:392 Constant: 0:392 0.200000 0:392 0.200000 0:393 move second child to first child ( temp mediump float) 0:393 'res' ( temp mediump float) 0:393 interpolateAtOffset ( global mediump float) 0:393 'scalarIn' ( smooth in mediump float) 0:393 Constant: 0:393 0.200000 0:393 0.200000 0:396 move second child to first child ( temp mediump float) 0:396 'res' ( temp mediump float) 0:396 interpolateAtCentroid ( global mediump float) 0:396 'f' ( temp mediump float) 0:397 move second child to first child ( temp mediump 4-component vector of float) 0:397 'res4' ( temp mediump 4-component vector of float) 0:397 interpolateAtSample ( global mediump 4-component vector of float) 0:397 'outp' ( out mediump 4-component vector of float) 0:397 Constant: 0:397 0 (const int) 0:427 Function Definition: blendFoo( ( temp void) 0:427 Function Parameters: 0:428 Function Definition: blendFoo(vf3; ( global void) 0:428 Function Parameters: 0:428 'v' ( in mediump 3-component vector of float) 0:433 Function Definition: devi( ( global void) 0:433 Function Parameters: 0:435 Sequence 0:435 'gl_DeviceIndex' ( flat in highp int DeviceIndex) 0:436 'gl_ViewIndex' ( flat in highp int ViewIndex) 0:447 Function Definition: devie( ( global void) 0:447 Function Parameters: 0:449 Sequence 0:449 'gl_DeviceIndex' ( flat in highp int DeviceIndex) 0:450 'gl_ViewIndex' ( flat in highp int ViewIndex) 0:? Linker Objects 0:? 'gl_FragCoord' ( smooth in mediump 4-component vector of float) 0:? 'v3' (layout( location=2) smooth in mediump 3-component vector of float) 0:? 'yi' (layout( location=2) smooth in mediump 4X4 matrix of float) 0:? 'arrayedSampler' ( uniform 5-element array of highp sampler2D) 0:? 'usamp2d' ( uniform highp usampler2D) 0:? 'samp2dr' ( uniform mediump usampler2DRect) 0:? 'isamp2DA' ( uniform highp isampler2DArray) 0:? 'c2D' ( smooth in mediump 2-component vector of float) 0:? 'i' ( uniform mediump int) 0:? 'outp' ( out mediump 4-component vector of float) 0:? 's1' (layout( binding=3) uniform highp sampler2D) 0:? 's2' (layout( binding=3) uniform highp sampler2D) 0:? 'i2D' (layout( binding=2) writeonly uniform highp image2D) 0:? 'i3D' (layout( binding=4) readonly uniform mediump image3D) 0:? 'iCube' (layout( binding=5) uniform mediump imageCube) 0:? 'i2DA' (layout( binding=6) uniform mediump image2DArray) 0:? 'i2Dqualified' (layout( binding=6) coherent volatile restrict uniform mediump image2D) 0:? 'bbi' (layout( binding=1 column_major shared) uniform block{layout( column_major shared) uniform mediump int foo, layout( binding=2 column_major shared) uniform mediump float f}) 0:? 'centroidIn' ( centroid smooth in mediump 4-component vector of float) 0:? 'bigl' ( uniform mediump 4-component vector of float) 0:? 'bigout1' (layout( location=40) out mediump 4-component vector of float) 0:? 'bigout2' (layout( location=40) out mediump 4-component vector of float) 0:? 'neg' ( out mediump 4-component vector of float) 0:? 'b430i' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer mediump int i}) 0:? 'bshari' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump int i}) 0:? 'smoothIn' ( smooth in mediump 4-component vector of float) 0:? 'flatIn' ( flat in mediump int) 0:? 's2dms' ( uniform mediump sampler2DMS) 0:? 'bout' ( out bool) 0:? 'imageOut' ( out highp image2D) 0:? 'mout' ( out mediump 2X3 matrix of float) 0:? 'inb' ( smooth in bool) 0:? 'ino' ( smooth in highp sampler2D) 0:? 'ina' ( smooth in 4-element array of mediump float) 0:? 'inaa' ( smooth in 4-element array of 2-element array of mediump float) 0:? 'ins' ( smooth in structure{ global mediump float f}) 0:? 'inasa' ( smooth in 4-element array of structure{ global mediump float f}) 0:? 'insa' ( smooth in 4-element array of structure{ global mediump float f}) 0:? 'inSA' ( smooth in structure{ global 4-element array of mediump float f}) 0:? 'inSS' ( smooth in structure{ global mediump float f, global structure{ global mediump float f} s}) 0:? 'outbinst' ( out block{ out mediump int a}) 0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) 0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) 0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float) 0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f}) 0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) 0:? 'inf' ( smooth in mediump 2-component vector of float) 0:? 'ing' ( smooth in mediump 2-component vector of float) 0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int) 0:? 'sArray' ( uniform 4-element array of highp sampler2D) 0:? 'sIndex' ( uniform mediump int) 0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) 0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i}) 0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i}) 0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 'CA1' ( writeonly uniform highp imageCubeArray) 0:? 'CA2' ( writeonly uniform highp iimageCubeArray) 0:? 'CA3' ( writeonly uniform highp uimageCubeArray) 0:? 'CA4' ( uniform highp samplerCubeArray) 0:? 'CA5' ( uniform highp samplerCubeArrayShadow) 0:? 'CA6' ( uniform highp isamplerCubeArray) 0:? 'CA7' ( uniform highp usamplerCubeArray) 0:? 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) 0:? 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) 0:? 'im2Df' (layout( r32f) uniform highp image2D) 0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:? 'im2Di' (layout( r32i) uniform highp iimage2D) 0:? 'P' ( uniform mediump 2-component vector of int) 0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D) 0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) 0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) 0:? 'colorSampInBad' ( smooth sample in mediump 4-component vector of float) 0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float) 0:? 'colorBadFlat' ( flat out mediump 4-component vector of float) 0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float) 0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float) 0:? 'colorfc' ( centroid flat in mediump 2-component vector of float) 0:? 'scalarIn' ( smooth in mediump float) 0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float) 0:? 'colorSampleBad' ( sample out mediump 4-component vector of float) 0:? 'colorfsi' ( flat sample in mediump 4-component vector of float) 0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:? 'badout' ( out mediump 4-component vector of float) 0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float) Linked fragment stage: ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers Shader version: 310 Requested GL_EXT_device_group Requested GL_EXT_multiview Requested GL_EXT_shader_io_blocks Requested GL_EXT_texture_cube_map_array Requested GL_KHR_blend_equation_advanced Requested GL_OES_geometry_shader Requested GL_OES_gpu_shader5 Requested GL_OES_sample_variables Requested GL_OES_shader_image_atomic Requested GL_OES_shader_io_blocks Requested GL_OES_shader_multisample_interpolation gl_FragCoord pixel center is integer gl_FragCoord origin is upper left using early_fragment_tests using depth_any using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations ERROR: node is still EOpNull! 0:21 Function Definition: main( ( global void) 0:21 Function Parameters: 0:23 Sequence 0:23 Sequence 0:23 move second child to first child ( temp highp 4-component vector of float) 0:23 'v' ( temp mediump 4-component vector of float) 0:23 texture ( global highp 4-component vector of float) 0:23 indirect index ( temp highp sampler2D) 0:23 'arrayedSampler' ( uniform 5-element array of highp sampler2D) 0:23 'i' ( uniform mediump int) 0:23 'c2D' ( smooth in mediump 2-component vector of float) 0:28 Sequence 0:28 move second child to first child ( temp highp 4-component vector of float) 0:28 'v4' ( temp mediump 4-component vector of float) 0:28 textureGather ( global highp 4-component vector of float) 0:28 direct index ( temp highp sampler2D) 0:28 'arrayedSampler' ( uniform 5-element array of highp sampler2D) 0:28 Constant: 0:28 0 (const int) 0:28 'c2D' ( smooth in mediump 2-component vector of float) 0:29 Sequence 0:29 move second child to first child ( temp highp 4-component vector of int) 0:29 'iv4' ( temp mediump 4-component vector of int) 0:29 textureGatherOffset ( global highp 4-component vector of int) 0:29 'isamp2DA' ( uniform highp isampler2DArray) 0:29 Constant: 0:29 0.100000 0:29 0.100000 0:29 0.100000 0:29 Constant: 0:29 1 (const int) 0:29 1 (const int) 0:29 Constant: 0:29 3 (const int) 0:30 move second child to first child ( temp highp 4-component vector of int) 0:30 'iv4' ( temp mediump 4-component vector of int) 0:30 textureGatherOffset ( global highp 4-component vector of int) 0:30 'isamp2DA' ( uniform highp isampler2DArray) 0:30 Constant: 0:30 0.100000 0:30 0.100000 0:30 0.100000 0:30 Constant: 0:30 1 (const int) 0:30 1 (const int) 0:30 'i' ( uniform mediump int) 0:31 move second child to first child ( temp highp 4-component vector of int) 0:31 'iv4' ( temp mediump 4-component vector of int) 0:31 textureGatherOffset ( global highp 4-component vector of int) 0:31 'isamp2DA' ( uniform highp isampler2DArray) 0:31 Constant: 0:31 0.100000 0:31 0.100000 0:31 0.100000 0:31 Constant: 0:31 1 (const int) 0:31 1 (const int) 0:31 Constant: 0:31 4 (const int) 0:32 move second child to first child ( temp highp 4-component vector of int) 0:32 'iv4' ( temp mediump 4-component vector of int) 0:32 textureGatherOffset ( global highp 4-component vector of int) 0:32 'isamp2DA' ( uniform highp isampler2DArray) 0:32 Constant: 0:32 0.100000 0:32 0.100000 0:32 0.100000 0:32 Constant: 0:32 1 (const int) 0:32 1 (const int) 0:32 Constant: 0:32 3 (const int) 0:33 move second child to first child ( temp highp 4-component vector of int) 0:33 'iv4' ( temp mediump 4-component vector of int) 0:33 textureGatherOffset ( global highp 4-component vector of int) 0:33 'isamp2DA' ( uniform highp isampler2DArray) 0:33 Constant: 0:33 0.100000 0:33 0.100000 0:33 0.100000 0:33 Constant: 0:33 0 (const int) 0:33 0 (const int) 0:34 move second child to first child ( temp highp 4-component vector of int) 0:34 'iv4' ( temp mediump 4-component vector of int) 0:34 textureGatherOffset ( global highp 4-component vector of int) 0:34 'isamp2DA' ( uniform highp isampler2DArray) 0:34 Constant: 0:34 0.100000 0:34 0.100000 0:34 0.100000 0:34 Construct ivec2 ( temp highp 2-component vector of int) 0:34 'i' ( uniform mediump int) 0:? Linker Objects 0:? 'gl_FragCoord' ( smooth in mediump 4-component vector of float) 0:? 'v3' (layout( location=2) smooth in mediump 3-component vector of float) 0:? 'yi' (layout( location=2) smooth in mediump 4X4 matrix of float) 0:? 'arrayedSampler' ( uniform 5-element array of highp sampler2D) 0:? 'usamp2d' ( uniform highp usampler2D) 0:? 'samp2dr' ( uniform mediump usampler2DRect) 0:? 'isamp2DA' ( uniform highp isampler2DArray) 0:? 'c2D' ( smooth in mediump 2-component vector of float) 0:? 'i' ( uniform mediump int) 0:? 'outp' ( out mediump 4-component vector of float) 0:? 's1' (layout( binding=3) uniform highp sampler2D) 0:? 's2' (layout( binding=3) uniform highp sampler2D) 0:? 'i2D' (layout( binding=2) writeonly uniform highp image2D) 0:? 'i3D' (layout( binding=4) readonly uniform mediump image3D) 0:? 'iCube' (layout( binding=5) uniform mediump imageCube) 0:? 'i2DA' (layout( binding=6) uniform mediump image2DArray) 0:? 'i2Dqualified' (layout( binding=6) coherent volatile restrict uniform mediump image2D) 0:? 'bbi' (layout( binding=1 column_major shared) uniform block{layout( column_major shared) uniform mediump int foo, layout( binding=2 column_major shared) uniform mediump float f}) 0:? 'centroidIn' ( centroid smooth in mediump 4-component vector of float) 0:? 'bigl' ( uniform mediump 4-component vector of float) 0:? 'bigout1' (layout( location=40) out mediump 4-component vector of float) 0:? 'bigout2' (layout( location=40) out mediump 4-component vector of float) 0:? 'neg' ( out mediump 4-component vector of float) 0:? 'b430i' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer mediump int i}) 0:? 'bshari' (layout( column_major shared) uniform block{layout( column_major shared) uniform mediump int i}) 0:? 'smoothIn' ( smooth in mediump 4-component vector of float) 0:? 'flatIn' ( flat in mediump int) 0:? 's2dms' ( uniform mediump sampler2DMS) 0:? 'bout' ( out bool) 0:? 'imageOut' ( out highp image2D) 0:? 'mout' ( out mediump 2X3 matrix of float) 0:? 'inb' ( smooth in bool) 0:? 'ino' ( smooth in highp sampler2D) 0:? 'ina' ( smooth in 4-element array of mediump float) 0:? 'inaa' ( smooth in 4-element array of 2-element array of mediump float) 0:? 'ins' ( smooth in structure{ global mediump float f}) 0:? 'inasa' ( smooth in 4-element array of structure{ global mediump float f}) 0:? 'insa' ( smooth in 4-element array of structure{ global mediump float f}) 0:? 'inSA' ( smooth in structure{ global 4-element array of mediump float f}) 0:? 'inSS' ( smooth in structure{ global mediump float f, global structure{ global mediump float f} s}) 0:? 'outbinst' ( out block{ out mediump int a}) 0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) 0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) 0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float) 0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f}) 0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) 0:? 'inf' ( smooth in mediump 2-component vector of float) 0:? 'ing' ( smooth in mediump 2-component vector of float) 0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int) 0:? 'sArray' ( uniform 4-element array of highp sampler2D) 0:? 'sIndex' ( uniform mediump int) 0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) 0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i}) 0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i}) 0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 'CA1' ( writeonly uniform highp imageCubeArray) 0:? 'CA2' ( writeonly uniform highp iimageCubeArray) 0:? 'CA3' ( writeonly uniform highp uimageCubeArray) 0:? 'CA4' ( uniform highp samplerCubeArray) 0:? 'CA5' ( uniform highp samplerCubeArrayShadow) 0:? 'CA6' ( uniform highp isamplerCubeArray) 0:? 'CA7' ( uniform highp usamplerCubeArray) 0:? 'gl_SampleMaskIn' ( flat in 1-element array of highp int SampleMaskIn) 0:? 'gl_SampleMask' ( out 1-element array of highp int SampleMaskIn) 0:? 'im2Df' (layout( r32f) uniform highp image2D) 0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:? 'im2Di' (layout( r32i) uniform highp iimage2D) 0:? 'P' ( uniform mediump 2-component vector of int) 0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D) 0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) 0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) 0:? 'colorSampInBad' ( smooth sample in mediump 4-component vector of float) 0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float) 0:? 'colorBadFlat' ( flat out mediump 4-component vector of float) 0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float) 0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float) 0:? 'colorfc' ( centroid flat in mediump 2-component vector of float) 0:? 'scalarIn' ( smooth in mediump float) 0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float) 0:? 'colorSampleBad' ( sample out mediump 4-component vector of float) 0:? 'colorfsi' ( flat sample in mediump 4-component vector of float) 0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:? 'badout' ( out mediump 4-component vector of float) 0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float) glslang-8.13.3559/Test/baseResults/310.geom.out000066400000000000000000000374501360464450000207100ustar00rootroot00000000000000310.geom ERROR: 0:29: 'fromVertex' : block instance name redefinition ERROR: 0:33: 'fromVertex' : redefinition ERROR: 0:35: 'fooC' : block instance name redefinition ERROR: 0:43: 'EmitStreamVertex' : no matching overloaded function found ERROR: 0:44: 'EndStreamPrimitive' : no matching overloaded function found ERROR: 0:47: 'gl_ClipDistance' : undeclared identifier ERROR: 0:47: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector ERROR: 0:48: 'gl_ClipDistance' : no such field in structure ERROR: 0:48: 'expression' : left of '[' is not of type array, matrix, or vector ERROR: 0:47: 'assign' : l-value required (can't modify a const) ERROR: 0:55: 'selecting output stream' : not supported with this profile: es ERROR: 0:62: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices ERROR: 0:62: 'max_vertices' : cannot change previously set layout value ERROR: 0:63: 'max_vertices' : can only apply to a standalone qualifier ERROR: 0:68: 'points' : cannot change previously set output primitive ERROR: 0:69: 'points' : cannot change previously set output primitive ERROR: 0:70: 'triangle_strip' : cannot apply to input ERROR: 0:71: 'triangle_strip' : cannot apply to: uniform ERROR: 0:72: 'triangle_strip' : can only apply to a standalone qualifier ERROR: 0:73: 'triangle_strip' : can only apply to a standalone qualifier ERROR: 0:74: 'invocations' : can only apply to a standalone qualifier ERROR: 0:76: 'invocations' : can only apply to a standalone qualifier ERROR: 0:77: 'max_vertices' : can only apply to a standalone qualifier ERROR: 0:78: 'triangle_strip' : can only apply to a standalone qualifier ERROR: 0:81: 'lines' : cannot apply to 'out' ERROR: 0:83: 'triangles' : cannot change previously set input primitive ERROR: 0:84: 'triangles_adjacency' : cannot change previously set input primitive ERROR: 0:116: 'gl_ViewportIndex' : undeclared identifier ERROR: 0:117: 'gl_MaxViewports' : undeclared identifier ERROR: 0:123: 'lines_adjacency' : inconsistent input primitive for array size of explArrayBad ERROR: 0:124: 'in' : type must be an array: nonArrayed ERROR: 0:128: 'sample' : Reserved word. ERROR: 0:132: 'component' : not supported with this profile: es ERROR: 0:136: 'gl_MaxGeometryVaryingComponents' : undeclared identifier ERROR: 0:137: 'gl_VerticesIn' : undeclared identifier ERROR: 0:142: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_geometry_point_size GL_OES_geometry_point_size ERROR: 0:143: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_geometry_point_size GL_OES_geometry_point_size ERROR: 37 compilation errors. No code generated. Shader version: 310 Requested GL_EXT_geometry_shader Requested GL_EXT_shader_io_blocks Requested GL_OES_geometry_point_size invocations = 4 max_vertices = 200 input primitive = lines_adjacency output primitive = triangle_strip ERROR: node is still EOpNull! 0:39 Function Definition: main( ( global void) 0:39 Function Parameters: 0:41 Sequence 0:41 EmitVertex ( global void) 0:42 EndPrimitive ( global void) 0:43 Constant: 0:43 0.000000 0:44 Constant: 0:44 0.000000 0:46 move second child to first child ( temp mediump 3-component vector of float) 0:46 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float) 0:46 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:46 Constant: 0:46 0 (const uint) 0:46 color: direct index for structure ( in mediump 3-component vector of float) 0:46 direct index ( temp block{ in mediump 3-component vector of float color}) 0:46 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) 0:46 Constant: 0:46 0 (const int) 0:46 Constant: 0:46 0 (const int) 0:47 move second child to first child ( temp float) 0:47 Constant: 0:47 0.000000 0:48 Constant: 0:48 0.000000 0:49 move second child to first child ( temp highp 4-component vector of float) 0:49 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) 0:49 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) 0:49 Constant: 0:49 0 (const uint) 0:49 gl_Position: direct index for structure ( in highp 4-component vector of float Position) 0:49 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:49 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:49 Constant: 0:49 0 (const int) 0:49 Constant: 0:49 0 (const int) 0:51 move second child to first child ( temp highp int) 0:51 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID) 0:51 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) 0:52 move second child to first child ( temp highp int) 0:52 'gl_Layer' (layout( stream=0) out highp int Layer) 0:52 Constant: 0:52 2 (const int) 0:63 Function Definition: foo(i1; ( global void) 0:63 Function Parameters: 0:63 'a' ( in highp int) 0:65 Sequence 0:65 move second child to first child ( temp mediump 4-component vector of float) 0:65 a: direct index for structure (layout( stream=0) out mediump 4-component vector of float) 0:65 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) 0:65 Constant: 0:65 0 (const int) 0:65 Constant: 0:65 1.000000 0:65 1.000000 0:65 1.000000 0:65 1.000000 0:114 Function Definition: fooe1( ( global void) 0:114 Function Parameters: 0:116 Sequence 0:116 'gl_ViewportIndex' ( temp float) 0:117 'gl_MaxViewports' ( temp float) 0:118 Constant: 0:118 4 (const int) 0:119 Sequence 0:119 move second child to first child ( temp highp int) 0:119 'inv' ( temp highp int) 0:119 'gl_InvocationID' ( in highp int InvocationID) 0:134 Function Definition: notHere( ( global void) 0:134 Function Parameters: 0:136 Sequence 0:136 'gl_MaxGeometryVaryingComponents' ( temp float) 0:137 'gl_VerticesIn' ( temp float) 0:140 Function Definition: pointSize1( ( global void) 0:140 Function Parameters: 0:142 Sequence 0:142 Sequence 0:142 move second child to first child ( temp highp float) 0:142 'ps' ( temp highp float) 0:142 gl_PointSize: direct index for structure ( in highp float PointSize) 0:142 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:142 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:142 Constant: 0:142 3 (const int) 0:142 Constant: 0:142 1 (const int) 0:143 move second child to first child ( temp highp float) 0:143 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize highp float PointSize) 0:143 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) 0:143 Constant: 0:143 1 (const uint) 0:143 'ps' ( temp highp float) 0:148 Function Definition: pointSize2( ( global void) 0:148 Function Parameters: 0:150 Sequence 0:150 Sequence 0:150 move second child to first child ( temp highp float) 0:150 'ps' ( temp highp float) 0:150 gl_PointSize: direct index for structure ( in highp float PointSize) 0:150 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:150 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:150 Constant: 0:150 3 (const int) 0:150 Constant: 0:150 1 (const int) 0:151 move second child to first child ( temp highp float) 0:151 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize highp float PointSize) 0:151 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) 0:151 Constant: 0:151 1 (const uint) 0:151 'ps' ( temp highp float) 0:? Linker Objects 0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) 0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float) 0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float) 0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) 0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float) 0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float) 0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a}) 0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c}) 0:? 'insn' ( in 4-element array of block{ in highp int a15}) 0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15}) 0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) 0:? 'summ' ( const highp int) 0:? 2752 (const int) 0:? 'explArray' ( in 4-element array of mediump 4-component vector of float) 0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float) 0:? 'nonArrayed' ( in mediump 4-component vector of float) 0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float) 0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float) 0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float) 0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float) 0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float) Linked geometry stage: Shader version: 310 Requested GL_EXT_geometry_shader Requested GL_EXT_shader_io_blocks Requested GL_OES_geometry_point_size invocations = 4 max_vertices = 200 input primitive = lines_adjacency output primitive = triangle_strip ERROR: node is still EOpNull! 0:39 Function Definition: main( ( global void) 0:39 Function Parameters: 0:41 Sequence 0:41 EmitVertex ( global void) 0:42 EndPrimitive ( global void) 0:43 Constant: 0:43 0.000000 0:44 Constant: 0:44 0.000000 0:46 move second child to first child ( temp mediump 3-component vector of float) 0:46 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float) 0:46 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:46 Constant: 0:46 0 (const uint) 0:46 color: direct index for structure ( in mediump 3-component vector of float) 0:46 direct index ( temp block{ in mediump 3-component vector of float color}) 0:46 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) 0:46 Constant: 0:46 0 (const int) 0:46 Constant: 0:46 0 (const int) 0:47 move second child to first child ( temp float) 0:47 Constant: 0:47 0.000000 0:48 Constant: 0:48 0.000000 0:49 move second child to first child ( temp highp 4-component vector of float) 0:49 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) 0:49 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) 0:49 Constant: 0:49 0 (const uint) 0:49 gl_Position: direct index for structure ( in highp 4-component vector of float Position) 0:49 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:49 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:49 Constant: 0:49 0 (const int) 0:49 Constant: 0:49 0 (const int) 0:51 move second child to first child ( temp highp int) 0:51 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID) 0:51 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) 0:52 move second child to first child ( temp highp int) 0:52 'gl_Layer' (layout( stream=0) out highp int Layer) 0:52 Constant: 0:52 2 (const int) 0:? Linker Objects 0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) 0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float) 0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float) 0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) 0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float) 0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float) 0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a}) 0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c}) 0:? 'insn' ( in 4-element array of block{ in highp int a15}) 0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15}) 0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) 0:? 'summ' ( const highp int) 0:? 2752 (const int) 0:? 'explArray' ( in 4-element array of mediump 4-component vector of float) 0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float) 0:? 'nonArrayed' ( in mediump 4-component vector of float) 0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float) 0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float) 0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float) 0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float) 0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float) glslang-8.13.3559/Test/baseResults/310.inheritMemory.frag.out000066400000000000000000000421251360464450000235250ustar00rootroot00000000000000310.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{ 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 ( global 10-element array of mediump float) 0:33 s: direct index for structure (layout( column_major std430 offset=40) buffer structure{ 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{ 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{ 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 ( temp mediump float) 0:35 buff: direct index for structure ( global 10-element array of mediump float) 0:35 s: direct index for structure (layout( column_major std430 offset=40) buffer structure{ 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{ 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{ 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{ 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{ 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 ( 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{ 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{ 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{ 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 ( readonly temp mediump float) 0:41 buff: direct index for structure ( 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{ 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{ 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{ 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{ 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{ 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{ 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{ 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 ( global 10-element array of mediump float) 0:33 s: direct index for structure (layout( column_major std430 offset=40) buffer structure{ 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{ 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{ 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 ( temp mediump float) 0:35 buff: direct index for structure ( global 10-element array of mediump float) 0:35 s: direct index for structure (layout( column_major std430 offset=40) buffer structure{ 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{ 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{ 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{ 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{ 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 ( 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{ 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{ 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{ 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 ( readonly temp mediump float) 0:41 buff: direct index for structure ( 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{ 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{ 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{ 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{ 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{ 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{ global 10-element array of mediump float buff} s}) 0:? 'fragColor' ( out mediump 4-component vector of float) glslang-8.13.3559/Test/baseResults/310.tesc.out000066400000000000000000000756571360464450000207320ustar00rootroot00000000000000310.tesc ERROR: 0:8: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:9: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:10: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:12: 'patch' : can only use on output in tessellation-control shader ERROR: 0:26: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size ERROR: 0:27: 'gl_ClipDistance' : no such field in structure ERROR: 0:27: 'expression' : left of '[' is not of type array, matrix, or vector ERROR: 0:34: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size ERROR: 0:35: 'gl_ClipDistance' : no such field in structure ERROR: 0:35: 'expression' : left of '[' is not of type array, matrix, or vector ERROR: 0:35: 'assign' : l-value required (can't modify a const) ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:43: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:48: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:53: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:56: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:63: '' : tessellation control barrier() cannot be placed after a return from main() ERROR: 0:66: 'vertices' : can only apply to 'out' ERROR: 0:67: 'vertices' : cannot change previously set layout value ERROR: 0:71: '[' : array index out of range '4' ERROR: 0:73: '' : tessellation control barrier() must be in main() ERROR: 0:76: 'in' : type must be an array: ina ERROR: 0:78: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized ERROR: 0:80: '' : array size required ERROR: 0:86: 'location' : overlapping use of location 4 ERROR: 0:90: 'location' : overlapping use of location 4 ERROR: 0:94: 'precise' : Reserved word. ERROR: 0:94: 'precise' : not supported for this version or the enabled extensions ERROR: 0:95: 'fma' : required extension not requested: Possible extensions include: GL_EXT_gpu_shader5 GL_OES_gpu_shader5 ERROR: 0:104: 'sample' : Reserved word. ERROR: 0:106: 'vertices' : can only apply to a standalone qualifier ERROR: 0:107: 'vertices' : inconsistent output number of vertices for array size of misSized ERROR: 0:133: 'gl_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}) glslang-8.13.3559/Test/baseResults/310.tese.out000066400000000000000000000430621360464450000207150ustar00rootroot00000000000000310.tese ERROR: 0:7: 'vertices' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:9: 'triangles' : cannot change previously set input primitive ERROR: 0:10: 'isolines' : cannot change previously set input primitive ERROR: 0:12: 'ccw' : cannot change previously set vertex order ERROR: 0:16: 'equal_spacing' : cannot change previously set vertex spacing ERROR: 0:17: 'fractional_even_spacing' : cannot change previously set vertex spacing ERROR: 0:22: 'patch' : can only use on input in tessellation-evaluation shader ERROR: 0:26: 'barrier' : no matching overloaded function found ERROR: 0:37: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size ERROR: 0:38: 'gl_ClipDistance' : no such field in structure ERROR: 0:38: 'expression' : left of '[' is not of type array, matrix, or vector ERROR: 0:47: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size ERROR: 0:48: 'gl_ClipDistance' : undeclared identifier ERROR: 0:48: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector ERROR: 0:48: 'assign' : l-value required (can't modify a const) ERROR: 0:51: 'patch' : cannot use interpolation qualifiers with patch ERROR: 0:52: 'patch' : cannot use interpolation qualifiers with patch ERROR: 0:53: 'noperspective' : Reserved word. ERROR: 0:53: 'noperspective' : not supported for this version or the enabled extensions ERROR: 0:53: 'patch' : cannot use interpolation qualifiers with patch ERROR: 0:54: 'sample' : Reserved word. ERROR: 0:54: '' : can only have one auxiliary qualifier (centroid, patch, and sample) ERROR: 0:63: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use ERROR: 0:68: 'quads' : cannot apply to 'out' ERROR: 0:68: 'cw' : can only apply to 'in' ERROR: 0:69: 'triangles' : cannot apply to 'out' ERROR: 0:70: 'isolines' : cannot apply to 'out' ERROR: 0:71: 'cw' : can only apply to 'in' ERROR: 0:72: 'fractional_odd_spacing' : can only apply to 'in' ERROR: 0:73: 'equal_spacing' : can only apply to 'in' ERROR: 0:74: 'fractional_even_spacing' : can only apply to 'in' ERROR: 0:75: 'point_mode' : can only apply to 'in' ERROR: 0:77: 'in' : type must be an array: ina ERROR: 0:79: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized ERROR: 0:82: 'in' : type must be an array: bla ERROR: 0:90: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized ERROR: 0:100: 'location' : overlapping use of location 24 ERROR: 0:103: 'location' : overlapping use of location 24 ERROR: 0:105: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved ERROR: 0:113: 'sample' : Reserved word. ERROR: 0:119: 'gl_PointSize' : no such field in structure ERROR: 0:119: '=' : cannot convert from ' temp block{ in highp 4-component vector of float Position gl_Position}' to ' temp highp float' ERROR: 0:127: 'gl_BoundingBoxOES' : undeclared identifier ERROR: 43 compilation errors. No code generated. Shader version: 310 Requested GL_ARB_separate_shader_objects Requested GL_EXT_primitive_bounding_box Requested GL_EXT_shader_io_blocks Requested GL_EXT_tessellation_shader Requested GL_OES_shader_io_blocks Requested GL_OES_tessellation_point_size Requested GL_OES_tessellation_shader input primitive = quads vertex spacing = fractional_odd_spacing triangle order = cw using point mode ERROR: node is still EOpNull! 0:24 Function Definition: main( ( global void) 0:24 Function Parameters: 0:26 Sequence 0:26 Constant: 0:26 0.000000 0:28 Sequence 0:28 move second child to first child ( temp highp int) 0:28 'a' ( temp highp int) 0:28 Constant: 0:28 1512 (const int) 0:36 Sequence 0:36 move second child to first child ( temp highp 4-component vector of float) 0:36 'p' ( temp highp 4-component vector of float) 0:36 gl_Position: direct index for structure ( in highp 4-component vector of float Position) 0:36 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float 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) glslang-8.13.3559/Test/baseResults/310.vert.out000066400000000000000000002024321360464450000207330ustar00rootroot00000000000000310.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' : cannot convert from ' const float' to ' gl_PointSize highp void PointSize' ERROR: 0:122: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use ERROR: 0:127: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block ERROR: 0:131: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block ERROR: 0:135: 'centroid' : cannot use centroid qualifier on an interface block ERROR: 0:139: 'invariant' : cannot use invariant qualifier on an interface block ERROR: 0:155: 'precise' : Reserved word. ERROR: 0:155: 'precise' : not supported for this version or the enabled extensions ERROR: 0:156: 'fma' : required extension not requested: Possible extensions include: GL_EXT_gpu_shader5 GL_OES_gpu_shader5 ERROR: 0:157: 'variable indexing sampler array' : not supported for this version or the enabled extensions ERROR: 0:161: 'variable indexing uniform block array' : not supported for this version or the enabled extensions ERROR: 0:162: 'variable indexing buffer block array' : not supported with this profile: es ERROR: 0:164: 'variable indexing sampler array' : not supported for this version or the enabled extensions ERROR: 0:165: 'non-constant offset argument' : not supported for this version or the enabled extensions ERROR: 0:166: 'textureGatherOffsets' : required extension not requested: Possible extensions include: GL_EXT_gpu_shader5 GL_OES_gpu_shader5 ERROR: 0:177: 'variable indexing buffer block array' : not supported with this profile: es ERROR: 0:182: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument ERROR: 0:185: 'samplerBuffer' : Reserved word. ERROR: 0:185: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:186: 'isamplerBuffer' : Reserved word. ERROR: 0:186: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:187: 'usamplerBuffer' : Reserved word. ERROR: 0:187: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:188: 'imageBuffer' : Reserved word. ERROR: 0:188: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:189: 'iimageBuffer' : Reserved word. ERROR: 0:189: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:190: 'uimageBuffer' : Reserved word. ERROR: 0:190: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:195: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:196: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:197: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:198: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:199: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:200: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:235: 'imageCubeArray' : Reserved word. ERROR: 0:235: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:236: 'iimageCubeArray' : Reserved word. ERROR: 0:236: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:237: 'uimageCubeArray' : Reserved word. ERROR: 0:237: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:239: 'samplerCubeArray' : Reserved word. ERROR: 0:239: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:240: 'samplerCubeArrayShadow' : Reserved word. ERROR: 0:240: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:241: 'isamplerCubeArray' : Reserved word. ERROR: 0:241: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:242: 'usamplerCubeArray' : Reserved word. ERROR: 0:242: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:246: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:247: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:248: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:250: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:251: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:252: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:253: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:321: 'sampler2DMSArray' : Reserved word. ERROR: 0:321: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:322: 'isampler2DMSArray' : Reserved word. ERROR: 0:322: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:323: 'usampler2DMSArray' : Reserved word. ERROR: 0:323: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:329: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:330: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:331: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:351: 'textureSize' : no matching overloaded function found ERROR: 0:351: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int' ERROR: 0:389: 'sample' : Reserved word. ERROR: 0:400: 'interpolateAtCentroid' : no matching overloaded function found ERROR: 0:401: 'interpolateAtSample' : no matching overloaded function found ERROR: 0:402: 'interpolateAtOffset' : no matching overloaded function found ERROR: 93 compilation errors. No code generated. Shader version: 310 Requested GL_EXT_texture_buffer Requested GL_OES_gpu_shader5 Requested GL_OES_shader_image_atomic Requested GL_OES_shader_io_blocks Requested GL_OES_shader_multisample_interpolation Requested GL_OES_texture_buffer Requested GL_OES_texture_cube_map_array Requested GL_OES_texture_storage_multisample_2d_array ERROR: node is still EOpNull! 0:12 Function Definition: main( ( global void) 0:12 Function Parameters: 0:? Sequence 0:15 move second child to first child ( temp highp 2-component vector of uint) 0:15 'u2' ( temp highp 2-component vector of uint) 0:15 addCarry ( global highp 2-component vector of uint) 0:15 'u2' ( temp highp 2-component vector of uint) 0:15 'u2' ( temp highp 2-component vector of uint) 0:15 'u2' ( temp highp 2-component vector of uint) 0:17 move second child to first child ( temp highp uint) 0:17 'u1' ( temp highp uint) 0:17 subBorrow ( global highp uint) 0:17 'u1' ( temp highp uint) 0:17 'u1' ( temp highp uint) 0:17 'u1' ( temp highp uint) 0:19 uMulExtended ( global highp void) 0:19 'u4' ( temp highp 4-component vector of uint) 0:19 'u4' ( temp highp 4-component vector of uint) 0:19 'u4' ( temp highp 4-component vector of uint) 0:19 'u4' ( temp highp 4-component vector of uint) 0:21 iMulExtended ( global highp void) 0:21 'i4' ( temp highp 4-component vector of int) 0:21 'i4' ( temp highp 4-component vector of int) 0:21 'i4' ( temp highp 4-component vector of int) 0:21 'i4' ( temp highp 4-component vector of int) 0:23 move second child to first child ( temp highp int) 0:23 'i1' ( temp highp int) 0:23 bitfieldExtract ( global highp int) 0:23 'i1' ( temp highp int) 0:23 Constant: 0:23 4 (const int) 0:23 Constant: 0:23 5 (const int) 0:25 move second child to first child ( temp highp 3-component vector of uint) 0:25 'u3' ( temp highp 3-component vector of uint) 0:25 bitfieldExtract ( global highp 3-component vector of uint) 0:25 'u3' ( temp highp 3-component vector of uint) 0:25 Constant: 0:25 4 (const int) 0:25 Constant: 0:25 5 (const int) 0:27 move second child to first child ( temp highp 3-component vector of int) 0:27 'i3' ( temp highp 3-component vector of int) 0:27 bitfieldInsert ( global highp 3-component vector of int) 0:27 'i3' ( temp highp 3-component vector of int) 0:27 'i3' ( temp highp 3-component vector of int) 0:27 Constant: 0:27 4 (const int) 0:27 Constant: 0:27 5 (const int) 0:28 move second child to first child ( temp highp uint) 0:28 'u1' ( temp highp uint) 0:28 bitfieldInsert ( global highp uint) 0:28 'u1' ( temp highp uint) 0:28 'u1' ( temp highp uint) 0:28 Constant: 0:28 4 (const int) 0:28 Constant: 0:28 5 (const int) 0:30 move second child to first child ( temp highp 2-component vector of int) 0:30 'i2' ( temp highp 2-component vector of int) 0:30 bitFieldReverse ( global highp 2-component vector of int) 0:30 'i2' ( temp highp 2-component vector of int) 0:31 move second child to first child ( temp highp 4-component vector of uint) 0:31 'u4' ( temp highp 4-component vector of uint) 0:31 bitFieldReverse ( global highp 4-component vector of uint) 0:31 'u4' ( temp highp 4-component vector of uint) 0:32 move second child to first child ( temp highp int) 0:32 'i1' ( temp highp int) 0:32 bitCount ( global lowp int, operation at highp) 0:32 'i1' ( temp highp int) 0:33 move second child to first child ( temp highp 3-component vector of int) 0:33 'i3' ( temp highp 3-component vector of int) 0:33 bitCount ( global lowp 3-component vector of int, operation at highp) 0:33 'u3' ( temp highp 3-component vector of uint) 0:34 move second child to first child ( temp highp 2-component vector of int) 0:34 'i2' ( temp highp 2-component vector of int) 0:34 findLSB ( global lowp 2-component vector of int, operation at highp) 0:34 'i2' ( temp highp 2-component vector of int) 0:35 move second child to first child ( temp highp 4-component vector of int) 0:35 'i4' ( temp highp 4-component vector of int) 0:35 findLSB ( global lowp 4-component vector of int, operation at highp) 0:35 'u4' ( temp highp 4-component vector of uint) 0:36 move second child to first child ( temp highp int) 0:36 'i1' ( temp highp int) 0:36 findMSB ( global lowp int, operation at highp) 0:36 'i1' ( temp highp int) 0:37 move second child to first child ( temp highp 2-component vector of int) 0:37 'i2' ( temp highp 2-component vector of int) 0:37 findMSB ( global lowp 2-component vector of int, operation at highp) 0:37 'u2' ( temp highp 2-component vector of uint) 0:40 move second child to first child ( temp highp 3-component vector of float) 0:40 'v3' ( temp highp 3-component vector of float) 0:40 frexp ( global highp 3-component vector of float) 0:40 'v3' ( temp highp 3-component vector of float) 0:40 'i3' ( temp highp 3-component vector of int) 0:42 move second child to first child ( temp highp 2-component vector of float) 0:42 'v2' ( temp highp 2-component vector of float) 0:42 ldexp ( global highp 2-component vector of float) 0:42 'v2' ( temp highp 2-component vector of float) 0:42 'i2' ( temp highp 2-component vector of int) 0:45 move second child to first child ( temp highp uint) 0:45 'u1' ( temp highp uint) 0:45 PackUnorm4x8 ( global highp uint, operation at mediump) 0:45 'v4' ( temp mediump 4-component vector of float) 0:46 move second child to first child ( temp highp uint) 0:46 'u1' ( temp highp uint) 0:46 PackSnorm4x8 ( global highp uint, operation at mediump) 0:46 'v4' ( temp mediump 4-component vector of float) 0:47 move second child to first child ( temp mediump 4-component vector of float) 0:47 'v4' ( temp mediump 4-component vector of float) 0:47 UnpackUnorm4x8 ( global mediump 4-component vector of float, operation at highp) 0:47 'u1' ( temp highp uint) 0:48 move second child to first child ( temp mediump 4-component vector of float) 0:48 'v4' ( temp mediump 4-component vector of float) 0:48 UnpackSnorm4x8 ( global mediump 4-component vector of float, operation at highp) 0:48 'u1' ( temp highp uint) 0:60 Function Definition: foo( ( global void) 0:60 Function Parameters: 0:? Sequence 0:63 move second child to first child ( temp highp 2-component vector of int) 0:63 'v2' ( temp highp 2-component vector of int) 0:63 textureSize ( global highp 2-component vector of int) 0:63 's2dms' ( uniform highp sampler2DMS) 0:64 move second child to first child ( temp highp 2-component vector of int) 0:64 'v2' ( temp highp 2-component vector of int) 0:64 textureSize ( global highp 2-component vector of int) 0:64 'us2dms' ( uniform highp usampler2DMS) 0:65 Sequence 0:65 move second child to first child ( temp highp 4-component vector of float) 0:65 'v4' ( temp highp 4-component vector of float) 0:65 textureFetch ( global highp 4-component vector of float) 0:65 's2dms' ( uniform highp sampler2DMS) 0:65 'v2' ( temp highp 2-component vector of int) 0:65 Constant: 0:65 2 (const int) 0:66 Sequence 0:66 move second child to first child ( temp highp 4-component vector of int) 0:66 'iv4' ( temp highp 4-component vector of int) 0:66 textureFetch ( global highp 4-component vector of int) 0:66 'is2dms' ( uniform highp isampler2DMS) 0:66 'v2' ( temp highp 2-component vector of int) 0:66 Constant: 0:66 2 (const int) 0:67 Constant: 0:67 0.000000 0:69 frexp ( global highp float) 0:69 'f' ( temp highp float) 0:69 'ini' ( in highp int) 0:114 Function Definition: foo_IO( ( global void) 0:114 Function Parameters: 0:116 Sequence 0:116 Sequence 0:116 move second child to first child ( temp highp int) 0:116 'sum' ( temp highp int) 0:116 add ( temp highp int) 0:116 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:117 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) 0:118 move second child to first child ( temp highp 4-component vector of float) 0:118 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) 0:118 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) 0:118 Constant: 0:118 0 (const uint) 0:118 Constant: 0:118 1.000000 0:118 1.000000 0:118 1.000000 0:118 1.000000 0:119 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize) 0:119 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) 0:119 Constant: 0:119 1 (const uint) 0:153 Function Definition: pfooBad( ( global void) 0:153 Function Parameters: 0:? Sequence 0:156 move second child to first child ( temp highp 2-component vector of float) 0:156 'h' ( noContraction temp highp 2-component vector of float) 0:156 fma ( global highp 2-component vector of float) 0:156 'inf' ( in highp 2-component vector of float) 0:156 'ing' ( in highp 2-component vector of float) 0:156 'h' ( noContraction temp highp 2-component vector of float) 0:157 indirect index ( temp lowp sampler2D) 0:157 'sArray' ( uniform 4-element array of lowp sampler2D) 0:157 add ( temp highp int) 0:157 'sIndex' ( uniform highp int) 0:157 Constant: 0:157 1 (const int) 0:158 indirect index (layout( binding=0 offset=0) temp highp atomic_uint) 0:158 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) 0:158 add ( temp highp int) 0:158 'sIndex' ( uniform highp int) 0:158 Constant: 0:158 1 (const int) 0:159 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i}) 0:159 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) 0:159 Constant: 0:159 1 (const int) 0:160 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i}) 0:160 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) 0:160 Constant: 0:160 2 (const int) 0:161 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i}) 0:161 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) 0:161 add ( temp highp int) 0:161 'sIndex' ( uniform highp int) 0:161 Constant: 0:161 1 (const int) 0:162 indirect index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i}) 0:162 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) 0:162 'sIndex' ( uniform highp int) 0:163 direct index ( writeonly temp highp image2D) 0:163 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:163 Constant: 0:163 2 (const int) 0:164 indirect index ( writeonly temp highp image2D) 0:164 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:164 component-wise multiply ( temp highp int) 0:164 'sIndex' ( uniform highp int) 0:164 Constant: 0:164 2 (const int) 0:165 textureGatherOffset ( global lowp 4-component vector of float) 0:165 direct index ( temp lowp sampler2D) 0:165 'sArray' ( uniform 4-element array of lowp sampler2D) 0:165 Constant: 0:165 0 (const int) 0:165 Constant: 0:165 0.100000 0:165 0.100000 0:165 Convert float to int ( temp lowp 2-component vector of int) 0:165 'inf' ( in highp 2-component vector of float) 0:166 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) 0:166 direct index ( temp lowp sampler2D) 0:166 'sArray' ( uniform 4-element array of lowp sampler2D) 0:166 Constant: 0:166 0 (const int) 0:166 Constant: 0:166 0.100000 0:166 0.100000 0:166 Constant: 0:166 0 (const int) 0:166 0 (const int) 0:166 0 (const int) 0:166 0 (const int) 0:166 0 (const int) 0:166 0 (const int) 0:166 0 (const int) 0:166 0 (const int) 0:171 Function Definition: pfoo( ( global void) 0:171 Function Parameters: 0:? Sequence 0:174 move second child to first child ( temp highp 2-component vector of float) 0:174 'h' ( noContraction temp highp 2-component vector of float) 0:174 fma ( global highp 2-component vector of float) 0:174 'inf' ( in highp 2-component vector of float) 0:174 'ing' ( in highp 2-component vector of float) 0:174 'h' ( noContraction temp highp 2-component vector of float) 0:175 indirect index ( temp lowp sampler2D) 0:175 'sArray' ( uniform 4-element array of lowp sampler2D) 0:175 add ( temp highp int) 0:175 'sIndex' ( uniform highp int) 0:175 Constant: 0:175 1 (const int) 0:176 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i}) 0:176 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) 0:176 add ( temp highp int) 0:176 'sIndex' ( uniform highp int) 0:176 Constant: 0:176 1 (const int) 0:177 indirect index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i}) 0:177 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) 0:177 subtract ( temp highp int) 0:177 'sIndex' ( uniform highp int) 0:177 Constant: 0:177 2 (const int) 0:178 direct index ( writeonly temp highp image2D) 0:178 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:178 Constant: 0:178 2 (const int) 0:179 indirect index ( writeonly temp highp image2D) 0:179 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:179 subtract ( temp highp int) 0:179 'sIndex' ( uniform highp int) 0:179 Constant: 0:179 2 (const int) 0:180 textureGatherOffset ( global lowp 4-component vector of float) 0:180 direct index ( temp lowp sampler2D) 0:180 'sArray' ( uniform 4-element array of lowp sampler2D) 0:180 Constant: 0:180 0 (const int) 0:180 Constant: 0:180 0.100000 0:180 0.100000 0:180 Convert float to int ( temp lowp 2-component vector of int) 0:180 'inf' ( in highp 2-component vector of float) 0:181 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) 0:181 direct index ( temp lowp sampler2D) 0:181 'sArray' ( uniform 4-element array of lowp sampler2D) 0:181 Constant: 0:181 0 (const int) 0:181 Constant: 0:181 0.100000 0:181 0.100000 0:181 Constant: 0:181 0 (const int) 0:181 0 (const int) 0:181 0 (const int) 0:181 0 (const int) 0:181 0 (const int) 0:181 0 (const int) 0:181 0 (const int) 0:181 0 (const int) 0:182 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) 0:182 direct index ( temp lowp sampler2D) 0:182 'sArray' ( uniform 4-element array of lowp sampler2D) 0:182 Constant: 0:182 0 (const int) 0:182 Constant: 0:182 0.100000 0:182 0.100000 0:182 'offsets' ( uniform 4-element array of highp 2-component vector of int) 0:220 Function Definition: bufferT( ( global void) 0:220 Function Parameters: 0:222 Sequence 0:222 Sequence 0:222 move second child to first child ( temp highp int) 0:222 's1' ( temp highp int) 0:222 textureSize ( global highp int) 0:222 'bufSamp1' ( uniform highp samplerBuffer) 0:223 Sequence 0:223 move second child to first child ( temp highp int) 0:223 's2' ( temp highp int) 0:223 textureSize ( global highp int) 0:223 'bufSamp2' ( uniform highp isamplerBuffer) 0:224 Sequence 0:224 move second child to first child ( temp highp int) 0:224 's3' ( temp highp int) 0:224 textureSize ( global highp int) 0:224 'bufSamp3' ( uniform highp usamplerBuffer) 0:226 Sequence 0:226 move second child to first child ( temp highp int) 0:226 's4' ( temp highp int) 0:226 imageQuerySize ( global highp int) 0:226 'bufSamp4' ( writeonly uniform highp imageBuffer) 0:227 Sequence 0:227 move second child to first child ( temp highp int) 0:227 's5' ( temp highp int) 0:227 imageQuerySize ( global highp int) 0:227 'bufSamp5' ( writeonly uniform highp iimageBuffer) 0:228 Sequence 0:228 move second child to first child ( temp highp int) 0:228 's6' ( temp highp int) 0:228 imageQuerySize ( global highp int) 0:228 'bufSamp6' ( writeonly uniform highp uimageBuffer) 0:230 Sequence 0:230 move second child to first child ( temp highp 4-component vector of float) 0:230 'f1' ( temp highp 4-component vector of float) 0:230 textureFetch ( global highp 4-component vector of float) 0:230 'bufSamp1' ( uniform highp samplerBuffer) 0:230 's1' ( temp highp int) 0:231 Sequence 0:231 move second child to first child ( temp highp 4-component vector of int) 0:231 'f2' ( temp highp 4-component vector of int) 0:231 textureFetch ( global highp 4-component vector of int) 0:231 'bufSamp2' ( uniform highp isamplerBuffer) 0:231 's2' ( temp highp int) 0:232 Sequence 0:232 move second child to first child ( temp highp 4-component vector of uint) 0:232 'f3' ( temp highp 4-component vector of uint) 0:232 textureFetch ( global highp 4-component vector of uint) 0:232 'bufSamp3' ( uniform highp usamplerBuffer) 0:232 's3' ( temp highp int) 0:279 Function Definition: CAT( ( global void) 0:279 Function Parameters: 0:281 Sequence 0:281 Sequence 0:281 move second child to first child ( temp highp 3-component vector of int) 0:281 's4' ( temp highp 3-component vector of int) 0:281 textureSize ( global highp 3-component vector of int) 0:281 'CA4' ( uniform highp samplerCubeArray) 0:281 Constant: 0:281 1 (const int) 0:282 Sequence 0:282 move second child to first child ( temp highp 3-component vector of int) 0:282 's5' ( temp highp 3-component vector of int) 0:282 textureSize ( global highp 3-component vector of int) 0:282 'CA5' ( uniform highp samplerCubeArrayShadow) 0:282 Constant: 0:282 1 (const int) 0:283 Sequence 0:283 move second child to first child ( temp highp 3-component vector of int) 0:283 's6' ( temp highp 3-component vector of int) 0:283 textureSize ( global highp 3-component vector of int) 0:283 'CA6' ( uniform highp isamplerCubeArray) 0:283 Constant: 0:283 1 (const int) 0:284 Sequence 0:284 move second child to first child ( temp highp 3-component vector of int) 0:284 's7' ( temp highp 3-component vector of int) 0:284 textureSize ( global highp 3-component vector of int) 0:284 'CA7' ( uniform highp usamplerCubeArray) 0:284 Constant: 0:284 1 (const int) 0:286 Sequence 0:286 move second child to first child ( temp highp 4-component vector of float) 0:286 't4' ( temp highp 4-component vector of float) 0:286 texture ( global highp 4-component vector of float) 0:286 'CA4' ( uniform highp samplerCubeArray) 0:286 Constant: 0:286 0.500000 0:286 0.500000 0:286 0.500000 0:286 0.500000 0:287 Sequence 0:287 move second child to first child ( temp highp float) 0:287 't5' ( temp highp float) 0:287 texture ( global highp float) 0:287 'CA5' ( uniform highp samplerCubeArrayShadow) 0:287 Constant: 0:287 0.500000 0:287 0.500000 0:287 0.500000 0:287 0.500000 0:287 Constant: 0:287 3.000000 0:288 Sequence 0:288 move second child to first child ( temp highp 4-component vector of int) 0:288 't6' ( temp highp 4-component vector of int) 0:288 texture ( global highp 4-component vector of int) 0:288 'CA6' ( uniform highp isamplerCubeArray) 0:288 Constant: 0:288 0.500000 0:288 0.500000 0:288 0.500000 0:288 0.500000 0:289 Sequence 0:289 move second child to first child ( temp highp 4-component vector of uint) 0:289 't7' ( temp highp 4-component vector of uint) 0:289 texture ( global highp 4-component vector of uint) 0:289 'CA7' ( uniform highp usamplerCubeArray) 0:289 Constant: 0:289 0.500000 0:289 0.500000 0:289 0.500000 0:289 0.500000 0:291 Sequence 0:291 move second child to first child ( temp highp 4-component vector of float) 0:291 'L4' ( temp highp 4-component vector of float) 0:291 textureLod ( global highp 4-component vector of float) 0:291 'CA4' ( uniform highp samplerCubeArray) 0:291 Constant: 0:291 0.500000 0:291 0.500000 0:291 0.500000 0:291 0.500000 0:291 Constant: 0:291 0.240000 0:292 Sequence 0:292 move second child to first child ( temp highp 4-component vector of int) 0:292 'L6' ( temp highp 4-component vector of int) 0:292 textureLod ( global highp 4-component vector of int) 0:292 'CA6' ( uniform highp isamplerCubeArray) 0:292 Constant: 0:292 0.500000 0:292 0.500000 0:292 0.500000 0:292 0.500000 0:292 Constant: 0:292 0.260000 0:293 Sequence 0:293 move second child to first child ( temp highp 4-component vector of uint) 0:293 'L7' ( temp highp 4-component vector of uint) 0:293 textureLod ( global highp 4-component vector of uint) 0:293 'CA7' ( uniform highp usamplerCubeArray) 0:293 Constant: 0:293 0.500000 0:293 0.500000 0:293 0.500000 0:293 0.500000 0:293 Constant: 0:293 0.270000 0:295 Sequence 0:295 move second child to first child ( temp highp 4-component vector of float) 0:295 'g4' ( temp highp 4-component vector of float) 0:295 textureGrad ( global highp 4-component vector of float) 0:295 'CA4' ( uniform highp samplerCubeArray) 0:295 Constant: 0:295 0.500000 0:295 0.500000 0:295 0.500000 0:295 0.500000 0:295 Constant: 0:295 0.100000 0:295 0.100000 0:295 0.100000 0:295 Constant: 0:295 0.200000 0:295 0.200000 0:295 0.200000 0:296 Sequence 0:296 move second child to first child ( temp highp 4-component vector of int) 0:296 'g6' ( temp highp 4-component vector of int) 0:296 textureGrad ( global highp 4-component vector of int) 0:296 'CA6' ( uniform highp isamplerCubeArray) 0:296 Constant: 0:296 0.500000 0:296 0.500000 0:296 0.500000 0:296 0.500000 0:296 Constant: 0:296 0.100000 0:296 0.100000 0:296 0.100000 0:296 Constant: 0:296 0.200000 0:296 0.200000 0:296 0.200000 0:297 Sequence 0:297 move second child to first child ( temp highp 4-component vector of uint) 0:297 'g7' ( temp highp 4-component vector of uint) 0:297 textureGrad ( global highp 4-component vector of uint) 0:297 'CA7' ( uniform highp usamplerCubeArray) 0:297 Constant: 0:297 0.500000 0:297 0.500000 0:297 0.500000 0:297 0.500000 0:297 Constant: 0:297 0.100000 0:297 0.100000 0:297 0.100000 0:297 Constant: 0:297 0.200000 0:297 0.200000 0:297 0.200000 0:299 Sequence 0:299 move second child to first child ( temp highp 4-component vector of float) 0:299 'gath4' ( temp highp 4-component vector of float) 0:299 textureGather ( global highp 4-component vector of float) 0:299 'CA4' ( uniform highp samplerCubeArray) 0:299 Constant: 0:299 0.500000 0:299 0.500000 0:299 0.500000 0:299 0.500000 0:300 Sequence 0:300 move second child to first child ( temp highp 4-component vector of float) 0:300 'gathC4' ( temp highp 4-component vector of float) 0:300 textureGather ( global highp 4-component vector of float) 0:300 'CA4' ( uniform highp samplerCubeArray) 0:300 Constant: 0:300 0.500000 0:300 0.500000 0:300 0.500000 0:300 0.500000 0:300 Constant: 0:300 2 (const int) 0:301 Sequence 0:301 move second child to first child ( temp highp 4-component vector of int) 0:301 'gath6' ( temp highp 4-component vector of int) 0:301 textureGather ( global highp 4-component vector of int) 0:301 'CA6' ( uniform highp isamplerCubeArray) 0:301 Constant: 0:301 0.500000 0:301 0.500000 0:301 0.500000 0:301 0.500000 0:302 Sequence 0:302 move second child to first child ( temp highp 4-component vector of int) 0:302 'gathC6' ( temp highp 4-component vector of int) 0:302 textureGather ( global highp 4-component vector of int) 0:302 'CA6' ( uniform highp isamplerCubeArray) 0:302 Constant: 0:302 0.500000 0:302 0.500000 0:302 0.500000 0:302 0.500000 0:302 Constant: 0:302 1 (const int) 0:303 Sequence 0:303 move second child to first child ( temp highp 4-component vector of uint) 0:303 'gath7' ( temp highp 4-component vector of uint) 0:303 textureGather ( global highp 4-component vector of uint) 0:303 'CA7' ( uniform highp usamplerCubeArray) 0:303 Constant: 0:303 0.500000 0:303 0.500000 0:303 0.500000 0:303 0.500000 0:304 Sequence 0:304 move second child to first child ( temp highp 4-component vector of uint) 0:304 'gathC7' ( temp highp 4-component vector of uint) 0:304 textureGather ( global highp 4-component vector of uint) 0:304 'CA7' ( uniform highp usamplerCubeArray) 0:304 Constant: 0:304 0.500000 0:304 0.500000 0:304 0.500000 0:304 0.500000 0:304 Constant: 0:304 0 (const int) 0:306 Sequence 0:306 move second child to first child ( temp highp 4-component vector of float) 0:306 'gath5' ( temp highp 4-component vector of float) 0:306 textureGather ( global highp 4-component vector of float) 0:306 'CA5' ( uniform highp samplerCubeArrayShadow) 0:306 Constant: 0:306 0.500000 0:306 0.500000 0:306 0.500000 0:306 0.500000 0:306 Constant: 0:306 2.500000 0:308 Sequence 0:308 move second child to first child ( temp highp 3-component vector of int) 0:308 's1' ( temp highp 3-component vector of int) 0:308 imageQuerySize ( global highp 3-component vector of int) 0:308 'CA1' ( writeonly uniform highp imageCubeArray) 0:309 Sequence 0:309 move second child to first child ( temp highp 3-component vector of int) 0:309 's2' ( temp highp 3-component vector of int) 0:309 imageQuerySize ( global highp 3-component vector of int) 0:309 'CA2' ( writeonly uniform highp iimageCubeArray) 0:310 Sequence 0:310 move second child to first child ( temp highp 3-component vector of int) 0:310 's3' ( temp highp 3-component vector of int) 0:310 imageQuerySize ( global highp 3-component vector of int) 0:310 'CA3' ( writeonly uniform highp uimageCubeArray) 0:312 imageStore ( global highp void) 0:312 'CA1' ( writeonly uniform highp imageCubeArray) 0:312 's3' ( temp highp 3-component vector of int) 0:312 Constant: 0:312 1.000000 0:312 1.000000 0:312 1.000000 0:312 1.000000 0:313 imageStore ( global highp void) 0:313 'CA2' ( writeonly uniform highp iimageCubeArray) 0:313 's3' ( temp highp 3-component vector of int) 0:313 Constant: 0:313 1 (const int) 0:313 1 (const int) 0:313 1 (const int) 0:313 1 (const int) 0:314 imageStore ( global highp void) 0:314 'CA3' ( writeonly uniform highp uimageCubeArray) 0:314 's3' ( temp highp 3-component vector of int) 0:314 Constant: 0:314 1 (const uint) 0:314 1 (const uint) 0:314 1 (const uint) 0:314 1 (const uint) 0:316 Sequence 0:316 move second child to first child ( temp highp 4-component vector of float) 0:316 'cl1' ( temp highp 4-component vector of float) 0:316 imageLoad ( global highp 4-component vector of float) 0:316 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) 0:316 's3' ( temp highp 3-component vector of int) 0:317 Sequence 0:317 move second child to first child ( temp highp 4-component vector of int) 0:317 'cl2' ( temp highp 4-component vector of int) 0:317 imageLoad ( global highp 4-component vector of int) 0:317 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) 0:317 's3' ( temp highp 3-component vector of int) 0:318 Sequence 0:318 move second child to first child ( temp highp 4-component vector of uint) 0:318 'cl3' ( temp highp 4-component vector of uint) 0:318 imageLoad ( global highp 4-component vector of uint) 0:318 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) 0:318 's3' ( temp highp 3-component vector of int) 0:343 Function Definition: MSA( ( global void) 0:343 Function Parameters: 0:345 Sequence 0:345 Sequence 0:345 move second child to first child ( temp highp 4-component vector of float) 0:345 'tf' ( temp highp 4-component vector of float) 0:345 textureFetch ( global highp 4-component vector of float) 0:345 'samp2DMSA' ( uniform highp sampler2DMSArray) 0:345 Constant: 0:345 5 (const int) 0:345 5 (const int) 0:345 5 (const int) 0:345 Constant: 0:345 2 (const int) 0:346 Sequence 0:346 move second child to first child ( temp highp 4-component vector of int) 0:346 'tfi' ( temp highp 4-component vector of int) 0:346 textureFetch ( global highp 4-component vector of int) 0:346 'samp2DMSAi' ( uniform highp isampler2DMSArray) 0:346 Constant: 0:346 5 (const int) 0:346 5 (const int) 0:346 5 (const int) 0:346 Constant: 0:346 2 (const int) 0:347 Sequence 0:347 move second child to first child ( temp highp 4-component vector of uint) 0:347 'tfu' ( temp highp 4-component vector of uint) 0:347 textureFetch ( global highp 4-component vector of uint) 0:347 'samp2DMSAu' ( uniform highp usampler2DMSArray) 0:347 Constant: 0:347 5 (const int) 0:347 5 (const int) 0:347 5 (const int) 0:347 Constant: 0:347 2 (const int) 0:349 Sequence 0:349 move second child to first child ( temp highp 3-component vector of int) 0:349 'tfs' ( temp highp 3-component vector of int) 0:349 textureSize ( global highp 3-component vector of int) 0:349 'samp2DMSA' ( uniform highp sampler2DMSArray) 0:350 Sequence 0:350 move second child to first child ( temp highp 3-component vector of int) 0:350 'tfsi' ( temp highp 3-component vector of int) 0:350 textureSize ( global highp 3-component vector of int) 0:350 'samp2DMSAi' ( uniform highp isampler2DMSArray) 0:352 Sequence 0:352 move second child to first child ( temp highp 3-component vector of int) 0:352 'tfsu' ( temp highp 3-component vector of int) 0:352 textureSize ( global highp 3-component vector of int) 0:352 'samp2DMSAu' ( uniform highp usampler2DMSArray) 0:364 Function Definition: goodImageAtom( ( global void) 0:364 Function Parameters: 0:? Sequence 0:370 imageAtomicAdd ( global highp int) 0:370 'im2Di' (layout( r32i) uniform highp iimage2D) 0:370 'P' ( uniform highp 2-component vector of int) 0:370 'dati' ( temp highp int) 0:371 imageAtomicAdd ( global highp uint) 0:371 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:371 'P' ( uniform highp 2-component vector of int) 0:371 'datu' ( temp highp uint) 0:372 imageAtomicMin ( global highp int) 0:372 'im2Di' (layout( r32i) uniform highp iimage2D) 0:372 'P' ( uniform highp 2-component vector of int) 0:372 'dati' ( temp highp int) 0:373 imageAtomicMin ( global highp uint) 0:373 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:373 'P' ( uniform highp 2-component vector of int) 0:373 'datu' ( temp highp uint) 0:374 imageAtomicMax ( global highp int) 0:374 'im2Di' (layout( r32i) uniform highp iimage2D) 0:374 'P' ( uniform highp 2-component vector of int) 0:374 'dati' ( temp highp int) 0:375 imageAtomicMax ( global highp uint) 0:375 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:375 'P' ( uniform highp 2-component vector of int) 0:375 'datu' ( temp highp uint) 0:376 imageAtomicAnd ( global highp int) 0:376 'im2Di' (layout( r32i) uniform highp iimage2D) 0:376 'P' ( uniform highp 2-component vector of int) 0:376 'dati' ( temp highp int) 0:377 imageAtomicAnd ( global highp uint) 0:377 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:377 'P' ( uniform highp 2-component vector of int) 0:377 'datu' ( temp highp uint) 0:378 imageAtomicOr ( global highp int) 0:378 'im2Di' (layout( r32i) uniform highp iimage2D) 0:378 'P' ( uniform highp 2-component vector of int) 0:378 'dati' ( temp highp int) 0:379 imageAtomicOr ( global highp uint) 0:379 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:379 'P' ( uniform highp 2-component vector of int) 0:379 'datu' ( temp highp uint) 0:380 imageAtomicXor ( global highp int) 0:380 'im2Di' (layout( r32i) uniform highp iimage2D) 0:380 'P' ( uniform highp 2-component vector of int) 0:380 'dati' ( temp highp int) 0:381 imageAtomicXor ( global highp uint) 0:381 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:381 'P' ( uniform highp 2-component vector of int) 0:381 'datu' ( temp highp uint) 0:382 imageAtomicExchange ( global highp int) 0:382 'im2Di' (layout( r32i) uniform highp iimage2D) 0:382 'P' ( uniform highp 2-component vector of int) 0:382 'dati' ( temp highp int) 0:383 imageAtomicExchange ( global highp uint) 0:383 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:383 'P' ( uniform highp 2-component vector of int) 0:383 'datu' ( temp highp uint) 0:384 imageAtomicExchange ( global highp float) 0:384 'im2Df' (layout( r32f) uniform highp image2D) 0:384 'P' ( uniform highp 2-component vector of int) 0:384 'datf' ( temp highp float) 0:385 imageAtomicCompSwap ( global highp int) 0:385 'im2Di' (layout( r32i) uniform highp iimage2D) 0:385 'P' ( uniform highp 2-component vector of int) 0:385 Constant: 0:385 3 (const int) 0:385 'dati' ( temp highp int) 0:386 imageAtomicCompSwap ( global highp uint) 0:386 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:386 'P' ( uniform highp 2-component vector of int) 0:386 Constant: 0:386 5 (const uint) 0:386 'datu' ( temp highp uint) 0:398 Function Definition: badInterp( ( global void) 0:398 Function Parameters: 0:400 Sequence 0:400 Constant: 0:400 0.000000 0:401 Constant: 0:401 0.000000 0:402 Constant: 0:402 0.000000 0:? Linker Objects 0:? 's' ( shared highp 4-component vector of float) 0:? 'v' ( buffer highp 4-component vector of float) 0:? 'ini' ( in highp int) 0:? 'x' (layout( location=2) uniform highp 4X4 matrix of float) 0:? 'y' (layout( location=3) uniform highp 4X4 matrix of float) 0:? 'xi' (layout( location=2) smooth out highp 4X4 matrix of float) 0:? 'yi' (layout( location=3) smooth out highp 4X4 matrix of float) 0:? 's2dms' ( uniform highp sampler2DMS) 0:? 'is2dms' ( uniform highp isampler2DMS) 0:? 'us2dms' ( uniform highp usampler2DMS) 0:? 'us2dmsa' ( uniform mediump usampler2DMSArray) 0:? 'outb' ( smooth out bool) 0:? 'outo' ( smooth out lowp sampler2D) 0:? 'outa' ( smooth out 4-element array of highp float) 0:? 'outaa' ( smooth out 4-element array of 2-element array of highp float) 0:? 'outs' ( smooth out structure{ global highp float f}) 0:? 'outasa' ( smooth out 4-element array of structure{ global highp float f}) 0:? 'outsa' ( smooth out 4-element array of structure{ global highp float f}) 0:? 'outSA' ( smooth out structure{ global 4-element array of highp float f}) 0:? 'outSS' ( smooth out structure{ global highp float f, global structure{ global highp float f} s}) 0:? 'U430i' (layout( column_major std430) uniform block{layout( column_major std430 offset=0) uniform highp int a}) 0:? 'B430i' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp int a}) 0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s}) 0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon}) 0:? 'aliased' (layout( location=12) smooth out highp int) 0:? 'inbinst' ( in block{ in highp int a}) 0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) 0:? 'smon' ( smooth out block{ out highp int i}) 0:? 'fmon' ( flat out block{ out highp int i}) 0:? 'cmon' ( centroid out block{ out highp int i}) 0:? 'imon' ( invariant out block{ out highp int i}) 0:? 'inf' ( in highp 2-component vector of float) 0:? 'ing' ( in highp 2-component vector of float) 0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int) 0:? 'sArray' ( uniform 4-element array of lowp sampler2D) 0:? 'sIndex' ( uniform highp int) 0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) 0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) 0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) 0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 'badSamp1' ( uniform mediump samplerBuffer) 0:? 'badSamp2' ( uniform mediump isamplerBuffer) 0:? 'badSamp3' ( uniform mediump usamplerBuffer) 0:? 'badSamp4' ( writeonly uniform mediump imageBuffer) 0:? 'badSamp5' ( writeonly uniform mediump iimageBuffer) 0:? 'badSamp6' ( writeonly uniform mediump uimageBuffer) 0:? 'noPreSamp1' ( uniform mediump samplerBuffer) 0:? 'noPreSamp2' ( uniform mediump isamplerBuffer) 0:? 'noPreSamp3' ( uniform mediump usamplerBuffer) 0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer) 0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer) 0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer) 0:? 'bufSamp1' ( uniform highp samplerBuffer) 0:? 'bufSamp2' ( uniform highp isamplerBuffer) 0:? 'bufSamp3' ( uniform highp usamplerBuffer) 0:? 'bufSamp4' ( writeonly uniform highp imageBuffer) 0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer) 0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer) 0:? 'badCA1' ( writeonly uniform mediump imageCubeArray) 0:? 'badCA2' ( writeonly uniform mediump iimageCubeArray) 0:? 'badCA3' ( writeonly uniform mediump uimageCubeArray) 0:? 'badCA4' ( uniform mediump samplerCubeArray) 0:? 'badCA5' ( uniform mediump samplerCubeArrayShadow) 0:? 'badCA6' ( uniform mediump isamplerCubeArray) 0:? 'badCA7' ( uniform mediump usamplerCubeArray) 0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray) 0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray) 0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray) 0:? 'noPreCA4' ( uniform mediump samplerCubeArray) 0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow) 0:? 'noPreCA6' ( uniform mediump isamplerCubeArray) 0:? 'noPreCA7' ( uniform mediump usamplerCubeArray) 0:? 'CA1' ( writeonly uniform highp imageCubeArray) 0:? 'CA2' ( writeonly uniform highp iimageCubeArray) 0:? 'CA3' ( writeonly uniform highp uimageCubeArray) 0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) 0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) 0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) 0:? 'CA4' ( uniform highp samplerCubeArray) 0:? 'CA5' ( uniform highp samplerCubeArrayShadow) 0:? 'CA6' ( uniform highp isamplerCubeArray) 0:? 'CA7' ( uniform highp usamplerCubeArray) 0:? 'bad2DMS' ( uniform mediump sampler2DMSArray) 0:? 'bad2DMSi' ( uniform mediump isampler2DMSArray) 0:? 'bad2DMSu' ( uniform mediump usampler2DMSArray) 0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray) 0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray) 0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray) 0:? 'samp2DMSA' ( uniform highp sampler2DMSArray) 0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray) 0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray) 0:? 'im2Df' (layout( r32f) uniform highp image2D) 0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:? 'im2Di' (layout( r32i) uniform highp iimage2D) 0:? 'P' ( uniform highp 2-component vector of int) 0:? 'colorSampInBad' ( smooth sample out highp 4-component vector of float) 0:? 'colorSample' ( smooth sample out highp 4-component vector of float) 0:? 'colorfsi' ( flat sample out highp 4-component vector of float) 0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float) 0:? 'inv4' ( in highp 4-component vector of float) 0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) Linked vertex stage: Shader version: 310 Requested GL_EXT_texture_buffer Requested GL_OES_gpu_shader5 Requested GL_OES_shader_image_atomic Requested GL_OES_shader_io_blocks Requested GL_OES_shader_multisample_interpolation Requested GL_OES_texture_buffer Requested GL_OES_texture_cube_map_array Requested GL_OES_texture_storage_multisample_2d_array ERROR: node is still EOpNull! 0:12 Function Definition: main( ( global void) 0:12 Function Parameters: 0:? Sequence 0:15 move second child to first child ( temp highp 2-component vector of uint) 0:15 'u2' ( temp highp 2-component vector of uint) 0:15 addCarry ( global highp 2-component vector of uint) 0:15 'u2' ( temp highp 2-component vector of uint) 0:15 'u2' ( temp highp 2-component vector of uint) 0:15 'u2' ( temp highp 2-component vector of uint) 0:17 move second child to first child ( temp highp uint) 0:17 'u1' ( temp highp uint) 0:17 subBorrow ( global highp uint) 0:17 'u1' ( temp highp uint) 0:17 'u1' ( temp highp uint) 0:17 'u1' ( temp highp uint) 0:19 uMulExtended ( global highp void) 0:19 'u4' ( temp highp 4-component vector of uint) 0:19 'u4' ( temp highp 4-component vector of uint) 0:19 'u4' ( temp highp 4-component vector of uint) 0:19 'u4' ( temp highp 4-component vector of uint) 0:21 iMulExtended ( global highp void) 0:21 'i4' ( temp highp 4-component vector of int) 0:21 'i4' ( temp highp 4-component vector of int) 0:21 'i4' ( temp highp 4-component vector of int) 0:21 'i4' ( temp highp 4-component vector of int) 0:23 move second child to first child ( temp highp int) 0:23 'i1' ( temp highp int) 0:23 bitfieldExtract ( global highp int) 0:23 'i1' ( temp highp int) 0:23 Constant: 0:23 4 (const int) 0:23 Constant: 0:23 5 (const int) 0:25 move second child to first child ( temp highp 3-component vector of uint) 0:25 'u3' ( temp highp 3-component vector of uint) 0:25 bitfieldExtract ( global highp 3-component vector of uint) 0:25 'u3' ( temp highp 3-component vector of uint) 0:25 Constant: 0:25 4 (const int) 0:25 Constant: 0:25 5 (const int) 0:27 move second child to first child ( temp highp 3-component vector of int) 0:27 'i3' ( temp highp 3-component vector of int) 0:27 bitfieldInsert ( global highp 3-component vector of int) 0:27 'i3' ( temp highp 3-component vector of int) 0:27 'i3' ( temp highp 3-component vector of int) 0:27 Constant: 0:27 4 (const int) 0:27 Constant: 0:27 5 (const int) 0:28 move second child to first child ( temp highp uint) 0:28 'u1' ( temp highp uint) 0:28 bitfieldInsert ( global highp uint) 0:28 'u1' ( temp highp uint) 0:28 'u1' ( temp highp uint) 0:28 Constant: 0:28 4 (const int) 0:28 Constant: 0:28 5 (const int) 0:30 move second child to first child ( temp highp 2-component vector of int) 0:30 'i2' ( temp highp 2-component vector of int) 0:30 bitFieldReverse ( global highp 2-component vector of int) 0:30 'i2' ( temp highp 2-component vector of int) 0:31 move second child to first child ( temp highp 4-component vector of uint) 0:31 'u4' ( temp highp 4-component vector of uint) 0:31 bitFieldReverse ( global highp 4-component vector of uint) 0:31 'u4' ( temp highp 4-component vector of uint) 0:32 move second child to first child ( temp highp int) 0:32 'i1' ( temp highp int) 0:32 bitCount ( global lowp int, operation at highp) 0:32 'i1' ( temp highp int) 0:33 move second child to first child ( temp highp 3-component vector of int) 0:33 'i3' ( temp highp 3-component vector of int) 0:33 bitCount ( global lowp 3-component vector of int, operation at highp) 0:33 'u3' ( temp highp 3-component vector of uint) 0:34 move second child to first child ( temp highp 2-component vector of int) 0:34 'i2' ( temp highp 2-component vector of int) 0:34 findLSB ( global lowp 2-component vector of int, operation at highp) 0:34 'i2' ( temp highp 2-component vector of int) 0:35 move second child to first child ( temp highp 4-component vector of int) 0:35 'i4' ( temp highp 4-component vector of int) 0:35 findLSB ( global lowp 4-component vector of int, operation at highp) 0:35 'u4' ( temp highp 4-component vector of uint) 0:36 move second child to first child ( temp highp int) 0:36 'i1' ( temp highp int) 0:36 findMSB ( global lowp int, operation at highp) 0:36 'i1' ( temp highp int) 0:37 move second child to first child ( temp highp 2-component vector of int) 0:37 'i2' ( temp highp 2-component vector of int) 0:37 findMSB ( global lowp 2-component vector of int, operation at highp) 0:37 'u2' ( temp highp 2-component vector of uint) 0:40 move second child to first child ( temp highp 3-component vector of float) 0:40 'v3' ( temp highp 3-component vector of float) 0:40 frexp ( global highp 3-component vector of float) 0:40 'v3' ( temp highp 3-component vector of float) 0:40 'i3' ( temp highp 3-component vector of int) 0:42 move second child to first child ( temp highp 2-component vector of float) 0:42 'v2' ( temp highp 2-component vector of float) 0:42 ldexp ( global highp 2-component vector of float) 0:42 'v2' ( temp highp 2-component vector of float) 0:42 'i2' ( temp highp 2-component vector of int) 0:45 move second child to first child ( temp highp uint) 0:45 'u1' ( temp highp uint) 0:45 PackUnorm4x8 ( global highp uint, operation at mediump) 0:45 'v4' ( temp mediump 4-component vector of float) 0:46 move second child to first child ( temp highp uint) 0:46 'u1' ( temp highp uint) 0:46 PackSnorm4x8 ( global highp uint, operation at mediump) 0:46 'v4' ( temp mediump 4-component vector of float) 0:47 move second child to first child ( temp mediump 4-component vector of float) 0:47 'v4' ( temp mediump 4-component vector of float) 0:47 UnpackUnorm4x8 ( global mediump 4-component vector of float, operation at highp) 0:47 'u1' ( temp highp uint) 0:48 move second child to first child ( temp mediump 4-component vector of float) 0:48 'v4' ( temp mediump 4-component vector of float) 0:48 UnpackSnorm4x8 ( global mediump 4-component vector of float, operation at highp) 0:48 'u1' ( temp highp uint) 0:? Linker Objects 0:? 's' ( shared highp 4-component vector of float) 0:? 'v' ( buffer highp 4-component vector of float) 0:? 'ini' ( in highp int) 0:? 'x' (layout( location=2) uniform highp 4X4 matrix of float) 0:? 'y' (layout( location=3) uniform highp 4X4 matrix of float) 0:? 'xi' (layout( location=2) smooth out highp 4X4 matrix of float) 0:? 'yi' (layout( location=3) smooth out highp 4X4 matrix of float) 0:? 's2dms' ( uniform highp sampler2DMS) 0:? 'is2dms' ( uniform highp isampler2DMS) 0:? 'us2dms' ( uniform highp usampler2DMS) 0:? 'us2dmsa' ( uniform mediump usampler2DMSArray) 0:? 'outb' ( smooth out bool) 0:? 'outo' ( smooth out lowp sampler2D) 0:? 'outa' ( smooth out 4-element array of highp float) 0:? 'outaa' ( smooth out 4-element array of 2-element array of highp float) 0:? 'outs' ( smooth out structure{ global highp float f}) 0:? 'outasa' ( smooth out 4-element array of structure{ global highp float f}) 0:? 'outsa' ( smooth out 4-element array of structure{ global highp float f}) 0:? 'outSA' ( smooth out structure{ global 4-element array of highp float f}) 0:? 'outSS' ( smooth out structure{ global highp float f, global structure{ global highp float f} s}) 0:? 'U430i' (layout( column_major std430) uniform block{layout( column_major std430 offset=0) uniform highp int a}) 0:? 'B430i' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp int a}) 0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s}) 0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon}) 0:? 'aliased' (layout( location=12) smooth out highp int) 0:? 'inbinst' ( in block{ in highp int a}) 0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) 0:? 'smon' ( smooth out block{ out highp int i}) 0:? 'fmon' ( flat out block{ out highp int i}) 0:? 'cmon' ( centroid out block{ out highp int i}) 0:? 'imon' ( invariant out block{ out highp int i}) 0:? 'inf' ( in highp 2-component vector of float) 0:? 'ing' ( in highp 2-component vector of float) 0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int) 0:? 'sArray' ( uniform 4-element array of lowp sampler2D) 0:? 'sIndex' ( uniform highp int) 0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) 0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) 0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) 0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 'badSamp1' ( uniform mediump samplerBuffer) 0:? 'badSamp2' ( uniform mediump isamplerBuffer) 0:? 'badSamp3' ( uniform mediump usamplerBuffer) 0:? 'badSamp4' ( writeonly uniform mediump imageBuffer) 0:? 'badSamp5' ( writeonly uniform mediump iimageBuffer) 0:? 'badSamp6' ( writeonly uniform mediump uimageBuffer) 0:? 'noPreSamp1' ( uniform mediump samplerBuffer) 0:? 'noPreSamp2' ( uniform mediump isamplerBuffer) 0:? 'noPreSamp3' ( uniform mediump usamplerBuffer) 0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer) 0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer) 0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer) 0:? 'bufSamp1' ( uniform highp samplerBuffer) 0:? 'bufSamp2' ( uniform highp isamplerBuffer) 0:? 'bufSamp3' ( uniform highp usamplerBuffer) 0:? 'bufSamp4' ( writeonly uniform highp imageBuffer) 0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer) 0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer) 0:? 'badCA1' ( writeonly uniform mediump imageCubeArray) 0:? 'badCA2' ( writeonly uniform mediump iimageCubeArray) 0:? 'badCA3' ( writeonly uniform mediump uimageCubeArray) 0:? 'badCA4' ( uniform mediump samplerCubeArray) 0:? 'badCA5' ( uniform mediump samplerCubeArrayShadow) 0:? 'badCA6' ( uniform mediump isamplerCubeArray) 0:? 'badCA7' ( uniform mediump usamplerCubeArray) 0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray) 0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray) 0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray) 0:? 'noPreCA4' ( uniform mediump samplerCubeArray) 0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow) 0:? 'noPreCA6' ( uniform mediump isamplerCubeArray) 0:? 'noPreCA7' ( uniform mediump usamplerCubeArray) 0:? 'CA1' ( writeonly uniform highp imageCubeArray) 0:? 'CA2' ( writeonly uniform highp iimageCubeArray) 0:? 'CA3' ( writeonly uniform highp uimageCubeArray) 0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) 0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) 0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) 0:? 'CA4' ( uniform highp samplerCubeArray) 0:? 'CA5' ( uniform highp samplerCubeArrayShadow) 0:? 'CA6' ( uniform highp isamplerCubeArray) 0:? 'CA7' ( uniform highp usamplerCubeArray) 0:? 'bad2DMS' ( uniform mediump sampler2DMSArray) 0:? 'bad2DMSi' ( uniform mediump isampler2DMSArray) 0:? 'bad2DMSu' ( uniform mediump usampler2DMSArray) 0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray) 0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray) 0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray) 0:? 'samp2DMSA' ( uniform highp sampler2DMSArray) 0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray) 0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray) 0:? 'im2Df' (layout( r32f) uniform highp image2D) 0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:? 'im2Di' (layout( r32i) uniform highp iimage2D) 0:? 'P' ( uniform highp 2-component vector of int) 0:? 'colorSampInBad' ( smooth sample out highp 4-component vector of float) 0:? 'colorSample' ( smooth sample out highp 4-component vector of float) 0:? 'colorfsi' ( flat sample out highp 4-component vector of float) 0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float) 0:? 'inv4' ( in highp 4-component vector of float) 0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) glslang-8.13.3559/Test/baseResults/310AofA.vert.out000066400000000000000000000510421360464450000214610ustar00rootroot00000000000000310AofA.vert ERROR: 0:17: '' : array size required ERROR: 0:23: '' : array size required ERROR: 0:28: '[]' : only outermost dimension of an array of arrays can be implicitly sized ERROR: 0:40: '' : array size required ERROR: 0:48: 'constructor' : constructing non-array constituent from array argument ERROR: 0:49: 'constructor' : array constructor argument not correct type to construct array element ERROR: 0:62: '[' : array index out of range '4' ERROR: 0:78: 'assign' : cannot convert from ' global 4-element array of 7-element array of highp float' to ' global 5-element array of 7-element array of highp float' ERROR: 0:79: 'assign' : cannot convert from ' global 4-element array of 7-element array of highp float' to ' global unsized 1-element array of 7-element array of highp float' ERROR: 0:81: 'foo' : no matching overloaded function found ERROR: 0:86: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type ' global 4-element array of 7-element array of highp float' and a right operand of type ' global 5-element array of 7-element array of highp float' (or there is no acceptable conversion) ERROR: 0:90: '[' : array index out of range '5' ERROR: 0:94: '[' : index out of range '-1' ERROR: 0:96: 'assign' : cannot convert from ' temp 3-element array of highp 4-component vector of float' to 'layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float' ERROR: 0:103: '' : array size required ERROR: 0:104: '' : array size required ERROR: 0:105: '' : array size required ERROR: 0:106: '' : array size required ERROR: 0:107: '' : array size required ERROR: 0:110: 'vertex input arrays' : not supported with this profile: es ERROR: 0:111: 'vertex-shader array-of-array output' : not supported with this profile: es ERROR: 0:113: 'array-of-array of block' : not supported with this profile: es ERROR: 22 compilation errors. No code generated. Shader version: 310 ERROR: node is still EOpNull! 0:8 Function Definition: f(b1;f1;u1[4];i1[3][2]; ( global void) 0:8 Function Parameters: 0:8 'a' ( in bool) 0:8 'b' ( in highp float) 0:8 'c' ( in 4-element array of highp uint) 0:8 'd' ( in 3-element array of 2-element array of highp int) 0:11 Function Definition: main( ( global void) 0:11 Function Parameters: 0:? Sequence 0:13 Function Call: f(b1;f1;u1[4];i1[3][2]; ( global void) 0:13 Constant: 0:13 false (const bool) 0:13 Constant: 0:13 12.100000 0:13 Constant: 0:13 0 (const uint) 0:13 1 (const uint) 0:13 1 (const uint) 0:13 2 (const uint) 0:13 'd' ( temp 3-element array of 2-element array of highp int) 0:44 Function Definition: foo(f1[5][7]; ( global 4-element array of 7-element array of highp float) 0:44 Function Parameters: 0:44 'a' ( in 5-element array of 7-element array of highp float) 0:? Sequence 0:47 move second child to first child ( temp 7-element array of highp float) 0:47 'r' ( temp 7-element array of highp float) 0:47 direct index ( temp 7-element array of highp float) 0:47 'a' ( in 5-element array of 7-element array of highp float) 0:47 Constant: 0:47 2 (const int) 0:48 Constant: 0:48 0.000000 0:49 Constant: 0:49 0.000000 0:50 Branch: Return with expression 0:50 Construct float ( temp 4-element array of 7-element array of float) 0:50 direct index ( temp 7-element array of highp float) 0:50 'a' ( in 5-element array of 7-element array of highp float) 0:50 Constant: 0:50 0 (const int) 0:50 direct index ( temp 7-element array of highp float) 0:50 'a' ( in 5-element array of 7-element array of highp float) 0:50 Constant: 0:50 1 (const int) 0:50 'r' ( temp 7-element array of highp float) 0:50 direct index ( temp 7-element array of highp float) 0:50 'a' ( in 5-element array of 7-element array of highp float) 0:50 Constant: 0:50 3 (const int) 0:51 Branch: Return with expression 0:51 Construct float ( temp 4-element array of 7-element array of float) 0:51 direct index ( temp 7-element array of highp float) 0:51 'a' ( in 5-element array of 7-element array of highp float) 0:51 Constant: 0:51 0 (const int) 0:51 direct index ( temp 7-element array of highp float) 0:51 'a' ( in 5-element array of 7-element array of highp float) 0:51 Constant: 0:51 1 (const int) 0:51 'r' ( temp 7-element array of highp float) 0:51 direct index ( temp 7-element array of highp float) 0:51 'a' ( in 5-element array of 7-element array of highp float) 0:51 Constant: 0:51 3 (const int) 0:52 Branch: Return with expression 0:52 Construct float ( temp 4-element array of 7-element array of float) 0:52 direct index ( temp 7-element array of highp float) 0:52 'a' ( in 5-element array of 7-element array of highp float) 0:52 Constant: 0:52 0 (const int) 0:52 direct index ( temp 7-element array of highp float) 0:52 'a' ( in 5-element array of 7-element array of highp float) 0:52 Constant: 0:52 1 (const int) 0:52 direct index ( temp 7-element array of highp float) 0:52 'a' ( in 5-element array of 7-element array of highp float) 0:52 Constant: 0:52 2 (const int) 0:52 direct index ( temp 7-element array of highp float) 0:52 'a' ( in 5-element array of 7-element array of highp float) 0:52 Constant: 0:52 3 (const int) 0:55 Function Definition: bar(f1[5][7]; ( global void) 0:55 Function Parameters: 0:55 '' ( in 5-element array of 7-element array of highp float) 0:57 Function Definition: foo2( ( global void) 0:57 Function Parameters: 0:? Sequence 0:? Sequence 0:62 move second child to first child ( temp highp float) 0:62 direct index ( temp highp float) 0:62 direct index ( temp 2-element array of highp float) 0:62 direct index ( temp 4-element array of 2-element array of highp float) 0:62 'gu' ( temp 3-element array of 4-element array of 2-element array of highp float) 0:62 Constant: 0:62 2 (const int) 0:62 Constant: 0:62 4 (const int) 0:62 Constant: 0:62 1 (const int) 0:62 Constant: 0:62 4.000000 0:64 Sequence 0:64 move second child to first child ( temp 3-element array of 2-element array of highp 4-component vector of float) 0:64 'ca4' ( temp 3-element array of 2-element array of highp 4-component vector of float) 0:66 Constant: 0:66 0.000000 0:66 0.000000 0:66 0.000000 0:66 0.000000 0:66 1.000000 0:66 1.000000 0:66 1.000000 0:66 1.000000 0:66 0.000000 0:66 0.000000 0:66 0.000000 0:66 0.000000 0:66 1.000000 0:66 1.000000 0:66 1.000000 0:66 1.000000 0:66 0.000000 0:66 0.000000 0:66 0.000000 0:66 0.000000 0:66 1.000000 0:66 1.000000 0:66 1.000000 0:66 1.000000 0:67 Sequence 0:67 move second child to first child ( temp 3-element array of 2-element array of highp 4-component vector of float) 0:67 'caim' ( temp 3-element array of 2-element array of highp 4-component vector of float) 0:69 Constant: 0:69 4.000000 0:69 4.000000 0:69 4.000000 0:69 4.000000 0:69 2.000000 0:69 2.000000 0:69 2.000000 0:69 2.000000 0:69 4.000000 0:69 4.000000 0:69 4.000000 0:69 4.000000 0:69 2.000000 0:69 2.000000 0:69 2.000000 0:69 2.000000 0:69 4.000000 0:69 4.000000 0:69 4.000000 0:69 4.000000 0:69 2.000000 0:69 2.000000 0:69 2.000000 0:69 2.000000 0:70 Sequence 0:70 move second child to first child ( temp 3-element array of 2-element array of highp 4-component vector of float) 0:70 'caim2' ( temp 3-element array of 2-element array of highp 4-component vector of float) 0:72 Constant: 0:72 4.000000 0:72 4.000000 0:72 4.000000 0:72 4.000000 0:72 2.000000 0:72 2.000000 0:72 2.000000 0:72 2.000000 0:72 4.000000 0:72 4.000000 0:72 4.000000 0:72 4.000000 0:72 2.000000 0:72 2.000000 0:72 2.000000 0:72 2.000000 0:72 4.000000 0:72 4.000000 0:72 4.000000 0:72 4.000000 0:72 2.000000 0:72 2.000000 0:72 2.000000 0:72 2.000000 0:73 Sequence 0:73 move second child to first child ( temp 3-element array of 2-element array of highp 4-component vector of float) 0:73 'caim3' ( temp 3-element array of 2-element array of highp 4-component vector of float) 0:75 Constant: 0:75 4.000000 0:75 4.000000 0:75 4.000000 0:75 4.000000 0:75 2.000000 0:75 2.000000 0:75 2.000000 0:75 2.000000 0:75 4.000000 0:75 4.000000 0:75 4.000000 0:75 4.000000 0:75 2.000000 0:75 2.000000 0:75 2.000000 0:75 2.000000 0:75 4.000000 0:75 4.000000 0:75 4.000000 0:75 4.000000 0:75 2.000000 0:75 2.000000 0:75 2.000000 0:75 2.000000 0:77 move second child to first child ( temp 4-element array of 7-element array of highp float) 0:77 'g4' ( global 4-element array of 7-element array of highp float) 0:77 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of highp float) 0:77 'g5' ( global 5-element array of 7-element array of highp float) 0:78 'g5' ( global 5-element array of 7-element array of highp float) 0:79 'gu' ( global unsized 1-element array of 7-element array of highp float) 0:81 Constant: 0:81 0.000000 0:82 Function Call: bar(f1[5][7]; ( global void) 0:82 'g5' ( global 5-element array of 7-element array of highp float) 0:84 Test condition and select ( temp void) 0:84 Condition 0:84 Compare Equal ( temp bool) 0:84 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of highp float) 0:84 'g5' ( global 5-element array of 7-element array of highp float) 0:84 'g4' ( global 4-element array of 7-element array of highp float) 0:84 true case is null 0:86 Test condition and select ( temp void) 0:86 Condition 0:86 Constant: 0:86 false (const bool) 0:86 true case is null 0:90 move second child to first child ( temp highp float) 0:90 direct index ( temp highp float) 0:90 direct index ( temp 7-element array of highp float) 0:90 'u' ( temp 5-element array of 7-element array of highp float) 0:90 Constant: 0:90 5 (const int) 0:90 Constant: 0:90 2 (const int) 0:90 Constant: 0:90 5.000000 0:91 Function Call: foo(f1[5][7]; ( global 4-element array of 7-element array of highp float) 0:91 'u' ( temp 5-element array of 7-element array of highp float) 0:94 direct index (layout( column_major shared) temp highp 4-component vector of float) 0:94 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float) 0:94 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) 0:94 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) 0:94 Constant: 0:94 1 (const int) 0:94 Constant: 0:94 1 (const int) 0:94 Constant: 0:94 -1 (const int) 0:95 move second child to first child ( temp highp 4-component vector of float) 0:95 direct index (layout( column_major shared) temp highp 4-component vector of float) 0:95 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float) 0:95 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) 0:95 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) 0:95 Constant: 0:95 1 (const int) 0:95 Constant: 0:95 1 (const int) 0:95 Constant: 0:95 1 (const int) 0:95 Constant: 0:95 4.300000 0:95 4.300000 0:95 4.300000 0:95 4.300000 0:96 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float) 0:96 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) 0:96 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) 0:96 Constant: 0:96 1 (const int) 0:96 Constant: 0:96 1 (const int) 0:98 Constant: 0:98 7 (const int) 0:99 array length ( temp int) 0:99 v: direct index for structure (layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float) 0:99 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v}) 0:99 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v}) 0:99 Constant: 0:99 0 (const int) 0:99 Constant: 0:99 1 (const int) 0:117 Function Definition: func(mf33[3][2]; ( global highp 3-component vector of float) 0:117 Function Parameters: 0:117 'x' ( in 3-element array of 2-element array of highp 3X3 matrix of float) 0:119 Sequence 0:119 Sequence 0:119 move second child to first child ( temp highp 3X3 matrix of float) 0:119 'a0' ( temp highp 3X3 matrix of float) 0:119 direct index ( temp highp 3X3 matrix of float) 0:119 direct index ( temp 2-element array of highp 3X3 matrix of float) 0:119 'x' ( in 3-element array of 2-element array of highp 3X3 matrix of float) 0:119 Constant: 0:119 2 (const int) 0:119 Constant: 0:119 1 (const int) 0:120 Branch: Return with expression 0:120 direct index ( temp highp 3-component vector of float) 0:120 'a0' ( temp highp 3X3 matrix of float) 0:120 Constant: 0:120 2 (const int) 0:? Linker Objects 0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer unsized 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) 0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform unsized 1-element array of highp 4-component vector of float v}) 0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 1-element array of 1-element array of highp 4-component vector of float v}) 0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v}) 0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float) 0:? 'gu' ( global unsized 1-element array of 7-element array of highp float) 0:? 'g4' ( global 4-element array of 7-element array of highp float) 0:? 'g5' ( global 5-element array of 7-element array of highp float) 0:? 'inArray' ( in 2-element array of 3-element array of highp float) 0:? 'outArray' ( smooth out 2-element array of 3-element array of highp float) 0:? 'ubaaname' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform highp int a}) 0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) Linked vertex stage: Shader version: 310 ERROR: node is still EOpNull! 0:8 Function Definition: f(b1;f1;u1[4];i1[3][2]; ( global void) 0:8 Function Parameters: 0:8 'a' ( in bool) 0:8 'b' ( in highp float) 0:8 'c' ( in 4-element array of highp uint) 0:8 'd' ( in 3-element array of 2-element array of highp int) 0:11 Function Definition: main( ( global void) 0:11 Function Parameters: 0:? Sequence 0:13 Function Call: f(b1;f1;u1[4];i1[3][2]; ( global void) 0:13 Constant: 0:13 false (const bool) 0:13 Constant: 0:13 12.100000 0:13 Constant: 0:13 0 (const uint) 0:13 1 (const uint) 0:13 1 (const uint) 0:13 2 (const uint) 0:13 'd' ( temp 3-element array of 2-element array of highp int) 0:? Linker Objects 0:? 'name' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer 1-element array of highp float u, layout( column_major shared) buffer unsized 2-element array of highp 4-component vector of float v}) 0:? 'uname' (layout( column_major shared) uniform 3-element array of block{layout( column_major shared) uniform highp float u, layout( column_major shared) uniform 1-element array of highp 4-component vector of float v}) 0:? 'name2' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 1-element array of 1-element array of highp 4-component vector of float v}) 0:? 'name3' (layout( column_major shared) buffer 3-element array of block{layout( column_major shared) buffer highp float u, layout( column_major shared) buffer unsized 2-element array of 7-element array of highp 4-component vector of float v}) 0:? 'many' ( global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of highp float) 0:? 'gu' ( global 1-element array of 7-element array of highp float) 0:? 'g4' ( global 4-element array of 7-element array of highp float) 0:? 'g5' ( global 5-element array of 7-element array of highp float) 0:? 'inArray' ( in 2-element array of 3-element array of highp float) 0:? 'outArray' ( smooth out 2-element array of 3-element array of highp float) 0:? 'ubaaname' (layout( column_major shared) uniform 2-element array of 3-element array of block{layout( column_major shared) uniform highp int a}) 0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) glslang-8.13.3559/Test/baseResults/310implicitSizeArrayError.vert.out000066400000000000000000000042561360464450000253360ustar00rootroot00000000000000310implicitSizeArrayError.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) glslang-8.13.3559/Test/baseResults/310runtimeArray.vert.out000066400000000000000000000223021360464450000233320ustar00rootroot00000000000000310runtimeArray.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) glslang-8.13.3559/Test/baseResults/320.comp.out000066400000000000000000000054621360464450000207160ustar00rootroot00000000000000320.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) glslang-8.13.3559/Test/baseResults/320.frag.out000066400000000000000000000764541360464450000207100ustar00rootroot00000000000000320.frag ERROR: 0:3: 'output block' : not supported in this stage: fragment ERROR: 0:7: 'float' : type requires declaration of default precision qualifier ERROR: 0:8: '' : cannot nest a structure definition inside a structure or block ERROR: 0:16: 'location' : overlapping use of location 13 ERROR: 0:18: 'inbname2' : Cannot reuse block name within the same interface: in ERROR: 0:23: 'badmember' : nameless block contains a member that already has a name at global scope ERROR: 0:27: 'inbname' : redefinition ERROR: 0:29: 'vAnon' : redefinition ERROR: 0:43: 'origin_upper_left' : not supported with this profile: es ERROR: 0:43: 'pixel_center_integer' : not supported with this profile: es ERROR: 0:43: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord ERROR: 0:47: 'depth layout qualifier' : not supported with this profile: es ERROR: 0:51: 'assign' : l-value required "gl_FragDepth" (can't modify gl_FragDepth if using early_fragment_tests) ERROR: 0:79: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument ERROR: 0:124: 'rgba32f' : format requires readonly or writeonly memory qualifier ERROR: 0:125: 'rgba8ui' : format requires readonly or writeonly memory qualifier ERROR: 0:126: 'rgba16i' : format requires readonly or writeonly memory qualifier ERROR: 0:152: 'imageAtomicMax' : only supported on image with format r32i or r32ui ERROR: 0:153: 'imageAtomicMax' : only supported on image with format r32i or r32ui ERROR: 0:154: 'imageAtomicExchange' : only supported on image with format r32f ERROR: 0:157: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output ERROR: 0:158: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output ERROR: 0:159: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output ERROR: 0:160: 'noperspective' : Reserved word. ERROR: 0:160: 'noperspective' : not supported for this version or the enabled extensions ERROR: 0:160: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output ERROR: 0:165: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output ERROR: 0:180: 'interpolateAtCentroid' : no matching overloaded function found ERROR: 0:180: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' ERROR: 0:182: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element ERROR: 0:184: 'interpolateAtSample' : no matching overloaded function found ERROR: 0:184: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' ERROR: 0:186: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element ERROR: 0:189: 'interpolateAtOffset' : no matching overloaded function found ERROR: 0:189: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float' ERROR: 0:191: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element ERROR: 0:192: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element ERROR: 0:196: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element ERROR: 0:197: 'outp' : undeclared identifier ERROR: 0:197: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element ERROR: 0:197: 'assign' : cannot convert from ' global float' to ' temp mediump 4-component vector of float' ERROR: 0:217: 'blend equation' : can only apply to 'out' ERROR: 0:218: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:219: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:220: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:221: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:222: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:223: 'blend_support' : unknown blend equation ERROR: 0:225: 'fragment-shader array-of-array output' : not supported with this profile: es ERROR: 49 compilation errors. No code generated. Shader version: 320 gl_FragCoord pixel center is integer gl_FragCoord origin is upper left using early_fragment_tests using depth_any using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations ERROR: node is still EOpNull! 0:35 Function Definition: fooIO( ( global void) 0:35 Function Parameters: 0:37 Sequence 0:37 Sequence 0:37 move second child to first child ( temp mediump 4-component vector of float) 0:37 'v' ( temp mediump 4-component vector of float) 0:37 add ( temp mediump 4-component vector of float) 0:37 v: direct index for structure ( in mediump 4-component vector of float) 0:37 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) 0:37 Constant: 0:37 1 (const int) 0:37 vAnon: direct index for structure (layout( location=13) centroid in mediump 4-component vector of float) 0:37 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) 0:37 Constant: 0:37 1 (const uint) 0:38 vector scale second child into first child ( temp mediump 4-component vector of float) 0:38 'v' ( temp mediump 4-component vector of float) 0:38 f: direct index for structure ( in mediump float) 0:38 direct index ( temp block{ in mediump float f}) 0:38 'arrayedInst' ( in 4-element array of block{ in mediump float f}) 0:38 Constant: 0:38 2 (const int) 0:38 Constant: 0:38 0 (const int) 0:39 vector scale second child into first child ( temp mediump 4-component vector of float) 0:39 'v' ( temp mediump 4-component vector of float) 0:39 f: direct index for structure ( in mediump float) 0:39 indirect index ( temp block{ in mediump float f}) 0:39 'arrayedInst' ( in 4-element array of block{ in mediump float f}) 0:39 'i' ( uniform mediump int) 0:39 Constant: 0:39 0 (const int) 0:49 Function Definition: main( ( global void) 0:49 Function Parameters: 0:51 Sequence 0:51 move second child to first child ( temp highp float) 0:51 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) 0:51 Constant: 0:51 0.200000 0:52 Sequence 0:52 move second child to first child ( temp bool) 0:52 'f' ( temp bool) 0:52 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:57 Function Definition: foo_GS( ( global void) 0:57 Function Parameters: 0:59 Sequence 0:59 Sequence 0:59 move second child to first child ( temp highp int) 0:59 'l' ( temp highp int) 0:59 'gl_Layer' ( flat in highp int Layer) 0:60 Sequence 0:60 move second child to first child ( temp highp int) 0:60 'p' ( temp highp int) 0:60 'gl_PrimitiveID' ( flat in highp int PrimitiveID) 0:73 Function Definition: pfoo( ( global void) 0:73 Function Parameters: 0:? Sequence 0:76 move second child to first child ( temp mediump 2-component vector of float) 0:76 'h' ( noContraction temp mediump 2-component vector of float) 0:76 fma ( global mediump 2-component vector of float) 0:76 'inf' ( smooth in mediump 2-component vector of float) 0:76 'ing' ( smooth in mediump 2-component vector of float) 0:76 'h' ( noContraction temp mediump 2-component vector of float) 0:77 textureGatherOffset ( global lowp 4-component vector of float) 0:77 direct index ( temp lowp sampler2D) 0:77 'sArray' ( uniform 4-element array of lowp sampler2D) 0:77 Constant: 0:77 0 (const int) 0:77 Constant: 0:77 0.100000 0:77 0.100000 0:77 Convert float to int ( temp lowp 2-component vector of int) 0:77 'inf' ( smooth in mediump 2-component vector of float) 0:78 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump) 0:78 direct index ( temp lowp sampler2D) 0:78 'sArray' ( uniform 4-element array of lowp sampler2D) 0:78 Constant: 0:78 0 (const int) 0:78 Constant: 0:78 0.100000 0:78 0.100000 0:78 Constant: 0:78 0 (const int) 0:78 0 (const int) 0:78 0 (const int) 0:78 0 (const int) 0:78 0 (const int) 0:78 0 (const int) 0:78 0 (const int) 0:78 0 (const int) 0:79 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump) 0:79 direct index ( temp lowp sampler2D) 0:79 'sArray' ( uniform 4-element array of lowp sampler2D) 0:79 Constant: 0:79 0 (const int) 0:79 Constant: 0:79 0.100000 0:79 0.100000 0:79 'offsets' ( uniform 4-element array of mediump 2-component vector of int) 0:102 Function Definition: CAT( ( global void) 0:102 Function Parameters: 0:104 Sequence 0:104 Sequence 0:104 move second child to first child ( temp highp 4-component vector of float) 0:104 'b4' ( temp highp 4-component vector of float) 0:104 texture ( global highp 4-component vector of float) 0:104 'CA4' ( uniform highp samplerCubeArray) 0:104 Constant: 0:104 0.500000 0:104 0.500000 0:104 0.500000 0:104 0.500000 0:104 Constant: 0:104 0.240000 0:105 Sequence 0:105 move second child to first child ( temp highp 4-component vector of int) 0:105 'b6' ( temp highp 4-component vector of int) 0:105 texture ( global highp 4-component vector of int) 0:105 'CA6' ( uniform highp isamplerCubeArray) 0:105 Constant: 0:105 0.500000 0:105 0.500000 0:105 0.500000 0:105 0.500000 0:105 Constant: 0:105 0.260000 0:106 Sequence 0:106 move second child to first child ( temp highp 4-component vector of uint) 0:106 'b7' ( temp highp 4-component vector of uint) 0:106 texture ( global highp 4-component vector of uint) 0:106 'CA7' ( uniform highp usamplerCubeArray) 0:106 Constant: 0:106 0.500000 0:106 0.500000 0:106 0.500000 0:106 0.500000 0:106 Constant: 0:106 0.270000 0:109 Function Definition: goodSample( ( global void) 0:109 Function Parameters: 0:111 Sequence 0:111 Sequence 0:111 move second child to first child ( temp lowp int) 0:111 'a1' ( temp lowp int) 0:111 'gl_SampleID' ( flat in lowp int SampleId) 0:112 Sequence 0:112 move second child to first child ( temp mediump 2-component vector of float) 0:112 'a2' ( temp mediump 2-component vector of float) 0:112 'gl_SamplePosition' ( smooth in mediump 2-component vector of float SamplePosition) 0:113 Sequence 0:113 move second child to first child ( temp highp int) 0:113 'a3' ( temp highp int) 0:113 direct index ( flat temp highp int SampleMaskIn) 0:113 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) 0:113 Constant: 0:113 0 (const int) 0:114 move second child to first child ( temp highp int) 0:114 direct index ( temp highp int SampleMaskIn) 0:114 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) 0:114 Constant: 0:114 0 (const int) 0:114 'a3' ( temp highp int) 0:115 Sequence 0:115 move second child to first child ( temp mediump int) 0:115 'n1' ( temp mediump int) 0:115 Constant: 0:115 4 (const int) 0:116 Sequence 0:116 move second child to first child ( temp mediump int) 0:116 'n2' ( temp mediump int) 0:116 'gl_NumSamples' ( uniform lowp int) 0:128 Function Definition: goodImageAtom( ( global void) 0:128 Function Parameters: 0:? Sequence 0:134 imageAtomicAdd ( global highp int) 0:134 'im2Di' (layout( r32i) uniform highp iimage2D) 0:134 'P' ( uniform mediump 2-component vector of int) 0:134 'dati' ( temp mediump int) 0:135 imageAtomicAdd ( global highp uint) 0:135 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:135 'P' ( uniform mediump 2-component vector of int) 0:135 'datu' ( temp mediump uint) 0:136 imageAtomicMin ( global highp int) 0:136 'im2Di' (layout( r32i) uniform highp iimage2D) 0:136 'P' ( uniform mediump 2-component vector of int) 0:136 'dati' ( temp mediump int) 0:137 imageAtomicMin ( global highp uint) 0:137 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:137 'P' ( uniform mediump 2-component vector of int) 0:137 'datu' ( temp mediump uint) 0:138 imageAtomicMax ( global highp int) 0:138 'im2Di' (layout( r32i) uniform highp iimage2D) 0:138 'P' ( uniform mediump 2-component vector of int) 0:138 'dati' ( temp mediump int) 0:139 imageAtomicMax ( global highp uint) 0:139 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:139 'P' ( uniform mediump 2-component vector of int) 0:139 'datu' ( temp mediump uint) 0:140 imageAtomicAnd ( global highp int) 0:140 'im2Di' (layout( r32i) uniform highp iimage2D) 0:140 'P' ( uniform mediump 2-component vector of int) 0:140 'dati' ( temp mediump int) 0:141 imageAtomicAnd ( global highp uint) 0:141 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:141 'P' ( uniform mediump 2-component vector of int) 0:141 'datu' ( temp mediump uint) 0:142 imageAtomicOr ( global highp int) 0:142 'im2Di' (layout( r32i) uniform highp iimage2D) 0:142 'P' ( uniform mediump 2-component vector of int) 0:142 'dati' ( temp mediump int) 0:143 imageAtomicOr ( global highp uint) 0:143 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:143 'P' ( uniform mediump 2-component vector of int) 0:143 'datu' ( temp mediump uint) 0:144 imageAtomicXor ( global highp int) 0:144 'im2Di' (layout( r32i) uniform highp iimage2D) 0:144 'P' ( uniform mediump 2-component vector of int) 0:144 'dati' ( temp mediump int) 0:145 imageAtomicXor ( global highp uint) 0:145 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:145 'P' ( uniform mediump 2-component vector of int) 0:145 'datu' ( temp mediump uint) 0:146 imageAtomicExchange ( global highp int) 0:146 'im2Di' (layout( r32i) uniform highp iimage2D) 0:146 'P' ( uniform mediump 2-component vector of int) 0:146 'dati' ( temp mediump int) 0:147 imageAtomicExchange ( global highp uint) 0:147 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:147 'P' ( uniform mediump 2-component vector of int) 0:147 'datu' ( temp mediump uint) 0:148 imageAtomicExchange ( global highp float) 0:148 'im2Df' (layout( r32f) uniform highp image2D) 0:148 'P' ( uniform mediump 2-component vector of int) 0:148 'datf' ( temp mediump float) 0:149 imageAtomicCompSwap ( global highp int) 0:149 'im2Di' (layout( r32i) uniform highp iimage2D) 0:149 'P' ( uniform mediump 2-component vector of int) 0:149 Constant: 0:149 3 (const int) 0:149 'dati' ( temp mediump int) 0:150 imageAtomicCompSwap ( global highp uint) 0:150 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:150 'P' ( uniform mediump 2-component vector of int) 0:150 Constant: 0:150 5 (const uint) 0:150 'datu' ( temp mediump uint) 0:152 imageAtomicMax ( global highp int) 0:152 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) 0:152 'P' ( uniform mediump 2-component vector of int) 0:152 'dati' ( temp mediump int) 0:153 imageAtomicMax ( global highp uint) 0:153 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) 0:153 'P' ( uniform mediump 2-component vector of int) 0:153 'datu' ( temp mediump uint) 0:154 imageAtomicExchange ( global highp float) 0:154 'badIm2Df' (layout( rgba32f) uniform highp image2D) 0:154 'P' ( uniform mediump 2-component vector of int) 0:154 'datf' ( temp mediump float) 0:169 Function Definition: interp( ( global void) 0:169 Function Parameters: 0:? Sequence 0:176 move second child to first child ( temp mediump 2-component vector of float) 0:176 'res2' ( temp mediump 2-component vector of float) 0:176 interpolateAtCentroid ( global mediump 2-component vector of float) 0:176 'colorfc' ( centroid flat in mediump 2-component vector of float) 0:177 move second child to first child ( temp mediump 4-component vector of float) 0:177 'res4' ( temp mediump 4-component vector of float) 0:177 interpolateAtCentroid ( global mediump 4-component vector of float) 0:177 'colorSampIn' ( smooth sample in mediump 4-component vector of float) 0:178 move second child to first child ( temp mediump 4-component vector of float) 0:178 'res4' ( temp mediump 4-component vector of float) 0:178 interpolateAtCentroid ( global mediump 4-component vector of float) 0:178 'colorfsi' ( flat sample in mediump 4-component vector of float) 0:179 move second child to first child ( temp mediump float) 0:179 'res' ( temp mediump float) 0:179 interpolateAtCentroid ( global mediump float) 0:179 'scalarIn' ( smooth in mediump float) 0:180 'res3' ( temp mediump 3-component vector of float) 0:181 move second child to first child ( temp mediump 3-component vector of float) 0:181 'res3' ( temp mediump 3-component vector of float) 0:181 interpolateAtCentroid ( global mediump 3-component vector of float) 0:181 direct index ( smooth sample temp mediump 3-component vector of float) 0:181 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:181 Constant: 0:181 2 (const int) 0:182 move second child to first child ( temp mediump 2-component vector of float) 0:182 'res2' ( temp mediump 2-component vector of float) 0:182 interpolateAtCentroid ( global mediump 2-component vector of float) 0:182 vector swizzle ( temp mediump 2-component vector of float) 0:182 direct index ( smooth sample temp mediump 3-component vector of float) 0:182 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:182 Constant: 0:182 2 (const int) 0:182 Sequence 0:182 Constant: 0:182 0 (const int) 0:182 Constant: 0:182 1 (const int) 0:184 'res3' ( temp mediump 3-component vector of float) 0:185 move second child to first child ( temp mediump 3-component vector of float) 0:185 'res3' ( temp mediump 3-component vector of float) 0:185 interpolateAtSample ( global mediump 3-component vector of float) 0:185 indirect index ( smooth sample temp mediump 3-component vector of float) 0:185 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:185 'i' ( uniform mediump int) 0:185 Constant: 0:185 0 (const int) 0:186 move second child to first child ( temp mediump 2-component vector of float) 0:186 'res2' ( temp mediump 2-component vector of float) 0:186 interpolateAtSample ( global mediump 2-component vector of float) 0:186 vector swizzle ( temp mediump 2-component vector of float) 0:186 direct index ( smooth sample temp mediump 3-component vector of float) 0:186 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:186 Constant: 0:186 2 (const int) 0:186 Sequence 0:186 Constant: 0:186 0 (const int) 0:186 Constant: 0:186 1 (const int) 0:186 Constant: 0:186 2 (const int) 0:187 move second child to first child ( temp mediump float) 0:187 'res' ( temp mediump float) 0:187 interpolateAtSample ( global mediump float) 0:187 'scalarIn' ( smooth in mediump float) 0:187 Constant: 0:187 1 (const int) 0:189 'res3' ( temp mediump 3-component vector of float) 0:190 move second child to first child ( temp mediump 3-component vector of float) 0:190 'res3' ( temp mediump 3-component vector of float) 0:190 interpolateAtOffset ( global mediump 3-component vector of float) 0:190 direct index ( smooth sample temp mediump 3-component vector of float) 0:190 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:190 Constant: 0:190 2 (const int) 0:190 Constant: 0:190 0.200000 0:190 0.200000 0:191 move second child to first child ( temp mediump 2-component vector of float) 0:191 'res2' ( temp mediump 2-component vector of float) 0:191 interpolateAtOffset ( global mediump 2-component vector of float) 0:191 vector swizzle ( temp mediump 2-component vector of float) 0:191 direct index ( smooth sample temp mediump 3-component vector of float) 0:191 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:191 Constant: 0:191 2 (const int) 0:191 Sequence 0:191 Constant: 0:191 0 (const int) 0:191 Constant: 0:191 1 (const int) 0:191 Constant: 0:191 0.200000 0:191 0.200000 0:192 move second child to first child ( temp mediump float) 0:192 'res' ( temp mediump float) 0:192 interpolateAtOffset ( global mediump float) 0:192 add ( temp mediump float) 0:192 'scalarIn' ( smooth in mediump float) 0:192 'scalarIn' ( smooth in mediump float) 0:192 Constant: 0:192 0.200000 0:192 0.200000 0:193 move second child to first child ( temp mediump float) 0:193 'res' ( temp mediump float) 0:193 interpolateAtOffset ( global mediump float) 0:193 'scalarIn' ( smooth in mediump float) 0:193 Constant: 0:193 0.200000 0:193 0.200000 0:196 move second child to first child ( temp mediump float) 0:196 'res' ( temp mediump float) 0:196 interpolateAtCentroid ( global mediump float) 0:196 'f' ( temp mediump float) 0:197 'res4' ( temp mediump 4-component vector of float) 0:221 Function Definition: blendFoo( ( temp void) 0:221 Function Parameters: 0:222 Function Definition: blendFoo(vf3; ( global void) 0:222 Function Parameters: 0:222 'v' ( in mediump 3-component vector of float) 0:? Linker Objects 0:? 'outbinst' ( out block{ out mediump int a}) 0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) 0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) 0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float) 0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f}) 0:? 'i' ( uniform mediump int) 0:? 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) 0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) 0:? 'inf' ( smooth in mediump 2-component vector of float) 0:? 'ing' ( smooth in mediump 2-component vector of float) 0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int) 0:? 'sArray' ( uniform 4-element array of lowp sampler2D) 0:? 'sIndex' ( uniform mediump int) 0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) 0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i}) 0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i}) 0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 'CA1' ( writeonly uniform highp imageCubeArray) 0:? 'CA2' ( writeonly uniform highp iimageCubeArray) 0:? 'CA3' ( writeonly uniform highp uimageCubeArray) 0:? 'CA4' ( uniform highp samplerCubeArray) 0:? 'CA5' ( uniform highp samplerCubeArrayShadow) 0:? 'CA6' ( uniform highp isamplerCubeArray) 0:? 'CA7' ( uniform highp usamplerCubeArray) 0:? 'gl_SampleMaskIn' ( flat in unsized 1-element array of highp int SampleMaskIn) 0:? 'gl_SampleMask' ( out unsized 1-element array of highp int SampleMaskIn) 0:? 'im2Df' (layout( r32f) uniform highp image2D) 0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:? 'im2Di' (layout( r32i) uniform highp iimage2D) 0:? 'P' ( uniform mediump 2-component vector of int) 0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D) 0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) 0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) 0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float) 0:? 'colorBadFlat' ( flat out mediump 4-component vector of float) 0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float) 0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float) 0:? 'colorfc' ( centroid flat in mediump 2-component vector of float) 0:? 'scalarIn' ( smooth in mediump float) 0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float) 0:? 'colorSampleBad' ( sample out mediump 4-component vector of float) 0:? 'colorfsi' ( flat sample in mediump 4-component vector of float) 0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:? 'badout' ( out mediump 4-component vector of float) 0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float) Linked fragment stage: ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers Shader version: 320 gl_FragCoord pixel center is integer gl_FragCoord origin is upper left using early_fragment_tests using depth_any using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations ERROR: node is still EOpNull! 0:49 Function Definition: main( ( global void) 0:49 Function Parameters: 0:51 Sequence 0:51 move second child to first child ( temp highp float) 0:51 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) 0:51 Constant: 0:51 0.200000 0:52 Sequence 0:52 move second child to first child ( temp bool) 0:52 'f' ( temp bool) 0:52 'gl_FrontFacing' ( gl_FrontFacing bool Face) 0:? Linker Objects 0:? 'outbinst' ( out block{ out mediump int a}) 0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s}) 0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon}) 0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float) 0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f}) 0:? 'i' ( uniform mediump int) 0:? 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord) 0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth) 0:? 'inf' ( smooth in mediump 2-component vector of float) 0:? 'ing' ( smooth in mediump 2-component vector of float) 0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int) 0:? 'sArray' ( uniform 4-element array of lowp sampler2D) 0:? 'sIndex' ( uniform mediump int) 0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) 0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i}) 0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i}) 0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 'CA1' ( writeonly uniform highp imageCubeArray) 0:? 'CA2' ( writeonly uniform highp iimageCubeArray) 0:? 'CA3' ( writeonly uniform highp uimageCubeArray) 0:? 'CA4' ( uniform highp samplerCubeArray) 0:? 'CA5' ( uniform highp samplerCubeArrayShadow) 0:? 'CA6' ( uniform highp isamplerCubeArray) 0:? 'CA7' ( uniform highp usamplerCubeArray) 0:? 'gl_SampleMaskIn' ( flat in 1-element array of highp int SampleMaskIn) 0:? 'gl_SampleMask' ( out 1-element array of highp int SampleMaskIn) 0:? 'im2Df' (layout( r32f) uniform highp image2D) 0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:? 'im2Di' (layout( r32i) uniform highp iimage2D) 0:? 'P' ( uniform mediump 2-component vector of int) 0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D) 0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D) 0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D) 0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float) 0:? 'colorBadFlat' ( flat out mediump 4-component vector of float) 0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float) 0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float) 0:? 'colorfc' ( centroid flat in mediump 2-component vector of float) 0:? 'scalarIn' ( smooth in mediump float) 0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float) 0:? 'colorSampleBad' ( sample out mediump 4-component vector of float) 0:? 'colorfsi' ( flat sample in mediump 4-component vector of float) 0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float) 0:? 'badout' ( out mediump 4-component vector of float) 0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float) glslang-8.13.3559/Test/baseResults/320.geom.out000066400000000000000000000345601360464450000207100ustar00rootroot00000000000000320.geom ERROR: 0:19: 'fromVertex' : block instance name redefinition ERROR: 0:23: 'fromVertex' : redefinition ERROR: 0:25: 'fooC' : block instance name redefinition ERROR: 0:33: 'EmitStreamVertex' : no matching overloaded function found ERROR: 0:34: 'EndStreamPrimitive' : no matching overloaded function found ERROR: 0:37: 'gl_ClipDistance' : undeclared identifier ERROR: 0:37: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector ERROR: 0:38: 'gl_ClipDistance' : no such field in structure ERROR: 0:38: 'expression' : left of '[' is not of type array, matrix, or vector ERROR: 0:37: 'assign' : l-value required (can't modify a const) ERROR: 0:45: 'selecting output stream' : not supported with this profile: es ERROR: 0:52: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices ERROR: 0:52: 'max_vertices' : cannot change previously set layout value ERROR: 0:53: 'max_vertices' : can only apply to a standalone qualifier ERROR: 0:58: 'points' : cannot change previously set output primitive ERROR: 0:59: 'points' : cannot change previously set output primitive ERROR: 0:60: 'triangle_strip' : cannot apply to input ERROR: 0:61: 'triangle_strip' : cannot apply to: uniform ERROR: 0:62: 'triangle_strip' : can only apply to a standalone qualifier ERROR: 0:63: 'triangle_strip' : can only apply to a standalone qualifier ERROR: 0:64: 'invocations' : can only apply to a standalone qualifier ERROR: 0:66: 'invocations' : can only apply to a standalone qualifier ERROR: 0:67: 'max_vertices' : can only apply to a standalone qualifier ERROR: 0:68: 'triangle_strip' : can only apply to a standalone qualifier ERROR: 0:71: 'lines' : cannot apply to 'out' ERROR: 0:73: 'triangles' : cannot change previously set input primitive ERROR: 0:74: 'triangles_adjacency' : cannot change previously set input primitive ERROR: 0:106: 'gl_ViewportIndex' : undeclared identifier ERROR: 0:107: 'gl_MaxViewports' : undeclared identifier ERROR: 0:113: 'lines_adjacency' : inconsistent input primitive for array size of explArrayBad ERROR: 0:114: 'in' : type must be an array: nonArrayed ERROR: 0:122: 'component' : not supported with this profile: es ERROR: 0:126: 'gl_MaxGeometryVaryingComponents' : undeclared identifier ERROR: 0:127: 'gl_VerticesIn' : undeclared identifier ERROR: 0:132: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_geometry_point_size GL_OES_geometry_point_size ERROR: 0:133: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_geometry_point_size GL_OES_geometry_point_size ERROR: 36 compilation errors. No code generated. Shader version: 320 invocations = 4 max_vertices = 200 input primitive = lines_adjacency output primitive = triangle_strip ERROR: node is still EOpNull! 0:29 Function Definition: main( ( global void) 0:29 Function Parameters: 0:31 Sequence 0:31 EmitVertex ( global void) 0:32 EndPrimitive ( global void) 0:33 Constant: 0:33 0.000000 0:34 Constant: 0:34 0.000000 0:36 move second child to first child ( temp mediump 3-component vector of float) 0:36 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float) 0:36 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:36 Constant: 0:36 0 (const uint) 0:36 color: direct index for structure ( in mediump 3-component vector of float) 0:36 direct index ( temp block{ in mediump 3-component vector of float color}) 0:36 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 0 (const int) 0:37 move second child to first child ( temp float) 0:37 Constant: 0:37 0.000000 0:38 Constant: 0:38 0.000000 0:39 move second child to first child ( temp highp 4-component vector of float) 0:39 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) 0:39 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) 0:39 Constant: 0:39 0 (const uint) 0:39 gl_Position: direct index for structure ( in highp 4-component vector of float Position) 0:39 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:39 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 0 (const int) 0:41 move second child to first child ( temp highp int) 0:41 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID) 0:41 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) 0:42 move second child to first child ( temp highp int) 0:42 'gl_Layer' (layout( stream=0) out highp int Layer) 0:42 Constant: 0:42 2 (const int) 0:53 Function Definition: foo(i1; ( global void) 0:53 Function Parameters: 0:53 'a' ( in highp int) 0:55 Sequence 0:55 move second child to first child ( temp mediump 4-component vector of float) 0:55 a: direct index for structure (layout( stream=0) out mediump 4-component vector of float) 0:55 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) 0:55 Constant: 0:55 0 (const int) 0:55 Constant: 0:55 1.000000 0:55 1.000000 0:55 1.000000 0:55 1.000000 0:104 Function Definition: fooe1( ( global void) 0:104 Function Parameters: 0:106 Sequence 0:106 'gl_ViewportIndex' ( temp float) 0:107 'gl_MaxViewports' ( temp float) 0:108 Constant: 0:108 4 (const int) 0:109 Sequence 0:109 move second child to first child ( temp highp int) 0:109 'inv' ( temp highp int) 0:109 'gl_InvocationID' ( in highp int InvocationID) 0:124 Function Definition: notHere( ( global void) 0:124 Function Parameters: 0:126 Sequence 0:126 'gl_MaxGeometryVaryingComponents' ( temp float) 0:127 'gl_VerticesIn' ( temp float) 0:130 Function Definition: pointSize2( ( global void) 0:130 Function Parameters: 0:132 Sequence 0:132 Sequence 0:132 move second child to first child ( temp highp float) 0:132 'ps' ( temp highp float) 0:132 gl_PointSize: direct index for structure ( in highp float PointSize) 0:132 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:132 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:132 Constant: 0:132 3 (const int) 0:132 Constant: 0:132 1 (const int) 0:133 move second child to first child ( temp highp float) 0:133 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize highp float PointSize) 0:133 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) 0:133 Constant: 0:133 1 (const uint) 0:133 'ps' ( temp highp float) 0:? Linker Objects 0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) 0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float) 0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float) 0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) 0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float) 0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float) 0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a}) 0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c}) 0:? 'insn' ( in 4-element array of block{ in highp int a15}) 0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15}) 0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) 0:? 'summ' ( const highp int) 0:? 2752 (const int) 0:? 'explArray' ( in 4-element array of mediump 4-component vector of float) 0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float) 0:? 'nonArrayed' ( in mediump 4-component vector of float) 0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float) 0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float) 0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float) 0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float) 0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float) Linked geometry stage: Shader version: 320 invocations = 4 max_vertices = 200 input primitive = lines_adjacency output primitive = triangle_strip ERROR: node is still EOpNull! 0:29 Function Definition: main( ( global void) 0:29 Function Parameters: 0:31 Sequence 0:31 EmitVertex ( global void) 0:32 EndPrimitive ( global void) 0:33 Constant: 0:33 0.000000 0:34 Constant: 0:34 0.000000 0:36 move second child to first child ( temp mediump 3-component vector of float) 0:36 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float) 0:36 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:36 Constant: 0:36 0 (const uint) 0:36 color: direct index for structure ( in mediump 3-component vector of float) 0:36 direct index ( temp block{ in mediump 3-component vector of float color}) 0:36 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 0 (const int) 0:37 move second child to first child ( temp float) 0:37 Constant: 0:37 0.000000 0:38 Constant: 0:38 0.000000 0:39 move second child to first child ( temp highp 4-component vector of float) 0:39 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position) 0:39 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize}) 0:39 Constant: 0:39 0 (const uint) 0:39 gl_Position: direct index for structure ( in highp 4-component vector of float Position) 0:39 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:39 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 0 (const int) 0:41 move second child to first child ( temp highp int) 0:41 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID) 0:41 'gl_PrimitiveIDIn' ( in highp int PrimitiveID) 0:42 move second child to first child ( temp highp int) 0:42 'gl_Layer' (layout( stream=0) out highp int Layer) 0:42 Constant: 0:42 2 (const int) 0:? Linker Objects 0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color}) 0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float) 0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color}) 0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) 0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float) 0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a}) 0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float) 0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float) 0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a}) 0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c}) 0:? 'insn' ( in 4-element array of block{ in highp int a15}) 0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15}) 0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15}) 0:? 'summ' ( const highp int) 0:? 2752 (const int) 0:? 'explArray' ( in 4-element array of mediump 4-component vector of float) 0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float) 0:? 'nonArrayed' ( in mediump 4-component vector of float) 0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float) 0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float) 0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float) 0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float) 0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float) glslang-8.13.3559/Test/baseResults/320.tesc.out000066400000000000000000000742451360464450000207230ustar00rootroot00000000000000320.tesc ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader ERROR: 0:24: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size ERROR: 0:25: 'gl_ClipDistance' : no such field in structure ERROR: 0:25: 'expression' : left of '[' is not of type array, matrix, or vector ERROR: 0:32: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size ERROR: 0:33: 'gl_ClipDistance' : no such field in structure ERROR: 0:33: 'expression' : left of '[' is not of type array, matrix, or vector ERROR: 0:33: 'assign' : l-value required (can't modify a const) ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main() ERROR: 0:64: 'vertices' : can only apply to 'out' ERROR: 0:65: 'vertices' : cannot change previously set layout value ERROR: 0:69: '[' : array index out of range '4' ERROR: 0:71: '' : tessellation control barrier() must be in main() ERROR: 0:74: 'in' : type must be an array: ina ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized ERROR: 0:78: '' : array size required ERROR: 0:84: 'location' : overlapping use of location 4 ERROR: 0:88: 'location' : overlapping use of location 4 ERROR: 0:98: 'vertices' : can only apply to a standalone qualifier ERROR: 0:99: 'vertices' : inconsistent output number of vertices for array size of misSized ERROR: 0:104: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size ERROR: 0:105: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size ERROR: 0: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}) glslang-8.13.3559/Test/baseResults/320.tese.out000066400000000000000000000405341360464450000207170ustar00rootroot00000000000000320.tese ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:5: 'triangles' : cannot change previously set input primitive ERROR: 0:6: 'isolines' : cannot change previously set input primitive ERROR: 0:8: 'ccw' : cannot change previously set vertex order ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader ERROR: 0:22: 'barrier' : no matching overloaded function found ERROR: 0:33: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size ERROR: 0:34: 'gl_ClipDistance' : no such field in structure ERROR: 0:34: 'expression' : left of '[' is not of type array, matrix, or vector ERROR: 0:43: 'gl_PointSize' : required extension not requested: Possible extensions include: GL_EXT_tessellation_point_size GL_OES_tessellation_point_size ERROR: 0:44: 'gl_ClipDistance' : undeclared identifier ERROR: 0:44: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector ERROR: 0:44: 'assign' : l-value required (can't modify a const) ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch ERROR: 0:49: 'noperspective' : Reserved word. ERROR: 0:49: 'noperspective' : not supported for this version or the enabled extensions ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use ERROR: 0:64: 'quads' : cannot apply to 'out' ERROR: 0:64: 'cw' : can only apply to 'in' ERROR: 0:65: 'triangles' : cannot apply to 'out' ERROR: 0:66: 'isolines' : cannot apply to 'out' ERROR: 0:67: 'cw' : can only apply to 'in' ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' ERROR: 0:69: 'equal_spacing' : can only apply to 'in' ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' ERROR: 0:71: 'point_mode' : can only apply to 'in' ERROR: 0:73: 'in' : type must be an array: ina ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized ERROR: 0:78: 'in' : type must be an array: bla ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized ERROR: 0:96: 'location' : overlapping use of location 24 ERROR: 0:99: 'location' : overlapping use of location 24 ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved ERROR: 0:113: 'gl_BoundingBoxOES' : undeclared identifier ERROR: 39 compilation errors. No code generated. Shader version: 320 Requested GL_ARB_separate_shader_objects input primitive = quads vertex spacing = fractional_odd_spacing triangle order = cw using point mode ERROR: node is still EOpNull! 0:20 Function Definition: main( ( global void) 0:20 Function Parameters: 0:22 Sequence 0:22 Constant: 0:22 0.000000 0:24 Sequence 0:24 move second child to first child ( temp highp int) 0:24 'a' ( temp highp int) 0:24 Constant: 0:24 1512 (const int) 0:32 Sequence 0:32 move second child to first child ( temp highp 4-component vector of float) 0:32 'p' ( temp highp 4-component vector of float) 0:32 gl_Position: direct index for structure ( in highp 4-component vector of float Position) 0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float 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) glslang-8.13.3559/Test/baseResults/320.vert.out000066400000000000000000001146111360464450000207350ustar00rootroot00000000000000320.vert ERROR: 0:6: 's' : member of block cannot be or contain a sampler, image, or atomic_uint type ERROR: 0:14: 'location' : overlapping use of location 12 ERROR: 0:16: 'input block' : not supported in this stage: vertex ERROR: 0:18: 'gl_PerVertex' : block redeclaration has extra members ERROR: 0:28: 'gl_PointSize' : member of nameless block was not redeclared ERROR: 0:28: 'assign' : cannot convert from ' const float' to ' gl_PointSize highp void PointSize' ERROR: 0:31: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use ERROR: 0:36: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block ERROR: 0:40: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block ERROR: 0:44: 'centroid' : cannot use centroid qualifier on an interface block ERROR: 0:48: 'invariant' : cannot use invariant qualifier on an interface block ERROR: 0:68: 'variable indexing buffer block array' : not supported with this profile: es ERROR: 0:73: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument ERROR: 0:76: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:77: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:78: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:79: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:80: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:116: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:117: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:118: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:120: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:121: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:122: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:123: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:191: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:192: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:193: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:211: 'textureSize' : no matching overloaded function found ERROR: 0:211: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int' ERROR: 0:252: 'interpolateAtCentroid' : no matching overloaded function found ERROR: 0:253: 'interpolateAtSample' : no matching overloaded function found ERROR: 0:254: 'interpolateAtOffset' : no matching overloaded function found ERROR: 34 compilation errors. No code generated. Shader version: 320 ERROR: node is still EOpNull! 0:23 Function Definition: main( ( global void) 0:23 Function Parameters: 0:25 Sequence 0:25 Sequence 0:25 move second child to first child ( temp highp int) 0:25 'sum' ( temp highp int) 0:25 add ( temp highp int) 0:25 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:26 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) 0:27 move second child to first child ( temp highp 4-component vector of float) 0:27 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) 0:27 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) 0:27 Constant: 0:27 0 (const uint) 0:27 Constant: 0:27 1.000000 0:27 1.000000 0:27 1.000000 0:27 1.000000 0:28 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize) 0:28 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) 0:28 Constant: 0:28 1 (const uint) 0:62 Function Definition: pfoo( ( global void) 0:62 Function Parameters: 0:? Sequence 0:65 move second child to first child ( temp highp 2-component vector of float) 0:65 'h' ( noContraction temp highp 2-component vector of float) 0:65 fma ( global highp 2-component vector of float) 0:65 'inf' ( in highp 2-component vector of float) 0:65 'ing' ( in highp 2-component vector of float) 0:65 'h' ( noContraction temp highp 2-component vector of float) 0:66 indirect index ( temp lowp sampler2D) 0:66 'sArray' ( uniform 4-element array of lowp sampler2D) 0:66 add ( temp highp int) 0:66 'sIndex' ( uniform highp int) 0:66 Constant: 0:66 1 (const int) 0:67 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i}) 0:67 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) 0:67 add ( temp highp int) 0:67 'sIndex' ( uniform highp int) 0:67 Constant: 0:67 1 (const int) 0:68 indirect index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i}) 0:68 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) 0:68 subtract ( temp highp int) 0:68 'sIndex' ( uniform highp int) 0:68 Constant: 0:68 2 (const int) 0:69 direct index ( writeonly temp highp image2D) 0:69 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:69 Constant: 0:69 2 (const int) 0:70 indirect index ( writeonly temp highp image2D) 0:70 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:70 subtract ( temp highp int) 0:70 'sIndex' ( uniform highp int) 0:70 Constant: 0:70 2 (const int) 0:71 textureGatherOffset ( global lowp 4-component vector of float) 0:71 direct index ( temp lowp sampler2D) 0:71 'sArray' ( uniform 4-element array of lowp sampler2D) 0:71 Constant: 0:71 0 (const int) 0:71 Constant: 0:71 0.100000 0:71 0.100000 0:71 Convert float to int ( temp lowp 2-component vector of int) 0:71 'inf' ( in highp 2-component vector of float) 0:72 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) 0:72 direct index ( temp lowp sampler2D) 0:72 'sArray' ( uniform 4-element array of lowp sampler2D) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: 0:72 0.100000 0:72 0.100000 0:72 Constant: 0:72 0 (const int) 0:72 0 (const int) 0:72 0 (const int) 0:72 0 (const int) 0:72 0 (const int) 0:72 0 (const int) 0:72 0 (const int) 0:72 0 (const int) 0:73 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp) 0:73 direct index ( temp lowp sampler2D) 0:73 'sArray' ( uniform 4-element array of lowp sampler2D) 0:73 Constant: 0:73 0 (const int) 0:73 Constant: 0:73 0.100000 0:73 0.100000 0:73 'offsets' ( uniform 4-element array of highp 2-component vector of int) 0:101 Function Definition: bufferT( ( global void) 0:101 Function Parameters: 0:103 Sequence 0:103 Sequence 0:103 move second child to first child ( temp highp int) 0:103 's1' ( temp highp int) 0:103 textureSize ( global highp int) 0:103 'bufSamp1' ( uniform highp samplerBuffer) 0:104 Sequence 0:104 move second child to first child ( temp highp int) 0:104 's2' ( temp highp int) 0:104 textureSize ( global highp int) 0:104 'bufSamp2' ( uniform highp isamplerBuffer) 0:105 Sequence 0:105 move second child to first child ( temp highp int) 0:105 's3' ( temp highp int) 0:105 textureSize ( global highp int) 0:105 'bufSamp3' ( uniform highp usamplerBuffer) 0:107 Sequence 0:107 move second child to first child ( temp highp int) 0:107 's4' ( temp highp int) 0:107 imageQuerySize ( global highp int) 0:107 'bufSamp4' ( writeonly uniform highp imageBuffer) 0:108 Sequence 0:108 move second child to first child ( temp highp int) 0:108 's5' ( temp highp int) 0:108 imageQuerySize ( global highp int) 0:108 'bufSamp5' ( writeonly uniform highp iimageBuffer) 0:109 Sequence 0:109 move second child to first child ( temp highp int) 0:109 's6' ( temp highp int) 0:109 imageQuerySize ( global highp int) 0:109 'bufSamp6' ( writeonly uniform highp uimageBuffer) 0:111 Sequence 0:111 move second child to first child ( temp highp 4-component vector of float) 0:111 'f1' ( temp highp 4-component vector of float) 0:111 textureFetch ( global highp 4-component vector of float) 0:111 'bufSamp1' ( uniform highp samplerBuffer) 0:111 's1' ( temp highp int) 0:112 Sequence 0:112 move second child to first child ( temp highp 4-component vector of int) 0:112 'f2' ( temp highp 4-component vector of int) 0:112 textureFetch ( global highp 4-component vector of int) 0:112 'bufSamp2' ( uniform highp isamplerBuffer) 0:112 's2' ( temp highp int) 0:113 Sequence 0:113 move second child to first child ( temp highp 4-component vector of uint) 0:113 'f3' ( temp highp 4-component vector of uint) 0:113 textureFetch ( global highp 4-component vector of uint) 0:113 'bufSamp3' ( uniform highp usamplerBuffer) 0:113 's3' ( temp highp int) 0:149 Function Definition: CAT( ( global void) 0:149 Function Parameters: 0:151 Sequence 0:151 Sequence 0:151 move second child to first child ( temp highp 3-component vector of int) 0:151 's4' ( temp highp 3-component vector of int) 0:151 textureSize ( global highp 3-component vector of int) 0:151 'CA4' ( uniform highp samplerCubeArray) 0:151 Constant: 0:151 1 (const int) 0:152 Sequence 0:152 move second child to first child ( temp highp 3-component vector of int) 0:152 's5' ( temp highp 3-component vector of int) 0:152 textureSize ( global highp 3-component vector of int) 0:152 'CA5' ( uniform highp samplerCubeArrayShadow) 0:152 Constant: 0:152 1 (const int) 0:153 Sequence 0:153 move second child to first child ( temp highp 3-component vector of int) 0:153 's6' ( temp highp 3-component vector of int) 0:153 textureSize ( global highp 3-component vector of int) 0:153 'CA6' ( uniform highp isamplerCubeArray) 0:153 Constant: 0:153 1 (const int) 0:154 Sequence 0:154 move second child to first child ( temp highp 3-component vector of int) 0:154 's7' ( temp highp 3-component vector of int) 0:154 textureSize ( global highp 3-component vector of int) 0:154 'CA7' ( uniform highp usamplerCubeArray) 0:154 Constant: 0:154 1 (const int) 0:156 Sequence 0:156 move second child to first child ( temp highp 4-component vector of float) 0:156 't4' ( temp highp 4-component vector of float) 0:156 texture ( global highp 4-component vector of float) 0:156 'CA4' ( uniform highp samplerCubeArray) 0:156 Constant: 0:156 0.500000 0:156 0.500000 0:156 0.500000 0:156 0.500000 0:157 Sequence 0:157 move second child to first child ( temp highp float) 0:157 't5' ( temp highp float) 0:157 texture ( global highp float) 0:157 'CA5' ( uniform highp samplerCubeArrayShadow) 0:157 Constant: 0:157 0.500000 0:157 0.500000 0:157 0.500000 0:157 0.500000 0:157 Constant: 0:157 3.000000 0:158 Sequence 0:158 move second child to first child ( temp highp 4-component vector of int) 0:158 't6' ( temp highp 4-component vector of int) 0:158 texture ( global highp 4-component vector of int) 0:158 'CA6' ( uniform highp isamplerCubeArray) 0:158 Constant: 0:158 0.500000 0:158 0.500000 0:158 0.500000 0:158 0.500000 0:159 Sequence 0:159 move second child to first child ( temp highp 4-component vector of uint) 0:159 't7' ( temp highp 4-component vector of uint) 0:159 texture ( global highp 4-component vector of uint) 0:159 'CA7' ( uniform highp usamplerCubeArray) 0:159 Constant: 0:159 0.500000 0:159 0.500000 0:159 0.500000 0:159 0.500000 0:161 Sequence 0:161 move second child to first child ( temp highp 4-component vector of float) 0:161 'L4' ( temp highp 4-component vector of float) 0:161 textureLod ( global highp 4-component vector of float) 0:161 'CA4' ( uniform highp samplerCubeArray) 0:161 Constant: 0:161 0.500000 0:161 0.500000 0:161 0.500000 0:161 0.500000 0:161 Constant: 0:161 0.240000 0:162 Sequence 0:162 move second child to first child ( temp highp 4-component vector of int) 0:162 'L6' ( temp highp 4-component vector of int) 0:162 textureLod ( global highp 4-component vector of int) 0:162 'CA6' ( uniform highp isamplerCubeArray) 0:162 Constant: 0:162 0.500000 0:162 0.500000 0:162 0.500000 0:162 0.500000 0:162 Constant: 0:162 0.260000 0:163 Sequence 0:163 move second child to first child ( temp highp 4-component vector of uint) 0:163 'L7' ( temp highp 4-component vector of uint) 0:163 textureLod ( global highp 4-component vector of uint) 0:163 'CA7' ( uniform highp usamplerCubeArray) 0:163 Constant: 0:163 0.500000 0:163 0.500000 0:163 0.500000 0:163 0.500000 0:163 Constant: 0:163 0.270000 0:165 Sequence 0:165 move second child to first child ( temp highp 4-component vector of float) 0:165 'g4' ( temp highp 4-component vector of float) 0:165 textureGrad ( global highp 4-component vector of float) 0:165 'CA4' ( uniform highp samplerCubeArray) 0:165 Constant: 0:165 0.500000 0:165 0.500000 0:165 0.500000 0:165 0.500000 0:165 Constant: 0:165 0.100000 0:165 0.100000 0:165 0.100000 0:165 Constant: 0:165 0.200000 0:165 0.200000 0:165 0.200000 0:166 Sequence 0:166 move second child to first child ( temp highp 4-component vector of int) 0:166 'g6' ( temp highp 4-component vector of int) 0:166 textureGrad ( global highp 4-component vector of int) 0:166 'CA6' ( uniform highp isamplerCubeArray) 0:166 Constant: 0:166 0.500000 0:166 0.500000 0:166 0.500000 0:166 0.500000 0:166 Constant: 0:166 0.100000 0:166 0.100000 0:166 0.100000 0:166 Constant: 0:166 0.200000 0:166 0.200000 0:166 0.200000 0:167 Sequence 0:167 move second child to first child ( temp highp 4-component vector of uint) 0:167 'g7' ( temp highp 4-component vector of uint) 0:167 textureGrad ( global highp 4-component vector of uint) 0:167 'CA7' ( uniform highp usamplerCubeArray) 0:167 Constant: 0:167 0.500000 0:167 0.500000 0:167 0.500000 0:167 0.500000 0:167 Constant: 0:167 0.100000 0:167 0.100000 0:167 0.100000 0:167 Constant: 0:167 0.200000 0:167 0.200000 0:167 0.200000 0:169 Sequence 0:169 move second child to first child ( temp highp 4-component vector of float) 0:169 'gath4' ( temp highp 4-component vector of float) 0:169 textureGather ( global highp 4-component vector of float) 0:169 'CA4' ( uniform highp samplerCubeArray) 0:169 Constant: 0:169 0.500000 0:169 0.500000 0:169 0.500000 0:169 0.500000 0:170 Sequence 0:170 move second child to first child ( temp highp 4-component vector of float) 0:170 'gathC4' ( temp highp 4-component vector of float) 0:170 textureGather ( global highp 4-component vector of float) 0:170 'CA4' ( uniform highp samplerCubeArray) 0:170 Constant: 0:170 0.500000 0:170 0.500000 0:170 0.500000 0:170 0.500000 0:170 Constant: 0:170 2 (const int) 0:171 Sequence 0:171 move second child to first child ( temp highp 4-component vector of int) 0:171 'gath6' ( temp highp 4-component vector of int) 0:171 textureGather ( global highp 4-component vector of int) 0:171 'CA6' ( uniform highp isamplerCubeArray) 0:171 Constant: 0:171 0.500000 0:171 0.500000 0:171 0.500000 0:171 0.500000 0:172 Sequence 0:172 move second child to first child ( temp highp 4-component vector of int) 0:172 'gathC6' ( temp highp 4-component vector of int) 0:172 textureGather ( global highp 4-component vector of int) 0:172 'CA6' ( uniform highp isamplerCubeArray) 0:172 Constant: 0:172 0.500000 0:172 0.500000 0:172 0.500000 0:172 0.500000 0:172 Constant: 0:172 1 (const int) 0:173 Sequence 0:173 move second child to first child ( temp highp 4-component vector of uint) 0:173 'gath7' ( temp highp 4-component vector of uint) 0:173 textureGather ( global highp 4-component vector of uint) 0:173 'CA7' ( uniform highp usamplerCubeArray) 0:173 Constant: 0:173 0.500000 0:173 0.500000 0:173 0.500000 0:173 0.500000 0:174 Sequence 0:174 move second child to first child ( temp highp 4-component vector of uint) 0:174 'gathC7' ( temp highp 4-component vector of uint) 0:174 textureGather ( global highp 4-component vector of uint) 0:174 'CA7' ( uniform highp usamplerCubeArray) 0:174 Constant: 0:174 0.500000 0:174 0.500000 0:174 0.500000 0:174 0.500000 0:174 Constant: 0:174 0 (const int) 0:176 Sequence 0:176 move second child to first child ( temp highp 4-component vector of float) 0:176 'gath5' ( temp highp 4-component vector of float) 0:176 textureGather ( global highp 4-component vector of float) 0:176 'CA5' ( uniform highp samplerCubeArrayShadow) 0:176 Constant: 0:176 0.500000 0:176 0.500000 0:176 0.500000 0:176 0.500000 0:176 Constant: 0:176 2.500000 0:178 Sequence 0:178 move second child to first child ( temp highp 3-component vector of int) 0:178 's1' ( temp highp 3-component vector of int) 0:178 imageQuerySize ( global highp 3-component vector of int) 0:178 'CA1' ( writeonly uniform highp imageCubeArray) 0:179 Sequence 0:179 move second child to first child ( temp highp 3-component vector of int) 0:179 's2' ( temp highp 3-component vector of int) 0:179 imageQuerySize ( global highp 3-component vector of int) 0:179 'CA2' ( writeonly uniform highp iimageCubeArray) 0:180 Sequence 0:180 move second child to first child ( temp highp 3-component vector of int) 0:180 's3' ( temp highp 3-component vector of int) 0:180 imageQuerySize ( global highp 3-component vector of int) 0:180 'CA3' ( writeonly uniform highp uimageCubeArray) 0:182 imageStore ( global highp void) 0:182 'CA1' ( writeonly uniform highp imageCubeArray) 0:182 's3' ( temp highp 3-component vector of int) 0:182 Constant: 0:182 1.000000 0:182 1.000000 0:182 1.000000 0:182 1.000000 0:183 imageStore ( global highp void) 0:183 'CA2' ( writeonly uniform highp iimageCubeArray) 0:183 's3' ( temp highp 3-component vector of int) 0:183 Constant: 0:183 1 (const int) 0:183 1 (const int) 0:183 1 (const int) 0:183 1 (const int) 0:184 imageStore ( global highp void) 0:184 'CA3' ( writeonly uniform highp uimageCubeArray) 0:184 's3' ( temp highp 3-component vector of int) 0:184 Constant: 0:184 1 (const uint) 0:184 1 (const uint) 0:184 1 (const uint) 0:184 1 (const uint) 0:186 Sequence 0:186 move second child to first child ( temp highp 4-component vector of float) 0:186 'cl1' ( temp highp 4-component vector of float) 0:186 imageLoad ( global highp 4-component vector of float) 0:186 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) 0:186 's3' ( temp highp 3-component vector of int) 0:187 Sequence 0:187 move second child to first child ( temp highp 4-component vector of int) 0:187 'cl2' ( temp highp 4-component vector of int) 0:187 imageLoad ( global highp 4-component vector of int) 0:187 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) 0:187 's3' ( temp highp 3-component vector of int) 0:188 Sequence 0:188 move second child to first child ( temp highp 4-component vector of uint) 0:188 'cl3' ( temp highp 4-component vector of uint) 0:188 imageLoad ( global highp 4-component vector of uint) 0:188 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) 0:188 's3' ( temp highp 3-component vector of int) 0:203 Function Definition: MSA( ( global void) 0:203 Function Parameters: 0:205 Sequence 0:205 Sequence 0:205 move second child to first child ( temp highp 4-component vector of float) 0:205 'tf' ( temp highp 4-component vector of float) 0:205 textureFetch ( global highp 4-component vector of float) 0:205 'samp2DMSA' ( uniform highp sampler2DMSArray) 0:205 Constant: 0:205 5 (const int) 0:205 5 (const int) 0:205 5 (const int) 0:205 Constant: 0:205 2 (const int) 0:206 Sequence 0:206 move second child to first child ( temp highp 4-component vector of int) 0:206 'tfi' ( temp highp 4-component vector of int) 0:206 textureFetch ( global highp 4-component vector of int) 0:206 'samp2DMSAi' ( uniform highp isampler2DMSArray) 0:206 Constant: 0:206 5 (const int) 0:206 5 (const int) 0:206 5 (const int) 0:206 Constant: 0:206 2 (const int) 0:207 Sequence 0:207 move second child to first child ( temp highp 4-component vector of uint) 0:207 'tfu' ( temp highp 4-component vector of uint) 0:207 textureFetch ( global highp 4-component vector of uint) 0:207 'samp2DMSAu' ( uniform highp usampler2DMSArray) 0:207 Constant: 0:207 5 (const int) 0:207 5 (const int) 0:207 5 (const int) 0:207 Constant: 0:207 2 (const int) 0:209 Sequence 0:209 move second child to first child ( temp highp 3-component vector of int) 0:209 'tfs' ( temp highp 3-component vector of int) 0:209 textureSize ( global highp 3-component vector of int) 0:209 'samp2DMSA' ( uniform highp sampler2DMSArray) 0:210 Sequence 0:210 move second child to first child ( temp highp 3-component vector of int) 0:210 'tfsi' ( temp highp 3-component vector of int) 0:210 textureSize ( global highp 3-component vector of int) 0:210 'samp2DMSAi' ( uniform highp isampler2DMSArray) 0:212 Sequence 0:212 move second child to first child ( temp highp 3-component vector of int) 0:212 'tfsu' ( temp highp 3-component vector of int) 0:212 textureSize ( global highp 3-component vector of int) 0:212 'samp2DMSAu' ( uniform highp usampler2DMSArray) 0:220 Function Definition: goodImageAtom( ( global void) 0:220 Function Parameters: 0:? Sequence 0:226 imageAtomicAdd ( global highp int) 0:226 'im2Di' (layout( r32i) uniform highp iimage2D) 0:226 'P' ( uniform highp 2-component vector of int) 0:226 'dati' ( temp highp int) 0:227 imageAtomicAdd ( global highp uint) 0:227 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:227 'P' ( uniform highp 2-component vector of int) 0:227 'datu' ( temp highp uint) 0:228 imageAtomicMin ( global highp int) 0:228 'im2Di' (layout( r32i) uniform highp iimage2D) 0:228 'P' ( uniform highp 2-component vector of int) 0:228 'dati' ( temp highp int) 0:229 imageAtomicMin ( global highp uint) 0:229 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:229 'P' ( uniform highp 2-component vector of int) 0:229 'datu' ( temp highp uint) 0:230 imageAtomicMax ( global highp int) 0:230 'im2Di' (layout( r32i) uniform highp iimage2D) 0:230 'P' ( uniform highp 2-component vector of int) 0:230 'dati' ( temp highp int) 0:231 imageAtomicMax ( global highp uint) 0:231 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:231 'P' ( uniform highp 2-component vector of int) 0:231 'datu' ( temp highp uint) 0:232 imageAtomicAnd ( global highp int) 0:232 'im2Di' (layout( r32i) uniform highp iimage2D) 0:232 'P' ( uniform highp 2-component vector of int) 0:232 'dati' ( temp highp int) 0:233 imageAtomicAnd ( global highp uint) 0:233 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:233 'P' ( uniform highp 2-component vector of int) 0:233 'datu' ( temp highp uint) 0:234 imageAtomicOr ( global highp int) 0:234 'im2Di' (layout( r32i) uniform highp iimage2D) 0:234 'P' ( uniform highp 2-component vector of int) 0:234 'dati' ( temp highp int) 0:235 imageAtomicOr ( global highp uint) 0:235 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:235 'P' ( uniform highp 2-component vector of int) 0:235 'datu' ( temp highp uint) 0:236 imageAtomicXor ( global highp int) 0:236 'im2Di' (layout( r32i) uniform highp iimage2D) 0:236 'P' ( uniform highp 2-component vector of int) 0:236 'dati' ( temp highp int) 0:237 imageAtomicXor ( global highp uint) 0:237 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:237 'P' ( uniform highp 2-component vector of int) 0:237 'datu' ( temp highp uint) 0:238 imageAtomicExchange ( global highp int) 0:238 'im2Di' (layout( r32i) uniform highp iimage2D) 0:238 'P' ( uniform highp 2-component vector of int) 0:238 'dati' ( temp highp int) 0:239 imageAtomicExchange ( global highp uint) 0:239 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:239 'P' ( uniform highp 2-component vector of int) 0:239 'datu' ( temp highp uint) 0:240 imageAtomicExchange ( global highp float) 0:240 'im2Df' (layout( r32f) uniform highp image2D) 0:240 'P' ( uniform highp 2-component vector of int) 0:240 'datf' ( temp highp float) 0:241 imageAtomicCompSwap ( global highp int) 0:241 'im2Di' (layout( r32i) uniform highp iimage2D) 0:241 'P' ( uniform highp 2-component vector of int) 0:241 Constant: 0:241 3 (const int) 0:241 'dati' ( temp highp int) 0:242 imageAtomicCompSwap ( global highp uint) 0:242 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:242 'P' ( uniform highp 2-component vector of int) 0:242 Constant: 0:242 5 (const uint) 0:242 'datu' ( temp highp uint) 0:250 Function Definition: badInterp( ( global void) 0:250 Function Parameters: 0:252 Sequence 0:252 Constant: 0:252 0.000000 0:253 Constant: 0:253 0.000000 0:254 Constant: 0:254 0.000000 0:? Linker Objects 0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s}) 0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon}) 0:? 'aliased' (layout( location=12) smooth out highp int) 0:? 'inbinst' ( in block{ in highp int a}) 0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) 0:? 'smon' ( smooth out block{ out highp int i}) 0:? 'fmon' ( flat out block{ out highp int i}) 0:? 'cmon' ( centroid out block{ out highp int i}) 0:? 'imon' ( invariant out block{ out highp int i}) 0:? 'inf' ( in highp 2-component vector of float) 0:? 'ing' ( in highp 2-component vector of float) 0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int) 0:? 'sArray' ( uniform 4-element array of lowp sampler2D) 0:? 'sIndex' ( uniform highp int) 0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) 0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) 0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) 0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 'noPreSamp1' ( uniform mediump samplerBuffer) 0:? 'noPreSamp2' ( uniform mediump isamplerBuffer) 0:? 'noPreSamp3' ( uniform mediump usamplerBuffer) 0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer) 0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer) 0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer) 0:? 'bufSamp1' ( uniform highp samplerBuffer) 0:? 'bufSamp2' ( uniform highp isamplerBuffer) 0:? 'bufSamp3' ( uniform highp usamplerBuffer) 0:? 'bufSamp4' ( writeonly uniform highp imageBuffer) 0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer) 0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer) 0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray) 0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray) 0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray) 0:? 'noPreCA4' ( uniform mediump samplerCubeArray) 0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow) 0:? 'noPreCA6' ( uniform mediump isamplerCubeArray) 0:? 'noPreCA7' ( uniform mediump usamplerCubeArray) 0:? 'CA1' ( writeonly uniform highp imageCubeArray) 0:? 'CA2' ( writeonly uniform highp iimageCubeArray) 0:? 'CA3' ( writeonly uniform highp uimageCubeArray) 0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) 0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) 0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) 0:? 'CA4' ( uniform highp samplerCubeArray) 0:? 'CA5' ( uniform highp samplerCubeArrayShadow) 0:? 'CA6' ( uniform highp isamplerCubeArray) 0:? 'CA7' ( uniform highp usamplerCubeArray) 0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray) 0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray) 0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray) 0:? 'samp2DMSA' ( uniform highp sampler2DMSArray) 0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray) 0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray) 0:? 'im2Df' (layout( r32f) uniform highp image2D) 0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:? 'im2Di' (layout( r32i) uniform highp iimage2D) 0:? 'P' ( uniform highp 2-component vector of int) 0:? 'colorSample' ( smooth sample out highp 4-component vector of float) 0:? 'colorfsi' ( flat sample out highp 4-component vector of float) 0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float) 0:? 'inv4' ( in highp 4-component vector of float) 0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) Linked vertex stage: Shader version: 320 ERROR: node is still EOpNull! 0:23 Function Definition: main( ( global void) 0:23 Function Parameters: 0:25 Sequence 0:25 Sequence 0:25 move second child to first child ( temp highp int) 0:25 'sum' ( temp highp int) 0:25 add ( temp highp int) 0:25 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:26 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) 0:27 move second child to first child ( temp highp 4-component vector of float) 0:27 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position) 0:27 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) 0:27 Constant: 0:27 0 (const uint) 0:27 Constant: 0:27 1.000000 0:27 1.000000 0:27 1.000000 0:27 1.000000 0:28 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize) 0:28 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) 0:28 Constant: 0:28 1 (const uint) 0:? Linker Objects 0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s}) 0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon}) 0:? 'aliased' (layout( location=12) smooth out highp int) 0:? 'inbinst' ( in block{ in highp int a}) 0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position}) 0:? 'smon' ( smooth out block{ out highp int i}) 0:? 'fmon' ( flat out block{ out highp int i}) 0:? 'cmon' ( centroid out block{ out highp int i}) 0:? 'imon' ( invariant out block{ out highp int i}) 0:? 'inf' ( in highp 2-component vector of float) 0:? 'ing' ( in highp 2-component vector of float) 0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int) 0:? 'sArray' ( uniform 4-element array of lowp sampler2D) 0:? 'sIndex' ( uniform highp int) 0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint) 0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i}) 0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i}) 0:? 'iArray' ( writeonly uniform 5-element array of highp image2D) 0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 'noPreSamp1' ( uniform mediump samplerBuffer) 0:? 'noPreSamp2' ( uniform mediump isamplerBuffer) 0:? 'noPreSamp3' ( uniform mediump usamplerBuffer) 0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer) 0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer) 0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer) 0:? 'bufSamp1' ( uniform highp samplerBuffer) 0:? 'bufSamp2' ( uniform highp isamplerBuffer) 0:? 'bufSamp3' ( uniform highp usamplerBuffer) 0:? 'bufSamp4' ( writeonly uniform highp imageBuffer) 0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer) 0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer) 0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray) 0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray) 0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray) 0:? 'noPreCA4' ( uniform mediump samplerCubeArray) 0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow) 0:? 'noPreCA6' ( uniform mediump isamplerCubeArray) 0:? 'noPreCA7' ( uniform mediump usamplerCubeArray) 0:? 'CA1' ( writeonly uniform highp imageCubeArray) 0:? 'CA2' ( writeonly uniform highp iimageCubeArray) 0:? 'CA3' ( writeonly uniform highp uimageCubeArray) 0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray) 0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray) 0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray) 0:? 'CA4' ( uniform highp samplerCubeArray) 0:? 'CA5' ( uniform highp samplerCubeArrayShadow) 0:? 'CA6' ( uniform highp isamplerCubeArray) 0:? 'CA7' ( uniform highp usamplerCubeArray) 0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray) 0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray) 0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray) 0:? 'samp2DMSA' ( uniform highp sampler2DMSArray) 0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray) 0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray) 0:? 'im2Df' (layout( r32f) uniform highp image2D) 0:? 'im2Du' (layout( r32ui) uniform highp uimage2D) 0:? 'im2Di' (layout( r32i) uniform highp iimage2D) 0:? 'P' ( uniform highp 2-component vector of int) 0:? 'colorSample' ( smooth sample out highp 4-component vector of float) 0:? 'colorfsi' ( flat sample out highp 4-component vector of float) 0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float) 0:? 'inv4' ( in highp 4-component vector of float) 0:? 'gl_VertexID' ( gl_VertexId highp int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId) glslang-8.13.3559/Test/baseResults/330.frag.out000066400000000000000000000337111360464450000206760ustar00rootroot00000000000000330.frag ERROR: 0:27: 'block declaration' : cannot redeclare block: gl_block ERROR: 0:31: 'gl_name' : identifiers starting with "gl_" are reserved ERROR: 0:32: 'gl_i' : identifiers starting with "gl_" are reserved ERROR: 0:35: 'gl_in' : no declaration found for redeclaration ERROR: 0:39: 'gl_FragCoord' : cannot redeclare a non block as a block ERROR: 0:44: 'non-literal layout-id value' : not supported for this version or the enabled extensions ERROR: 0:44: 'layout-id value' : cannot be negative ERROR: 0:45: 'non-literal layout-id value' : not supported for this version or the enabled extensions ERROR: 0:46: 'layout-id value' : scalar integer expression required ERROR: 0:46: 'location' : location is too large ERROR: 0:47: 'non-literal layout-id value' : not supported for this version or the enabled extensions ERROR: 0:48: 'non-literal layout-id value' : not supported for this version or the enabled extensions ERROR: 0:52: 'f2' : cannot use layout qualifiers on structure members ERROR: 0:57: 'location on block member' : not supported for this version or the enabled extensions ERROR: 0:62: 'location on block member' : can only use in an in/out block ERROR: 0:62: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions ERROR: 0:60: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions ERROR: 0:60: 'location' : cannot apply to uniform or buffer block ERROR: 0:68: 'layout-id value' : cannot be negative ERROR: 0:69: 'layout-id value' : cannot be negative ERROR: 0:76: 'f2' : cannot use layout qualifiers on structure members ERROR: 0:91: 'location on block member' : can only use in an in/out block ERROR: 0:91: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions ERROR: 0:91: 'location' : overlapping use of location 3 ERROR: 0:89: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions ERROR: 0:89: 'location' : cannot apply to uniform or buffer block ERROR: 0:94: 'location' : either the block needs a location, or all members need a location, or no members have a location ERROR: 0:108: 'A' : cannot use layout qualifiers on structure members ERROR: 0:119: 'location' : overlapping use of location 44 ERROR: 0:122: 'index' : can only be used with an explicit location ERROR: 0:124: 'location' : overlapping use of location 0 ERROR: 0:125: 'index' : can only be used on an output ERROR: 0:126: 'index' : can only be used on an output ERROR: 0:126: 'location/component/index' : cannot declare a default, use a full declaration ERROR: 0:127: 'location/component/index' : cannot declare a default, use a full declaration ERROR: 0:128: 'output block' : not supported in this stage: fragment ERROR: 0:140: 'textureQueryLod' : no matching overloaded function found ERROR: 0:140: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found ERROR: 0:141: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' ERROR: 0:152: 'index' : value must be 0 or 1 ERROR: 0:154: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions ERROR: 0:160: 'location' : cannot apply to uniform or buffer block ERROR: 43 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: qlod( ( global void) 0:133 Function Parameters: 0:? Sequence 0:140 'lod' ( temp 2-component vector of float) 0:141 'lod' ( temp 2-component vector of float) 0:147 Function Definition: fooKeyMem( ( global void) 0:147 Function Parameters: 0:149 Sequence 0:149 precise: direct index for structure ( global int) 0:149 'KeyMem' ( global structure{ global int precise}) 0:149 Constant: 0:149 0 (const int) 0:? Linker Objects 0:? 'inVar' ( smooth in 4-component vector of float) 0:? 'outVar' (layout( location=0 index=0) out 4-component vector of float) 0:? 'varyingVar' ( smooth in 4-component vector of float) 0:? 'anon@0' ( in block{ in 4-component vector of float Color gl_Color}) 0:? 'gl_name' ( in block{ in int gl_i}) 0:? 'start' ( const int) 0:? 6 (const int) 0:? 'v1' ( smooth in 4-component vector of float) 0:? 'v2' (layout( location=8) smooth in 4-component vector of float) 0:? 'v20' ( smooth in 4-component vector of float) 0:? 'v21' (layout( location=60) smooth in float) 0:? 'v22' (layout( location=2) smooth in float) 0:? 'anon@1' ( in block{layout( location=1) in float f1, layout( location=3) in float f2}) 0:? 'uinst' (layout( location=1 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2}) 0:? 'v3' (layout( location=6) smooth in 4-component vector of float) 0:? 'v4' ( smooth in 4-component vector of float) 0:? 'v5' ( smooth in 4-component vector of float) 0:? 'v6' (layout( location=30) smooth in 4-component vector of float) 0:? 'v23' (layout( location=61) smooth in float) 0:? 'v24' (layout( location=62) smooth in float) 0:? 'ininst2' ( in block{layout( location=28) in bool b1, layout( location=29) in float f1, layout( location=25) in float f2, layout( location=26) in 4-component vector of float f3, layout( location=21) in structure{ global float f1, temp float f2} s2, layout( location=23) in 4-component vector of float f4, layout( location=24) in 4-component vector of float f5}) 0:? 'uinst2' (layout( location=13 column_major shared) uniform block{layout( column_major shared) uniform float f1, layout( location=3 column_major shared) uniform float f2}) 0:? 'in3' ( in block{ in float f1, layout( location=40) in float f2}) 0:? 'in4' ( in block{layout( location=50) in float f1, layout( location=51) in float f2}) 0:? 's' (layout( location=33) smooth in structure{ global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A}) 0:? 'anon@2' ( in block{layout( location=44) in 4-component vector of float d, layout( location=45) in 4-component vector of float e, layout( location=47) in 4-component vector of float f, layout( location=48) in 4-component vector of float g, layout( location=41) in 4-component vector of float h, layout( location=42) in 4-component vector of float i, layout( location=43) in 4-component vector of float j, layout( location=44) in 4-component vector of float k}) 0:? 'outVar2' (layout( location=4095 index=0) out 4-component vector of float) 0:? 'outVar3' (layout( location=0 index=1) out 4-component vector of float) 0:? 'outVar4' (layout( location=0 index=1) out 4-component vector of float) 0:? 'indexIn' (layout( location=27 index=0) smooth in 4-component vector of float) 0:? 'indexBlockI' (layout( location=26 index=0) out block{ out int a}) 0:? 'samp1D' ( uniform sampler1D) 0:? 'samp2Ds' ( uniform sampler2DShadow) 0:? 'precise' ( global int) 0:? 'KeyMem' ( global structure{ global int precise}) 0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float) 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:? 'samp1D' ( uniform sampler1D) 0:? 'samp2Ds' ( uniform sampler2DShadow) 0:? 'precise' ( global int) 0:? 'KeyMem' ( global structure{ global int precise}) 0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float) 0:? '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}) glslang-8.13.3559/Test/baseResults/330comp.frag.out000066400000000000000000000042231360464450000215510ustar00rootroot00000000000000330comp.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) glslang-8.13.3559/Test/baseResults/400.frag.out000066400000000000000000001046331360464450000206760ustar00rootroot00000000000000400.frag ERROR: 0:18: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument ERROR: 0:22: 'textureGatherOffset(...)' : must be a compile-time constant: component argument ERROR: 0:23: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument ERROR: 0:30: 'location qualifier on input' : not supported for this version or the enabled extensions ERROR: 0:38: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions ERROR: 0:40: 'redeclaration' : cannot apply layout qualifier to gl_Color ERROR: 0:41: 'redeclaration' : cannot change qualification of gl_ClipDistance ERROR: 0:43: 'gl_FragCoord' : cannot redeclare after use ERROR: 0:51: 'texel offset' : argument must be compile-time constant ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:57: 'patch' : not supported in this stage: fragment ERROR: 0:58: 'patch' : not supported in this stage: fragment ERROR: 0:58: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output ERROR: 0:73: 'dFdxFine' : required extension not requested: GL_ARB_derivative_control ERROR: 0:74: 'dFdyCoarse' : required extension not requested: GL_ARB_derivative_control ERROR: 0:75: 'fwidthCoarse' : required extension not requested: GL_ARB_derivative_control ERROR: 0:75: 'fwidthFine' : required extension not requested: GL_ARB_derivative_control ERROR: 0:104: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output ERROR: 0:123: 'interpolateAtCentroid' : no matching overloaded function found ERROR: 0:125: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element ERROR: 0:127: 'interpolateAtSample' : no matching overloaded function found ERROR: 0:132: 'interpolateAtOffset' : no matching overloaded function found ERROR: 0:134: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element ERROR: 0:135: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element ERROR: 0:136: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element ERROR: 0:139: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element ERROR: 0:140: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element ERROR: 0:183: 'textureQueryLod' : no matching overloaded function found ERROR: 0:183: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found ERROR: 0:184: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float' ERROR: 0:197: 'subroutine' : feature not yet implemented ERROR: 0:197: '' : default qualifier requires 'uniform', 'buffer', 'in', or 'out' storage qualification ERROR: 0:198: 'subroutine' : feature not yet implemented ERROR: 0:199: 'subroutine' : feature not yet implemented ERROR: 0:201: '' : syntax error, unexpected PRECISE, expecting IDENTIFIER ERROR: 39 compilation errors. No code generated. Shader version: 400 Requested GL_ARB_derivative_control Requested GL_ARB_separate_shader_objects gl_FragCoord pixel center is integer gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:10 Function Definition: main( ( global void) 0:10 Function Parameters: 0:? Sequence 0:13 move second child to first child ( temp 4-component vector of float) 0:13 'v' ( temp 4-component vector of float) 0:13 texture ( global 4-component vector of float) 0:13 indirect index ( temp sampler2D) 0:13 'arrayedSampler' ( uniform 5-element array of sampler2D) 0:13 'i' ( flat in int) 0:13 'c2D' ( smooth in 2-component vector of float) 0:14 move second child to first child ( temp float) 0:14 direct index ( temp float) 0:14 'outp' ( out 4-component vector of float) 0:14 Constant: 0:14 0 (const int) 0:14 direct index ( smooth temp float ClipDistance) 0:14 'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance) 0:14 Constant: 0:14 1 (const int) 0:18 Sequence 0:18 move second child to first child ( temp 4-component vector of uint) 0:18 'uv4' ( temp 4-component vector of uint) 0:18 textureGatherOffsets ( global 4-component vector of uint) 0:18 'samp2dr' ( uniform usampler2DRect) 0:18 'c2D' ( smooth in 2-component vector of float) 0:18 'offsets' ( temp 4-element array of 2-component vector of int) 0:18 Constant: 0:18 2 (const int) 0:19 move second child to first child ( temp 4-component vector of uint) 0:19 'uv4' ( temp 4-component vector of uint) 0:19 textureGatherOffsets ( global 4-component vector of uint) 0:19 'samp2dr' ( uniform usampler2DRect) 0:19 'c2D' ( smooth in 2-component vector of float) 0:19 Constant: 0:19 1 (const int) 0:19 2 (const int) 0:19 3 (const int) 0:19 4 (const int) 0:19 15 (const int) 0:19 16 (const int) 0:19 -2 (const int) 0:19 0 (const int) 0:19 Constant: 0:19 2 (const int) 0:20 Sequence 0:20 move second child to first child ( temp 4-component vector of float) 0:20 'v4' ( temp 4-component vector of float) 0:20 textureGather ( global 4-component vector of float) 0:20 direct index ( temp sampler2D) 0:20 'arrayedSampler' ( uniform 5-element array of sampler2D) 0:20 Constant: 0:20 0 (const int) 0:20 'c2D' ( smooth in 2-component vector of float) 0:21 Sequence 0:21 move second child to first child ( temp 4-component vector of int) 0:21 'iv4' ( temp 4-component vector of int) 0:21 textureGatherOffset ( global 4-component vector of int) 0:21 'isamp2DA' ( uniform isampler2DArray) 0:21 Constant: 0:21 0.100000 0:21 0.100000 0:21 0.100000 0:21 Constant: 0:21 1 (const int) 0:21 1 (const int) 0:21 Constant: 0:21 3 (const int) 0:22 move second child to first child ( temp 4-component vector of int) 0:22 'iv4' ( temp 4-component vector of int) 0:22 textureGatherOffset ( global 4-component vector of int) 0:22 'isamp2DA' ( uniform isampler2DArray) 0:22 Constant: 0:22 0.100000 0:22 0.100000 0:22 0.100000 0:22 Constant: 0:22 1 (const int) 0:22 1 (const int) 0:22 'i' ( flat in int) 0:23 move second child to first child ( temp 4-component vector of int) 0:23 'iv4' ( temp 4-component vector of int) 0:23 textureGatherOffset ( global 4-component vector of int) 0:23 'isamp2DA' ( uniform isampler2DArray) 0:23 Constant: 0:23 0.100000 0:23 0.100000 0:23 0.100000 0:23 Constant: 0:23 1 (const int) 0:23 1 (const int) 0:23 Constant: 0:23 4 (const int) 0:24 move second child to first child ( temp 4-component vector of int) 0:24 'iv4' ( temp 4-component vector of int) 0:24 textureGatherOffset ( global 4-component vector of int) 0:24 'isamp2DA' ( uniform isampler2DArray) 0:24 Constant: 0:24 0.100000 0:24 0.100000 0:24 0.100000 0:24 Constant: 0:24 1 (const int) 0:24 1 (const int) 0:24 Constant: 0:24 3 (const int) 0:25 move second child to first child ( temp 4-component vector of int) 0:25 'iv4' ( temp 4-component vector of int) 0:25 textureGatherOffset ( global 4-component vector of int) 0:25 'isamp2DA' ( uniform isampler2DArray) 0:25 Constant: 0:25 0.100000 0:25 0.100000 0:25 0.100000 0:25 Construct ivec2 ( temp 2-component vector of int) 0:25 'i' ( flat in int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'c' ( temp 4-component vector of float) 0:27 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) 0:47 Function Definition: foo23( ( global void) 0:47 Function Parameters: 0:? Sequence 0:51 textureProjGradOffset ( global float) 0:51 'u2drs' ( uniform sampler2DRectShadow) 0:51 'outp' ( out 4-component vector of float) 0:51 Constant: 0:51 0.000000 0:51 0.000000 0:51 Constant: 0:51 0.000000 0:51 0.000000 0:51 Convert float to int ( temp 2-component vector of int) 0:51 'c2D' ( smooth in 2-component vector of float) 0:52 textureProjGradOffset ( global float) 0:52 'u2drs' ( uniform sampler2DRectShadow) 0:52 'outp' ( out 4-component vector of float) 0:52 Constant: 0:52 0.000000 0:52 0.000000 0:52 Constant: 0:52 0.000000 0:52 0.000000 0:52 Constant: 0:52 3 (const int) 0:52 4 (const int) 0:53 textureProjGradOffset ( global float) 0:53 'u2drs' ( uniform sampler2DRectShadow) 0:53 'outp' ( out 4-component vector of float) 0:53 Constant: 0:53 0.000000 0:53 0.000000 0:53 Constant: 0:53 0.000000 0:53 0.000000 0:53 Constant: 0:53 15 (const int) 0:53 16 (const int) 0:54 textureProjGradOffset ( global float) 0:54 'u2drs' ( uniform sampler2DRectShadow) 0:54 'outp' ( out 4-component vector of float) 0:54 Constant: 0:54 0.000000 0:54 0.000000 0:54 Constant: 0:54 0.000000 0:54 0.000000 0:54 Constant: 0:54 -10 (const int) 0:54 20 (const int) 0:60 Function Definition: foo24( ( global void) 0:60 Function Parameters: 0:? Sequence 0:63 move second child to first child ( temp 3-component vector of double) 0:63 'df' ( temp 3-component vector of double) 0:63 modf ( global 3-component vector of double) 0:63 Convert float to double ( temp 3-component vector of double) 0:63 vector swizzle ( temp 3-component vector of float) 0:63 'outp' ( out 4-component vector of float) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 2 (const int) 0:63 'di' ( temp 3-component vector of double) 0:71 Function Definition: foodc1( ( global void) 0:71 Function Parameters: 0:73 Sequence 0:73 Sequence 0:73 move second child to first child ( temp 2-component vector of float) 0:73 'v2' ( temp 2-component vector of float) 0:73 dPdxFine ( global 2-component vector of float) 0:73 'in2' ( smooth in 2-component vector of float) 0:74 Sequence 0:74 move second child to first child ( temp 3-component vector of float) 0:74 'v3' ( temp 3-component vector of float) 0:74 dPdyCoarse ( global 3-component vector of float) 0:74 'in3' ( smooth in 3-component vector of float) 0:75 Sequence 0:75 move second child to first child ( temp 4-component vector of float) 0:75 'v4' ( temp 4-component vector of float) 0:75 add ( temp 4-component vector of float) 0:75 fwidthCoarse ( global 4-component vector of float) 0:75 'in4' ( smooth in 4-component vector of float) 0:75 fwidthFine ( global 4-component vector of float) 0:75 'in4' ( smooth in 4-component vector of float) 0:80 Function Definition: foodc2( ( global void) 0:80 Function Parameters: 0:82 Sequence 0:82 Sequence 0:82 move second child to first child ( temp 2-component vector of float) 0:82 'v2' ( temp 2-component vector of float) 0:82 dPdxFine ( global 2-component vector of float) 0:82 'in2' ( smooth in 2-component vector of float) 0:83 Sequence 0:83 move second child to first child ( temp 3-component vector of float) 0:83 'v3' ( temp 3-component vector of float) 0:83 dPdyCoarse ( global 3-component vector of float) 0:83 'in3' ( smooth in 3-component vector of float) 0:84 Sequence 0:84 move second child to first child ( temp 4-component vector of float) 0:84 'v4' ( temp 4-component vector of float) 0:84 add ( temp 4-component vector of float) 0:84 fwidthCoarse ( global 4-component vector of float) 0:84 'in4' ( smooth in 4-component vector of float) 0:84 fwidthFine ( global 4-component vector of float) 0:84 'in4' ( smooth in 4-component vector of float) 0:89 move second child to first child ( temp 2-component vector of float) 0:89 'v2' ( temp 2-component vector of float) 0:89 frexp ( global 2-component vector of float) 0:89 'v2' ( temp 2-component vector of float) 0:89 'i2' ( temp 2-component vector of int) 0:90 move second child to first child ( temp 3-component vector of float) 0:90 'v3' ( temp 3-component vector of float) 0:90 ldexp ( global 3-component vector of float) 0:90 'v3' ( temp 3-component vector of float) 0:90 'i3' ( temp 3-component vector of int) 0:92 move second child to first child ( temp uint) 0:92 'u1' ( temp uint) 0:92 PackUnorm4x8 ( global uint) 0:92 'v4' ( temp 4-component vector of float) 0:93 move second child to first child ( temp uint) 0:93 'u1' ( temp uint) 0:93 PackSnorm4x8 ( global uint) 0:93 'v4' ( temp 4-component vector of float) 0:94 move second child to first child ( temp 4-component vector of float) 0:94 'v4' ( temp 4-component vector of float) 0:94 UnpackUnorm4x8 ( global 4-component vector of float) 0:94 'u1' ( temp uint) 0:95 move second child to first child ( temp 4-component vector of float) 0:95 'v4' ( temp 4-component vector of float) 0:95 UnpackSnorm4x8 ( global 4-component vector of float) 0:95 'u1' ( temp uint) 0:99 move second child to first child ( temp double) 0:99 'd' ( temp double) 0:99 PackDouble2x32 ( global double) 0:99 'u2' ( temp 2-component vector of uint) 0:100 move second child to first child ( temp 2-component vector of uint) 0:100 'u2' ( temp 2-component vector of uint) 0:100 UnpackDouble2x32 ( global 2-component vector of uint) 0:100 'd' ( temp double) 0:117 Function Definition: interp( ( global void) 0:117 Function Parameters: 0:119 Sequence 0:119 interpolateAtCentroid ( global 2-component vector of float) 0:119 'colorfc' ( centroid flat in 2-component vector of float) 0:120 interpolateAtCentroid ( global 4-component vector of float) 0:120 'colorSampIn' ( smooth sample in 4-component vector of float) 0:121 interpolateAtCentroid ( global 4-component vector of float) 0:121 'colorfsi' ( noperspective in 4-component vector of float) 0:122 interpolateAtCentroid ( global float) 0:122 'scalarIn' ( smooth in float) 0:123 Constant: 0:123 0.000000 0:124 interpolateAtCentroid ( global 3-component vector of float) 0:124 direct index ( smooth sample temp 3-component vector of float) 0:124 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) 0:124 Constant: 0:124 2 (const int) 0:125 interpolateAtCentroid ( global 2-component vector of float) 0:125 vector swizzle ( temp 2-component vector of float) 0:125 direct index ( smooth sample temp 3-component vector of float) 0:125 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) 0:125 Constant: 0:125 2 (const int) 0:125 Sequence 0:125 Constant: 0:125 0 (const int) 0:125 Constant: 0:125 1 (const int) 0:127 Constant: 0:127 0.000000 0:128 interpolateAtSample ( global 3-component vector of float) 0:128 indirect index ( smooth sample temp 3-component vector of float) 0:128 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) 0:128 'i' ( flat in int) 0:128 Constant: 0:128 0 (const int) 0:129 interpolateAtSample ( global float) 0:129 x: direct index for structure ( global float) 0:129 's1' ( smooth in structure{ global float x}) 0:129 Constant: 0:129 0 (const int) 0:129 Constant: 0:129 2 (const int) 0:130 interpolateAtSample ( global float) 0:130 'scalarIn' ( smooth in float) 0:130 Constant: 0:130 1 (const int) 0:132 Constant: 0:132 0.000000 0:133 interpolateAtOffset ( global 3-component vector of float) 0:133 direct index ( smooth sample temp 3-component vector of float) 0:133 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) 0:133 Constant: 0:133 2 (const int) 0:133 Constant: 0:133 0.200000 0:133 0.200000 0:134 interpolateAtOffset ( global 2-component vector of float) 0:134 vector swizzle ( temp 2-component vector of float) 0:134 direct index ( smooth sample temp 3-component vector of float) 0:134 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) 0:134 Constant: 0:134 2 (const int) 0:134 Sequence 0:134 Constant: 0:134 0 (const int) 0:134 Constant: 0:134 1 (const int) 0:134 Constant: 0:134 0.200000 0:134 0.200000 0:135 interpolateAtOffset ( global float) 0:135 add ( temp float) 0:135 'scalarIn' ( smooth in float) 0:135 'scalarIn' ( smooth in float) 0:135 Constant: 0:135 0.200000 0:135 0.200000 0:136 interpolateAtOffset ( global float) 0:136 x: direct index for structure ( global float) 0:136 's2' ( sample temp structure{ global float x}) 0:136 Constant: 0:136 0 (const int) 0:136 Constant: 0:136 0.200000 0:136 0.200000 0:139 interpolateAtCentroid ( global float) 0:139 'f' ( temp float) 0:140 interpolateAtSample ( global 4-component vector of float) 0:140 'outp' ( out 4-component vector of float) 0:140 Constant: 0:140 0 (const int) 0:161 Function Definition: qlod( ( global void) 0:161 Function Parameters: 0:? Sequence 0:168 move second child to first child ( temp 2-component vector of float) 0:168 'lod' ( temp 2-component vector of float) 0:168 textureQueryLod ( global 2-component vector of float) 0:168 'samp1D' ( uniform sampler1D) 0:168 'pf' ( temp float) 0:169 move second child to first child ( temp 2-component vector of float) 0:169 'lod' ( temp 2-component vector of float) 0:169 textureQueryLod ( global 2-component vector of float) 0:169 'isamp2D' ( uniform isampler2D) 0:169 'pf2' ( temp 2-component vector of float) 0:170 move second child to first child ( temp 2-component vector of float) 0:170 'lod' ( temp 2-component vector of float) 0:170 textureQueryLod ( global 2-component vector of float) 0:170 'usamp3D' ( uniform usampler3D) 0:170 'pf3' ( temp 3-component vector of float) 0:171 move second child to first child ( temp 2-component vector of float) 0:171 'lod' ( temp 2-component vector of float) 0:171 textureQueryLod ( global 2-component vector of float) 0:171 'sampCube' ( uniform samplerCube) 0:171 'pf3' ( temp 3-component vector of float) 0:172 move second child to first child ( temp 2-component vector of float) 0:172 'lod' ( temp 2-component vector of float) 0:172 textureQueryLod ( global 2-component vector of float) 0:172 'isamp1DA' ( uniform isampler1DArray) 0:172 'pf' ( temp float) 0:173 move second child to first child ( temp 2-component vector of float) 0:173 'lod' ( temp 2-component vector of float) 0:173 textureQueryLod ( global 2-component vector of float) 0:173 'usamp2DA' ( uniform usampler2DArray) 0:173 'pf2' ( temp 2-component vector of float) 0:174 move second child to first child ( temp 2-component vector of float) 0:174 'lod' ( temp 2-component vector of float) 0:174 textureQueryLod ( global 2-component vector of float) 0:174 'isampCubeA' ( uniform isamplerCubeArray) 0:174 'pf3' ( temp 3-component vector of float) 0:176 move second child to first child ( temp 2-component vector of float) 0:176 'lod' ( temp 2-component vector of float) 0:176 textureQueryLod ( global 2-component vector of float) 0:176 'samp1Ds' ( uniform sampler1DShadow) 0:176 'pf' ( temp float) 0:177 move second child to first child ( temp 2-component vector of float) 0:177 'lod' ( temp 2-component vector of float) 0:177 textureQueryLod ( global 2-component vector of float) 0:177 'samp2Ds' ( uniform sampler2DShadow) 0:177 'pf2' ( temp 2-component vector of float) 0:178 move second child to first child ( temp 2-component vector of float) 0:178 'lod' ( temp 2-component vector of float) 0:178 textureQueryLod ( global 2-component vector of float) 0:178 'sampCubes' ( uniform samplerCubeShadow) 0:178 'pf3' ( temp 3-component vector of float) 0:179 move second child to first child ( temp 2-component vector of float) 0:179 'lod' ( temp 2-component vector of float) 0:179 textureQueryLod ( global 2-component vector of float) 0:179 'samp1DAs' ( uniform sampler1DArrayShadow) 0:179 'pf' ( temp float) 0:180 move second child to first child ( temp 2-component vector of float) 0:180 'lod' ( temp 2-component vector of float) 0:180 textureQueryLod ( global 2-component vector of float) 0:180 'samp2DAs' ( uniform sampler2DArrayShadow) 0:180 'pf2' ( temp 2-component vector of float) 0:181 move second child to first child ( temp 2-component vector of float) 0:181 'lod' ( temp 2-component vector of float) 0:181 textureQueryLod ( global 2-component vector of float) 0:181 'sampCubeAs' ( uniform samplerCubeArrayShadow) 0:181 'pf3' ( temp 3-component vector of float) 0:183 'lod' ( temp 2-component vector of float) 0:184 'lod' ( temp 2-component vector of float) 0:190 Function Definition: bitwiseConv( ( global void) 0:190 Function Parameters: 0:192 Sequence 0:192 move second child to first child ( temp uint) 0:192 'iout' ( out uint) 0:192 bitwise and ( temp uint) 0:192 'uu' ( uniform uint) 0:192 Convert int to uint ( temp uint) 0:192 'i' ( flat in int) 0:193 add second child into first child ( temp uint) 0:193 'iout' ( out uint) 0:193 exclusive-or ( temp uint) 0:193 'uu' ( uniform uint) 0:193 Convert int to uint ( temp uint) 0:193 'i' ( flat in int) 0:194 add second child into first child ( temp uint) 0:194 'iout' ( out uint) 0:194 inclusive-or ( temp uint) 0:194 Convert int to uint ( temp uint) 0:194 'i' ( flat in int) 0:194 'uu' ( uniform uint) 0:198 Function Definition: subT1( ( temp float) 0:198 Function Parameters: 0:198 Sequence 0:198 Branch: Return with expression 0:198 Constant: 0:198 1.000000 0:199 Function Definition: subT2( ( temp float) 0:199 Function Parameters: 0:199 Sequence 0:199 Branch: Return with expression 0:199 Constant: 0:199 1.000000 0:? Linker Objects 0:? 'c2D' ( smooth in 2-component vector of float) 0:? 'i' ( flat in int) 0:? 'outp' ( out 4-component vector of float) 0:? 'arrayedSampler' ( uniform 5-element array of sampler2D) 0:? 'samp2dr' ( uniform usampler2DRect) 0:? 'isamp2DA' ( uniform isampler2DArray) 0:? 'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance) 0:? 'vl' (layout( location=4) smooth in 4-component vector of float) 0:? 'vl2' (layout( location=6) smooth in 4-component vector of float) 0:? 'uv3' (layout( location=3) uniform 3-component vector of float) 0:? 'anon@0' ( in block{ in float FogFragCoord gl_FogFragCoord, in unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) 0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) 0:? 'u2drs' ( uniform sampler2DRectShadow) 0:? 'patchIn' ( smooth patch in 4-component vector of float) 0:? 'patchOut' ( patch out 4-component vector of float) 0:? 'in1' ( smooth in float) 0:? 'in2' ( smooth in 2-component vector of float) 0:? 'in3' ( smooth in 3-component vector of float) 0:? 'in4' ( smooth in 4-component vector of float) 0:? 'colorSampIn' ( smooth sample in 4-component vector of float) 0:? 'colorSampleBad' ( sample out 4-component vector of float) 0:? 'colorfsi' ( noperspective in 4-component vector of float) 0:? 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) 0:? 'scalarIn' ( smooth in float) 0:? 'colorfc' ( centroid flat in 2-component vector of float) 0:? 's1' ( smooth in structure{ global float x}) 0:? 's2' ( sample temp structure{ global float x}) 0:? 'samp1D' ( uniform sampler1D) 0:? 'isamp2D' ( uniform isampler2D) 0:? 'usamp3D' ( uniform usampler3D) 0:? 'sampCube' ( uniform samplerCube) 0:? 'isamp1DA' ( uniform isampler1DArray) 0:? 'usamp2DA' ( uniform usampler2DArray) 0:? 'isampCubeA' ( uniform isamplerCubeArray) 0:? 'samp1Ds' ( uniform sampler1DShadow) 0:? 'samp2Ds' ( uniform sampler2DShadow) 0:? 'sampCubes' ( uniform samplerCubeShadow) 0:? 'samp1DAs' ( uniform sampler1DArrayShadow) 0:? 'samp2DAs' ( uniform sampler2DArrayShadow) 0:? 'sampCubeAs' ( uniform samplerCubeArrayShadow) 0:? 'sampBuf' ( uniform samplerBuffer) 0:? 'sampRect' ( uniform sampler2DRect) 0:? 'uu' ( uniform uint) 0:? 'iout' ( out uint) Linked fragment stage: Shader version: 400 Requested GL_ARB_derivative_control Requested GL_ARB_separate_shader_objects gl_FragCoord pixel center is integer gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:10 Function Definition: main( ( global void) 0:10 Function Parameters: 0:? Sequence 0:13 move second child to first child ( temp 4-component vector of float) 0:13 'v' ( temp 4-component vector of float) 0:13 texture ( global 4-component vector of float) 0:13 indirect index ( temp sampler2D) 0:13 'arrayedSampler' ( uniform 5-element array of sampler2D) 0:13 'i' ( flat in int) 0:13 'c2D' ( smooth in 2-component vector of float) 0:14 move second child to first child ( temp float) 0:14 direct index ( temp float) 0:14 'outp' ( out 4-component vector of float) 0:14 Constant: 0:14 0 (const int) 0:14 direct index ( smooth temp float ClipDistance) 0:14 'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance) 0:14 Constant: 0:14 1 (const int) 0:18 Sequence 0:18 move second child to first child ( temp 4-component vector of uint) 0:18 'uv4' ( temp 4-component vector of uint) 0:18 textureGatherOffsets ( global 4-component vector of uint) 0:18 'samp2dr' ( uniform usampler2DRect) 0:18 'c2D' ( smooth in 2-component vector of float) 0:18 'offsets' ( temp 4-element array of 2-component vector of int) 0:18 Constant: 0:18 2 (const int) 0:19 move second child to first child ( temp 4-component vector of uint) 0:19 'uv4' ( temp 4-component vector of uint) 0:19 textureGatherOffsets ( global 4-component vector of uint) 0:19 'samp2dr' ( uniform usampler2DRect) 0:19 'c2D' ( smooth in 2-component vector of float) 0:19 Constant: 0:19 1 (const int) 0:19 2 (const int) 0:19 3 (const int) 0:19 4 (const int) 0:19 15 (const int) 0:19 16 (const int) 0:19 -2 (const int) 0:19 0 (const int) 0:19 Constant: 0:19 2 (const int) 0:20 Sequence 0:20 move second child to first child ( temp 4-component vector of float) 0:20 'v4' ( temp 4-component vector of float) 0:20 textureGather ( global 4-component vector of float) 0:20 direct index ( temp sampler2D) 0:20 'arrayedSampler' ( uniform 5-element array of sampler2D) 0:20 Constant: 0:20 0 (const int) 0:20 'c2D' ( smooth in 2-component vector of float) 0:21 Sequence 0:21 move second child to first child ( temp 4-component vector of int) 0:21 'iv4' ( temp 4-component vector of int) 0:21 textureGatherOffset ( global 4-component vector of int) 0:21 'isamp2DA' ( uniform isampler2DArray) 0:21 Constant: 0:21 0.100000 0:21 0.100000 0:21 0.100000 0:21 Constant: 0:21 1 (const int) 0:21 1 (const int) 0:21 Constant: 0:21 3 (const int) 0:22 move second child to first child ( temp 4-component vector of int) 0:22 'iv4' ( temp 4-component vector of int) 0:22 textureGatherOffset ( global 4-component vector of int) 0:22 'isamp2DA' ( uniform isampler2DArray) 0:22 Constant: 0:22 0.100000 0:22 0.100000 0:22 0.100000 0:22 Constant: 0:22 1 (const int) 0:22 1 (const int) 0:22 'i' ( flat in int) 0:23 move second child to first child ( temp 4-component vector of int) 0:23 'iv4' ( temp 4-component vector of int) 0:23 textureGatherOffset ( global 4-component vector of int) 0:23 'isamp2DA' ( uniform isampler2DArray) 0:23 Constant: 0:23 0.100000 0:23 0.100000 0:23 0.100000 0:23 Constant: 0:23 1 (const int) 0:23 1 (const int) 0:23 Constant: 0:23 4 (const int) 0:24 move second child to first child ( temp 4-component vector of int) 0:24 'iv4' ( temp 4-component vector of int) 0:24 textureGatherOffset ( global 4-component vector of int) 0:24 'isamp2DA' ( uniform isampler2DArray) 0:24 Constant: 0:24 0.100000 0:24 0.100000 0:24 0.100000 0:24 Constant: 0:24 1 (const int) 0:24 1 (const int) 0:24 Constant: 0:24 3 (const int) 0:25 move second child to first child ( temp 4-component vector of int) 0:25 'iv4' ( temp 4-component vector of int) 0:25 textureGatherOffset ( global 4-component vector of int) 0:25 'isamp2DA' ( uniform isampler2DArray) 0:25 Constant: 0:25 0.100000 0:25 0.100000 0:25 0.100000 0:25 Construct ivec2 ( temp 2-component vector of int) 0:25 'i' ( flat in int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'c' ( temp 4-component vector of float) 0:27 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) 0:? Linker Objects 0:? 'c2D' ( smooth in 2-component vector of float) 0:? 'i' ( flat in int) 0:? 'outp' ( out 4-component vector of float) 0:? 'arrayedSampler' ( uniform 5-element array of sampler2D) 0:? 'samp2dr' ( uniform usampler2DRect) 0:? 'isamp2DA' ( uniform isampler2DArray) 0:? 'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance) 0:? 'vl' (layout( location=4) smooth in 4-component vector of float) 0:? 'vl2' (layout( location=6) smooth in 4-component vector of float) 0:? 'uv3' (layout( location=3) uniform 3-component vector of float) 0:? 'anon@0' ( in block{ in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) 0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) 0:? 'u2drs' ( uniform sampler2DRectShadow) 0:? 'patchIn' ( smooth patch in 4-component vector of float) 0:? 'patchOut' ( patch out 4-component vector of float) 0:? 'in1' ( smooth in float) 0:? 'in2' ( smooth in 2-component vector of float) 0:? 'in3' ( smooth in 3-component vector of float) 0:? 'in4' ( smooth in 4-component vector of float) 0:? 'colorSampIn' ( smooth sample in 4-component vector of float) 0:? 'colorSampleBad' ( sample out 4-component vector of float) 0:? 'colorfsi' ( noperspective in 4-component vector of float) 0:? 'sampInArray' ( smooth sample in 4-element array of 3-component vector of float) 0:? 'scalarIn' ( smooth in float) 0:? 'colorfc' ( centroid flat in 2-component vector of float) 0:? 's1' ( smooth in structure{ global float x}) 0:? 's2' ( sample temp structure{ global float x}) 0:? 'samp1D' ( uniform sampler1D) 0:? 'isamp2D' ( uniform isampler2D) 0:? 'usamp3D' ( uniform usampler3D) 0:? 'sampCube' ( uniform samplerCube) 0:? 'isamp1DA' ( uniform isampler1DArray) 0:? 'usamp2DA' ( uniform usampler2DArray) 0:? 'isampCubeA' ( uniform isamplerCubeArray) 0:? 'samp1Ds' ( uniform sampler1DShadow) 0:? 'samp2Ds' ( uniform sampler2DShadow) 0:? 'sampCubes' ( uniform samplerCubeShadow) 0:? 'samp1DAs' ( uniform sampler1DArrayShadow) 0:? 'samp2DAs' ( uniform sampler2DArrayShadow) 0:? 'sampCubeAs' ( uniform samplerCubeArrayShadow) 0:? 'sampBuf' ( uniform samplerBuffer) 0:? 'sampRect' ( uniform sampler2DRect) 0:? 'uu' ( uniform uint) 0:? 'iout' ( out uint) glslang-8.13.3559/Test/baseResults/400.geom.out000066400000000000000000001636021360464450000207070ustar00rootroot00000000000000400.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) glslang-8.13.3559/Test/baseResults/400.tesc.out000066400000000000000000000523361360464450000207170ustar00rootroot00000000000000400.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) glslang-8.13.3559/Test/baseResults/400.tese.out000066400000000000000000000413441360464450000207160ustar00rootroot00000000000000400.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}) glslang-8.13.3559/Test/baseResults/400.vert.out000066400000000000000000000526261360464450000207430ustar00rootroot00000000000000400.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) glslang-8.13.3559/Test/baseResults/410.geom.out000066400000000000000000000071471360464450000207110ustar00rootroot00000000000000410.geom ERROR: 0:8: 'myIn' : cannot redeclare a built-in block with a user name ERROR: 0:12: 'gl_myIn' : no declaration found for redeclaration ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use ERROR: 0:32: 'gl_Position' : no such field in structure ERROR: 0:32: '=' : cannot convert from ' temp block{ in float PointSize gl_PointSize}' to ' temp 4-component vector of float' ERROR: 0:33: 'gl_Position' : member of nameless block was not redeclared ERROR: 0:33: 'assign' : cannot convert from ' const 4-component vector of float' to 'layout( stream=0) gl_Position void Position' WARNING: 0:38: 'return' : type conversion on return values was not explicitly allowed until version 420 ERROR: 7 compilation errors. No code generated. Shader version: 410 invocations = -1 max_vertices = -1 input primitive = none output primitive = none ERROR: node is still EOpNull! 0:3 Function Definition: main( ( global void) 0:3 Function Parameters: 0:5 Sequence 0:5 move second child to first child ( temp int) 0:5 'gl_ViewportIndex' (layout( stream=0) out int ViewportIndex) 0:5 Constant: 0:5 7 (const int) 0:28 Function Definition: foo( ( global void) 0:28 Function Parameters: 0:30 Sequence 0:30 Sequence 0:30 move second child to first child ( temp float) 0:30 'p' ( temp float) 0:30 gl_PointSize: direct index for structure ( in float PointSize) 0:30 direct index ( temp block{ in float PointSize gl_PointSize}) 0:30 'gl_in' ( in unsized 2-element array of block{ in float PointSize gl_PointSize}) 0:30 Constant: 0:30 1 (const int) 0:30 Constant: 0:30 0 (const int) 0:31 move second child to first child ( temp float) 0:31 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize float PointSize) 0:31 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize}) 0:31 Constant: 0:31 1 (const uint) 0:31 'p' ( temp float) 0:33 gl_Position: direct index for structure (layout( stream=0) gl_Position void Position) 0:33 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize}) 0:33 Constant: 0:33 0 (const uint) 0:36 Function Definition: foo5( ( global float) 0:36 Function Parameters: 0:38 Sequence 0:38 Branch: Return with expression 0:38 Constant: 0:38 4.000000 0:? Linker Objects 0:? 'gl_in' ( in unsized 2-element array of block{ in float PointSize gl_PointSize}) 0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize}) Linked geometry stage: ERROR: Linking geometry stage: At least one shader must specify an input layout primitive ERROR: Linking geometry stage: At least one shader must specify an output layout primitive ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) Shader version: 410 invocations = 1 max_vertices = -1 input primitive = none output primitive = none ERROR: node is still EOpNull! 0:3 Function Definition: main( ( global void) 0:3 Function Parameters: 0:5 Sequence 0:5 move second child to first child ( temp int) 0:5 'gl_ViewportIndex' (layout( stream=0) out int ViewportIndex) 0:5 Constant: 0:5 7 (const int) 0:? Linker Objects 0:? 'gl_in' ( in 2-element array of block{ in float PointSize gl_PointSize}) 0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) gl_PointSize float PointSize gl_PointSize}) glslang-8.13.3559/Test/baseResults/410.tesc.out000066400000000000000000000023401360464450000207060ustar00rootroot00000000000000410.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) glslang-8.13.3559/Test/baseResults/410.vert.out000066400000000000000000000013371360464450000207350ustar00rootroot00000000000000410.vert Shader version: 410 0:? Sequence 0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:? Linker Objects 0:? 'd' ( in double) 0:? 'd3' ( in 3-component vector of double) 0:? 'dm4' ( in 4X4 matrix of double) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) Linked vertex stage: Shader version: 410 0:? Sequence 0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:? Linker Objects 0:? 'd' ( in double) 0:? 'd3' ( in 3-component vector of double) 0:? 'dm4' ( in 4X4 matrix of double) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) glslang-8.13.3559/Test/baseResults/420.comp.out000066400000000000000000000123541360464450000207150ustar00rootroot00000000000000420.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) glslang-8.13.3559/Test/baseResults/420.frag.out000066400000000000000000000025741360464450000207010ustar00rootroot00000000000000420.frag ERROR: 0:4: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth ERROR: 0:11: 'layout qualifier' : can only apply depth layout to gl_FragDepth ERROR: 0:12: 'gl_FragDepth' : cannot redeclare after use ERROR: 0:14: 'atomic_uint' : array must be explicitly sized ERROR: 4 compilation errors. No code generated. Shader version: 420 using depth_any ERROR: node is still EOpNull! 0:6 Function Definition: main( ( global void) 0:6 Function Parameters: 0:8 Sequence 0:8 move second child to first child ( temp float) 0:8 'gl_FragDepth' ( gl_FragDepth float FragDepth) 0:8 Constant: 0:8 0.300000 0:? Linker Objects 0:? 'gl_FragDepth' ( gl_FragDepth float FragDepth) 0:? 'depth' ( smooth in float) 0:? 'a' (layout( binding=0 offset=0) uniform unsized 1-element array of atomic_uint) Linked fragment stage: Shader version: 420 using depth_any ERROR: node is still EOpNull! 0:6 Function Definition: main( ( global void) 0:6 Function Parameters: 0:8 Sequence 0:8 move second child to first child ( temp float) 0:8 'gl_FragDepth' ( gl_FragDepth float FragDepth) 0:8 Constant: 0:8 0.300000 0:? Linker Objects 0:? 'gl_FragDepth' ( gl_FragDepth float FragDepth) 0:? 'depth' ( smooth in float) 0:? 'a' (layout( binding=0 offset=0) uniform 1-element array of atomic_uint) glslang-8.13.3559/Test/baseResults/420.geom.out000066400000000000000000000162651360464450000207130ustar00rootroot00000000000000420.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}) glslang-8.13.3559/Test/baseResults/420.tesc.out000066400000000000000000000244721360464450000207210ustar00rootroot00000000000000420.tesc ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb ERROR: 0:26: 'gl_PointSize' : no such field in structure ERROR: 0:26: 'assign' : cannot convert from ' temp float' to ' temp block{ out 4-component vector of float Position gl_Position}' ERROR: 0:29: 'out' : type must be an array: outf ERROR: 0:43: 'vertices' : must be greater than 0 ERROR: 7 compilation errors. No code generated. Shader version: 420 Requested GL_ARB_separate_shader_objects vertices = 4 ERROR: node is still EOpNull! 0:15 Function Definition: main( ( global void) 0:15 Function Parameters: 0:17 Sequence 0:17 Sequence 0:17 move second child to first child ( temp 4-component vector of float) 0:17 'p' ( temp 4-component vector of float) 0:17 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:17 Constant: 0:17 1 (const int) 0:17 Constant: 0:17 0 (const int) 0:18 Sequence 0:18 move second child to first child ( temp float) 0:18 'ps' ( temp float) 0:18 gl_PointSize: direct index for structure ( in float PointSize) 0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:18 Constant: 0:18 1 (const int) 0:18 Constant: 0:18 1 (const int) 0:19 Sequence 0:19 move second child to first child ( temp float) 0:19 'cd' ( temp float) 0:19 direct index ( temp float ClipDistance) 0:19 gl_ClipDistance: direct index for structure ( in unsized 3-element array of float ClipDistance) 0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in unsized 3-element array of float ClipDistance gl_ClipDistance}) 0:19 Constant: 0:19 1 (const int) 0:19 Constant: 0:19 2 (const int) 0:19 Constant: 0:19 2 (const int) 0:21 Sequence 0:21 move second child to first child ( temp int) 0:21 'pvi' ( temp int) 0:21 'gl_PatchVerticesIn' ( in int PatchVertices) 0:22 Sequence 0:22 move second child to first child ( temp int) 0:22 'pid' ( temp int) 0:22 'gl_PrimitiveID' ( in int PrimitiveID) 0:23 Sequence 0:23 move second child to first child ( temp int) 0:23 'iid' ( temp int) 0:23 'gl_InvocationID' ( in int InvocationID) 0:25 move second child to first child ( temp 4-component vector of float) 0:25 gl_Position: direct index for structure ( out 4-component vector of float Position) 0:25 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) 0:25 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:25 'gl_InvocationID' ( in int InvocationID) 0:25 Constant: 0:25 0 (const int) 0:25 'p' ( temp 4-component vector of float) 0:26 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) 0:26 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:26 'gl_InvocationID' ( in int InvocationID) 0:34 Function Definition: foo( ( global void) 0:34 Function Parameters: 0:36 Sequence 0:36 Test condition and select ( temp void) 0:36 Condition 0:36 logical-or ( temp bool) 0:36 Compare Not Equal ( temp bool) 0:36 Constant: 0:36 -0.625000 0:36 -0.500000 0:36 -0.375000 0:36 -0.250000 0:36 -0.375000 0:36 -0.250000 0:36 -0.125000 0:36 0.000000 0:36 direct index (layout( location=0) temp 2X4 matrix of double) 0:36 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) 0:36 Constant: 0:36 0 (const int) 0:37 Compare Not Equal ( temp bool) 0:37 Constant: 0:37 0.375000 0:37 0.500000 0:37 0.625000 0:37 0.750000 0:37 0.625000 0:37 0.750000 0:37 0.875000 0:37 -0.625000 0:37 direct index (layout( location=12) temp 2X4 matrix of double) 0:37 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) 0:37 Constant: 0:37 0 (const int) 0:36 true case is null 0:? Linker Objects 0:? 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:? 'a' ( out 3-element array of int) 0:? 'outb' ( out 5-element array of int) 0:? 'outc' ( out 4-element array of int) 0:? 'outf' ( out float) 0:? 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) 0:? 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) Linked tessellation control stage: Shader version: 420 Requested GL_ARB_separate_shader_objects vertices = 4 ERROR: node is still EOpNull! 0:15 Function Definition: main( ( global void) 0:15 Function Parameters: 0:17 Sequence 0:17 Sequence 0:17 move second child to first child ( temp 4-component vector of float) 0:17 'p' ( temp 4-component vector of float) 0:17 gl_Position: direct index for structure ( in 4-component vector of float Position) 0:17 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:17 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:17 Constant: 0:17 1 (const int) 0:17 Constant: 0:17 0 (const int) 0:18 Sequence 0:18 move second child to first child ( temp float) 0:18 'ps' ( temp float) 0:18 gl_PointSize: direct index for structure ( in float PointSize) 0:18 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:18 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:18 Constant: 0:18 1 (const int) 0:18 Constant: 0:18 1 (const int) 0:19 Sequence 0:19 move second child to first child ( temp float) 0:19 'cd' ( temp float) 0:19 direct index ( temp float ClipDistance) 0:19 gl_ClipDistance: direct index for structure ( in 3-element array of float ClipDistance) 0:19 direct index ( temp block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:19 'gl_in' ( in 32-element array of block{ in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 3-element array of float ClipDistance gl_ClipDistance}) 0:19 Constant: 0:19 1 (const int) 0:19 Constant: 0:19 2 (const int) 0:19 Constant: 0:19 2 (const int) 0:21 Sequence 0:21 move second child to first child ( temp int) 0:21 'pvi' ( temp int) 0:21 'gl_PatchVerticesIn' ( in int PatchVertices) 0:22 Sequence 0:22 move second child to first child ( temp int) 0:22 'pid' ( temp int) 0:22 'gl_PrimitiveID' ( in int PrimitiveID) 0:23 Sequence 0:23 move second child to first child ( temp int) 0:23 'iid' ( temp int) 0:23 'gl_InvocationID' ( in int InvocationID) 0:25 move second child to first child ( temp 4-component vector of float) 0:25 gl_Position: direct index for structure ( out 4-component vector of float Position) 0:25 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) 0:25 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:25 'gl_InvocationID' ( in int InvocationID) 0:25 Constant: 0:25 0 (const int) 0:25 'p' ( temp 4-component vector of float) 0:26 indirect index ( temp block{ out 4-component vector of float Position gl_Position}) 0:26 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:26 'gl_InvocationID' ( in int InvocationID) 0:? Linker Objects 0:? 'gl_out' ( out 3-element array of block{ out 4-component vector of float Position gl_Position}) 0:? 'a' ( out 3-element array of int) 0:? 'outb' ( out 5-element array of int) 0:? 'outc' ( out 4-element array of int) 0:? 'outf' ( out float) 0:? 'vs_tcs_first' (layout( location=0) in 32-element array of 2X4 matrix of double) 0:? 'vs_tcs_last' (layout( location=12) in 32-element array of 2X4 matrix of double) glslang-8.13.3559/Test/baseResults/420.tese.out000066400000000000000000000341131360464450000207140ustar00rootroot00000000000000420.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) glslang-8.13.3559/Test/baseResults/420.vert.out000066400000000000000000000444121360464450000207370ustar00rootroot00000000000000420.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:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) Linked vertex stage: Shader version: 420 ERROR: node is still EOpNull! 0:32 Function Definition: main( ( global void) 0:32 Function Parameters: 0:? Sequence 0:35 Test condition and select ( temp void) 0:35 Condition 0:35 Compare Equal ( temp bool) 0:35 'i' ( temp int) 0:35 Constant: 0:35 3 (const int) 0:35 true case 0:36 Sequence 0:36 move second child to first child ( temp int) 0:36 'j' ( temp int) 0:36 'i' ( temp int) 0:42 Loop with condition tested first 0:42 Loop Condition 0:42 Constant: 0:42 true (const bool) 0:42 No loop body 0:? Linker Objects 0:? 'v2' ( smooth out 2-component vector of float) 0:? 'bad' ( in 10-element array of 4-component vector of float) 0:? 'badorder' ( in 4-component vector of float) 0:? 'badorder2' ( invariant smooth out 4-component vector of float) 0:? 'badorder4' ( centroid in 4-component vector of float) 0:? 'badorder3' ( flat out 4-component vector of float) 0:? 'rep' ( smooth flat out 4-component vector of float) 0:? 'rep2' ( centroid smooth sample out 4-component vector of float) 0:? 'rep3' ( in 4-component vector of float) 0:? 'anonconst' ( global int) 0:? 'aconst' ( const int) 0:? 5 (const int) 0:? 'a' ( const int) 0:? 5 (const int) 0:? 'b' ( temp int) 0:? 'cx' ( const float) 0:? 4.200000 0:? 'dx' ( const float) 0:? 4.200000 0:? 'boundInst' (layout( binding=3 column_major shared) uniform block{layout( column_major shared) uniform int aoeu}) 0:? 'anon@0' (layout( binding=7 column_major shared) uniform block{layout( column_major shared) uniform int aoeu}) 0:? 'anon@1' (layout( binding=1) in block{ in int aoeua}) 0:? 'anon@2' (layout( column_major shared) uniform block{layout( column_major shared) uniform int aooeu}) 0:? 'sampb1' (layout( binding=4) uniform sampler2D) 0:? 'sampb2' (layout( binding=5) uniform 10-element array of sampler2D) 0:? 'sampb3' (layout( binding=80) uniform sampler2D) 0:? 'sampb4' (layout( binding=31) uniform sampler2D) 0:? 'sampb5' (layout( binding=79) uniform 2-element array of sampler2D) 0:? 'anon@3' ( out block{ out 4-element array of float ClipDistance gl_ClipDistance}) 0:? 'patchIn' ( patch in 4-component vector of float) 0:? 'patchOut' ( smooth patch out 4-component vector of float) 0:? 'comma0' ( temp int) 0:? 'comma1' ( global 1-element array of int) 0:? 'iimg2D' (layout( r32i) uniform iimage2D) 0:? 'iimg2Drgba' (layout( rgba32i) uniform iimage2D) 0:? 'img2Drgba' (layout( rgba32f) uniform image2D) 0:? 'uimg2D' (layout( r32ui) uniform uimage2D) 0:? 'img2DMS' ( uniform image2DMS) 0:? 'img2DMSWO' ( writeonly uniform image2DMS) 0:? 'vol' ( volatile temp float) 0:? 'vol2' ( readonly temp int) 0:? 'qualim1' (layout( r32i) coherent readonly uniform iimage2D) 0:? 'qualim2' (layout( r32i) coherent volatile readonly uniform iimage2D) 0:? 'i1bad' (layout( rg8i) uniform uimage2D) 0:? 'i2bad' (layout( rgba32i) uniform image2D) 0:? 'i3bad' (layout( rgba32f) uniform uimage2D) 0:? 'i4bad' (layout( r8_snorm) uniform iimage2D) 0:? 'i5bad' (layout( rgba32ui) uniform iimage2D) 0:? 'i6bad' (layout( r8ui) uniform iimage2D) 0:? 'offcheckI' (layout( column_major shared) uniform block{layout( column_major shared offset=16) uniform int foo}) 0:? 'samp1D' ( uniform sampler1D) 0:? 'samp1Ds' ( uniform sampler1DShadow) 0:? 'badArray' (layout( binding=0) writeonly uniform 1-element array of image1D) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) glslang-8.13.3559/Test/baseResults/420_size_gl_in.geom.out000066400000000000000000000054721360464450000231130ustar00rootroot00000000000000420_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}) glslang-8.13.3559/Test/baseResults/430.comp.out000066400000000000000000000252341360464450000207170ustar00rootroot00000000000000430.comp ERROR: 0:4: 'local_size' : cannot change previously set size ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize ERROR: 0:43: 'in' : global storage input qualifier cannot be used in a compute shader ERROR: 0:43: 'location qualifier on input' : not supported in this stage: compute ERROR: 0:44: 'in' : global storage input qualifier cannot be used in a compute shader ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute shader ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable ERROR: 0:48: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers ERROR: 0:49: 'shared' : cannot initialize this type of qualifier ERROR: 0: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: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:? 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}) glslang-8.13.3559/Test/baseResults/430.vert.out000066400000000000000000000532611360464450000207420ustar00rootroot00000000000000430.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) glslang-8.13.3559/Test/baseResults/430AofA.frag.out000066400000000000000000000720061360464450000214260ustar00rootroot00000000000000430AofA.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) glslang-8.13.3559/Test/baseResults/430scope.vert.out000066400000000000000000000213751360464450000217750ustar00rootroot00000000000000430scope.vert ERROR: 0:5: 'a' : redefinition ERROR: 0:17: 'b' : function name is redeclaration of existing name ERROR: 0:20: 'c' : redefinition ERROR: 0:22: 'f' : redefinition ERROR: 0:43: 'sin' : can't use function syntax on variable ERROR: 0:57: 'z' : undeclared identifier ERROR: 0:57: 'z' : redefinition ERROR: 0:73: 'degrees' : can't use function syntax on variable ERROR: 8 compilation errors. No code generated. Shader version: 430 ERROR: node is still EOpNull! 0:3 Function Definition: f(i1;i1;i1; ( global int) 0:3 Function Parameters: 0:3 'a' ( in int) 0:3 'b' ( in int) 0:3 'c' ( in int) 0:? Sequence 0:8 Sequence 0:8 Sequence 0:8 move second child to first child ( temp float) 0:8 'a' ( temp float) 0:8 add ( temp float) 0:8 Convert int to float ( temp float) 0:8 'a' ( in int) 0:8 Constant: 0:8 1.000000 0:11 Branch: Return with expression 0:11 'a' ( in int) 0:25 Function Definition: cos(f1; ( global float) 0:25 Function Parameters: 0:25 'x' ( in float) 0:27 Sequence 0:27 Branch: Return with expression 0:27 Constant: 0:27 1.000000 0:29 Function Definition: radians(b1; ( global bool) 0:29 Function Parameters: 0:29 'x' ( in bool) 0:31 Sequence 0:31 Branch: Return with expression 0:31 Constant: 0:31 true (const bool) 0:36 Function Definition: main( ( global void) 0:36 Function Parameters: 0:? Sequence 0:39 Function Call: g( ( temp int) 0:42 'sin' ( temp float) 0:43 Constant: 0:43 0.000000 0:44 Function Call: f(i1;i1;i1; ( global int) 0:44 Constant: 0:44 1 (const int) 0:44 Constant: 0:44 2 (const int) 0:44 Constant: 0:44 3 (const int) 0:47 move second child to first child ( temp float) 0:47 'f' ( temp float) 0:47 Constant: 0:47 3.000000 0:49 move second child to first child ( temp 4-component vector of float) 0:49 gl_Position: direct index for structure ( invariant gl_Position 4-component vector of float Position) 0:49 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:49 Constant: 0:49 0 (const uint) 0:49 Construct vec4 ( temp 4-component vector of float) 0:49 'f' ( temp float) 0:51 Sequence 0:51 Sequence 0:51 move second child to first child ( temp int) 0:51 'f' ( temp int) 0:51 Constant: 0:51 0 (const int) 0:51 Loop with condition tested first 0:51 Loop Condition 0:51 Compare Less Than ( temp bool) 0:51 'f' ( temp int) 0:51 Constant: 0:51 10 (const int) 0:51 Loop Body 0:52 Pre-Increment ( temp int) 0:52 'f' ( temp int) 0:51 Loop Terminal Expression 0:51 Pre-Increment ( temp int) 0:51 'f' ( temp int) 0:54 Sequence 0:54 move second child to first child ( temp int) 0:54 'x' ( temp int) 0:54 Constant: 0:54 1 (const int) 0:56 Sequence 0:56 Sequence 0:56 move second child to first child ( temp float) 0:56 'x' ( temp float) 0:56 Constant: 0:56 2.000000 0:56 move second child to first child ( temp float) 0:56 'y' ( temp float) 0:56 'x' ( temp float) 0:60 Sequence 0:60 Sequence 0:60 move second child to first child ( temp int) 0:60 'x' ( temp int) 0:60 'x' ( temp int) 0:68 Sequence 0:68 Sequence 0:68 move second child to first child ( temp structure{ temp int x}) 0:68 'S' ( temp structure{ temp int x}) 0:68 Constant: 0:68 0 (const int) 0:69 x: direct index for structure ( temp int) 0:69 'S' ( temp structure{ temp int x}) 0:69 Constant: 0:69 0 (const int) 0:73 Constant: 0:73 0.000000 0:? Linker Objects 0:? 'b' ( global bool) 0:? 'tan' ( global float) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) Linked vertex stage: ERROR: Linking vertex stage: No function definition (body) found: g( Shader version: 430 ERROR: node is still EOpNull! 0:3 Function Definition: f(i1;i1;i1; ( global int) 0:3 Function Parameters: 0:3 'a' ( in int) 0:3 'b' ( in int) 0:3 'c' ( in int) 0:? Sequence 0:8 Sequence 0:8 Sequence 0:8 move second child to first child ( temp float) 0:8 'a' ( temp float) 0:8 add ( temp float) 0:8 Convert int to float ( temp float) 0:8 'a' ( in int) 0:8 Constant: 0:8 1.000000 0:11 Branch: Return with expression 0:11 'a' ( in int) 0:36 Function Definition: main( ( global void) 0:36 Function Parameters: 0:? Sequence 0:39 Function Call: g( ( temp int) 0:42 'sin' ( temp float) 0:43 Constant: 0:43 0.000000 0:44 Function Call: f(i1;i1;i1; ( global int) 0:44 Constant: 0:44 1 (const int) 0:44 Constant: 0:44 2 (const int) 0:44 Constant: 0:44 3 (const int) 0:47 move second child to first child ( temp float) 0:47 'f' ( temp float) 0:47 Constant: 0:47 3.000000 0:49 move second child to first child ( temp 4-component vector of float) 0:49 gl_Position: direct index for structure ( invariant gl_Position 4-component vector of float Position) 0:49 'anon@0' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:49 Constant: 0:49 0 (const uint) 0:49 Construct vec4 ( temp 4-component vector of float) 0:49 'f' ( temp float) 0:51 Sequence 0:51 Sequence 0:51 move second child to first child ( temp int) 0:51 'f' ( temp int) 0:51 Constant: 0:51 0 (const int) 0:51 Loop with condition tested first 0:51 Loop Condition 0:51 Compare Less Than ( temp bool) 0:51 'f' ( temp int) 0:51 Constant: 0:51 10 (const int) 0:51 Loop Body 0:52 Pre-Increment ( temp int) 0:52 'f' ( temp int) 0:51 Loop Terminal Expression 0:51 Pre-Increment ( temp int) 0:51 'f' ( temp int) 0:54 Sequence 0:54 move second child to first child ( temp int) 0:54 'x' ( temp int) 0:54 Constant: 0:54 1 (const int) 0:56 Sequence 0:56 Sequence 0:56 move second child to first child ( temp float) 0:56 'x' ( temp float) 0:56 Constant: 0:56 2.000000 0:56 move second child to first child ( temp float) 0:56 'y' ( temp float) 0:56 'x' ( temp float) 0:60 Sequence 0:60 Sequence 0:60 move second child to first child ( temp int) 0:60 'x' ( temp int) 0:60 'x' ( temp int) 0:68 Sequence 0:68 Sequence 0:68 move second child to first child ( temp structure{ temp int x}) 0:68 'S' ( temp structure{ temp int x}) 0:68 Constant: 0:68 0 (const int) 0:69 x: direct index for structure ( temp int) 0:69 'S' ( temp structure{ temp int x}) 0:69 Constant: 0:69 0 (const int) 0:73 Constant: 0:73 0.000000 0:? Linker Objects 0:? 'b' ( global bool) 0:? 'tan' ( global float) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) glslang-8.13.3559/Test/baseResults/435.vert.out000066400000000000000000000011551360464450000207420ustar00rootroot00000000000000435.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) glslang-8.13.3559/Test/baseResults/440.frag.out000066400000000000000000000426111360464450000206770ustar00rootroot00000000000000440.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) 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) glslang-8.13.3559/Test/baseResults/440.vert.out000066400000000000000000000511351360464450000207410ustar00rootroot00000000000000440.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) glslang-8.13.3559/Test/baseResults/450.comp.out000066400000000000000000000010201360464450000207040ustar00rootroot00000000000000450.comp ERROR: 0:2: 'local_size_x' : must be at least 1 ERROR: 0:5: 'shared' : not allowed in nested scope ERROR: 2 compilation errors. No code generated. Shader version: 450 local_size = (1, 1, 1) ERROR: node is still EOpNull! 0:3 Function Definition: main( ( global void) 0:3 Function Parameters: 0:? Linker Objects Linked compute stage: Shader version: 450 local_size = (1, 1, 1) ERROR: node is still EOpNull! 0:3 Function Definition: main( ( global void) 0:3 Function Parameters: 0:? Linker Objects glslang-8.13.3559/Test/baseResults/450.frag.out000066400000000000000000000317411360464450000207020ustar00rootroot00000000000000450.frag ERROR: 0:63: 'location' : cannot use in a block array where new locations are needed for each block element ERROR: 0:68: 'early_fragment_tests' : can only apply to a standalone qualifier ERROR: 2 compilation errors. No code generated. Shader version: 450 ERROR: node is still EOpNull! 0:8 Function Definition: main( ( global void) 0:8 Function Parameters: 0:10 Sequence 0:10 Sequence 0:10 move second child to first child ( temp 2-component vector of float) 0:10 'v2' ( temp 2-component vector of float) 0:10 dPdxFine ( global 2-component vector of float) 0:10 'in2' ( smooth in 2-component vector of float) 0:11 Sequence 0:11 move second child to first child ( temp 3-component vector of float) 0:11 'v3' ( temp 3-component vector of float) 0:11 dPdyCoarse ( global 3-component vector of float) 0:11 'in3' ( smooth in 3-component vector of float) 0:12 Sequence 0:12 move second child to first child ( temp 4-component vector of float) 0:12 'v4' ( temp 4-component vector of float) 0:12 fwidth ( global 4-component vector of float) 0:12 'in4' ( smooth in 4-component vector of float) 0:13 move second child to first child ( temp 4-component vector of float) 0:13 'v4' ( temp 4-component vector of float) 0:13 dPdyFine ( global 4-component vector of float) 0:13 'in4' ( smooth in 4-component vector of float) 0:14 move second child to first child ( temp 3-component vector of float) 0:14 'v3' ( temp 3-component vector of float) 0:14 dPdyFine ( global 3-component vector of float) 0:14 'in3' ( smooth in 3-component vector of float) 0:15 Sequence 0:15 move second child to first child ( temp float) 0:15 'f' ( temp float) 0:15 add ( temp float) 0:15 add ( temp float) 0:15 dPdx ( global float) 0:15 'in1' ( smooth in float) 0:15 dPdxFine ( global float) 0:15 'in1' ( smooth in float) 0:15 dPdxCoarse ( global float) 0:15 'in1' ( smooth in float) 0:16 move second child to first child ( temp 4-component vector of float) 0:16 'v4' ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 fwidthCoarse ( global 4-component vector of float) 0:16 'in4' ( smooth in 4-component vector of float) 0:16 fwidthFine ( global 4-component vector of float) 0:16 'in4' ( smooth in 4-component vector of float) 0:18 Sequence 0:18 move second child to first child ( temp float) 0:18 'cull' ( temp float) 0:18 direct index ( smooth temp float CullDistance) 0:18 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) 0:18 Constant: 0:18 2 (const int) 0:19 Sequence 0:19 move second child to first child ( temp float) 0:19 'consts' ( temp float) 0:19 Constant: 0:19 20.000000 0:21 Test condition and select ( temp void) 0:21 Condition 0:21 'gl_HelperInvocation' ( in bool HelperInvocation) 0:21 true case 0:22 Pre-Increment ( temp 4-component vector of float) 0:22 'v4' ( temp 4-component vector of float) 0:24 Sequence 0:24 move second child to first child ( temp int) 0:24 'sum' ( temp int) 0:24 Constant: 0:24 32 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 2-component vector of bool) 0:32 'b2' ( temp 2-component vector of bool) 0:32 mix ( global 2-component vector of bool) 0:32 Construct bvec2 ( temp 2-component vector of bool) 0:32 'b1' ( temp bool) 0:32 Construct bvec2 ( temp 2-component vector of bool) 0:32 'b3' ( temp bool) 0:32 Construct bvec2 ( temp 2-component vector of bool) 0:32 'b' ( temp bool) 0:33 Sequence 0:33 move second child to first child ( temp uint) 0:33 'um' ( temp uint) 0:33 mix ( global uint) 0:33 'uin' ( temp uint) 0:33 'uin' ( temp uint) 0:33 'b' ( temp bool) 0:34 Sequence 0:34 move second child to first child ( temp 3-component vector of int) 0:34 'im3' ( temp 3-component vector of int) 0:34 mix ( global 3-component vector of int) 0:34 Construct ivec3 ( temp 3-component vector of int) 0:34 Convert uint to int ( temp int) 0:34 'uin' ( temp uint) 0:34 Construct ivec3 ( temp 3-component vector of int) 0:34 Convert uint to int ( temp int) 0:34 'uin' ( temp uint) 0:34 Construct bvec3 ( temp 3-component vector of bool) 0:34 'b' ( temp bool) 0:42 Function Definition: foo( ( global void) 0:42 Function Parameters: 0:44 Sequence 0:44 Sequence 0:44 move second child to first child ( temp int) 0:44 's' ( temp int) 0:44 textureSamples ( global int) 0:44 's2dms' ( uniform sampler2DMS) 0:45 add second child into first child ( temp int) 0:45 's' ( temp int) 0:45 textureSamples ( global int) 0:45 'us2dmsa' ( uniform usampler2DMSArray) 0:46 add second child into first child ( temp int) 0:46 's' ( temp int) 0:46 imageQuerySamples ( global int) 0:46 'ii2dms' (layout( rgba32i) uniform iimage2DMS) 0:47 add second child into first child ( temp int) 0:47 's' ( temp int) 0:47 imageQuerySamples ( global int) 0:47 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'f' ( temp float) 0:48 imageAtomicExchange ( global float) 0:48 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) 0:48 Convert float to int ( temp 3-component vector of int) 0:48 'in3' ( smooth in 3-component vector of float) 0:48 Constant: 0:48 2 (const int) 0:48 Constant: 0:48 4.500000 0:53 Function Definition: cull(i1; ( global float) 0:53 Function Parameters: 0:53 'i' ( in int) 0:55 Sequence 0:55 Branch: Return with expression 0:55 Test condition and select ( temp float) 0:55 Condition 0:55 Compare Greater Than or Equal ( temp bool) 0:55 'i' ( in int) 0:55 Constant: 0:55 6 (const int) 0:55 true case 0:55 direct index ( smooth temp float CullDistance) 0:55 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) 0:55 Constant: 0:55 5 (const int) 0:55 false case 0:55 indirect index ( smooth temp float CullDistance) 0:55 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) 0:55 'i' ( in int) 0:? Linker Objects 0:? 'in1' ( smooth in float) 0:? 'in2' ( smooth in 2-component vector of float) 0:? 'in3' ( smooth in 3-component vector of float) 0:? 'in4' ( smooth in 4-component vector of float) 0:? 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) 0:? 's2dms' ( uniform sampler2DMS) 0:? 'us2dmsa' ( uniform usampler2DMSArray) 0:? 'ii2dms' (layout( rgba32i) uniform iimage2DMS) 0:? 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) 0:? 'bInst1' ( in block{layout( location=6) in float f, layout( location=7) in float g, layout( location=8) in 4X4 matrix of float m}) 0:? 'bInst2' ( in 3-element array of block{layout( location=12) in float f, layout( location=13) in float g}) 0:? 'f' ( smooth in float) Linked fragment stage: Shader version: 450 ERROR: node is still EOpNull! 0:8 Function Definition: main( ( global void) 0:8 Function Parameters: 0:10 Sequence 0:10 Sequence 0:10 move second child to first child ( temp 2-component vector of float) 0:10 'v2' ( temp 2-component vector of float) 0:10 dPdxFine ( global 2-component vector of float) 0:10 'in2' ( smooth in 2-component vector of float) 0:11 Sequence 0:11 move second child to first child ( temp 3-component vector of float) 0:11 'v3' ( temp 3-component vector of float) 0:11 dPdyCoarse ( global 3-component vector of float) 0:11 'in3' ( smooth in 3-component vector of float) 0:12 Sequence 0:12 move second child to first child ( temp 4-component vector of float) 0:12 'v4' ( temp 4-component vector of float) 0:12 fwidth ( global 4-component vector of float) 0:12 'in4' ( smooth in 4-component vector of float) 0:13 move second child to first child ( temp 4-component vector of float) 0:13 'v4' ( temp 4-component vector of float) 0:13 dPdyFine ( global 4-component vector of float) 0:13 'in4' ( smooth in 4-component vector of float) 0:14 move second child to first child ( temp 3-component vector of float) 0:14 'v3' ( temp 3-component vector of float) 0:14 dPdyFine ( global 3-component vector of float) 0:14 'in3' ( smooth in 3-component vector of float) 0:15 Sequence 0:15 move second child to first child ( temp float) 0:15 'f' ( temp float) 0:15 add ( temp float) 0:15 add ( temp float) 0:15 dPdx ( global float) 0:15 'in1' ( smooth in float) 0:15 dPdxFine ( global float) 0:15 'in1' ( smooth in float) 0:15 dPdxCoarse ( global float) 0:15 'in1' ( smooth in float) 0:16 move second child to first child ( temp 4-component vector of float) 0:16 'v4' ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 fwidthCoarse ( global 4-component vector of float) 0:16 'in4' ( smooth in 4-component vector of float) 0:16 fwidthFine ( global 4-component vector of float) 0:16 'in4' ( smooth in 4-component vector of float) 0:18 Sequence 0:18 move second child to first child ( temp float) 0:18 'cull' ( temp float) 0:18 direct index ( smooth temp float CullDistance) 0:18 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) 0:18 Constant: 0:18 2 (const int) 0:19 Sequence 0:19 move second child to first child ( temp float) 0:19 'consts' ( temp float) 0:19 Constant: 0:19 20.000000 0:21 Test condition and select ( temp void) 0:21 Condition 0:21 'gl_HelperInvocation' ( in bool HelperInvocation) 0:21 true case 0:22 Pre-Increment ( temp 4-component vector of float) 0:22 'v4' ( temp 4-component vector of float) 0:24 Sequence 0:24 move second child to first child ( temp int) 0:24 'sum' ( temp int) 0:24 Constant: 0:24 32 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 2-component vector of bool) 0:32 'b2' ( temp 2-component vector of bool) 0:32 mix ( global 2-component vector of bool) 0:32 Construct bvec2 ( temp 2-component vector of bool) 0:32 'b1' ( temp bool) 0:32 Construct bvec2 ( temp 2-component vector of bool) 0:32 'b3' ( temp bool) 0:32 Construct bvec2 ( temp 2-component vector of bool) 0:32 'b' ( temp bool) 0:33 Sequence 0:33 move second child to first child ( temp uint) 0:33 'um' ( temp uint) 0:33 mix ( global uint) 0:33 'uin' ( temp uint) 0:33 'uin' ( temp uint) 0:33 'b' ( temp bool) 0:34 Sequence 0:34 move second child to first child ( temp 3-component vector of int) 0:34 'im3' ( temp 3-component vector of int) 0:34 mix ( global 3-component vector of int) 0:34 Construct ivec3 ( temp 3-component vector of int) 0:34 Convert uint to int ( temp int) 0:34 'uin' ( temp uint) 0:34 Construct ivec3 ( temp 3-component vector of int) 0:34 Convert uint to int ( temp int) 0:34 'uin' ( temp uint) 0:34 Construct bvec3 ( temp 3-component vector of bool) 0:34 'b' ( temp bool) 0:? Linker Objects 0:? 'in1' ( smooth in float) 0:? 'in2' ( smooth in 2-component vector of float) 0:? 'in3' ( smooth in 3-component vector of float) 0:? 'in4' ( smooth in 4-component vector of float) 0:? 'gl_CullDistance' ( smooth in 6-element array of float CullDistance) 0:? 's2dms' ( uniform sampler2DMS) 0:? 'us2dmsa' ( uniform usampler2DMSArray) 0:? 'ii2dms' (layout( rgba32i) uniform iimage2DMS) 0:? 'i2dmsa' (layout( rgba32f) uniform image2DMSArray) 0:? 'bInst1' ( in block{layout( location=6) in float f, layout( location=7) in float g, layout( location=8) in 4X4 matrix of float m}) 0:? 'bInst2' ( in 3-element array of block{layout( location=12) in float f, layout( location=13) in float g}) 0:? 'f' ( smooth in float) glslang-8.13.3559/Test/baseResults/450.geom.out000066400000000000000000000077631360464450000207210ustar00rootroot00000000000000450.geom ERROR: 0:15: '[' : array index out of range '3' ERROR: 0:15: 'gl_Position' : no such field in structure ERROR: 0:19: 'points' : can only apply to a standalone qualifier ERROR: 3 compilation errors. No code generated. Shader version: 450 invocations = -1 max_vertices = -1 input primitive = triangles output primitive = none ERROR: node is still EOpNull! 0:13 Function Definition: main( ( global void) 0:13 Function Parameters: 0:15 Sequence 0:15 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) 0:15 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) 0:15 Constant: 0:15 3 (const int) 0:16 move second child to first child ( temp float) 0:16 direct index (layout( stream=0) temp float CullDistance) 0:16 gl_CullDistance: direct index for structure (layout( stream=0) out 3-element array of float CullDistance) 0:16 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance}) 0:16 Constant: 0:16 3 (const uint) 0:16 Constant: 0:16 2 (const int) 0:16 direct index ( temp float CullDistance) 0:16 gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance) 0:16 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) 0:16 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) 0:16 Constant: 0:16 1 (const int) 0:16 Constant: 0:16 0 (const int) 0:16 Constant: 0:16 2 (const int) 0:? Linker Objects 0:? 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) 0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance}) 0:? 'f' ( in 3-element array of float) Linked geometry stage: ERROR: Linking geometry stage: At least one shader must specify an output layout primitive ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value) Shader version: 450 invocations = 1 max_vertices = -1 input primitive = triangles output primitive = none ERROR: node is still EOpNull! 0:13 Function Definition: main( ( global void) 0:13 Function Parameters: 0:15 Sequence 0:15 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) 0:15 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) 0:15 Constant: 0:15 3 (const int) 0:16 move second child to first child ( temp float) 0:16 direct index (layout( stream=0) temp float CullDistance) 0:16 gl_CullDistance: direct index for structure (layout( stream=0) out 3-element array of float CullDistance) 0:16 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance}) 0:16 Constant: 0:16 3 (const uint) 0:16 Constant: 0:16 2 (const int) 0:16 direct index ( temp float CullDistance) 0:16 gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance) 0:16 direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance}) 0:16 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) 0:16 Constant: 0:16 1 (const int) 0:16 Constant: 0:16 0 (const int) 0:16 Constant: 0:16 2 (const int) 0:? Linker Objects 0:? 'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance}) 0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance}) 0:? 'f' ( in 3-element array of float) glslang-8.13.3559/Test/baseResults/450.tesc.out000066400000000000000000000075121360464450000207200ustar00rootroot00000000000000450.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}) glslang-8.13.3559/Test/baseResults/450.tese.out000066400000000000000000000076251360464450000207270ustar00rootroot00000000000000450.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) glslang-8.13.3559/Test/baseResults/450.vert.out000066400000000000000000000130241360464450000207350ustar00rootroot00000000000000450.vert ERROR: 0:12: 'out' : cannot be bool ERROR: 0:13: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: outo ERROR: 0:30: '::' : not supported ERROR: 0:31: 'atomicCounterAdd' : no matching overloaded function found ERROR: 0:32: 'atomicCounterSubtract' : no matching overloaded function found ERROR: 0:33: 'atomicCounterMin' : no matching overloaded function found ERROR: 0:34: 'atomicCounterMax' : no matching overloaded function found ERROR: 0:35: 'atomicCounterAnd' : no matching overloaded function found ERROR: 0:36: 'atomicCounterOr' : no matching overloaded function found ERROR: 0:37: 'atomicCounterXor' : no matching overloaded function found ERROR: 0:38: 'atomicCounterExchange' : no matching overloaded function found ERROR: 0:39: 'atomicCounterCompSwap' : no matching overloaded function found ERROR: 0:41: 'gl_BaseVertex' : undeclared identifier ERROR: 0:41: 'gl_BaseInstance' : undeclared identifier ERROR: 0:41: 'gl_DrawID' : undeclared identifier ERROR: 0:41: '=' : cannot convert from ' temp float' to ' temp int' ERROR: 0:44: 'anyInvocation' : no matching overloaded function found ERROR: 0:45: 'allInvocations' : no matching overloaded function found ERROR: 0:46: 'allInvocationsEqual' : no matching overloaded function found ERROR: 0:48: 'extraneous semicolon' : not supported for this version or the enabled extensions ERROR: 0:50: 'location' : cannot apply to uniform or buffer block ERROR: 0:54: 'location' : cannot apply to uniform or buffer block ERROR: 22 compilation errors. No code generated. Shader version: 450 ERROR: node is still EOpNull! 0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:9 Sequence 0:9 move second child to first child ( temp float) 0:9 direct index ( temp float CullDistance) 0:9 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) 0:9 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) 0:9 Constant: 0:9 10 (const uint) 0:9 Constant: 0:9 2 (const int) 0:9 Constant: 0:9 4.500000 0:28 Function Definition: foo( ( global void) 0:28 Function Parameters: 0:? Sequence 0:31 Constant: 0:31 0.000000 0:32 Constant: 0:32 0.000000 0:33 Constant: 0:33 0.000000 0:34 Constant: 0:34 0.000000 0:35 Constant: 0:35 0.000000 0:36 Constant: 0:36 0.000000 0:37 Constant: 0:37 0.000000 0:38 Constant: 0:38 0.000000 0:39 Constant: 0:39 0.000000 0:44 Constant: 0:44 0.000000 0:45 Constant: 0:45 0.000000 0:46 Constant: 0:46 0.000000 0:? Linker Objects 0:? 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) 0:? 'outb' ( smooth out bool) 0:? 'outo' ( smooth out sampler2D) 0:? 'outa' ( smooth out 4-element array of float) 0:? 'outaa' ( smooth out 4-element array of 2-element array of float) 0:? 'outs' ( smooth out structure{ global float f}) 0:? 'outasa' ( smooth out 4-element array of structure{ global float f}) 0:? 'outsa' ( smooth out 4-element array of structure{ global float f}) 0:? 'outSA' ( smooth out structure{ global 4-element array of float f}) 0:? 'outSS' ( smooth out structure{ global float f, global structure{ global float f} s}) 0:? 'aui' (layout( binding=0 offset=0) uniform atomic_uint) 0:? 'ui' ( global uint) 0:? 'anon@1' (layout( location=0 column_major shared) uniform block{layout( column_major shared) uniform int a}) 0:? 'anon@2' (layout( location=0 column_major shared) buffer block{layout( column_major shared) buffer int b}) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) Linked vertex stage: Shader version: 450 ERROR: node is still EOpNull! 0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:9 Sequence 0:9 move second child to first child ( temp float) 0:9 direct index ( temp float CullDistance) 0:9 gl_CullDistance: direct index for structure ( out 3-element array of float CullDistance) 0:9 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) 0:9 Constant: 0:9 10 (const uint) 0:9 Constant: 0:9 2 (const int) 0:9 Constant: 0:9 4.500000 0:? Linker Objects 0:? 'anon@0' ( out block{ out 3-element array of float CullDistance gl_CullDistance}) 0:? 'outb' ( smooth out bool) 0:? 'outo' ( smooth out sampler2D) 0:? 'outa' ( smooth out 4-element array of float) 0:? 'outaa' ( smooth out 4-element array of 2-element array of float) 0:? 'outs' ( smooth out structure{ global float f}) 0:? 'outasa' ( smooth out 4-element array of structure{ global float f}) 0:? 'outsa' ( smooth out 4-element array of structure{ global float f}) 0:? 'outSA' ( smooth out structure{ global 4-element array of float f}) 0:? 'outSS' ( smooth out structure{ global float f, global structure{ global float f} s}) 0:? 'aui' (layout( binding=0 offset=0) uniform atomic_uint) 0:? 'ui' ( global uint) 0:? 'anon@1' (layout( location=0 column_major shared) uniform block{layout( column_major shared) uniform int a}) 0:? 'anon@2' (layout( location=0 column_major shared) buffer block{layout( column_major shared) buffer int b}) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) glslang-8.13.3559/Test/baseResults/460.frag.out000066400000000000000000000072611360464450000207030ustar00rootroot00000000000000460.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}) glslang-8.13.3559/Test/baseResults/460.vert.out000066400000000000000000000031211360464450000207330ustar00rootroot00000000000000460.vert Shader version: 460 0:? Sequence 0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:? Sequence 0:10 move second child to first child ( temp bool) 0:10 'b1' ( temp bool) 0:10 anyInvocation ( global bool) 0:10 'b1' ( temp bool) 0:11 move second child to first child ( temp bool) 0:11 'b1' ( temp bool) 0:11 allInvocations ( global bool) 0:11 'b1' ( temp bool) 0:12 move second child to first child ( temp bool) 0:12 'b1' ( temp bool) 0:12 allInvocationsEqual ( global bool) 0:12 'b1' ( temp bool) 0:? Linker Objects 0:? 'i' ( global int) 0:? 'f' ( global float) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) Linked vertex stage: Shader version: 460 0:? Sequence 0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:? Sequence 0:10 move second child to first child ( temp bool) 0:10 'b1' ( temp bool) 0:10 anyInvocation ( global bool) 0:10 'b1' ( temp bool) 0:11 move second child to first child ( temp bool) 0:11 'b1' ( temp bool) 0:11 allInvocations ( global bool) 0:11 'b1' ( temp bool) 0:12 move second child to first child ( temp bool) 0:12 'b1' ( temp bool) 0:12 allInvocationsEqual ( global bool) 0:12 'b1' ( temp bool) 0:? Linker Objects 0:? 'i' ( global int) 0:? 'f' ( global float) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) glslang-8.13.3559/Test/baseResults/Operations.frag.out000066400000000000000000001557771360464450000225350ustar00rootroot00000000000000Operations.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) glslang-8.13.3559/Test/baseResults/aggOps.frag.out000066400000000000000000000345451360464450000216170ustar00rootroot00000000000000aggOps.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}) glslang-8.13.3559/Test/baseResults/always-discard.frag.out000066400000000000000000000220221360464450000232710ustar00rootroot00000000000000always-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) glslang-8.13.3559/Test/baseResults/always-discard2.frag.out000066400000000000000000000105231360464450000233560ustar00rootroot00000000000000always-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) glslang-8.13.3559/Test/baseResults/array.frag.out000066400000000000000000000451211360464450000215050ustar00rootroot00000000000000array.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) glslang-8.13.3559/Test/baseResults/array100.frag.out000066400000000000000000000344631360464450000217350ustar00rootroot00000000000000array100.frag ERROR: 0:3: 'float' : type requires declaration of default precision qualifier ERROR: 0:3: '' : array size required ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions ERROR: 0:9: 'array in function return type' : not supported for this version or the enabled extensions ERROR: 0:11: 'arrayed constructor' : not supported for this version or the enabled extensions ERROR: 0:21: '[' : array index out of range '2' ERROR: 0:24: 'array assignment' : not supported for this version or the enabled extensions ERROR: 0:25: 'array assignment' : not supported for this version or the enabled extensions ERROR: 0:25: 'assign' : cannot convert from ' global 4-element array of mediump float' to ' global 5-element array of mediump float' ERROR: 0:26: 'array assignment' : not supported for this version or the enabled extensions ERROR: 0:26: 'assign' : cannot convert from ' global 4-element array of mediump float' to ' global unsized 1-element array of mediump float' ERROR: 0:28: 'foo' : no matching overloaded function found ERROR: 0:31: 'arrayed constructor' : not supported for this version or the enabled extensions ERROR: 0:31: 'array comparison' : not supported for this version or the enabled extensions ERROR: 0:35: '[' : array index out of range '5' ERROR: 0:38: '[' : array index out of range '1000' ERROR: 0:39: '[' : index out of range '-1' ERROR: 0:53: 'array in function return type' : not supported for this version or the enabled extensions ERROR: 0:66: 'array assignment' : not supported for this version or the enabled extensions ERROR: 0:68: 'array assignment' : not supported for this version or the enabled extensions ERROR: 0:69: 'array initializer' : not supported for this version or the enabled extensions ERROR: 22 compilation errors. No code generated. Shader version: 100 ERROR: node is still EOpNull! 0:9 Function Definition: foo(f1[5]; ( global 4-element array of mediump float) 0:9 Function Parameters: 0:9 'a' ( in 5-element array of mediump float) 0:11 Sequence 0:11 Branch: Return with expression 0:11 Construct float ( temp 4-element array of float) 0:11 direct index ( temp mediump float) 0:11 'a' ( in 5-element array of mediump float) 0:11 Constant: 0:11 0 (const int) 0:11 direct index ( temp mediump float) 0:11 'a' ( in 5-element array of mediump float) 0:11 Constant: 0:11 1 (const int) 0:11 direct index ( temp mediump float) 0:11 'a' ( in 5-element array of mediump float) 0:11 Constant: 0:11 2 (const int) 0:11 direct index ( temp mediump float) 0:11 'a' ( in 5-element array of mediump float) 0:11 Constant: 0:11 3 (const int) 0:14 Function Definition: bar(f1[5]; ( global void) 0:14 Function Parameters: 0:14 '' ( in 5-element array of mediump float) 0:16 Function Definition: main( ( global void) 0:16 Function Parameters: 0:? Sequence 0:? Sequence 0:21 move second child to first child ( temp mediump float) 0:21 direct index ( temp mediump float) 0:21 'gu' ( temp 2-element array of mediump float) 0:21 Constant: 0:21 2 (const int) 0:21 Constant: 0:21 4.000000 0:24 move second child to first child ( temp 4-element array of mediump float) 0:24 'g4' ( global 4-element array of mediump float) 0:24 Function Call: foo(f1[5]; ( global 4-element array of mediump float) 0:24 'g5' ( global 5-element array of mediump float) 0:25 'g5' ( global 5-element array of mediump float) 0:26 'gu' ( global unsized 1-element array of mediump float) 0:28 Constant: 0:28 0.000000 0:29 Function Call: bar(f1[5]; ( global void) 0:29 'g5' ( global 5-element array of mediump float) 0:31 Test condition and select ( temp void) 0:31 Condition 0:31 Compare Equal ( temp bool) 0:31 Constant: 0:31 1.000000 0:31 2.000000 0:31 3.000000 0:31 4.000000 0:31 'g4' ( global 4-element array of mediump float) 0:31 true case 0:32 move second child to first child ( temp mediump float) 0:32 direct index ( temp mediump float) 0:32 'gu' ( global unsized 1-element array of mediump float) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: 0:32 2.000000 0:35 move second child to first child ( temp mediump float) 0:35 direct index ( temp mediump float) 0:35 'u' ( temp 5-element array of mediump float) 0:35 Constant: 0:35 5 (const int) 0:35 Constant: 0:35 5.000000 0:36 Function Call: foo(f1[5]; ( global 4-element array of mediump float) 0:36 'u' ( temp 5-element array of mediump float) 0:38 move second child to first child ( temp mediump 4-component vector of float) 0:38 direct index ( temp mediump 4-component vector of float FragData) 0:38 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) 0:38 Constant: 0:38 1000 (const int) 0:38 Constant: 0:38 1.000000 0:38 1.000000 0:38 1.000000 0:38 1.000000 0:39 move second child to first child ( temp mediump 4-component vector of float) 0:39 direct index ( temp mediump 4-component vector of float FragData) 0:39 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) 0:39 Constant: 0:39 -1 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp mediump 4-component vector of float) 0:40 direct index ( temp mediump 4-component vector of float FragData) 0:40 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) 0:40 Constant: 0:40 3 (const int) 0:40 Constant: 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:53 Function Definition: bar9( ( global structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:53 Function Parameters: 0:? Sequence 0:56 Branch: Return with expression 0:56 's' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:59 Function Definition: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; ( global void) 0:59 Function Parameters: 0:59 's' ( in structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:63 Function Definition: bar11( ( global void) 0:63 Function Parameters: 0:? Sequence 0:66 move second child to first child ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:66 's1' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:66 's2' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:67 Function Call: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; ( global void) 0:67 's1' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:68 move second child to first child ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:68 's2' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:68 Function Call: bar9( ( global structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:69 Sequence 0:69 move second child to first child ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:69 'initSb' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:69 's1' ( temp structure{ global mediump 4-component vector of float v4, global structure{ global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:? Linker Objects 0:? 'gu' ( global unsized 1-element array of mediump float) 0:? 'g4' ( global 4-element array of mediump float) 0:? 'g5' ( global 5-element array of mediump float) 0:? 'a' ( uniform mediump int) Linked fragment stage: Shader version: 100 ERROR: node is still EOpNull! 0:9 Function Definition: foo(f1[5]; ( global 4-element array of mediump float) 0:9 Function Parameters: 0:9 'a' ( in 5-element array of mediump float) 0:11 Sequence 0:11 Branch: Return with expression 0:11 Construct float ( temp 4-element array of float) 0:11 direct index ( temp mediump float) 0:11 'a' ( in 5-element array of mediump float) 0:11 Constant: 0:11 0 (const int) 0:11 direct index ( temp mediump float) 0:11 'a' ( in 5-element array of mediump float) 0:11 Constant: 0:11 1 (const int) 0:11 direct index ( temp mediump float) 0:11 'a' ( in 5-element array of mediump float) 0:11 Constant: 0:11 2 (const int) 0:11 direct index ( temp mediump float) 0:11 'a' ( in 5-element array of mediump float) 0:11 Constant: 0:11 3 (const int) 0:14 Function Definition: bar(f1[5]; ( global void) 0:14 Function Parameters: 0:14 '' ( in 5-element array of mediump float) 0:16 Function Definition: main( ( global void) 0:16 Function Parameters: 0:? Sequence 0:? Sequence 0:21 move second child to first child ( temp mediump float) 0:21 direct index ( temp mediump float) 0:21 'gu' ( temp 2-element array of mediump float) 0:21 Constant: 0:21 2 (const int) 0:21 Constant: 0:21 4.000000 0:24 move second child to first child ( temp 4-element array of mediump float) 0:24 'g4' ( global 4-element array of mediump float) 0:24 Function Call: foo(f1[5]; ( global 4-element array of mediump float) 0:24 'g5' ( global 5-element array of mediump float) 0:25 'g5' ( global 5-element array of mediump float) 0:26 'gu' ( global 1-element array of mediump float) 0:28 Constant: 0:28 0.000000 0:29 Function Call: bar(f1[5]; ( global void) 0:29 'g5' ( global 5-element array of mediump float) 0:31 Test condition and select ( temp void) 0:31 Condition 0:31 Compare Equal ( temp bool) 0:31 Constant: 0:31 1.000000 0:31 2.000000 0:31 3.000000 0:31 4.000000 0:31 'g4' ( global 4-element array of mediump float) 0:31 true case 0:32 move second child to first child ( temp mediump float) 0:32 direct index ( temp mediump float) 0:32 'gu' ( global 1-element array of mediump float) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: 0:32 2.000000 0:35 move second child to first child ( temp mediump float) 0:35 direct index ( temp mediump float) 0:35 'u' ( temp 5-element array of mediump float) 0:35 Constant: 0:35 5 (const int) 0:35 Constant: 0:35 5.000000 0:36 Function Call: foo(f1[5]; ( global 4-element array of mediump float) 0:36 'u' ( temp 5-element array of mediump float) 0:38 move second child to first child ( temp mediump 4-component vector of float) 0:38 direct index ( temp mediump 4-component vector of float FragData) 0:38 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) 0:38 Constant: 0:38 1000 (const int) 0:38 Constant: 0:38 1.000000 0:38 1.000000 0:38 1.000000 0:38 1.000000 0:39 move second child to first child ( temp mediump 4-component vector of float) 0:39 direct index ( temp mediump 4-component vector of float FragData) 0:39 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) 0:39 Constant: 0:39 -1 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp mediump 4-component vector of float) 0:40 direct index ( temp mediump 4-component vector of float FragData) 0:40 'gl_FragData' ( fragColor 32-element array of mediump 4-component vector of float FragData) 0:40 Constant: 0:40 3 (const int) 0:40 Constant: 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:? Linker Objects 0:? 'gu' ( global 1-element array of mediump float) 0:? 'g4' ( global 4-element array of mediump float) 0:? 'g5' ( global 5-element array of mediump float) 0:? 'a' ( uniform mediump int) glslang-8.13.3559/Test/baseResults/atomic_uint.frag.out000066400000000000000000000130651360464450000227040ustar00rootroot00000000000000atomic_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) glslang-8.13.3559/Test/baseResults/badChars.frag.out000066400000000000000000000014651360464450000221010ustar00rootroot00000000000000badChars.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) glslang-8.13.3559/Test/baseResults/badMacroArgs.frag.out000066400000000000000000000002461360464450000227130ustar00rootroot00000000000000badMacroArgs.frag ERROR: 0:4: 'macro expansion' : Too few args in Macro m ERROR: 0:4: '' : compilation terminated ERROR: 2 compilation errors. No code generated. glslang-8.13.3559/Test/baseResults/comment.frag.out000066400000000000000000000011701360464450000220250ustar00rootroot00000000000000comment.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) glslang-8.13.3559/Test/baseResults/compoundsuffix.frag.hlsl000066400000000000000000000041431360464450000235720ustar00rootroot00000000000000compoundsuffix.frag.hlsl // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/compoundsuffix.vert.glsl000066400000000000000000000007171360464450000236350ustar00rootroot00000000000000compoundsuffix.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 glslang-8.13.3559/Test/baseResults/conditionalDiscard.frag.out000066400000000000000000000043101360464450000241570ustar00rootroot00000000000000conditionalDiscard.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) glslang-8.13.3559/Test/baseResults/constErrors.frag.out000066400000000000000000000045361360464450000227170ustar00rootroot00000000000000constErrors.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 glslang-8.13.3559/Test/baseResults/constFold.frag.out000066400000000000000000000535301360464450000223250ustar00rootroot00000000000000constFold.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:126 Function Definition: foo3( ( global void) 0:126 Function Parameters: 0:128 Sequence 0:128 Sequence 0:128 move second child to first child ( temp 3X2 matrix of float) 0:128 'r32' ( temp 3X2 matrix of float) 0:128 Constant: 0:128 43.000000 0:128 64.000000 0:128 51.000000 0:128 76.000000 0:128 59.000000 0:128 88.000000 0:138 Function Definition: foo4( ( global void) 0:138 Function Parameters: 0:140 Sequence 0:140 Sequence 0:140 move second child to first child ( temp int) 0:140 'a' ( temp int) 0:140 Constant: 0:140 9 (const int) 0:? Linker Objects 0:? 'a' ( const int) 0:? 1 (const int) 0:? 'b' ( const int) 0:? 2 (const int) 0:? 'c' ( const int) 0:? 3 (const int) 0:? 'd' ( const int) 0:? 2 (const int) 0:? 'e' ( const float) 0:? 2.000000 0:? 'f' ( const float) 0:? 6.000000 0:? 'g' ( const float) 0:? 3.000000 0:? 'pytho' ( const 2-component vector of float) 0:? 3.000000 0:? 4.000000 0:? 'inv' ( smooth in 4-component vector of float) 0:? 'FragColor' ( out 4-component vector of float) 0:? 'out2' ( out 2-component vector of float) 0:? 'out3' ( out 4-component vector of float) 0:? 'out4' ( out 4-component vector of float) 0:? 'out5' ( out 4-component vector of int) 0:? 'out6' ( out 3-component vector of float) 0:? 'out7' ( out 4-component vector of float) 0:? 'out8' ( out 4-component vector of float) 0:? 'out9' ( out 4-component vector of float) 0:? 'out10' ( out 4-component vector of float) 0:? 'out11' ( out 4-component vector of float) 0:? 'out12' ( out 2-component vector of int) 0:? 'out13' ( out 3-component vector of uint) 0:? 's' ( const structure{ global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}) 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3 (const int) 0:? 3 (const int) 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:? 7.000000 0:? 8.000000 0:? 'm2' ( const 2X2 matrix of float) 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 'm3' ( const 3X3 matrix of float) 0:? 2.000000 0:? 3.000000 0:? 0.000000 0:? 4.000000 0:? 5.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:? 'mc' ( const int) 0:? 1 (const int) 0:? 'a1' ( global 1-element array of float) 0:? 'a2' ( global 2-element array of float) 0:? 'a3' ( global 4-element array of float) 0:? 'v2' ( const 2-component vector of float) 0:? 1.000000 0:? 2.000000 0:? 'v3' ( const 3-component vector of float) 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 'a4' ( global 2-element array of float) 0:? 'mm2' ( const 2X2 matrix of float) 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 'mm32' ( const 3X2 matrix of float) 0:? 10.000000 0:? 11.000000 0:? 12.000000 0:? 13.000000 0:? 14.000000 0:? 15.000000 0:? 'a0' ( const 3-element array of structure{ global int i, global float f, global bool b}) 0:? 3 (const int) 0:? 2.000000 0:? true (const bool) 0:? 1 (const int) 0:? 5.000000 0:? true (const bool) 0:? 1 (const int) 0:? 9.000000 0:? false (const bool) 0:? 'cval1' ( const bool) 0:? true (const bool) 0:? 'cval2' ( const bool) 0:? false (const bool) 0:? 'cval3' ( const bool) 0:? false (const bool) 0:? 'cval4' ( const bool) 0:? true (const bool) 0:? 'cval5' ( const bool) 0:? false (const bool) 0:? 'cval6' ( const bool) 0:? true (const bool) Linked fragment stage: Shader version: 430 ERROR: node is still EOpNull! 0:28 Function Definition: main( ( global void) 0:28 Function Parameters: 0:30 Sequence 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of float) 0:30 'dx' ( temp 4-component vector of float) 0:30 dPdx ( global 4-component vector of float) 0:30 'inv' ( smooth in 4-component vector of float) 0:37 move second child to first child ( temp 4-component vector of float) 0:37 'FragColor' ( out 4-component vector of float) 0:37 Constant: 0:37 2.000000 0:37 6.000000 0:37 3.000000 0:37 171.887339 0:42 move second child to first child ( temp 4-component vector of float) 0:42 'FragColor' ( out 4-component vector of float) 0:42 Constant: 0:42 3.000000 0:42 2.000000 0:42 0.001593 0:42 -0.999999 0:43 move second child to first child ( temp 2-component vector of float) 0:43 'out2' ( out 2-component vector of float) 0:43 Constant: 0:43 5.600000 0:43 5.800000 0:44 move second child to first child ( temp 4-component vector of float) 0:44 'out3' ( out 4-component vector of float) 0:44 Constant: 0:44 20.085537 0:44 2.302585 0:44 16.000000 0:44 8.000000 0:45 move second child to first child ( temp 4-component vector of float) 0:45 'out4' ( out 4-component vector of float) 0:45 Constant: 0:45 10.000000 0:45 0.100000 0:45 4.700000 0:45 10.900000 0:46 move second child to first child ( temp 4-component vector of int) 0:46 'out5' ( out 4-component vector of int) 0:46 Constant: 0:46 8 (const int) 0:46 17 (const int) 0:46 -1 (const int) 0:46 1 (const int) 0:47 move second child to first child ( temp 3-component vector of float) 0:47 'out6' ( out 3-component vector of float) 0:47 Constant: 0:47 -1.000000 0:47 1.000000 0:47 0.000000 0:48 move second child to first child ( temp 4-component vector of float) 0:48 'out7' ( out 4-component vector of float) 0:48 Constant: 0:48 4.000000 0:48 -4.000000 0:48 5.000000 0:48 -5.000000 0:49 move second child to first child ( temp 4-component vector of float) 0:49 'out8' ( out 4-component vector of float) 0:49 Constant: 0:49 4.000000 0:49 5.000000 0:49 4.000000 0:49 -6.000000 0:50 move second child to first child ( temp 4-component vector of float) 0:50 'out9' ( out 4-component vector of float) 0:50 Constant: 0:50 8.000000 0:50 -4.000000 0:50 0.345000 0:50 0.400000 0:51 move second child to first child ( temp 4-component vector of float) 0:51 'out10' ( out 4-component vector of float) 0:51 Constant: 0:51 1.000000 0:51 1.000000 0:51 0.000000 0:51 0.000000 0:52 move second child to first child ( temp 4-component vector of float) 0:52 'out11' ( out 4-component vector of float) 0:52 Constant: 0:52 0.000000 0:52 0.000000 0:52 1.000000 0:52 0.000000 0:53 move second child to first child ( temp 4-component vector of float) 0:53 'out11' ( out 4-component vector of float) 0:53 Constant: 0:53 1.029639 0:53 0.799690 0:53 0.674741 0:53 1.570696 0:54 move second child to first child ( temp 4-component vector of float) 0:54 'out11' ( out 4-component vector of float) 0:54 Constant: 0:54 0.000000 0:54 0.523599 0:54 1.570796 0:54 1.047198 0:58 move second child to first child ( temp 4-component vector of float) 0:58 'out11' ( out 4-component vector of float) 0:58 Constant: 0:58 1.373401 0:58 0.000000 0:58 0.896055 0:58 -0.380506 0:62 move second child to first child ( temp 2-component vector of int) 0:62 'out12' ( out 2-component vector of int) 0:62 Constant: 0:62 15 (const int) 0:62 16 (const int) 0:63 move second child to first child ( temp 2-component vector of int) 0:63 'out12' ( out 2-component vector of int) 0:63 Constant: 0:63 17 (const int) 0:63 17 (const int) 0:64 move second child to first child ( temp 2-component vector of float) 0:64 'out2' ( out 2-component vector of float) 0:64 Constant: 0:64 871.421253 0:64 4913.000000 0:65 move second child to first child ( temp 3-component vector of uint) 0:65 'out13' ( out 3-component vector of uint) 0:65 Constant: 0:65 10 (const uint) 0:65 20 (const uint) 0:65 30 (const uint) 0:66 move second child to first child ( temp 2-component vector of float) 0:66 'out2' ( out 2-component vector of float) 0:66 Constant: 0:66 3.000000 0:66 6.000000 0:67 move second child to first child ( temp 2-component vector of float) 0:67 'out2' ( out 2-component vector of float) 0:67 Constant: 0:67 3.500000 0:67 4.500000 0:68 move second child to first child ( temp 2-component vector of float) 0:68 'out2' ( out 2-component vector of float) 0:68 Constant: 0:68 0.000000 0:68 1.000000 0:69 move second child to first child ( temp 4-component vector of float) 0:69 'out11' ( out 4-component vector of float) 0:69 Constant: 0:69 0.000000 0:69 0.028000 0:69 0.500000 0:69 1.000000 0:? Linker Objects 0:? 'a' ( const int) 0:? 1 (const int) 0:? 'b' ( const int) 0:? 2 (const int) 0:? 'c' ( const int) 0:? 3 (const int) 0:? 'd' ( const int) 0:? 2 (const int) 0:? 'e' ( const float) 0:? 2.000000 0:? 'f' ( const float) 0:? 6.000000 0:? 'g' ( const float) 0:? 3.000000 0:? 'pytho' ( const 2-component vector of float) 0:? 3.000000 0:? 4.000000 0:? 'inv' ( smooth in 4-component vector of float) 0:? 'FragColor' ( out 4-component vector of float) 0:? 'out2' ( out 2-component vector of float) 0:? 'out3' ( out 4-component vector of float) 0:? 'out4' ( out 4-component vector of float) 0:? 'out5' ( out 4-component vector of int) 0:? 'out6' ( out 3-component vector of float) 0:? 'out7' ( out 4-component vector of float) 0:? 'out8' ( out 4-component vector of float) 0:? 'out9' ( out 4-component vector of float) 0:? 'out10' ( out 4-component vector of float) 0:? 'out11' ( out 4-component vector of float) 0:? 'out12' ( out 2-component vector of int) 0:? 'out13' ( out 3-component vector of uint) 0:? 's' ( const structure{ global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}) 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3 (const int) 0:? 3 (const int) 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:? 7.000000 0:? 8.000000 0:? 'm2' ( const 2X2 matrix of float) 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 'm3' ( const 3X3 matrix of float) 0:? 2.000000 0:? 3.000000 0:? 0.000000 0:? 4.000000 0:? 5.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:? 'mc' ( const int) 0:? 1 (const int) 0:? 'a1' ( global 1-element array of float) 0:? 'a2' ( global 2-element array of float) 0:? 'a3' ( global 4-element array of float) 0:? 'v2' ( const 2-component vector of float) 0:? 1.000000 0:? 2.000000 0:? 'v3' ( const 3-component vector of float) 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 'a4' ( global 2-element array of float) 0:? 'mm2' ( const 2X2 matrix of float) 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 'mm32' ( const 3X2 matrix of float) 0:? 10.000000 0:? 11.000000 0:? 12.000000 0:? 13.000000 0:? 14.000000 0:? 15.000000 0:? 'a0' ( const 3-element array of structure{ global int i, global float f, global bool b}) 0:? 3 (const int) 0:? 2.000000 0:? true (const bool) 0:? 1 (const int) 0:? 5.000000 0:? true (const bool) 0:? 1 (const int) 0:? 9.000000 0:? false (const bool) 0:? 'cval1' ( const bool) 0:? true (const bool) 0:? 'cval2' ( const bool) 0:? false (const bool) 0:? 'cval3' ( const bool) 0:? false (const bool) 0:? 'cval4' ( const bool) 0:? true (const bool) 0:? 'cval5' ( const bool) 0:? false (const bool) 0:? 'cval6' ( const bool) 0:? true (const bool) glslang-8.13.3559/Test/baseResults/constFoldIntMin.frag.out000066400000000000000000000027231360464450000234420ustar00rootroot00000000000000constFoldIntMin.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 glslang-8.13.3559/Test/baseResults/constantUnaryConversion.comp.out000066400000000000000000000547421360464450000253350ustar00rootroot00000000000000constantUnaryConversion.comp Shader version: 450 Requested GL_EXT_shader_explicit_arithmetic_types local_size = (1, 1, 1) 0:? Sequence 0:48 Function Definition: main( ( global void) 0:48 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:? '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:? 252 (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:? 65532 (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:? 4294967292 (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:? 18446744073709551612 (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 Linked compute stage: Shader version: 450 Requested GL_EXT_shader_explicit_arithmetic_types local_size = (1, 1, 1) 0:? Sequence 0:48 Function Definition: main( ( global void) 0:48 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:? '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:? 252 (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:? 65532 (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:? 4294967292 (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:? 18446744073709551612 (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 glslang-8.13.3559/Test/baseResults/conversion.frag.out000066400000000000000000001367221360464450000225640ustar00rootroot00000000000000conversion.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) glslang-8.13.3559/Test/baseResults/cppBad.vert.out000066400000000000000000000013271360464450000216210ustar00rootroot00000000000000cppBad.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 literals not supported 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) glslang-8.13.3559/Test/baseResults/cppBad2.vert.out000066400000000000000000000006371360464450000217060ustar00rootroot00000000000000cppBad2.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 glslang-8.13.3559/Test/baseResults/cppBad3.vert.out000077500000000000000000000006371360464450000217120ustar00rootroot00000000000000cppBad3.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 glslang-8.13.3559/Test/baseResults/cppBad4.vert.out000077500000000000000000000006721360464450000217120ustar00rootroot00000000000000cppBad4.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 glslang-8.13.3559/Test/baseResults/cppBad5.vert.out000077500000000000000000000006371360464450000217140ustar00rootroot00000000000000cppBad5.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 glslang-8.13.3559/Test/baseResults/cppComplexExpr.vert.out000066400000000000000000000201241360464450000233750ustar00rootroot00000000000000cppComplexExpr.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) glslang-8.13.3559/Test/baseResults/cppDeepNest.frag.out000066400000000000000000000007351360464450000226030ustar00rootroot00000000000000cppDeepNest.frag ERROR: 0:66: '#if/#ifdef/#ifndef' : maximum nesting depth exceeded ERROR: 0:66: '' : missing #endif ERROR: 0:66: '' : syntax error, unexpected $end ERROR: 3 compilation errors. No code generated. Shader version: 100 ERROR: node is still EOpNull! 0:? Linker Objects Linked fragment stage: ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point Shader version: 100 ERROR: node is still EOpNull! 0:? Linker Objects glslang-8.13.3559/Test/baseResults/cppIndent.vert.out000066400000000000000000000053501360464450000223540ustar00rootroot00000000000000cppIndent.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) glslang-8.13.3559/Test/baseResults/cppIntMinOverNegativeOne.frag.out000066400000000000000000000003761360464450000252540ustar00rootroot00000000000000cppIntMinOverNegativeOne.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 glslang-8.13.3559/Test/baseResults/cppMerge.frag.out000077500000000000000000000013201360464450000221250ustar00rootroot00000000000000cppMerge.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) glslang-8.13.3559/Test/baseResults/cppNest.vert.out000066400000000000000000000111321360464450000220370ustar00rootroot00000000000000cppNest.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) glslang-8.13.3559/Test/baseResults/cppPassMacroName.frag.out000066400000000000000000000046021360464450000235620ustar00rootroot00000000000000cppPassMacroName.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 glslang-8.13.3559/Test/baseResults/cppRelaxSkipTokensErrors.vert.out000066400000000000000000000003721360464450000254150ustar00rootroot00000000000000cppRelaxSkipTokensErrors.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 glslang-8.13.3559/Test/baseResults/cppSimple.vert.out000066400000000000000000000361001360464450000223610ustar00rootroot00000000000000cppSimple.vert ERROR: 0:77: '#error' : good1 ERROR: 0:81: '#error' : good2 ERROR: 0:85: '#error' : good3 ERROR: 0:89: '#error' : good4 ERROR: 0:93: '#error' : good5 ERROR: 0:97: '#error' : good6 ERROR: 0:100: 'preprocessor evaluation' : expected ')' ERROR: 0:101: '#error' : bad1 ERROR: 0:104: '#if' : unexpected tokens following directive ERROR: 0:105: '#error' : bad2 ERROR: 0:108: 'preprocessor evaluation' : expected ')' ERROR: 0:109: '#error' : bad3 ERROR: 0:112: '#if' : unexpected tokens following directive ERROR: 0:113: '#error' : bad4 ERROR: 0:116: 'preprocessor evaluation' : expected ')' ERROR: 0:117: '#error' : bad5 ERROR: 0:120: '#if' : unexpected tokens following directive ERROR: 0:121: '#error' : bad6 ERROR: 0:122: '#endif' : unexpected tokens following directive ERROR: 0:135: '""' : string literals not supported ERROR: 0:136: '""' : string literals not supported ERROR: 0:136: 'length' : no matching overloaded function found ERROR: 0:136: '=' : cannot convert from ' const float' to ' global int' ERROR: 0:138: ''' : character literals not supported ERROR: 0:138: ''' : character literals not supported ERROR: 0:141: '#define' : names beginning with "GL_" can't be (un)defined: GL_ ERROR: 0:142: '#define' : names beginning with "GL_" can't be (un)defined: GL_Macro WARNING: 0:143: '#define' : names containing consecutive underscores are reserved: __M WARNING: 0:144: '#define' : names containing consecutive underscores are reserved: M__ WARNING: 0:145: '#define' : names containing consecutive underscores are reserved: ABC__DE ERROR: 0:148: '#else' : unexpected tokens following directive ERROR: 0:149: '#elif' : #elif after #else ERROR: 0:155: '#else' : unexpected tokens following directive ERROR: 0:158: '#else' : #else after #else ERROR: 0:160: '#endif' : unexpected tokens following directive ERROR: 0:164: '#define' : duplicate macro parameter ERROR: 0:173: '#define' : Macro redefined; 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, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:69 Constant: 0:69 0 (const uint) 0:69 Construct vec4 ( temp 4-component vector of float) 0:69 'sum' ( global float) 0:124 Sequence 0:124 move second child to first child ( temp int) 0:124 'linenumber' ( global int) 0:124 Constant: 0:124 124 (const int) 0:125 Sequence 0:125 move second child to first child ( temp int) 0:125 'filenumber' ( global int) 0:125 Constant: 0:125 0 (const int) 0:126 Sequence 0:126 move second child to first child ( temp int) 0:126 'version' ( global int) 0:126 Constant: 0:126 400 (const int) 0:130 Sequence 0:130 move second child to first child ( temp float) 0:130 'twoPi' ( global float) 0:130 Constant: 0:130 6.280000 0:199 Sequence 0:199 move second child to first child ( temp int) 0:199 'n' ( global int) 0:199 Constant: 0:199 15 (const int) 0:202 Sequence 0:202 move second child to first child ( temp double) 0:202 'f' ( global double) 0:202 Constant: 0:202 0.000800 12:20031 Function Definition: foo234( ( global void) 12:20031 Function Parameters: 12:20033 Sequence 12:20033 move second child to first child ( temp 4-component vector of float) 12:20033 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) 12:20033 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 12:20033 Constant: 12:20033 0 (const uint) 12:20033 Constant: 12:20033 6.000000 12:20033 6.000000 12:20033 6.000000 12:20033 6.000000 12:9011 Sequence 12:9011 move second child to first child ( temp int) 12:9011 'R1' ( global int) 12:9011 'RECURSE' ( global int) 0:? Linker Objects 0:? 'sum' ( global float) 0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:? 'linenumber' ( global int) 0:? 'filenumber' ( global int) 0:? 'version' ( global int) 0:? 'twoPi' ( global float) 0:? 'a' ( global int) 0:? 'n' ( global int) 0:? 'f' ( global double) 0:? 'RECURSE' ( global int) 0:? 'R1' ( global int) 0:? 'aoeua' ( global int) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) Linked vertex stage: Shader version: 400 ERROR: node is still EOpNull! 0:5 Sequence 0:5 move second child to first child ( temp float) 0:5 'sum' ( global float) 0:5 Constant: 0:5 0.000000 0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:12 Sequence 0:12 add second child into first child ( temp float) 0:12 'sum' ( global float) 0:12 Constant: 0:12 1.000000 0:22 add second child into first child ( temp float) 0:22 'sum' ( global float) 0:22 Constant: 0:22 300.000000 0:37 add second child into first child ( temp float) 0:37 'sum' ( global float) 0:37 Constant: 0:37 600000.000000 0:48 add second child into first child ( temp float) 0:48 'sum' ( global float) 0:48 Constant: 0:48 7000000.000000 0:53 add second child into first child ( temp float) 0:53 'sum' ( global float) 0:53 Constant: 0:53 80000000.000000 0:58 add second child into first child ( temp float) 0:58 'sum' ( global float) 0:58 Constant: 0:58 900000000.000000 0:65 add second child into first child ( temp float) 0:65 'sum' ( global float) 0:65 Constant: 0:65 0.050000 0:69 move second child to first child ( temp 4-component vector of float) 0:69 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) 0:69 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:69 Constant: 0:69 0 (const uint) 0:69 Construct vec4 ( temp 4-component vector of float) 0:69 'sum' ( global float) 0:124 Sequence 0:124 move second child to first child ( temp int) 0:124 'linenumber' ( global int) 0:124 Constant: 0:124 124 (const int) 0:125 Sequence 0:125 move second child to first child ( temp int) 0:125 'filenumber' ( global int) 0:125 Constant: 0:125 0 (const int) 0:126 Sequence 0:126 move second child to first child ( temp int) 0:126 'version' ( global int) 0:126 Constant: 0:126 400 (const int) 0:130 Sequence 0:130 move second child to first child ( temp float) 0:130 'twoPi' ( global float) 0:130 Constant: 0:130 6.280000 0:199 Sequence 0:199 move second child to first child ( temp int) 0:199 'n' ( global int) 0:199 Constant: 0:199 15 (const int) 0:202 Sequence 0:202 move second child to first child ( temp double) 0:202 'f' ( global double) 0:202 Constant: 0:202 0.000800 12:9011 Sequence 12:9011 move second child to first child ( temp int) 12:9011 'R1' ( global int) 12:9011 'RECURSE' ( global int) 0:? Linker Objects 0:? 'sum' ( global float) 0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:? 'linenumber' ( global int) 0:? 'filenumber' ( global int) 0:? 'version' ( global int) 0:? 'twoPi' ( global float) 0:? 'a' ( global int) 0:? 'n' ( global int) 0:? 'f' ( global double) 0:? 'RECURSE' ( global int) 0:? 'R1' ( global int) 0:? 'aoeua' ( global int) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) glslang-8.13.3559/Test/baseResults/dataOut.frag.out000066400000000000000000000023321360464450000217650ustar00rootroot00000000000000dataOut.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) glslang-8.13.3559/Test/baseResults/dataOutIndirect.frag.out000066400000000000000000000023641360464450000234540ustar00rootroot00000000000000dataOutIndirect.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) glslang-8.13.3559/Test/baseResults/dce.frag.out000066400000000000000000000110011360464450000211100ustar00rootroot00000000000000dce.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) glslang-8.13.3559/Test/baseResults/decls.frag.out000066400000000000000000000431171360464450000214640ustar00rootroot00000000000000decls.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) glslang-8.13.3559/Test/baseResults/deepRvalue.frag.out000066400000000000000000000256321360464450000224700ustar00rootroot00000000000000deepRvalue.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) glslang-8.13.3559/Test/baseResults/depthOut.frag.out000066400000000000000000000026111360464450000221600ustar00rootroot00000000000000depthOut.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) glslang-8.13.3559/Test/baseResults/discard-dce.frag.out000066400000000000000000000220271360464450000225310ustar00rootroot00000000000000discard-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) glslang-8.13.3559/Test/baseResults/doWhileLoop.frag.out000066400000000000000000000051051360464450000226120ustar00rootroot00000000000000doWhileLoop.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) glslang-8.13.3559/Test/baseResults/earlyReturnDiscard.frag.out000066400000000000000000000246221360464450000242000ustar00rootroot00000000000000earlyReturnDiscard.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) glslang-8.13.3559/Test/baseResults/empty.frag.out000066400000000000000000000004021360464450000215160ustar00rootroot00000000000000empty.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 glslang-8.13.3559/Test/baseResults/errors.frag.out000066400000000000000000000014321360464450000217000ustar00rootroot00000000000000errors.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 glslang-8.13.3559/Test/baseResults/es-link1.frag.out000066400000000000000000000017551360464450000220170ustar00rootroot00000000000000es-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 glslang-8.13.3559/Test/baseResults/findFunction.frag.out000066400000000000000000000221671360464450000230220ustar00rootroot00000000000000findFunction.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 glslang-8.13.3559/Test/baseResults/flowControl.frag.out000066400000000000000000000072731360464450000227050ustar00rootroot00000000000000flowControl.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) glslang-8.13.3559/Test/baseResults/forLoop.frag.out000066400000000000000000000334571360464450000220200ustar00rootroot00000000000000forLoop.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) glslang-8.13.3559/Test/baseResults/forwardRef.frag.out000066400000000000000000000112401360464450000224630ustar00rootroot00000000000000forwardRef.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) glslang-8.13.3559/Test/baseResults/functionCall.frag.out000066400000000000000000000151771360464450000230200ustar00rootroot00000000000000functionCall.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) glslang-8.13.3559/Test/baseResults/functionSemantics.frag.out000066400000000000000000000353051360464450000240660ustar00rootroot00000000000000functionSemantics.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) glslang-8.13.3559/Test/baseResults/glsl.-D-U.frag.out000066400000000000000000000041051360464450000217660ustar00rootroot00000000000000glsl.-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) glslang-8.13.3559/Test/baseResults/glsl.450.subgroup.frag.out000066400000000000000000001134321360464450000235050ustar00rootroot00000000000000glsl.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) glslang-8.13.3559/Test/baseResults/glsl.450.subgroup.geom.out000066400000000000000000001147471360464450000235270ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroup.tesc.out000066400000000000000000001145401360464450000235250ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroup.tese.out000066400000000000000000001147371360464450000235370ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroup.vert.out000066400000000000000000001150221360464450000235430ustar00rootroot00000000000000glsl.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) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupArithmetic.comp.out000066400000000000000000053242201360464450000255420ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupBallot.comp.out000066400000000000000000006517301360464450000246720ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupBallotNeg.comp.out000066400000000000000000000470501360464450000253160ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupBasic.comp.out000066400000000000000000001232161360464450000244670ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupClustered.comp.out000066400000000000000000016622211360464450000254050ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupClusteredNeg.comp.out000066400000000000000000001562661360464450000260450ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupPartitioned.comp.out000066400000000000000000057267511360464450000257520ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupQuad.comp.out000066400000000000000000013577661360464450000243640ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupShuffle.comp.out000066400000000000000000005744251360464450000250560ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupShuffleRelative.comp.out000066400000000000000000005746471360464450000265600ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.450.subgroupVote.comp.out000066400000000000000000003233521360464450000243660ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.460.subgroup.mesh.out000066400000000000000000003371621360464450000235330ustar00rootroot00000000000000glsl.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) glslang-8.13.3559/Test/baseResults/glsl.460.subgroup.rahit.out000066400000000000000000001271721360464450000237040ustar00rootroot00000000000000glsl.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) glslang-8.13.3559/Test/baseResults/glsl.460.subgroup.rcall.out000066400000000000000000001146031360464450000236650ustar00rootroot00000000000000glsl.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' ( 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: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' ( in uint SubgroupSize) 0:122 'gl_SubgroupInvocationID' ( 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' ( in 4-component vector of uint SubgroupEqMask) 0:133 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) 0:134 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) 0:135 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) 0:136 'gl_SubgroupLtMask' ( 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' ( in uint WarpIDNV) 0:250 'gl_SMIDNV' ( 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' ( in uint WarpIDNV) 0:262 'gl_SMIDNV' ( 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}) glslang-8.13.3559/Test/baseResults/glsl.460.subgroup.rchit.out000066400000000000000000001301401360464450000236730ustar00rootroot00000000000000glsl.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' ( 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: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' ( in uint SubgroupSize) 0:132 'gl_SubgroupInvocationID' ( 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' ( in 4-component vector of uint SubgroupEqMask) 0:143 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) 0:144 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) 0:145 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) 0:146 'gl_SubgroupLtMask' ( 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' ( in uint WarpIDNV) 0:260 'gl_SMIDNV' ( 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' ( in uint WarpIDNV) 0:272 'gl_SMIDNV' ( 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) glslang-8.13.3559/Test/baseResults/glsl.460.subgroup.rgen.out000066400000000000000000001236021360464450000235220ustar00rootroot00000000000000glsl.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' ( 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: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' ( in uint SubgroupSize) 0:126 'gl_SubgroupInvocationID' ( 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' ( in 4-component vector of uint SubgroupEqMask) 0:137 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) 0:138 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) 0:139 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) 0:140 'gl_SubgroupLtMask' ( 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' ( in uint WarpIDNV) 0:254 'gl_SMIDNV' ( 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' ( in uint WarpIDNV) 0:266 'gl_SMIDNV' ( 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}) glslang-8.13.3559/Test/baseResults/glsl.460.subgroup.rint.out000066400000000000000000001250041360464450000235410ustar00rootroot00000000000000glsl.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' ( in uint SubgroupSize) 0:9 'gl_SubgroupInvocationID' ( 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' ( in 4-component vector of uint SubgroupEqMask) 0:24 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) 0:25 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) 0:26 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) 0:27 'gl_SubgroupLtMask' ( 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' ( in uint SubgroupSize) 0:132 'gl_SubgroupInvocationID' ( 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' ( in 4-component vector of uint SubgroupEqMask) 0:143 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) 0:144 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) 0:145 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) 0:146 'gl_SubgroupLtMask' ( 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' ( in uint WarpIDNV) 0:260 'gl_SMIDNV' ( 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' ( in uint WarpIDNV) 0:272 'gl_SMIDNV' ( 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) glslang-8.13.3559/Test/baseResults/glsl.460.subgroup.rmiss.out000066400000000000000000001231431360464450000237240ustar00rootroot00000000000000glsl.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' ( in uint SubgroupSize) 0:9 'gl_SubgroupInvocationID' ( 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' ( in 4-component vector of uint SubgroupEqMask) 0:24 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) 0:25 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) 0:26 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) 0:27 'gl_SubgroupLtMask' ( 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' ( in uint SubgroupSize) 0:126 'gl_SubgroupInvocationID' ( 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' ( in 4-component vector of uint SubgroupEqMask) 0:137 'gl_SubgroupGeMask' ( in 4-component vector of uint SubgroupGeMask) 0:138 'gl_SubgroupGtMask' ( in 4-component vector of uint SubgroupGtMask) 0:139 'gl_SubgroupLeMask' ( in 4-component vector of uint SubgroupLeMask) 0:140 'gl_SubgroupLtMask' ( 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' ( in uint WarpIDNV) 0:254 'gl_SMIDNV' ( 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' ( in uint WarpIDNV) 0:266 'gl_SMIDNV' ( 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) glslang-8.13.3559/Test/baseResults/glsl.460.subgroup.task.out000066400000000000000000001516761360464450000235450ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.entryPointRename.vert.bad.out000066400000000000000000000043321360464450000254170ustar00rootroot00000000000000glsl.entryPointRename.vert ERROR: Source entry point must be "main" // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/glsl.entryPointRename.vert.out000066400000000000000000000042601360464450000246720ustar00rootroot00000000000000glsl.entryPointRename.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/glsl.entryPointRename2.vert.out000066400000000000000000000002461360464450000247540ustar00rootroot00000000000000glsl.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 glslang-8.13.3559/Test/baseResults/glsl.es320.subgroup.frag.out000066400000000000000000000030271360464450000240270ustar00rootroot00000000000000glsl.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) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroup.geom.out000066400000000000000000000055561360464450000240500ustar00rootroot00000000000000glsl.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 highp 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 highp 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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroup.tesc.out000066400000000000000000000053431360464450000240510ustar00rootroot00000000000000glsl.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 highp 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 highp 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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroup.tese.out000066400000000000000000000055421360464450000240540ustar00rootroot00000000000000glsl.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 highp 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 highp 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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroup.vert.out000066400000000000000000000056551360464450000241010ustar00rootroot00000000000000glsl.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 highp 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 highp 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) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupArithmetic.comp.out000066400000000000000000042065061360464450000260730ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupBallot.comp.out000066400000000000000000005121141360464450000252060ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupBallotNeg.comp.out000066400000000000000000000435041360464450000256420ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupBasic.comp.out000066400000000000000000000147151360464450000250160ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupClustered.comp.out000066400000000000000000013515331360464450000257320ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupClusteredNeg.comp.out000066400000000000000000001300441360464450000263530ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupPartitioned.comp.out000066400000000000000000045303051360464450000262610ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupQuad.comp.out000066400000000000000000010662641360464450000246760ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupShuffle.comp.out000066400000000000000000004411751360464450000253750ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupShuffleRelative.comp.out000066400000000000000000004413671360464450000270740ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glsl.es320.subgroupVote.comp.out000066400000000000000000002453421360464450000247140ustar00rootroot00000000000000glsl.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}) glslang-8.13.3559/Test/baseResults/glspv.esversion.vert.out000066400000000000000000000021301360464450000235700ustar00rootroot00000000000000glspv.esversion.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/glspv.frag.out000066400000000000000000000014251360464450000215210ustar00rootroot00000000000000glspv.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 glslang-8.13.3559/Test/baseResults/glspv.version.frag.out000066400000000000000000000014551360464450000232100ustar00rootroot00000000000000glspv.version.frag ERROR: #version: compilation for SPIR-V does not support the compatibility profile // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/glspv.version.vert.out000066400000000000000000000003121360464450000232400ustar00rootroot00000000000000glspv.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 glslang-8.13.3559/Test/baseResults/glspv.vert.out000066400000000000000000000014341360464450000215620ustar00rootroot00000000000000glspv.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 glslang-8.13.3559/Test/baseResults/hlsl.-D-U.frag.out000066400000000000000000000043331360464450000217720ustar00rootroot00000000000000hlsl.-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) glslang-8.13.3559/Test/baseResults/hlsl.PointSize.geom.out000066400000000000000000000137661360464450000232760ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.PointSize.vert.out000066400000000000000000000046561360464450000233250ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.aliasOpaque.frag.out000066400000000000000000000270441360464450000236000ustar00rootroot00000000000000hlsl.aliasOpaque.frag WARNING: AST will form illegal SPIR-V; need to transform to legalize Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:? Sequence 0:13 Branch: Return with expression 0:13 vector-scale ( temp 4-component vector of float) 0:13 a: direct index for structure ( temp float) 0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:13 Constant: 0:13 1 (const int) 0:13 texture ( temp 4-component vector of float) 0:13 Construct combined texture-sampler ( temp sampler2D) 0:13 tex: direct index for structure ( temp texture2D) 0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:13 Constant: 0:13 2 (const int) 0:13 ss: direct index for structure ( temp sampler) 0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:13 Constant: 0:13 0 (const int) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:17 Function Definition: @main( ( temp 4-component vector of float) 0:17 Function Parameters: 0:? Sequence 0:19 move second child to first child ( temp sampler) 0:19 ss: direct index for structure ( temp sampler) 0:19 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:19 Constant: 0:19 0 (const int) 0:19 'gss2' ( uniform sampler) 0:20 move second child to first child ( temp sampler) 0:20 ss: direct index for structure ( temp sampler) 0:20 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:20 Constant: 0:20 0 (const int) 0:20 'gss' ( uniform sampler) 0:21 move second child to first child ( temp texture2D) 0:21 tex: direct index for structure ( temp texture2D) 0:21 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:21 Constant: 0:21 2 (const int) 0:21 'gtex' ( uniform texture2D) 0:22 move second child to first child ( temp float) 0:22 a: direct index for structure ( temp float) 0:22 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:22 Constant: 0:22 1 (const int) 0:22 Constant: 0:22 3.000000 0:28 Branch: Return with expression 0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) 0:28 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:17 Function Definition: main( ( temp void) 0:17 Function Parameters: 0:? Sequence 0:17 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:17 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'gss' ( uniform sampler) 0:? 'gss2' ( uniform sampler) 0:? 'gtex' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:? Sequence 0:13 Branch: Return with expression 0:13 vector-scale ( temp 4-component vector of float) 0:13 a: direct index for structure ( temp float) 0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:13 Constant: 0:13 1 (const int) 0:13 texture ( temp 4-component vector of float) 0:13 Construct combined texture-sampler ( temp sampler2D) 0:13 tex: direct index for structure ( temp texture2D) 0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:13 Constant: 0:13 2 (const int) 0:13 ss: direct index for structure ( temp sampler) 0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:13 Constant: 0:13 0 (const int) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:17 Function Definition: @main( ( temp 4-component vector of float) 0:17 Function Parameters: 0:? Sequence 0:19 move second child to first child ( temp sampler) 0:19 ss: direct index for structure ( temp sampler) 0:19 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:19 Constant: 0:19 0 (const int) 0:19 'gss2' ( uniform sampler) 0:20 move second child to first child ( temp sampler) 0:20 ss: direct index for structure ( temp sampler) 0:20 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:20 Constant: 0:20 0 (const int) 0:20 'gss' ( uniform sampler) 0:21 move second child to first child ( temp texture2D) 0:21 tex: direct index for structure ( temp texture2D) 0:21 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:21 Constant: 0:21 2 (const int) 0:21 'gtex' ( uniform texture2D) 0:22 move second child to first child ( temp float) 0:22 a: direct index for structure ( temp float) 0:22 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:22 Constant: 0:22 1 (const int) 0:22 Constant: 0:22 3.000000 0:28 Branch: Return with expression 0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) 0:28 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex}) 0:17 Function Definition: main( ( temp void) 0:17 Function Parameters: 0:? Sequence 0:17 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:17 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'gss' ( uniform sampler) 0:? 'gss2' ( uniform sampler) 0:? 'gtex' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 47(gss) DescriptorSet 0 Decorate 47(gss) Binding 0 Decorate 51(gtex) DescriptorSet 0 Decorate 51(gtex) Binding 0 Decorate 62(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler 7: TypeFloat 32 8: TypeImage 7(float) 2D sampled format:Unknown 9(OS): TypeStruct 6 7(float) 8 10: TypePointer Function 9(OS) 11: TypeVector 7(float) 4 12: TypeFunction 11(fvec4) 10(ptr) 16: TypeFunction 11(fvec4) 19: TypeInt 32 1 20: 19(int) Constant 1 21: TypePointer Function 7(float) 24: 19(int) Constant 2 25: TypePointer Function 8 28: 19(int) Constant 0 29: TypePointer Function 6 32: TypeSampledImage 8 34: TypeVector 7(float) 2 35: 7(float) Constant 1045220557 36: 7(float) Constant 1050253722 37: 34(fvec2) ConstantComposite 35 36 43: TypePointer UniformConstant 6 44(gss2): 43(ptr) Variable UniformConstant 47(gss): 43(ptr) Variable UniformConstant 50: TypePointer UniformConstant 8 51(gtex): 50(ptr) Variable UniformConstant 54: 7(float) Constant 1077936128 61: TypePointer Output 11(fvec4) 62(@entryPointOutput): 61(ptr) Variable Output 4(main): 2 Function None 3 5: Label 63: 11(fvec4) FunctionCall 17(@main() Store 62(@entryPointOutput) 63 Return FunctionEnd 14(osCall(struct-OS-p1-f1-t211;): 11(fvec4) Function None 12 13(s): 10(ptr) FunctionParameter 15: Label 22: 21(ptr) AccessChain 13(s) 20 23: 7(float) Load 22 26: 25(ptr) AccessChain 13(s) 24 27: 8 Load 26 30: 29(ptr) AccessChain 13(s) 28 31: 6 Load 30 33: 32 SampledImage 27 31 38: 11(fvec4) ImageSampleImplicitLod 33 37 39: 11(fvec4) VectorTimesScalar 38 23 ReturnValue 39 FunctionEnd 17(@main(): 11(fvec4) Function None 16 18: Label 42(os): 10(ptr) Variable Function 56(param): 10(ptr) Variable Function 45: 6 Load 44(gss2) 46: 29(ptr) AccessChain 42(os) 28 Store 46 45 48: 6 Load 47(gss) 49: 29(ptr) AccessChain 42(os) 28 Store 49 48 52: 8 Load 51(gtex) 53: 25(ptr) AccessChain 42(os) 24 Store 53 52 55: 21(ptr) AccessChain 42(os) 20 Store 55 54 57: 9(OS) Load 42(os) Store 56(param) 57 58: 11(fvec4) FunctionCall 14(osCall(struct-OS-p1-f1-t211;) 56(param) ReturnValue 58 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.amend.frag.out000066400000000000000000000331711360464450000224160ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.array.flatten.frag.out000066400000000000000000000745401360464450000241110ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 45(g_samp[1]) DescriptorSet 0 Decorate 45(g_samp[1]) Binding 0 Decorate 65(g_samp[0]) DescriptorSet 0 Decorate 65(g_samp[0]) Binding 0 Decorate 70(g_samp[2]) DescriptorSet 0 Decorate 70(g_samp[2]) Binding 0 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 0 Decorate 88 ArrayStride 48 Decorate 89 ArrayStride 48 Decorate 90 ArrayStride 16 MemberDecorate 91($Global) 0 RowMajor MemberDecorate 91($Global) 0 Offset 0 MemberDecorate 91($Global) 0 MatrixStride 16 MemberDecorate 91($Global) 1 RowMajor MemberDecorate 91($Global) 1 Offset 192 MemberDecorate 91($Global) 1 MatrixStride 16 MemberDecorate 91($Global) 2 Offset 384 Decorate 91($Global) Block Decorate 93 DescriptorSet 0 Decorate 93 Binding 0 Decorate 134(ps_output.color) Location 0 Decorate 137(g_tex_explicit[0]) DescriptorSet 0 Decorate 137(g_tex_explicit[0]) Binding 1 Decorate 138(g_tex_explicit[1]) DescriptorSet 0 Decorate 138(g_tex_explicit[1]) Binding 2 Decorate 139(g_tex_explicit[2]) DescriptorSet 0 Decorate 139(g_tex_explicit[2]) Binding 3 Decorate 140(g_samp_explicit[0]) DescriptorSet 0 Decorate 140(g_samp_explicit[0]) Binding 5 Decorate 141(g_samp_explicit[1]) DescriptorSet 0 Decorate 141(g_samp_explicit[1]) Binding 6 Decorate 142(g_samp_explicit[2]) DescriptorSet 0 Decorate 142(g_samp_explicit[2]) Binding 7 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeFunction 7(fvec4) 11: TypeImage 6(float) 1D sampled format:Unknown 12: TypeInt 32 0 13: 12(int) Constant 3 14: TypeArray 11 13 15: TypePointer Function 14 16: TypeSampler 17: TypeArray 16 13 18: TypePointer Function 17 19: TypeFunction 7(fvec4) 15(ptr) 18(ptr) 24(PS_OUTPUT): TypeStruct 7(fvec4) 25: TypePointer Function 24(PS_OUTPUT) 26: TypeFunction 2 25(ptr) 30: TypeInt 32 1 31: 12(int) Constant 5 32: TypeArray 30(int) 31 33: TypePointer Private 32 34(not_flattened_a): 33(ptr) Variable Private 35: 30(int) Constant 1 36: 30(int) Constant 2 37: 30(int) Constant 3 38: 30(int) Constant 4 39: 30(int) Constant 5 40: 32 ConstantComposite 35 36 37 38 39 41: TypePointer UniformConstant 11 42(g_tex[1]): 41(ptr) Variable UniformConstant 44: TypePointer UniformConstant 16 45(g_samp[1]): 44(ptr) Variable UniformConstant 47: TypeSampledImage 11 49: 6(float) Constant 1045220557 53: TypePointer Function 11 56: TypePointer Function 16 64: 30(int) Constant 0 65(g_samp[0]): 44(ptr) Variable UniformConstant 70(g_samp[2]): 44(ptr) Variable UniformConstant 74(g_tex[0]): 41(ptr) Variable UniformConstant 79(g_tex[2]): 41(ptr) Variable UniformConstant 82: 12(int) Constant 4 83: TypeArray 6(float) 82 84: TypePointer Function 83 86: TypeVector 6(float) 3 87: TypeMatrix 86(fvec3) 3 88: TypeArray 87 82 89: TypeArray 87 82 90: TypeArray 6(float) 82 91($Global): TypeStruct 88 89 90 92: TypePointer Uniform 91($Global) 93: 92(ptr) Variable Uniform 94: TypePointer Uniform 90 98: TypePointer Function 6(float) 127: TypePointer Function 7(fvec4) 133: TypePointer Output 7(fvec4) 134(ps_output.color): 133(ptr) Variable Output 137(g_tex_explicit[0]): 41(ptr) Variable UniformConstant 138(g_tex_explicit[1]): 41(ptr) Variable UniformConstant 139(g_tex_explicit[2]): 41(ptr) Variable UniformConstant 140(g_samp_explicit[0]): 44(ptr) Variable UniformConstant 141(g_samp_explicit[1]): 44(ptr) Variable UniformConstant 142(g_samp_explicit[2]): 44(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 129(ps_output): 25(ptr) Variable Function 130(param): 25(ptr) Variable Function Store 34(not_flattened_a) 40 131: 2 FunctionCall 28(@main(struct-PS_OUTPUT-vf41;) 130(param) 132:24(PS_OUTPUT) Load 130(param) Store 129(ps_output) 132 135: 127(ptr) AccessChain 129(ps_output) 64 136: 7(fvec4) Load 135 Store 134(ps_output.color) 136 Return FunctionEnd 9(TestFn1(): 7(fvec4) Function None 8 10: Label 43: 11 Load 42(g_tex[1]) 46: 16 Load 45(g_samp[1]) 48: 47 SampledImage 43 46 50: 7(fvec4) ImageSampleImplicitLod 48 49 ReturnValue 50 FunctionEnd 22(TestFn2(t11[3];p1[3];): 7(fvec4) Function None 19 20(l_tex): 15(ptr) FunctionParameter 21(l_samp): 18(ptr) FunctionParameter 23: Label 54: 53(ptr) AccessChain 20(l_tex) 36 55: 11 Load 54 57: 56(ptr) AccessChain 21(l_samp) 36 58: 16 Load 57 59: 47 SampledImage 55 58 60: 7(fvec4) ImageSampleImplicitLod 59 49 ReturnValue 60 FunctionEnd 28(@main(struct-PS_OUTPUT-vf41;): 2 Function None 26 27(ps_output): 25(ptr) FunctionParameter 29: Label 63(local_sampler_array): 18(ptr) Variable Function 73(local_texture_array): 15(ptr) Variable Function 85(local_float_array): 84(ptr) Variable Function 107(aggShadow): 15(ptr) Variable Function 114(aggShadow): 18(ptr) Variable Function 121(param): 15(ptr) Variable Function 123(param): 18(ptr) Variable Function 66: 16 Load 65(g_samp[0]) 67: 56(ptr) AccessChain 63(local_sampler_array) 64 Store 67 66 68: 16 Load 45(g_samp[1]) 69: 56(ptr) AccessChain 63(local_sampler_array) 35 Store 69 68 71: 16 Load 70(g_samp[2]) 72: 56(ptr) AccessChain 63(local_sampler_array) 36 Store 72 71 75: 11 Load 74(g_tex[0]) 76: 53(ptr) AccessChain 73(local_texture_array) 64 Store 76 75 77: 11 Load 42(g_tex[1]) 78: 53(ptr) AccessChain 73(local_texture_array) 35 Store 78 77 80: 11 Load 79(g_tex[2]) 81: 53(ptr) AccessChain 73(local_texture_array) 36 Store 81 80 95: 94(ptr) AccessChain 93 36 96: 90 Load 95 97: 6(float) CompositeExtract 96 0 99: 98(ptr) AccessChain 85(local_float_array) 64 Store 99 97 100: 6(float) CompositeExtract 96 1 101: 98(ptr) AccessChain 85(local_float_array) 35 Store 101 100 102: 6(float) CompositeExtract 96 2 103: 98(ptr) AccessChain 85(local_float_array) 36 Store 103 102 104: 6(float) CompositeExtract 96 3 105: 98(ptr) AccessChain 85(local_float_array) 37 Store 105 104 106: 7(fvec4) FunctionCall 9(TestFn1() 108: 11 Load 74(g_tex[0]) 109: 53(ptr) AccessChain 107(aggShadow) 64 Store 109 108 110: 11 Load 42(g_tex[1]) 111: 53(ptr) AccessChain 107(aggShadow) 35 Store 111 110 112: 11 Load 79(g_tex[2]) 113: 53(ptr) AccessChain 107(aggShadow) 36 Store 113 112 115: 16 Load 65(g_samp[0]) 116: 56(ptr) AccessChain 114(aggShadow) 64 Store 116 115 117: 16 Load 45(g_samp[1]) 118: 56(ptr) AccessChain 114(aggShadow) 35 Store 118 117 119: 16 Load 70(g_samp[2]) 120: 56(ptr) AccessChain 114(aggShadow) 36 Store 120 119 122: 14 Load 107(aggShadow) Store 121(param) 122 124: 17 Load 114(aggShadow) Store 123(param) 124 125: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 121(param) 123(param) 126: 7(fvec4) FAdd 106 125 128: 127(ptr) AccessChain 27(ps_output) 64 Store 128 126 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.array.frag.out000066400000000000000000000662251360464450000224560ustar00rootroot00000000000000hlsl.array.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Sequence 0:7 move second child to first child ( temp 4-component vector of float) 0:7 'C' ( global 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:11 Sequence 0:11 move second child to first child ( temp 2-element array of 4-component vector of float) 0:11 'c2' ( global 2-element array of 4-component vector of float) 0:11 Construct vec4 ( temp 2-element array of 4-component vector of float) 0:11 'C' ( global 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:14 Function Definition: @PixelShaderFunction(i1;vf4[3]; ( temp 4-component vector of float) 0:14 Function Parameters: 0:14 'i' ( in int) 0:14 'input' ( in 3-element array of 4-component vector of float) 0:? Sequence 0:15 Sequence 0:15 move second child to first child ( temp 10-element array of 4-component vector of float) 0:15 'b' ( temp 10-element array of 4-component vector of float) 0:15 Construct vec4 ( temp 10-element array of 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:16 Sequence 0:16 move second child to first child ( temp 4-component vector of float) 0:16 'tmp' ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 'C' ( global 4-component vector of float) 0:16 direct index ( temp 4-component vector of float) 0:16 a1: direct index for structure ( uniform 1-element array of 4-component vector of float) 0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:16 Constant: 0:16 2 (const uint) 0:16 Constant: 0:16 0 (const int) 0:16 Constant: 0:16 1.000000 0:16 2.000000 0:16 3.000000 0:16 4.000000 0:16 indirect index ( temp 4-component vector of float) 0:16 a2: direct index for structure ( uniform 2-element array of 4-component vector of float) 0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:16 Constant: 0:16 3 (const uint) 0:16 'i' ( in int) 0:16 indirect index ( temp 4-component vector of float) 0:16 'c2' ( global 2-element array of 4-component vector of float) 0:16 'i' ( in int) 0:17 Branch: Return with expression 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 direct index ( temp 4-component vector of float) 0:17 a: direct index for structure ( uniform 4-element array of 4-component vector of float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:17 Constant: 0:17 0 (const uint) 0:17 Constant: 0:17 1 (const int) 0:17 indirect index ( temp 4-component vector of float) 0:17 a: direct index for structure ( uniform 4-element array of 4-component vector of float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:17 Constant: 0:17 0 (const uint) 0:17 'i' ( in int) 0:17 direct index ( temp 4-component vector of float) 0:17 'input' ( in 3-element array of 4-component vector of float) 0:17 Constant: 0:17 2 (const int) 0:17 indirect index ( temp 4-component vector of float) 0:17 'input' ( in 3-element array of 4-component vector of float) 0:17 'i' ( in int) 0:17 direct index ( temp 4-component vector of float) 0:17 'b' ( temp 10-element array of 4-component vector of float) 0:17 Constant: 0:17 5 (const int) 0:17 indirect index ( temp 4-component vector of float) 0:17 'b' ( temp 10-element array of 4-component vector of float) 0:17 'i' ( in int) 0:17 indirect index ( temp 4-component vector of float) 0:17 m: direct index for structure ( temp 7-element array of 4-component vector of float) 0:17 indirect index ( temp structure{ temp 7-element array of 4-component vector of float m}) 0:17 s: direct index for structure ( uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m}) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:17 Constant: 0:17 1 (const uint) 0:17 'i' ( in int) 0:17 Constant: 0:17 0 (const int) 0:17 'i' ( in int) 0:17 'tmp' ( temp 4-component vector of float) 0:14 Function Definition: PixelShaderFunction( ( temp void) 0:14 Function Parameters: 0:? Sequence 0:14 move second child to first child ( temp int) 0:? 'i' ( temp int) 0:? 'i' (layout( location=0) flat in int) 0:14 move second child to first child ( temp 3-element array of 4-component vector of float) 0:? 'input' ( temp 3-element array of 4-component vector of float) 0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float) 0:14 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:14 Function Call: @PixelShaderFunction(i1;vf4[3]; ( temp 4-component vector of float) 0:? 'i' ( temp int) 0:? 'input' ( temp 3-element array of 4-component vector of float) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:? 'C' ( global 4-component vector of float) 0:? 'c1' ( const 1-element array of 4-component vector of float) 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 'c2' ( global 2-element array of 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'i' (layout( location=0) flat in int) 0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Sequence 0:7 move second child to first child ( temp 4-component vector of float) 0:7 'C' ( global 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:11 Sequence 0:11 move second child to first child ( temp 2-element array of 4-component vector of float) 0:11 'c2' ( global 2-element array of 4-component vector of float) 0:11 Construct vec4 ( temp 2-element array of 4-component vector of float) 0:11 'C' ( global 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:14 Function Definition: @PixelShaderFunction(i1;vf4[3]; ( temp 4-component vector of float) 0:14 Function Parameters: 0:14 'i' ( in int) 0:14 'input' ( in 3-element array of 4-component vector of float) 0:? Sequence 0:15 Sequence 0:15 move second child to first child ( temp 10-element array of 4-component vector of float) 0:15 'b' ( temp 10-element array of 4-component vector of float) 0:15 Construct vec4 ( temp 10-element array of 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:15 'C' ( global 4-component vector of float) 0:16 Sequence 0:16 move second child to first child ( temp 4-component vector of float) 0:16 'tmp' ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 'C' ( global 4-component vector of float) 0:16 direct index ( temp 4-component vector of float) 0:16 a1: direct index for structure ( uniform 1-element array of 4-component vector of float) 0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:16 Constant: 0:16 2 (const uint) 0:16 Constant: 0:16 0 (const int) 0:16 Constant: 0:16 1.000000 0:16 2.000000 0:16 3.000000 0:16 4.000000 0:16 indirect index ( temp 4-component vector of float) 0:16 a2: direct index for structure ( uniform 2-element array of 4-component vector of float) 0:16 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:16 Constant: 0:16 3 (const uint) 0:16 'i' ( in int) 0:16 indirect index ( temp 4-component vector of float) 0:16 'c2' ( global 2-element array of 4-component vector of float) 0:16 'i' ( in int) 0:17 Branch: Return with expression 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 add ( temp 4-component vector of float) 0:17 direct index ( temp 4-component vector of float) 0:17 a: direct index for structure ( uniform 4-element array of 4-component vector of float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:17 Constant: 0:17 0 (const uint) 0:17 Constant: 0:17 1 (const int) 0:17 indirect index ( temp 4-component vector of float) 0:17 a: direct index for structure ( uniform 4-element array of 4-component vector of float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:17 Constant: 0:17 0 (const uint) 0:17 'i' ( in int) 0:17 direct index ( temp 4-component vector of float) 0:17 'input' ( in 3-element array of 4-component vector of float) 0:17 Constant: 0:17 2 (const int) 0:17 indirect index ( temp 4-component vector of float) 0:17 'input' ( in 3-element array of 4-component vector of float) 0:17 'i' ( in int) 0:17 direct index ( temp 4-component vector of float) 0:17 'b' ( temp 10-element array of 4-component vector of float) 0:17 Constant: 0:17 5 (const int) 0:17 indirect index ( temp 4-component vector of float) 0:17 'b' ( temp 10-element array of 4-component vector of float) 0:17 'i' ( in int) 0:17 indirect index ( temp 4-component vector of float) 0:17 m: direct index for structure ( temp 7-element array of 4-component vector of float) 0:17 indirect index ( temp structure{ temp 7-element array of 4-component vector of float m}) 0:17 s: direct index for structure ( uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m}) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:17 Constant: 0:17 1 (const uint) 0:17 'i' ( in int) 0:17 Constant: 0:17 0 (const int) 0:17 'i' ( in int) 0:17 'tmp' ( temp 4-component vector of float) 0:14 Function Definition: PixelShaderFunction( ( temp void) 0:14 Function Parameters: 0:? Sequence 0:14 move second child to first child ( temp int) 0:? 'i' ( temp int) 0:? 'i' (layout( location=0) flat in int) 0:14 move second child to first child ( temp 3-element array of 4-component vector of float) 0:? 'input' ( temp 3-element array of 4-component vector of float) 0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float) 0:14 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:14 Function Call: @PixelShaderFunction(i1;vf4[3]; ( temp 4-component vector of float) 0:? 'i' ( temp int) 0:? 'input' ( temp 3-element array of 4-component vector of float) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-element array of 4-component vector of float a, uniform 11-element array of structure{ temp 7-element array of 4-component vector of float m} s, uniform 1-element array of 4-component vector of float a1, uniform 2-element array of 4-component vector of float a2}) 0:? 'C' ( global 4-component vector of float) 0:? 'c1' ( const 1-element array of 4-component vector of float) 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 'c2' ( global 2-element array of 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'i' (layout( location=0) flat in int) 0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.array.implicit-size.frag.out000066400000000000000000000264771360464450000252440ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.array.multidim.frag.out000066400000000000000000000266441360464450000243020ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.assoc.frag.out000066400000000000000000000310111360464450000224310ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.attribute.expression.comp.out000066400000000000000000000142751360464450000255560ustar00rootroot00000000000000hlsl.attribute.expression.comp Shader version: 500 local_size = (4, 6, 8) 0:? Sequence 0:9 Function Definition: @main( ( temp 4-component vector of float) 0:9 Function Parameters: 0:? Sequence 0:11 Sequence 0:11 move second child to first child ( temp int) 0:11 'x' ( temp int) 0:11 Constant: 0:11 0 (const int) 0:11 Loop with condition tested first: Unroll 0:11 Loop Condition 0:11 Compare Less Than ( temp bool) 0:11 'x' ( temp int) 0:11 bound: direct index for structure ( uniform int) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) 0:11 Constant: 0:11 0 (const uint) 0:11 No loop body 0:11 Loop Terminal Expression 0:11 Pre-Increment ( temp int) 0:11 'x' ( temp int) 0:14 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:9 Function Definition: main( ( temp void) 0:9 Function Parameters: 0:? Sequence 0:9 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:9 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked compute stage: Shader version: 500 local_size = (4, 6, 8) 0:? Sequence 0:9 Function Definition: @main( ( temp 4-component vector of float) 0:9 Function Parameters: 0:? Sequence 0:11 Sequence 0:11 move second child to first child ( temp int) 0:11 'x' ( temp int) 0:11 Constant: 0:11 0 (const int) 0:11 Loop with condition tested first: Unroll 0:11 Loop Condition 0:11 Compare Less Than ( temp bool) 0:11 'x' ( temp int) 0:11 bound: direct index for structure ( uniform int) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) 0:11 Constant: 0:11 0 (const uint) 0:11 No loop body 0:11 Loop Terminal Expression 0:11 Pre-Increment ( temp int) 0:11 'x' ( temp int) 0:14 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:9 Function Definition: main( ( temp void) 0:9 Function Parameters: 0:? Sequence 0:9 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:9 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int bound}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" 37 ExecutionMode 4 LocalSize 4 6 8 Source HLSL 500 Name 4 "main" Name 9 "@main(" Name 13 "x" Name 21 "$Global" MemberName 21($Global) 0 "bound" Name 23 "" Name 37 "@entryPointOutput" MemberDecorate 21($Global) 0 Offset 0 Decorate 21($Global) Block Decorate 23 DescriptorSet 0 Decorate 23 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: TypeInt 32 1 12: TypePointer Function 11(int) 14: 11(int) Constant 0 21($Global): TypeStruct 11(int) 22: TypePointer Uniform 21($Global) 23: 22(ptr) Variable Uniform 24: TypePointer Uniform 11(int) 27: TypeBool 30: 11(int) Constant 1 32: 6(float) Constant 0 33: 7(fvec4) ConstantComposite 32 32 32 32 36: TypePointer Output 7(fvec4) 37(@entryPointOutput): 36(ptr) Variable Output 4(main): 2 Function None 3 5: Label 38: 7(fvec4) FunctionCall 9(@main() Store 37(@entryPointOutput) 38 Return FunctionEnd 9(@main(): 7(fvec4) Function None 8 10: Label 13(x): 12(ptr) Variable Function Store 13(x) 14 Branch 15 15: Label LoopMerge 17 18 Unroll Branch 19 19: Label 20: 11(int) Load 13(x) 25: 24(ptr) AccessChain 23 14 26: 11(int) Load 25 28: 27(bool) SLessThan 20 26 BranchConditional 28 16 17 16: Label Branch 18 18: Label 29: 11(int) Load 13(x) 31: 11(int) IAdd 29 30 Store 13(x) 31 Branch 15 17: Label ReturnValue 33 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.attribute.frag.out000066400000000000000000000101101360464450000233210ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.attributeC11.frag.out000066400000000000000000000231041360464450000235750ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out000066400000000000000000000125771360464450000256170ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.automap.frag.out000066400000000000000000000036731360464450000230040ustar00rootroot00000000000000hlsl.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 0, index -1, binding 14, stages 16, numMembers 1 t5: offset -1, type ffffffff, size 0, index -1, binding 15, stages 16, numMembers 1 u5: offset -1, type ffffffff, size 0, index -1, binding 45, stages 16, numMembers 1 u6: offset -1, type ffffffff, size 0, index -1, binding 46, stages 16, numMembers 1 cb: offset -1, type ffffffff, size 4, index -1, binding 51, stages 16, numMembers 1 tb: offset -1, type ffffffff, size 4, index -1, 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 glslang-8.13.3559/Test/baseResults/hlsl.basic.comp.out000066400000000000000000000124021360464450000224240ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.basic.geom.out000066400000000000000000000346711360464450000224310ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.boolConv.vert.out000066400000000000000000000322261360464450000231540ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.buffer.frag.out000066400000000000000000000531441360464450000226050ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 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 0 MemberDecorate 43(cbufName) 0 Offset 0 MemberDecorate 43(cbufName) 1 Offset 20 Decorate 43(cbufName) Block Decorate 45 DescriptorSet 0 Decorate 45 Binding 0 MemberDecorate 50(tbufName) 0 NonWritable MemberDecorate 50(tbufName) 0 Offset 16 MemberDecorate 50(tbufName) 1 NonWritable MemberDecorate 50(tbufName) 1 Offset 48 MemberDecorate 50(tbufName) 2 NonWritable MemberDecorate 50(tbufName) 2 Offset 60 MemberDecorate 50(tbufName) 3 NonWritable MemberDecorate 50(tbufName) 3 Offset 64 MemberDecorate 50(tbufName) 4 NonWritable MemberDecorate 50(tbufName) 4 Offset 68 MemberDecorate 50(tbufName) 5 NonWritable MemberDecorate 50(tbufName) 5 Offset 72 MemberDecorate 50(tbufName) 6 NonWritable MemberDecorate 50(tbufName) 6 Offset 76 MemberDecorate 50(tbufName) 7 NonWritable MemberDecorate 50(tbufName) 7 Offset 128 MemberDecorate 50(tbufName) 8 RowMajor MemberDecorate 50(tbufName) 8 NonWritable MemberDecorate 50(tbufName) 8 Offset 112 MemberDecorate 50(tbufName) 8 MatrixStride 16 MemberDecorate 50(tbufName) 9 ColMajor MemberDecorate 50(tbufName) 9 NonWritable MemberDecorate 50(tbufName) 9 Offset 176 MemberDecorate 50(tbufName) 9 MatrixStride 16 MemberDecorate 50(tbufName) 10 RowMajor MemberDecorate 50(tbufName) 10 NonWritable MemberDecorate 50(tbufName) 10 Offset 240 MemberDecorate 50(tbufName) 10 MatrixStride 16 MemberDecorate 50(tbufName) 11 RowMajor MemberDecorate 50(tbufName) 11 NonWritable MemberDecorate 50(tbufName) 11 Offset 304 MemberDecorate 50(tbufName) 11 MatrixStride 16 Decorate 50(tbufName) BufferBlock Decorate 52 DescriptorSet 0 Decorate 52 Binding 8 Decorate 65(input) BuiltIn FragCoord Decorate 68(@entryPointOutput.a) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeFunction 6(float) 10: TypeVector 6(float) 4 11: TypePointer Function 10(fvec4) 12(id): TypeStruct 10(fvec4) 13: TypeFunction 12(id) 11(ptr) 17: 6(float) Constant 1065353216 20: TypePointer Function 12(id) 22: TypeInt 32 1 23: 22(int) Constant 0 24(cbufName2): TypeStruct 10(fvec4) 25: TypePointer Uniform 24(cbufName2) 26: 25(ptr) Variable Uniform 27: TypePointer Uniform 10(fvec4) 31(buf1): TypeStruct 10(fvec4) 32: TypePointer Uniform 31(buf1) 33: 32(ptr) Variable Uniform 37(buf2): TypeStruct 10(fvec4) 38: TypePointer Uniform 37(buf2) 39: 38(ptr) Variable Uniform 43(cbufName): TypeStruct 10(fvec4) 22(int) 44: TypePointer Uniform 43(cbufName) 45: 44(ptr) Variable Uniform 49: TypeMatrix 10(fvec4) 3 50(tbufName): TypeStruct 10(fvec4) 22(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 49 49 49 49 51: TypePointer Uniform 50(tbufName) 52: 51(ptr) Variable Uniform 64: TypePointer Input 10(fvec4) 65(input): 64(ptr) Variable Input 67: TypePointer Output 10(fvec4) 68(@entryPointOutput.a): 67(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 63(input): 11(ptr) Variable Function 69(param): 11(ptr) Variable Function 66: 10(fvec4) Load 65(input) Store 63(input) 66 70: 10(fvec4) Load 63(input) Store 69(param) 70 71: 12(id) FunctionCall 15(@PixelShaderFunction(vf4;) 69(param) 72: 10(fvec4) CompositeExtract 71 0 Store 68(@entryPointOutput.a) 72 Return FunctionEnd 8(foo(): 6(float) Function None 7 9: Label ReturnValue 17 FunctionEnd 15(@PixelShaderFunction(vf4;): 12(id) Function None 13 14(input): 11(ptr) FunctionParameter 16: Label 21(ret): 20(ptr) Variable Function 28: 27(ptr) AccessChain 26 23 29: 10(fvec4) Load 28 30: 10(fvec4) Load 14(input) 34: 27(ptr) AccessChain 33 23 35: 10(fvec4) Load 34 36: 10(fvec4) FAdd 30 35 40: 27(ptr) AccessChain 39 23 41: 10(fvec4) Load 40 42: 10(fvec4) FAdd 36 41 46: 27(ptr) AccessChain 45 23 47: 10(fvec4) Load 46 48: 10(fvec4) FAdd 42 47 53: 27(ptr) AccessChain 52 23 54: 10(fvec4) Load 53 55: 10(fvec4) FAdd 48 54 56: 6(float) FunctionCall 8(foo() 57: 10(fvec4) VectorTimesScalar 55 56 58: 10(fvec4) FAdd 29 57 59: 11(ptr) AccessChain 21(ret) 23 Store 59 58 60: 12(id) Load 21(ret) ReturnValue 60 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.calculatelod.dx10.frag.out000066400000000000000000000700151360464450000245370ustar00rootroot00000000000000hlsl.calculatelod.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp float) 0:28 'txval10' ( temp float) 0:28 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:28 Construct combined texture-sampler ( temp sampler1DArray) 0:28 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:28 Constant: 0:28 0.100000 0:28 Constant: 0:28 0 (const int) 0:29 Sequence 0:29 move second child to first child ( temp float) 0:29 'txval11' ( temp float) 0:29 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:29 Construct combined texture-sampler ( temp isampler1DArray) 0:29 'g_tTex1di4a' ( uniform itexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:29 Constant: 0:29 0.200000 0:29 Constant: 0:29 0 (const int) 0:30 Sequence 0:30 move second child to first child ( temp float) 0:30 'txval12' ( temp float) 0:30 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:30 Construct combined texture-sampler ( temp usampler1DArray) 0:30 'g_tTex1du4a' ( uniform utexture1DArray) 0:30 'g_sSamp' (layout( binding=0) uniform sampler) 0:30 Constant: 0:30 0.300000 0:30 Constant: 0:30 0 (const int) 0:32 Sequence 0:32 move second child to first child ( temp float) 0:32 'txval20' ( temp float) 0:32 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:32 Construct combined texture-sampler ( temp sampler2DArray) 0:32 'g_tTex2df4a' ( uniform texture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:32 Constant: 0:32 0 (const int) 0:33 Sequence 0:33 move second child to first child ( temp float) 0:33 'txval21' ( temp float) 0:33 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:33 Construct combined texture-sampler ( temp isampler2DArray) 0:33 'g_tTex2di4a' ( uniform itexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:33 Constant: 0:33 0 (const int) 0:34 Sequence 0:34 move second child to first child ( temp float) 0:34 'txval22' ( temp float) 0:34 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:34 Construct combined texture-sampler ( temp usampler2DArray) 0:34 'g_tTex2du4a' ( uniform utexture2DArray) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:34 Constant: 0:34 0 (const int) 0:36 Sequence 0:36 move second child to first child ( temp float) 0:36 'txval40' ( temp float) 0:36 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:36 Construct combined texture-sampler ( temp samplerCubeArray) 0:36 'g_tTexcdf4a' ( uniform textureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:36 Constant: 0:36 0 (const int) 0:37 Sequence 0:37 move second child to first child ( temp float) 0:37 'txval41' ( temp float) 0:37 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:37 Construct combined texture-sampler ( temp isamplerCubeArray) 0:37 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:37 Constant: 0:37 0 (const int) 0:38 Sequence 0:38 move second child to first child ( temp float) 0:38 'txval42' ( temp float) 0:38 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:38 Construct combined texture-sampler ( temp usamplerCubeArray) 0:38 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:38 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:38 Constant: 0:38 0 (const int) 0:40 move second child to first child ( temp 4-component vector of float) 0:40 Color: direct index for structure ( temp 4-component vector of float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:41 move second child to first child ( temp float) 0:41 Depth: direct index for structure ( temp float) 0:41 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Branch: Return with expression 0:43 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp float) 0:28 'txval10' ( temp float) 0:28 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:28 Construct combined texture-sampler ( temp sampler1DArray) 0:28 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:28 Constant: 0:28 0.100000 0:28 Constant: 0:28 0 (const int) 0:29 Sequence 0:29 move second child to first child ( temp float) 0:29 'txval11' ( temp float) 0:29 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:29 Construct combined texture-sampler ( temp isampler1DArray) 0:29 'g_tTex1di4a' ( uniform itexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:29 Constant: 0:29 0.200000 0:29 Constant: 0:29 0 (const int) 0:30 Sequence 0:30 move second child to first child ( temp float) 0:30 'txval12' ( temp float) 0:30 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:30 Construct combined texture-sampler ( temp usampler1DArray) 0:30 'g_tTex1du4a' ( uniform utexture1DArray) 0:30 'g_sSamp' (layout( binding=0) uniform sampler) 0:30 Constant: 0:30 0.300000 0:30 Constant: 0:30 0 (const int) 0:32 Sequence 0:32 move second child to first child ( temp float) 0:32 'txval20' ( temp float) 0:32 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:32 Construct combined texture-sampler ( temp sampler2DArray) 0:32 'g_tTex2df4a' ( uniform texture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:32 Constant: 0:32 0 (const int) 0:33 Sequence 0:33 move second child to first child ( temp float) 0:33 'txval21' ( temp float) 0:33 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:33 Construct combined texture-sampler ( temp isampler2DArray) 0:33 'g_tTex2di4a' ( uniform itexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:33 Constant: 0:33 0 (const int) 0:34 Sequence 0:34 move second child to first child ( temp float) 0:34 'txval22' ( temp float) 0:34 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:34 Construct combined texture-sampler ( temp usampler2DArray) 0:34 'g_tTex2du4a' ( uniform utexture2DArray) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:34 Constant: 0:34 0 (const int) 0:36 Sequence 0:36 move second child to first child ( temp float) 0:36 'txval40' ( temp float) 0:36 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:36 Construct combined texture-sampler ( temp samplerCubeArray) 0:36 'g_tTexcdf4a' ( uniform textureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:36 Constant: 0:36 0 (const int) 0:37 Sequence 0:37 move second child to first child ( temp float) 0:37 'txval41' ( temp float) 0:37 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:37 Construct combined texture-sampler ( temp isamplerCubeArray) 0:37 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:37 Constant: 0:37 0 (const int) 0:38 Sequence 0:38 move second child to first child ( temp float) 0:38 'txval42' ( temp float) 0:38 direct index ( temp float) 0:? textureQueryLod ( temp float) 0:38 Construct combined texture-sampler ( temp usamplerCubeArray) 0:38 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:38 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:38 Constant: 0:38 0 (const int) 0:40 move second child to first child ( temp 4-component vector of float) 0:40 Color: direct index for structure ( temp 4-component vector of float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:41 move second child to first child ( temp float) 0:41 Depth: direct index for structure ( temp float) 0:41 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Branch: Return with expression 0:43 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 45(g_tTex1du4a) DescriptorSet 0 Decorate 45(g_tTex1du4a) Binding 0 Decorate 56(g_tTex2df4a) DescriptorSet 0 Decorate 56(g_tTex2df4a) Binding 0 Decorate 67(g_tTex2di4a) DescriptorSet 0 Decorate 67(g_tTex2di4a) Binding 0 Decorate 79(g_tTex2du4a) DescriptorSet 0 Decorate 79(g_tTex2du4a) Binding 0 Decorate 92(g_tTexcdf4a) DescriptorSet 0 Decorate 92(g_tTexcdf4a) Binding 0 Decorate 104(g_tTexcdi4a) DescriptorSet 0 Decorate 104(g_tTexcdi4a) Binding 0 Decorate 115(g_tTexcdu4a) DescriptorSet 0 Decorate 115(g_tTexcdu4a) Binding 0 Decorate 140(@entryPointOutput.Color) Location 0 Decorate 144(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 147(g_tTex1df4) DescriptorSet 0 Decorate 147(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 6(float) 14: TypeImage 6(float) 1D array sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4a): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: 6(float) Constant 1036831949 25: TypeVector 6(float) 2 27: TypeInt 32 1 28: 27(int) Constant 0 31: TypeImage 27(int) 1D array sampled format:Unknown 32: TypePointer UniformConstant 31 33(g_tTex1di4a): 32(ptr) Variable UniformConstant 36: TypeSampledImage 31 38: 6(float) Constant 1045220557 42: TypeInt 32 0 43: TypeImage 42(int) 1D array sampled format:Unknown 44: TypePointer UniformConstant 43 45(g_tTex1du4a): 44(ptr) Variable UniformConstant 48: TypeSampledImage 43 50: 6(float) Constant 1050253722 54: TypeImage 6(float) 2D array sampled format:Unknown 55: TypePointer UniformConstant 54 56(g_tTex2df4a): 55(ptr) Variable UniformConstant 59: TypeSampledImage 54 61: 25(fvec2) ConstantComposite 24 38 65: TypeImage 27(int) 2D array sampled format:Unknown 66: TypePointer UniformConstant 65 67(g_tTex2di4a): 66(ptr) Variable UniformConstant 70: TypeSampledImage 65 72: 6(float) Constant 1053609165 73: 25(fvec2) ConstantComposite 50 72 77: TypeImage 42(int) 2D array sampled format:Unknown 78: TypePointer UniformConstant 77 79(g_tTex2du4a): 78(ptr) Variable UniformConstant 82: TypeSampledImage 77 84: 6(float) Constant 1056964608 85: 6(float) Constant 1058642330 86: 25(fvec2) ConstantComposite 84 85 90: TypeImage 6(float) Cube array sampled format:Unknown 91: TypePointer UniformConstant 90 92(g_tTexcdf4a): 91(ptr) Variable UniformConstant 95: TypeSampledImage 90 97: TypeVector 6(float) 3 98: 97(fvec3) ConstantComposite 24 38 50 102: TypeImage 27(int) Cube array sampled format:Unknown 103: TypePointer UniformConstant 102 104(g_tTexcdi4a): 103(ptr) Variable UniformConstant 107: TypeSampledImage 102 109: 97(fvec3) ConstantComposite 72 84 85 113: TypeImage 42(int) Cube array sampled format:Unknown 114: TypePointer UniformConstant 113 115(g_tTexcdu4a): 114(ptr) Variable UniformConstant 118: TypeSampledImage 113 120: 6(float) Constant 1060320051 121: 6(float) Constant 1061997773 122: 6(float) Constant 1063675494 123: 97(fvec3) ConstantComposite 120 121 122 126: TypePointer Function 8(PS_OUTPUT) 128: 6(float) Constant 1065353216 129: 7(fvec4) ConstantComposite 128 128 128 128 130: TypePointer Function 7(fvec4) 132: 27(int) Constant 1 139: TypePointer Output 7(fvec4) 140(@entryPointOutput.Color): 139(ptr) Variable Output 143: TypePointer Output 6(float) 144(@entryPointOutput.Depth): 143(ptr) Variable Output 147(g_tTex1df4): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 137(flattenTemp): 126(ptr) Variable Function 138:8(PS_OUTPUT) FunctionCall 10(@main() Store 137(flattenTemp) 138 141: 130(ptr) AccessChain 137(flattenTemp) 28 142: 7(fvec4) Load 141 Store 140(@entryPointOutput.Color) 142 145: 12(ptr) AccessChain 137(flattenTemp) 132 146: 6(float) Load 145 Store 144(@entryPointOutput.Depth) 146 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 30(txval11): 12(ptr) Variable Function 41(txval12): 12(ptr) Variable Function 53(txval20): 12(ptr) Variable Function 64(txval21): 12(ptr) Variable Function 76(txval22): 12(ptr) Variable Function 89(txval40): 12(ptr) Variable Function 101(txval41): 12(ptr) Variable Function 112(txval42): 12(ptr) Variable Function 127(psout): 126(ptr) Variable Function 17: 14 Load 16(g_tTex1df4a) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 26: 25(fvec2) ImageQueryLod 23 24 29: 6(float) CompositeExtract 26 0 Store 13(txval10) 29 34: 31 Load 33(g_tTex1di4a) 35: 18 Load 20(g_sSamp) 37: 36 SampledImage 34 35 39: 25(fvec2) ImageQueryLod 37 38 40: 6(float) CompositeExtract 39 0 Store 30(txval11) 40 46: 43 Load 45(g_tTex1du4a) 47: 18 Load 20(g_sSamp) 49: 48 SampledImage 46 47 51: 25(fvec2) ImageQueryLod 49 50 52: 6(float) CompositeExtract 51 0 Store 41(txval12) 52 57: 54 Load 56(g_tTex2df4a) 58: 18 Load 20(g_sSamp) 60: 59 SampledImage 57 58 62: 25(fvec2) ImageQueryLod 60 61 63: 6(float) CompositeExtract 62 0 Store 53(txval20) 63 68: 65 Load 67(g_tTex2di4a) 69: 18 Load 20(g_sSamp) 71: 70 SampledImage 68 69 74: 25(fvec2) ImageQueryLod 71 73 75: 6(float) CompositeExtract 74 0 Store 64(txval21) 75 80: 77 Load 79(g_tTex2du4a) 81: 18 Load 20(g_sSamp) 83: 82 SampledImage 80 81 87: 25(fvec2) ImageQueryLod 83 86 88: 6(float) CompositeExtract 87 0 Store 76(txval22) 88 93: 90 Load 92(g_tTexcdf4a) 94: 18 Load 20(g_sSamp) 96: 95 SampledImage 93 94 99: 25(fvec2) ImageQueryLod 96 98 100: 6(float) CompositeExtract 99 0 Store 89(txval40) 100 105: 102 Load 104(g_tTexcdi4a) 106: 18 Load 20(g_sSamp) 108: 107 SampledImage 105 106 110: 25(fvec2) ImageQueryLod 108 109 111: 6(float) CompositeExtract 110 0 Store 101(txval41) 111 116: 113 Load 115(g_tTexcdu4a) 117: 18 Load 20(g_sSamp) 119: 118 SampledImage 116 117 124: 25(fvec2) ImageQueryLod 119 123 125: 6(float) CompositeExtract 124 0 Store 112(txval42) 125 131: 130(ptr) AccessChain 127(psout) 28 Store 131 129 133: 12(ptr) AccessChain 127(psout) 132 Store 133 128 134:8(PS_OUTPUT) Load 127(psout) ReturnValue 134 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out000066400000000000000000000700261360464450000264320ustar00rootroot00000000000000hlsl.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:? Constant: 0:? 0.100000 0:? 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:? Constant: 0:? 0.300000 0:? 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:? Constant: 0:? 0.500000 0:? 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:? Constant: 0:? 0.100000 0:? 0.200000 0:? 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:? Constant: 0:? 0.400000 0:? 0.500000 0:? 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:? Constant: 0:? 0.700000 0:? 0.800000 0:? 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:? Constant: 0:? 0.100000 0:? 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:? Constant: 0:? 0.300000 0:? 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:? Constant: 0:? 0.500000 0:? 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:? Constant: 0:? 0.100000 0:? 0.200000 0:? 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:? Constant: 0:? 0.400000 0:? 0.500000 0:? 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:? Constant: 0:? 0.700000 0:? 0.800000 0:? 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): 80008 // 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 0 Decorate 45(g_tTex1du4a) DescriptorSet 0 Decorate 45(g_tTex1du4a) Binding 0 Decorate 56(g_tTex2df4a) DescriptorSet 0 Decorate 56(g_tTex2df4a) Binding 0 Decorate 67(g_tTex2di4a) DescriptorSet 0 Decorate 67(g_tTex2di4a) Binding 0 Decorate 79(g_tTex2du4a) DescriptorSet 0 Decorate 79(g_tTex2du4a) Binding 0 Decorate 92(g_tTexcdf4a) DescriptorSet 0 Decorate 92(g_tTexcdf4a) Binding 0 Decorate 104(g_tTexcdi4a) DescriptorSet 0 Decorate 104(g_tTexcdi4a) Binding 0 Decorate 115(g_tTexcdu4a) DescriptorSet 0 Decorate 115(g_tTexcdu4a) Binding 0 Decorate 140(@entryPointOutput.Color) Location 0 Decorate 144(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 147(g_tTex1df4) DescriptorSet 0 Decorate 147(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 6(float) 14: TypeImage 6(float) 1D array sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4a): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: 6(float) Constant 1036831949 25: TypeVector 6(float) 2 27: TypeInt 32 1 28: 27(int) Constant 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 glslang-8.13.3559/Test/baseResults/hlsl.cast.frag.out000066400000000000000000000134571360464450000222710ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.cbuffer-identifier.vert.out000066400000000000000000000614221360464450000251270ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.charLit.vert.out000066400000000000000000000215011360464450000227530ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clip.frag.out000066400000000000000000000111771360464450000222630ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-1.frag.out000066400000000000000000000206571360464450000241370ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-1.geom.out000066400000000000000000001064461360464450000241500ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-1.vert.out000066400000000000000000000176171360464450000242020ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-2.frag.out000066400000000000000000000455331360464450000241400ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-2.geom.out000066400000000000000000001342771360464450000241540ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-2.vert.out000066400000000000000000000573151360464450000242020ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-3.frag.out000066400000000000000000000214641360464450000241360ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-3.geom.out000066400000000000000000001216001360464450000241370ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-3.vert.out000066400000000000000000000230121360464450000241660ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-4.frag.out000066400000000000000000000326711360464450000241410ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-4.geom.out000066400000000000000000001215661360464450000241530ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-4.vert.out000066400000000000000000000476261360464450000242100ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-5.frag.out000066400000000000000000000420571360464450000241410ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-5.vert.out000066400000000000000000000557111360464450000242030ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-6.frag.out000066400000000000000000000523641360464450000241440ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-6.vert.out000066400000000000000000000731521360464450000242030ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-7.frag.out000066400000000000000000000504711360464450000241420ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-7.vert.out000066400000000000000000000656501360464450000242100ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-8.frag.out000066400000000000000000000353631360464450000241460ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-8.vert.out000066400000000000000000000430021360464450000241740ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-9.frag.out000066400000000000000000000262131360464450000241410ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.clipdistance-9.vert.out000066400000000000000000000313731360464450000242050ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.color.hull.tesc.out000066400000000000000000001050701360464450000234300ustar00rootroot00000000000000hlsl.color.hull.tesc Shader version: 500 vertices = 3 vertex spacing = equal_spacing triangle order = cw 0:? Sequence 0:37 Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:37 Function Parameters: 0:37 'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:37 'patchId' ( in uint) 0:? Sequence 0:42 move second child to first child ( temp float) 0:42 direct index ( temp float) 0:42 edges: direct index for structure ( temp 3-element array of float) 0:42 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:42 Constant: 0:42 0 (const int) 0:42 Constant: 0:42 0 (const int) 0:42 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) 0:42 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) 0:42 Constant: 0:42 0 (const uint) 0:43 move second child to first child ( temp float) 0:43 direct index ( temp float) 0:43 edges: direct index for structure ( temp 3-element array of float) 0:43 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:43 Constant: 0:43 0 (const int) 0:43 Constant: 0:43 1 (const int) 0:43 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) 0:43 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) 0:43 Constant: 0:43 0 (const uint) 0:44 move second child to first child ( temp float) 0:44 direct index ( temp float) 0:44 edges: direct index for structure ( temp 3-element array of float) 0:44 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: 0:44 2 (const int) 0:44 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) 0:44 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) 0:44 Constant: 0:44 0 (const uint) 0:47 move second child to first child ( temp float) 0:47 inside: direct index for structure ( temp float) 0:47 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:47 Constant: 0:47 1 (const int) 0:47 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) 0:47 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) 0:47 Constant: 0:47 0 (const uint) 0:49 Branch: Return with expression 0:49 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:63 Function Definition: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:63 Function Parameters: 0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:63 'pointId' ( in uint) 0:63 'patchId' ( in uint) 0:? Sequence 0:67 move second child to first child ( temp 3-component vector of float) 0:67 position: direct index for structure ( temp 3-component vector of float) 0:67 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:67 Constant: 0:67 0 (const int) 0:67 position: direct index for structure ( temp 3-component vector of float) 0:67 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:67 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:67 'pointId' ( in uint) 0:67 Constant: 0:67 0 (const int) 0:70 move second child to first child ( temp 4-component vector of float) 0:70 color: direct index for structure ( temp 4-component vector of float) 0:70 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:70 Constant: 0:70 1 (const int) 0:70 color: direct index for structure ( temp 4-component vector of float) 0:70 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:70 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:70 'pointId' ( in uint) 0:70 Constant: 0:70 1 (const int) 0:72 Branch: Return with expression 0:72 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:63 Function Definition: main( ( temp void) 0:63 Function Parameters: 0:? Sequence 0:63 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:63 move second child to first child ( temp uint) 0:? 'pointId' ( temp uint) 0:? 'pointId' ( in uint InvocationID) 0:63 move second child to first child ( temp uint) 0:? 'patchId' ( temp uint) 0:? 'patchId' ( in uint PrimitiveID) 0:63 move second child to first child ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:63 indirect index (layout( location=0) out structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'pointId' ( in uint InvocationID) 0:63 Function Call: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'pointId' ( temp uint) 0:? 'patchId' ( temp uint) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'pointId' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'patchId' ( in uint PrimitiveID) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 2 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 2 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelInner) 0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) 0:? Constant: 0:? 0 (const int) 0:? inside: direct index for structure ( temp float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? Constant: 0:? 1 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'pointId' ( in uint InvocationID) 0:? 'patchId' ( in uint PrimitiveID) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) Linked tessellation control stage: Shader version: 500 vertices = 3 vertex spacing = equal_spacing triangle order = cw 0:? Sequence 0:37 Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:37 Function Parameters: 0:37 'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:37 'patchId' ( in uint) 0:? Sequence 0:42 move second child to first child ( temp float) 0:42 direct index ( temp float) 0:42 edges: direct index for structure ( temp 3-element array of float) 0:42 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:42 Constant: 0:42 0 (const int) 0:42 Constant: 0:42 0 (const int) 0:42 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) 0:42 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) 0:42 Constant: 0:42 0 (const uint) 0:43 move second child to first child ( temp float) 0:43 direct index ( temp float) 0:43 edges: direct index for structure ( temp 3-element array of float) 0:43 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:43 Constant: 0:43 0 (const int) 0:43 Constant: 0:43 1 (const int) 0:43 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) 0:43 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) 0:43 Constant: 0:43 0 (const uint) 0:44 move second child to first child ( temp float) 0:44 direct index ( temp float) 0:44 edges: direct index for structure ( temp 3-element array of float) 0:44 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: 0:44 2 (const int) 0:44 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) 0:44 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) 0:44 Constant: 0:44 0 (const uint) 0:47 move second child to first child ( temp float) 0:47 inside: direct index for structure ( temp float) 0:47 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:47 Constant: 0:47 1 (const int) 0:47 tessellationAmount: direct index for structure (layout( row_major std140) uniform float) 0:47 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) 0:47 Constant: 0:47 0 (const uint) 0:49 Branch: Return with expression 0:49 'output' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:63 Function Definition: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:63 Function Parameters: 0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:63 'pointId' ( in uint) 0:63 'patchId' ( in uint) 0:? Sequence 0:67 move second child to first child ( temp 3-component vector of float) 0:67 position: direct index for structure ( temp 3-component vector of float) 0:67 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:67 Constant: 0:67 0 (const int) 0:67 position: direct index for structure ( temp 3-component vector of float) 0:67 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:67 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:67 'pointId' ( in uint) 0:67 Constant: 0:67 0 (const int) 0:70 move second child to first child ( temp 4-component vector of float) 0:70 color: direct index for structure ( temp 4-component vector of float) 0:70 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:70 Constant: 0:70 1 (const int) 0:70 color: direct index for structure ( temp 4-component vector of float) 0:70 indirect index ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:70 'patch' ( in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:70 'pointId' ( in uint) 0:70 Constant: 0:70 1 (const int) 0:72 Branch: Return with expression 0:72 'output' ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:63 Function Definition: main( ( temp void) 0:63 Function Parameters: 0:? Sequence 0:63 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:63 move second child to first child ( temp uint) 0:? 'pointId' ( temp uint) 0:? 'pointId' ( in uint InvocationID) 0:63 move second child to first child ( temp uint) 0:? 'patchId' ( temp uint) 0:? 'patchId' ( in uint PrimitiveID) 0:63 move second child to first child ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:63 indirect index (layout( location=0) out structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'pointId' ( in uint InvocationID) 0:63 Function Call: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'pointId' ( temp uint) 0:? 'patchId' ( temp uint) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'pointId' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'patchId' ( in uint PrimitiveID) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 2 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 2 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelInner) 0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) 0:? Constant: 0:? 0 (const int) 0:? inside: direct index for structure ( temp float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float edges, temp float inside}) 0:? Constant: 0:? 1 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float position, temp 4-component vector of float color}) 0:? 'pointId' ( in uint InvocationID) 0:? 'patchId' ( in uint PrimitiveID) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 127 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 72 76 79 83 110 123 ExecutionMode 4 OutputVertices 3 ExecutionMode 4 Triangles ExecutionMode 4 SpacingEqual ExecutionMode 4 VertexOrderCw Source HLSL 500 Name 4 "main" Name 9 "HullInputType" MemberName 9(HullInputType) 0 "position" MemberName 9(HullInputType) 1 "color" Name 16 "ConstantOutputType" MemberName 16(ConstantOutputType) 0 "edges" MemberName 16(ConstantOutputType) 1 "inside" Name 20 "ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;" Name 18 "inputPatch" Name 19 "patchId" Name 22 "HullOutputType" MemberName 22(HullOutputType) 0 "position" MemberName 22(HullOutputType) 1 "color" Name 27 "@main(struct-HullInputType-vf3-vf41[3];u1;u1;" Name 24 "patch" Name 25 "pointId" Name 26 "patchId" Name 30 "output" Name 33 "TessellationBuffer" MemberName 33(TessellationBuffer) 0 "tessellationAmount" MemberName 33(TessellationBuffer) 1 "padding" Name 35 "" Name 56 "output" Name 70 "patch" Name 72 "patch" Name 74 "pointId" Name 76 "pointId" Name 78 "patchId" Name 79 "patchId" Name 83 "@entryPointOutput" Name 85 "param" Name 87 "param" Name 89 "param" Name 102 "@patchConstantResult" Name 103 "param" Name 105 "param" Name 110 "@patchConstantOutput.edges" Name 123 "@patchConstantOutput.inside" MemberDecorate 33(TessellationBuffer) 0 Offset 0 MemberDecorate 33(TessellationBuffer) 1 Offset 4 Decorate 33(TessellationBuffer) Block Decorate 35 DescriptorSet 0 Decorate 35 Binding 0 Decorate 72(patch) Location 0 Decorate 76(pointId) BuiltIn InvocationId Decorate 79(patchId) BuiltIn PrimitiveId Decorate 83(@entryPointOutput) Location 0 Decorate 110(@patchConstantOutput.edges) Patch Decorate 110(@patchConstantOutput.edges) BuiltIn TessLevelOuter Decorate 123(@patchConstantOutput.inside) Patch Decorate 123(@patchConstantOutput.inside) BuiltIn TessLevelInner 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8: TypeVector 6(float) 4 9(HullInputType): TypeStruct 7(fvec3) 8(fvec4) 10: TypeInt 32 0 11: 10(int) Constant 3 12: TypeArray 9(HullInputType) 11 13: TypePointer Function 12 14: TypePointer Function 10(int) 15: TypeArray 6(float) 11 16(ConstantOutputType): TypeStruct 15 6(float) 17: TypeFunction 16(ConstantOutputType) 13(ptr) 14(ptr) 22(HullOutputType): TypeStruct 7(fvec3) 8(fvec4) 23: TypeFunction 22(HullOutputType) 13(ptr) 14(ptr) 14(ptr) 29: TypePointer Function 16(ConstantOutputType) 31: TypeInt 32 1 32: 31(int) Constant 0 33(TessellationBuffer): TypeStruct 6(float) 7(fvec3) 34: TypePointer Uniform 33(TessellationBuffer) 35: 34(ptr) Variable Uniform 36: TypePointer Uniform 6(float) 39: TypePointer Function 6(float) 41: 31(int) Constant 1 45: 31(int) Constant 2 55: TypePointer Function 22(HullOutputType) 58: TypePointer Function 7(fvec3) 63: TypePointer Function 8(fvec4) 71: TypePointer Input 12 72(patch): 71(ptr) Variable Input 75: TypePointer Input 10(int) 76(pointId): 75(ptr) Variable Input 79(patchId): 75(ptr) Variable Input 81: TypeArray 22(HullOutputType) 11 82: TypePointer Output 81 83(@entryPointOutput): 82(ptr) Variable Output 92: TypePointer Output 22(HullOutputType) 94: 10(int) Constant 2 95: 10(int) Constant 4 96: 10(int) Constant 0 98: TypeBool 108: TypeArray 6(float) 95 109: TypePointer Output 108 110(@patchConstantOutput.edges): 109(ptr) Variable Output 113: TypePointer Output 6(float) 121: TypeArray 6(float) 94 122: TypePointer Output 121 123(@patchConstantOutput.inside): 122(ptr) Variable Output 4(main): 2 Function None 3 5: Label 70(patch): 13(ptr) Variable Function 74(pointId): 14(ptr) Variable Function 78(patchId): 14(ptr) Variable Function 85(param): 13(ptr) Variable Function 87(param): 14(ptr) Variable Function 89(param): 14(ptr) Variable Function 102(@patchConstantResult): 29(ptr) Variable Function 103(param): 13(ptr) Variable Function 105(param): 14(ptr) Variable Function 73: 12 Load 72(patch) Store 70(patch) 73 77: 10(int) Load 76(pointId) Store 74(pointId) 77 80: 10(int) Load 79(patchId) Store 78(patchId) 80 84: 10(int) Load 76(pointId) 86: 12 Load 70(patch) Store 85(param) 86 88: 10(int) Load 74(pointId) Store 87(param) 88 90: 10(int) Load 78(patchId) Store 89(param) 90 91:22(HullOutputType) FunctionCall 27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;) 85(param) 87(param) 89(param) 93: 92(ptr) AccessChain 83(@entryPointOutput) 84 Store 93 91 ControlBarrier 94 95 96 97: 10(int) Load 76(pointId) 99: 98(bool) IEqual 97 32 SelectionMerge 101 None BranchConditional 99 100 101 100: Label 104: 12 Load 70(patch) Store 103(param) 104 106: 10(int) Load 79(patchId) Store 105(param) 106 107:16(ConstantOutputType) FunctionCall 20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;) 103(param) 105(param) Store 102(@patchConstantResult) 107 111: 39(ptr) AccessChain 102(@patchConstantResult) 32 32 112: 6(float) Load 111 114: 113(ptr) AccessChain 110(@patchConstantOutput.edges) 32 Store 114 112 115: 39(ptr) AccessChain 102(@patchConstantResult) 32 41 116: 6(float) Load 115 117: 113(ptr) AccessChain 110(@patchConstantOutput.edges) 41 Store 117 116 118: 39(ptr) AccessChain 102(@patchConstantResult) 32 45 119: 6(float) Load 118 120: 113(ptr) AccessChain 110(@patchConstantOutput.edges) 45 Store 120 119 124: 39(ptr) AccessChain 102(@patchConstantResult) 41 125: 6(float) Load 124 126: 113(ptr) AccessChain 123(@patchConstantOutput.inside) 32 Store 126 125 Branch 101 101: Label Return FunctionEnd 20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;):16(ConstantOutputType) Function None 17 18(inputPatch): 13(ptr) FunctionParameter 19(patchId): 14(ptr) FunctionParameter 21: Label 30(output): 29(ptr) Variable Function 37: 36(ptr) AccessChain 35 32 38: 6(float) Load 37 40: 39(ptr) AccessChain 30(output) 32 32 Store 40 38 42: 36(ptr) AccessChain 35 32 43: 6(float) Load 42 44: 39(ptr) AccessChain 30(output) 32 41 Store 44 43 46: 36(ptr) AccessChain 35 32 47: 6(float) Load 46 48: 39(ptr) AccessChain 30(output) 32 45 Store 48 47 49: 36(ptr) AccessChain 35 32 50: 6(float) Load 49 51: 39(ptr) AccessChain 30(output) 41 Store 51 50 52:16(ConstantOutputType) Load 30(output) ReturnValue 52 FunctionEnd 27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;):22(HullOutputType) Function None 23 24(patch): 13(ptr) FunctionParameter 25(pointId): 14(ptr) FunctionParameter 26(patchId): 14(ptr) FunctionParameter 28: Label 56(output): 55(ptr) Variable Function 57: 10(int) Load 25(pointId) 59: 58(ptr) AccessChain 24(patch) 57 32 60: 7(fvec3) Load 59 61: 58(ptr) AccessChain 56(output) 32 Store 61 60 62: 10(int) Load 25(pointId) 64: 63(ptr) AccessChain 24(patch) 62 41 65: 8(fvec4) Load 64 66: 63(ptr) AccessChain 56(output) 41 Store 66 65 67:22(HullOutputType) Load 56(output) ReturnValue 67 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.comparison.vec.frag.out000066400000000000000000000472271360464450000242670ustar00rootroot00000000000000hlsl.comparison.vec.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:4 Function Definition: Bug1(vf4; ( temp void) 0:4 Function Parameters: 0:4 'a' ( in 4-component vector of float) 0:? Sequence 0:5 Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:5 'v04' ( temp 4-component vector of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:6 Sequence 0:6 move second child to first child ( temp float) 0:6 'v01' ( temp float) 0:6 Constant: 0:6 0.000000 0:8 Sequence 0:8 move second child to first child ( temp 4-component vector of bool) 0:8 'r00' ( temp 4-component vector of bool) 0:8 Equal ( temp 4-component vector of bool) 0:8 'a' ( in 4-component vector of float) 0:8 'v04' ( temp 4-component vector of float) 0:9 Sequence 0:9 move second child to first child ( temp 4-component vector of bool) 0:9 'r01' ( temp 4-component vector of bool) 0:9 NotEqual ( temp 4-component vector of bool) 0:9 'a' ( in 4-component vector of float) 0:9 'v04' ( temp 4-component vector of float) 0:10 Sequence 0:10 move second child to first child ( temp 4-component vector of bool) 0:10 'r02' ( temp 4-component vector of bool) 0:10 Compare Less Than ( temp 4-component vector of bool) 0:10 'a' ( in 4-component vector of float) 0:10 'v04' ( temp 4-component vector of float) 0:11 Sequence 0:11 move second child to first child ( temp 4-component vector of bool) 0:11 'r03' ( temp 4-component vector of bool) 0:11 Compare Greater Than ( temp 4-component vector of bool) 0:11 'a' ( in 4-component vector of float) 0:11 'v04' ( temp 4-component vector of float) 0:13 Sequence 0:13 move second child to first child ( temp 4-component vector of bool) 0:13 'r10' ( temp 4-component vector of bool) 0:13 Equal ( temp 4-component vector of bool) 0:13 'a' ( in 4-component vector of float) 0:13 Construct vec4 ( in 4-component vector of float) 0:13 'v01' ( temp float) 0:14 Sequence 0:14 move second child to first child ( temp 4-component vector of bool) 0:14 'r11' ( temp 4-component vector of bool) 0:14 NotEqual ( temp 4-component vector of bool) 0:14 'a' ( in 4-component vector of float) 0:14 Construct vec4 ( in 4-component vector of float) 0:14 'v01' ( temp float) 0:15 Sequence 0:15 move second child to first child ( temp 4-component vector of bool) 0:15 'r12' ( temp 4-component vector of bool) 0:15 Compare Less Than ( temp 4-component vector of bool) 0:15 'a' ( in 4-component vector of float) 0:15 Construct vec4 ( in 4-component vector of float) 0:15 'v01' ( temp float) 0:16 Sequence 0:16 move second child to first child ( temp 4-component vector of bool) 0:16 'r13' ( temp 4-component vector of bool) 0:16 Compare Greater Than ( temp 4-component vector of bool) 0:16 'a' ( in 4-component vector of float) 0:16 Construct vec4 ( in 4-component vector of float) 0:16 'v01' ( temp float) 0:18 Sequence 0:18 move second child to first child ( temp 4-component vector of bool) 0:18 'r20' ( temp 4-component vector of bool) 0:18 Equal ( temp 4-component vector of bool) 0:18 Construct vec4 ( in 4-component vector of float) 0:18 'v01' ( temp float) 0:18 'a' ( in 4-component vector of float) 0:19 Sequence 0:19 move second child to first child ( temp 4-component vector of bool) 0:19 'r21' ( temp 4-component vector of bool) 0:19 NotEqual ( temp 4-component vector of bool) 0:19 Construct vec4 ( in 4-component vector of float) 0:19 'v01' ( temp float) 0:19 'a' ( in 4-component vector of float) 0:20 Sequence 0:20 move second child to first child ( temp 4-component vector of bool) 0:20 'r22' ( temp 4-component vector of bool) 0:20 Compare Less Than ( temp 4-component vector of bool) 0:20 Construct vec4 ( in 4-component vector of float) 0:20 'v01' ( temp float) 0:20 'a' ( in 4-component vector of float) 0:21 Sequence 0:21 move second child to first child ( temp 4-component vector of bool) 0:21 'r23' ( temp 4-component vector of bool) 0:21 Compare Greater Than ( temp 4-component vector of bool) 0:21 Construct vec4 ( in 4-component vector of float) 0:21 'v01' ( temp float) 0:21 'a' ( in 4-component vector of float) 0:30 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:30 Function Parameters: 0:? Sequence 0:32 move second child to first child ( temp 4-component vector of float) 0:32 Color: direct index for structure ( temp 4-component vector of float) 0:32 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: 0:32 0.000000 0:32 0.000000 0:32 0.000000 0:32 0.000000 0:33 Branch: Return with expression 0:33 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:30 Function Definition: main( ( temp void) 0:30 Function Parameters: 0:? Sequence 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:30 Color: direct index for structure ( temp 4-component vector of float) 0:30 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:30 Constant: 0:30 0 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:4 Function Definition: Bug1(vf4; ( temp void) 0:4 Function Parameters: 0:4 'a' ( in 4-component vector of float) 0:? Sequence 0:5 Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:5 'v04' ( temp 4-component vector of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:6 Sequence 0:6 move second child to first child ( temp float) 0:6 'v01' ( temp float) 0:6 Constant: 0:6 0.000000 0:8 Sequence 0:8 move second child to first child ( temp 4-component vector of bool) 0:8 'r00' ( temp 4-component vector of bool) 0:8 Equal ( temp 4-component vector of bool) 0:8 'a' ( in 4-component vector of float) 0:8 'v04' ( temp 4-component vector of float) 0:9 Sequence 0:9 move second child to first child ( temp 4-component vector of bool) 0:9 'r01' ( temp 4-component vector of bool) 0:9 NotEqual ( temp 4-component vector of bool) 0:9 'a' ( in 4-component vector of float) 0:9 'v04' ( temp 4-component vector of float) 0:10 Sequence 0:10 move second child to first child ( temp 4-component vector of bool) 0:10 'r02' ( temp 4-component vector of bool) 0:10 Compare Less Than ( temp 4-component vector of bool) 0:10 'a' ( in 4-component vector of float) 0:10 'v04' ( temp 4-component vector of float) 0:11 Sequence 0:11 move second child to first child ( temp 4-component vector of bool) 0:11 'r03' ( temp 4-component vector of bool) 0:11 Compare Greater Than ( temp 4-component vector of bool) 0:11 'a' ( in 4-component vector of float) 0:11 'v04' ( temp 4-component vector of float) 0:13 Sequence 0:13 move second child to first child ( temp 4-component vector of bool) 0:13 'r10' ( temp 4-component vector of bool) 0:13 Equal ( temp 4-component vector of bool) 0:13 'a' ( in 4-component vector of float) 0:13 Construct vec4 ( in 4-component vector of float) 0:13 'v01' ( temp float) 0:14 Sequence 0:14 move second child to first child ( temp 4-component vector of bool) 0:14 'r11' ( temp 4-component vector of bool) 0:14 NotEqual ( temp 4-component vector of bool) 0:14 'a' ( in 4-component vector of float) 0:14 Construct vec4 ( in 4-component vector of float) 0:14 'v01' ( temp float) 0:15 Sequence 0:15 move second child to first child ( temp 4-component vector of bool) 0:15 'r12' ( temp 4-component vector of bool) 0:15 Compare Less Than ( temp 4-component vector of bool) 0:15 'a' ( in 4-component vector of float) 0:15 Construct vec4 ( in 4-component vector of float) 0:15 'v01' ( temp float) 0:16 Sequence 0:16 move second child to first child ( temp 4-component vector of bool) 0:16 'r13' ( temp 4-component vector of bool) 0:16 Compare Greater Than ( temp 4-component vector of bool) 0:16 'a' ( in 4-component vector of float) 0:16 Construct vec4 ( in 4-component vector of float) 0:16 'v01' ( temp float) 0:18 Sequence 0:18 move second child to first child ( temp 4-component vector of bool) 0:18 'r20' ( temp 4-component vector of bool) 0:18 Equal ( temp 4-component vector of bool) 0:18 Construct vec4 ( in 4-component vector of float) 0:18 'v01' ( temp float) 0:18 'a' ( in 4-component vector of float) 0:19 Sequence 0:19 move second child to first child ( temp 4-component vector of bool) 0:19 'r21' ( temp 4-component vector of bool) 0:19 NotEqual ( temp 4-component vector of bool) 0:19 Construct vec4 ( in 4-component vector of float) 0:19 'v01' ( temp float) 0:19 'a' ( in 4-component vector of float) 0:20 Sequence 0:20 move second child to first child ( temp 4-component vector of bool) 0:20 'r22' ( temp 4-component vector of bool) 0:20 Compare Less Than ( temp 4-component vector of bool) 0:20 Construct vec4 ( in 4-component vector of float) 0:20 'v01' ( temp float) 0:20 'a' ( in 4-component vector of float) 0:21 Sequence 0:21 move second child to first child ( temp 4-component vector of bool) 0:21 'r23' ( temp 4-component vector of bool) 0:21 Compare Greater Than ( temp 4-component vector of bool) 0:21 Construct vec4 ( in 4-component vector of float) 0:21 'v01' ( temp float) 0:21 'a' ( in 4-component vector of float) 0:30 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:30 Function Parameters: 0:? Sequence 0:32 move second child to first child ( temp 4-component vector of float) 0:32 Color: direct index for structure ( temp 4-component vector of float) 0:32 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: 0:32 0.000000 0:32 0.000000 0:32 0.000000 0:32 0.000000 0:33 Branch: Return with expression 0:33 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:30 Function Definition: main( ( temp void) 0:30 Function Parameters: 0:? Sequence 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:30 Color: direct index for structure ( temp 4-component vector of float) 0:30 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:30 Constant: 0:30 0 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float uf4}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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) FOrdNotEqual 30 31 Store 29(r01) 32 34: 7(fvec4) Load 10(a) 35: 7(fvec4) Load 17(v04) 36: 23(bvec4) FOrdLessThan 34 35 Store 33(r02) 36 38: 7(fvec4) Load 10(a) 39: 7(fvec4) Load 17(v04) 40: 23(bvec4) FOrdGreaterThan 38 39 Store 37(r03) 40 42: 7(fvec4) Load 10(a) 43: 6(float) Load 21(v01) 44: 7(fvec4) CompositeConstruct 43 43 43 43 45: 23(bvec4) FOrdEqual 42 44 Store 41(r10) 45 47: 7(fvec4) Load 10(a) 48: 6(float) Load 21(v01) 49: 7(fvec4) CompositeConstruct 48 48 48 48 50: 23(bvec4) FOrdNotEqual 47 49 Store 46(r11) 50 52: 7(fvec4) Load 10(a) 53: 6(float) Load 21(v01) 54: 7(fvec4) CompositeConstruct 53 53 53 53 55: 23(bvec4) FOrdLessThan 52 54 Store 51(r12) 55 57: 7(fvec4) Load 10(a) 58: 6(float) Load 21(v01) 59: 7(fvec4) CompositeConstruct 58 58 58 58 60: 23(bvec4) FOrdGreaterThan 57 59 Store 56(r13) 60 62: 6(float) Load 21(v01) 63: 7(fvec4) CompositeConstruct 62 62 62 62 64: 7(fvec4) Load 10(a) 65: 23(bvec4) FOrdEqual 63 64 Store 61(r20) 65 67: 6(float) Load 21(v01) 68: 7(fvec4) CompositeConstruct 67 67 67 67 69: 7(fvec4) Load 10(a) 70: 23(bvec4) FOrdNotEqual 68 69 Store 66(r21) 70 72: 6(float) Load 21(v01) 73: 7(fvec4) CompositeConstruct 72 72 72 72 74: 7(fvec4) Load 10(a) 75: 23(bvec4) FOrdLessThan 73 74 Store 71(r22) 75 77: 6(float) Load 21(v01) 78: 7(fvec4) CompositeConstruct 77 77 77 77 79: 7(fvec4) Load 10(a) 80: 23(bvec4) FOrdGreaterThan 78 79 Store 76(r23) 80 Return FunctionEnd 15(@main():13(PS_OUTPUT) Function None 14 16: Label 82(psout): 81(ptr) Variable Function 85: 8(ptr) AccessChain 82(psout) 84 Store 85 19 86:13(PS_OUTPUT) Load 82(psout) ReturnValue 86 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.conditional.frag.out000066400000000000000000001266001360464450000236350ustar00rootroot00000000000000hlsl.conditional.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: vectorCond( ( temp 4-component vector of float) 0:8 Function Parameters: 0:? Sequence 0:12 Branch: Return with expression 0:11 add ( temp 4-component vector of float) 0:10 add ( temp 4-component vector of float) 0:9 add ( temp 4-component vector of float) 0:9 mix ( temp 4-component vector of float) 0:9 f4: direct index for structure ( uniform 4-component vector of float) 0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:9 Constant: 0:9 2 (const uint) 0:9 t4: direct index for structure ( uniform 4-component vector of float) 0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:9 Constant: 0:9 1 (const uint) 0:9 Convert float to bool ( temp 4-component vector of bool) 0:9 c4: direct index for structure ( uniform 4-component vector of float) 0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:9 Constant: 0:9 0 (const uint) 0:10 mix ( temp 4-component vector of float) 0:10 Construct vec4 ( temp 4-component vector of float) 0:10 f: direct index for structure ( uniform float) 0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:10 Constant: 0:10 4 (const uint) 0:10 Construct vec4 ( temp 4-component vector of float) 0:10 t: direct index for structure ( uniform float) 0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:10 Constant: 0:10 3 (const uint) 0:10 Convert float to bool ( temp 4-component vector of bool) 0:10 c4: direct index for structure ( uniform 4-component vector of float) 0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:10 Constant: 0:10 0 (const uint) 0:11 mix ( temp 4-component vector of float) 0:11 f4: direct index for structure ( uniform 4-component vector of float) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:11 Constant: 0:11 2 (const uint) 0:11 t4: direct index for structure ( uniform 4-component vector of float) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:11 Constant: 0:11 1 (const uint) 0:11 Compare Less Than ( temp 4-component vector of bool) 0:11 t4: direct index for structure ( uniform 4-component vector of float) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:11 Constant: 0:11 1 (const uint) 0:11 f4: direct index for structure ( uniform 4-component vector of float) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:11 Constant: 0:11 2 (const uint) 0:12 mix ( temp 4-component vector of float) 0:12 f4: direct index for structure ( uniform 4-component vector of float) 0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:12 Constant: 0:12 2 (const uint) 0:12 Construct vec4 ( temp 4-component vector of float) 0:12 t: direct index for structure ( uniform float) 0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:12 Constant: 0:12 3 (const uint) 0:12 Convert float to bool ( temp 4-component vector of bool) 0:12 c4: direct index for structure ( uniform 4-component vector of float) 0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:12 Constant: 0:12 0 (const uint) 0:16 Function Definition: scalarCond( ( temp 4-component vector of float) 0:16 Function Parameters: 0:? Sequence 0:17 Sequence 0:17 move second child to first child ( temp 4-component vector of float) 0:17 'ret' ( temp 4-component vector of float) 0:17 Test condition and select ( temp 4-component vector of float): no shortcircuit 0:17 Condition 0:17 Compare Not Equal ( temp bool) 0:17 t: direct index for structure ( uniform float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:17 Constant: 0:17 3 (const uint) 0:17 f: direct index for structure ( uniform float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:17 Constant: 0:17 4 (const uint) 0:17 true case 0:17 vector-scale ( temp 4-component vector of float) 0:17 t: direct index for structure ( uniform float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:17 Constant: 0:17 3 (const uint) 0:17 f4: direct index for structure ( uniform 4-component vector of float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:17 Constant: 0:17 2 (const uint) 0:17 false case 0:17 Constant: 0:17 1.000000 0:17 1.000000 0:17 1.000000 0:17 1.000000 0:18 Branch: Return with expression 0:18 'ret' ( temp 4-component vector of float) 0:22 Function Definition: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float) 0:22 Function Parameters: 0:22 'cnd' ( in 2-component vector of bool) 0:22 'src0' ( in 2-component vector of float) 0:22 'src1' ( in 2-component vector of float) 0:? Sequence 0:23 Branch: Return with expression 0:23 mix ( temp 2-component vector of float) 0:23 'src1' ( in 2-component vector of float) 0:23 'src0' ( in 2-component vector of float) 0:23 'cnd' ( in 2-component vector of bool) 0:27 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:27 Function Parameters: 0:27 'input' ( in 4-component vector of float) 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp int) 0:28 'a' ( temp int) 0:28 Constant: 0:28 5 (const int) 0:29 Sequence 0:29 move second child to first child ( temp int) 0:29 'b' ( temp int) 0:29 Constant: 0:29 6 (const int) 0:30 Sequence 0:30 move second child to first child ( temp int) 0:30 'c' ( temp int) 0:30 Constant: 0:30 7 (const int) 0:31 Sequence 0:31 move second child to first child ( temp int) 0:31 'd' ( temp int) 0:31 Constant: 0:31 7 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of float) 0:32 'ret' ( temp 4-component vector of float) 0:34 add ( temp 4-component vector of float) 0:33 add ( temp 4-component vector of float) 0:32 add ( temp 4-component vector of float) 0:32 vector-scale ( temp 4-component vector of float) 0:32 Convert int to float ( temp float) 0:32 'a' ( temp int) 0:32 'input' ( in 4-component vector of float) 0:33 vector-scale ( temp 4-component vector of float) 0:33 Convert int to float ( temp float) 0:33 'b' ( temp int) 0:33 'input' ( in 4-component vector of float) 0:34 vector-scale ( temp 4-component vector of float) 0:34 Convert int to float ( temp float) 0:34 'c' ( temp int) 0:34 'input' ( in 4-component vector of float) 0:35 vector-scale ( temp 4-component vector of float) 0:35 Convert int to float ( temp float) 0:35 'd' ( temp int) 0:35 'input' ( in 4-component vector of float) 0:37 Comma ( temp int) 0:37 move second child to first child ( temp int) 0:37 'e' ( temp int) 0:37 move second child to first child ( temp int) 0:37 'a' ( temp int) 0:37 Test condition and select ( temp int): no shortcircuit 0:37 Condition 0:37 Convert int to bool ( temp bool) 0:37 'b' ( temp int) 0:37 true case 0:37 move second child to first child ( temp int) 0:37 'c' ( temp int) 0:37 'd' ( temp int) 0:37 false case 0:37 Constant: 0:37 10 (const int) 0:37 move second child to first child ( temp int) 0:37 'b' ( temp int) 0:37 Test condition and select ( temp int): no shortcircuit 0:37 Condition 0:37 Convert int to bool ( temp bool) 0:37 'a' ( temp int) 0:37 true case 0:37 move second child to first child ( temp int) 0:37 'd' ( temp int) 0:37 'c' ( temp int) 0:37 false case 0:37 Constant: 0:37 11 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'f' ( temp 4-component vector of float) 0:39 Test condition and select ( temp 4-component vector of float): no shortcircuit 0:39 Condition 0:39 Compare Less Than ( temp bool) 0:39 direct index ( temp float) 0:39 'ret' ( temp 4-component vector of float) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( temp float) 0:39 'input' ( in 4-component vector of float) 0:39 Constant: 0:39 1 (const int) 0:39 true case 0:39 vector-scale ( temp 4-component vector of float) 0:39 Convert int to float ( temp float) 0:39 'c' ( temp int) 0:39 'input' ( in 4-component vector of float) 0:39 false case 0:39 vector-scale ( temp 4-component vector of float) 0:39 Convert int to float ( temp float) 0:39 'd' ( temp int) 0:39 'input' ( in 4-component vector of float) 0:41 Branch: Return with expression 0:40 add ( temp 4-component vector of float) 0:40 add ( temp 4-component vector of float) 0:40 add ( temp 4-component vector of float) 0:40 add ( temp 4-component vector of float) 0:40 vector-scale ( temp 4-component vector of float) 0:40 Convert int to float ( temp float) 0:40 'e' ( temp int) 0:40 'ret' ( temp 4-component vector of float) 0:40 'f' ( temp 4-component vector of float) 0:40 Function Call: vectorCond( ( temp 4-component vector of float) 0:40 Function Call: scalarCond( ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:41 Function Call: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float) 0:? Constant: 0:? true (const bool) 0:? false (const bool) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? Constant: 0:? 3.000000 0:? 4.000000 0:41 Constant: 0:41 10.000000 0:41 Constant: 0:41 10.000000 0:27 Function Definition: PixelShaderFunction( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) 0:27 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:27 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: vectorCond( ( temp 4-component vector of float) 0:8 Function Parameters: 0:? Sequence 0:12 Branch: Return with expression 0:11 add ( temp 4-component vector of float) 0:10 add ( temp 4-component vector of float) 0:9 add ( temp 4-component vector of float) 0:9 mix ( temp 4-component vector of float) 0:9 f4: direct index for structure ( uniform 4-component vector of float) 0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:9 Constant: 0:9 2 (const uint) 0:9 t4: direct index for structure ( uniform 4-component vector of float) 0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:9 Constant: 0:9 1 (const uint) 0:9 Convert float to bool ( temp 4-component vector of bool) 0:9 c4: direct index for structure ( uniform 4-component vector of float) 0:9 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:9 Constant: 0:9 0 (const uint) 0:10 mix ( temp 4-component vector of float) 0:10 Construct vec4 ( temp 4-component vector of float) 0:10 f: direct index for structure ( uniform float) 0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:10 Constant: 0:10 4 (const uint) 0:10 Construct vec4 ( temp 4-component vector of float) 0:10 t: direct index for structure ( uniform float) 0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:10 Constant: 0:10 3 (const uint) 0:10 Convert float to bool ( temp 4-component vector of bool) 0:10 c4: direct index for structure ( uniform 4-component vector of float) 0:10 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:10 Constant: 0:10 0 (const uint) 0:11 mix ( temp 4-component vector of float) 0:11 f4: direct index for structure ( uniform 4-component vector of float) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:11 Constant: 0:11 2 (const uint) 0:11 t4: direct index for structure ( uniform 4-component vector of float) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:11 Constant: 0:11 1 (const uint) 0:11 Compare Less Than ( temp 4-component vector of bool) 0:11 t4: direct index for structure ( uniform 4-component vector of float) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:11 Constant: 0:11 1 (const uint) 0:11 f4: direct index for structure ( uniform 4-component vector of float) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:11 Constant: 0:11 2 (const uint) 0:12 mix ( temp 4-component vector of float) 0:12 f4: direct index for structure ( uniform 4-component vector of float) 0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:12 Constant: 0:12 2 (const uint) 0:12 Construct vec4 ( temp 4-component vector of float) 0:12 t: direct index for structure ( uniform float) 0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:12 Constant: 0:12 3 (const uint) 0:12 Convert float to bool ( temp 4-component vector of bool) 0:12 c4: direct index for structure ( uniform 4-component vector of float) 0:12 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:12 Constant: 0:12 0 (const uint) 0:16 Function Definition: scalarCond( ( temp 4-component vector of float) 0:16 Function Parameters: 0:? Sequence 0:17 Sequence 0:17 move second child to first child ( temp 4-component vector of float) 0:17 'ret' ( temp 4-component vector of float) 0:17 Test condition and select ( temp 4-component vector of float): no shortcircuit 0:17 Condition 0:17 Compare Not Equal ( temp bool) 0:17 t: direct index for structure ( uniform float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:17 Constant: 0:17 3 (const uint) 0:17 f: direct index for structure ( uniform float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:17 Constant: 0:17 4 (const uint) 0:17 true case 0:17 vector-scale ( temp 4-component vector of float) 0:17 t: direct index for structure ( uniform float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:17 Constant: 0:17 3 (const uint) 0:17 f4: direct index for structure ( uniform 4-component vector of float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:17 Constant: 0:17 2 (const uint) 0:17 false case 0:17 Constant: 0:17 1.000000 0:17 1.000000 0:17 1.000000 0:17 1.000000 0:18 Branch: Return with expression 0:18 'ret' ( temp 4-component vector of float) 0:22 Function Definition: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float) 0:22 Function Parameters: 0:22 'cnd' ( in 2-component vector of bool) 0:22 'src0' ( in 2-component vector of float) 0:22 'src1' ( in 2-component vector of float) 0:? Sequence 0:23 Branch: Return with expression 0:23 mix ( temp 2-component vector of float) 0:23 'src1' ( in 2-component vector of float) 0:23 'src0' ( in 2-component vector of float) 0:23 'cnd' ( in 2-component vector of bool) 0:27 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:27 Function Parameters: 0:27 'input' ( in 4-component vector of float) 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp int) 0:28 'a' ( temp int) 0:28 Constant: 0:28 5 (const int) 0:29 Sequence 0:29 move second child to first child ( temp int) 0:29 'b' ( temp int) 0:29 Constant: 0:29 6 (const int) 0:30 Sequence 0:30 move second child to first child ( temp int) 0:30 'c' ( temp int) 0:30 Constant: 0:30 7 (const int) 0:31 Sequence 0:31 move second child to first child ( temp int) 0:31 'd' ( temp int) 0:31 Constant: 0:31 7 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of float) 0:32 'ret' ( temp 4-component vector of float) 0:34 add ( temp 4-component vector of float) 0:33 add ( temp 4-component vector of float) 0:32 add ( temp 4-component vector of float) 0:32 vector-scale ( temp 4-component vector of float) 0:32 Convert int to float ( temp float) 0:32 'a' ( temp int) 0:32 'input' ( in 4-component vector of float) 0:33 vector-scale ( temp 4-component vector of float) 0:33 Convert int to float ( temp float) 0:33 'b' ( temp int) 0:33 'input' ( in 4-component vector of float) 0:34 vector-scale ( temp 4-component vector of float) 0:34 Convert int to float ( temp float) 0:34 'c' ( temp int) 0:34 'input' ( in 4-component vector of float) 0:35 vector-scale ( temp 4-component vector of float) 0:35 Convert int to float ( temp float) 0:35 'd' ( temp int) 0:35 'input' ( in 4-component vector of float) 0:37 Comma ( temp int) 0:37 move second child to first child ( temp int) 0:37 'e' ( temp int) 0:37 move second child to first child ( temp int) 0:37 'a' ( temp int) 0:37 Test condition and select ( temp int): no shortcircuit 0:37 Condition 0:37 Convert int to bool ( temp bool) 0:37 'b' ( temp int) 0:37 true case 0:37 move second child to first child ( temp int) 0:37 'c' ( temp int) 0:37 'd' ( temp int) 0:37 false case 0:37 Constant: 0:37 10 (const int) 0:37 move second child to first child ( temp int) 0:37 'b' ( temp int) 0:37 Test condition and select ( temp int): no shortcircuit 0:37 Condition 0:37 Convert int to bool ( temp bool) 0:37 'a' ( temp int) 0:37 true case 0:37 move second child to first child ( temp int) 0:37 'd' ( temp int) 0:37 'c' ( temp int) 0:37 false case 0:37 Constant: 0:37 11 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'f' ( temp 4-component vector of float) 0:39 Test condition and select ( temp 4-component vector of float): no shortcircuit 0:39 Condition 0:39 Compare Less Than ( temp bool) 0:39 direct index ( temp float) 0:39 'ret' ( temp 4-component vector of float) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( temp float) 0:39 'input' ( in 4-component vector of float) 0:39 Constant: 0:39 1 (const int) 0:39 true case 0:39 vector-scale ( temp 4-component vector of float) 0:39 Convert int to float ( temp float) 0:39 'c' ( temp int) 0:39 'input' ( in 4-component vector of float) 0:39 false case 0:39 vector-scale ( temp 4-component vector of float) 0:39 Convert int to float ( temp float) 0:39 'd' ( temp int) 0:39 'input' ( in 4-component vector of float) 0:41 Branch: Return with expression 0:40 add ( temp 4-component vector of float) 0:40 add ( temp 4-component vector of float) 0:40 add ( temp 4-component vector of float) 0:40 add ( temp 4-component vector of float) 0:40 vector-scale ( temp 4-component vector of float) 0:40 Convert int to float ( temp float) 0:40 'e' ( temp int) 0:40 'ret' ( temp 4-component vector of float) 0:40 'f' ( temp 4-component vector of float) 0:40 Function Call: vectorCond( ( temp 4-component vector of float) 0:40 Function Call: scalarCond( ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:41 Function Call: fbSelect(vb2;vf2;vf2; ( temp 2-component vector of float) 0:? Constant: 0:? true (const bool) 0:? false (const bool) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? Constant: 0:? 3.000000 0:? 4.000000 0:41 Constant: 0:41 10.000000 0:41 Constant: 0:41 10.000000 0:27 Function Definition: PixelShaderFunction( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) 0:27 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:27 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float c4, uniform 4-component vector of float t4, uniform 4-component vector of float f4, uniform float t, uniform float f}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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) FOrdNotEqual 42 45 47: 7(fvec4) Select 46 39 36 50: 49(ptr) AccessChain 31 48 51: 6(float) Load 50 52: 7(fvec4) CompositeConstruct 51 51 51 51 54: 49(ptr) AccessChain 31 53 55: 6(float) Load 54 56: 7(fvec4) CompositeConstruct 55 55 55 55 57: 34(ptr) AccessChain 31 40 58: 7(fvec4) Load 57 59: 43(bvec4) FOrdNotEqual 58 45 60: 7(fvec4) Select 59 56 52 61: 7(fvec4) FAdd 47 60 62: 34(ptr) AccessChain 31 33 63: 7(fvec4) Load 62 64: 34(ptr) AccessChain 31 37 65: 7(fvec4) Load 64 66: 34(ptr) AccessChain 31 37 67: 7(fvec4) Load 66 68: 34(ptr) AccessChain 31 33 69: 7(fvec4) Load 68 70: 43(bvec4) FOrdLessThan 67 69 71: 7(fvec4) Select 70 65 63 72: 7(fvec4) FAdd 61 71 73: 34(ptr) AccessChain 31 33 74: 7(fvec4) Load 73 75: 49(ptr) AccessChain 31 53 76: 6(float) Load 75 77: 7(fvec4) CompositeConstruct 76 76 76 76 78: 34(ptr) AccessChain 31 40 79: 7(fvec4) Load 78 80: 43(bvec4) FOrdNotEqual 79 45 81: 7(fvec4) Select 80 77 74 82: 7(fvec4) FAdd 72 81 ReturnValue 82 FunctionEnd 11(scalarCond(): 7(fvec4) Function None 8 12: Label 85(ret): 24(ptr) Variable Function 86: 49(ptr) AccessChain 31 53 87: 6(float) Load 86 88: 49(ptr) AccessChain 31 48 89: 6(float) Load 88 90: 13(bool) FOrdNotEqual 87 89 91: 49(ptr) AccessChain 31 53 92: 6(float) Load 91 93: 34(ptr) AccessChain 31 33 94: 7(fvec4) Load 93 95: 7(fvec4) VectorTimesScalar 94 92 98: 43(bvec4) CompositeConstruct 90 90 90 90 99: 7(fvec4) Select 98 95 97 Store 85(ret) 99 100: 7(fvec4) Load 85(ret) ReturnValue 100 FunctionEnd 22(fbSelect(vb2;vf2;vf2;): 16(fvec2) Function None 18 19(cnd): 15(ptr) FunctionParameter 20(src0): 17(ptr) FunctionParameter 21(src1): 17(ptr) FunctionParameter 23: Label 103: 16(fvec2) Load 21(src1) 104: 16(fvec2) Load 20(src0) 105: 14(bvec2) Load 19(cnd) 106: 16(fvec2) Select 105 104 103 ReturnValue 106 FunctionEnd 27(@PixelShaderFunction(vf4;): 7(fvec4) Function None 25 26(input): 24(ptr) FunctionParameter 28: Label 110(a): 109(ptr) Variable Function 112(b): 109(ptr) Variable Function 114(c): 109(ptr) Variable Function 116(d): 109(ptr) Variable Function 117(ret): 24(ptr) Variable Function 137(e): 109(ptr) Variable Function 150(f): 24(ptr) Variable Function 186(param): 15(ptr) Variable Function 187(param): 17(ptr) Variable Function 188(param): 17(ptr) Variable Function Store 110(a) 111 Store 112(b) 113 Store 114(c) 115 Store 116(d) 115 118: 32(int) Load 110(a) 119: 6(float) ConvertSToF 118 120: 7(fvec4) Load 26(input) 121: 7(fvec4) VectorTimesScalar 120 119 122: 32(int) Load 112(b) 123: 6(float) ConvertSToF 122 124: 7(fvec4) Load 26(input) 125: 7(fvec4) VectorTimesScalar 124 123 126: 7(fvec4) FAdd 121 125 127: 32(int) Load 114(c) 128: 6(float) ConvertSToF 127 129: 7(fvec4) Load 26(input) 130: 7(fvec4) VectorTimesScalar 129 128 131: 7(fvec4) FAdd 126 130 132: 32(int) Load 116(d) 133: 6(float) ConvertSToF 132 134: 7(fvec4) Load 26(input) 135: 7(fvec4) VectorTimesScalar 134 133 136: 7(fvec4) FAdd 131 135 Store 117(ret) 136 138: 32(int) Load 112(b) 141: 13(bool) INotEqual 138 140 142: 32(int) Load 116(d) Store 114(c) 142 144: 32(int) Select 141 142 143 Store 110(a) 144 Store 137(e) 144 145: 32(int) Load 110(a) 146: 13(bool) INotEqual 145 140 147: 32(int) Load 114(c) Store 116(d) 147 149: 32(int) Select 146 147 148 Store 112(b) 149 152: 151(ptr) AccessChain 117(ret) 140 153: 6(float) Load 152 155: 151(ptr) AccessChain 26(input) 154 156: 6(float) Load 155 157: 13(bool) FOrdLessThan 153 156 158: 32(int) Load 114(c) 159: 6(float) ConvertSToF 158 160: 7(fvec4) Load 26(input) 161: 7(fvec4) VectorTimesScalar 160 159 162: 32(int) Load 116(d) 163: 6(float) ConvertSToF 162 164: 7(fvec4) Load 26(input) 165: 7(fvec4) VectorTimesScalar 164 163 166: 43(bvec4) CompositeConstruct 157 157 157 157 167: 7(fvec4) Select 166 161 165 Store 150(f) 167 168: 32(int) Load 137(e) 169: 6(float) ConvertSToF 168 170: 7(fvec4) Load 117(ret) 171: 7(fvec4) VectorTimesScalar 170 169 172: 7(fvec4) Load 150(f) 173: 7(fvec4) FAdd 171 172 174: 7(fvec4) FunctionCall 9(vectorCond() 175: 7(fvec4) FAdd 173 174 176: 7(fvec4) FunctionCall 11(scalarCond() 177: 7(fvec4) FAdd 175 176 Store 186(param) 180 Store 187(param) 182 Store 188(param) 185 189: 16(fvec2) FunctionCall 22(fbSelect(vb2;vf2;vf2;) 186(param) 187(param) 188(param) 191: 6(float) CompositeExtract 189 0 192: 6(float) CompositeExtract 189 1 193: 7(fvec4) CompositeConstruct 191 192 190 190 194: 7(fvec4) FAdd 177 193 ReturnValue 194 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.constantbuffer.frag.out000066400000000000000000000335471360464450000243640ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 MemberDecorate 31(cb1) 0 Offset 0 Decorate 31(cb1) Block Decorate 33(cb1) DescriptorSet 0 Decorate 33(cb1) Binding 12 Decorate 40(cb2) DescriptorSet 0 Decorate 40(cb2) Binding 0 MemberDecorate 46(cbuff) 0 Offset 0 Decorate 46(cbuff) Block Decorate 48 DescriptorSet 0 Decorate 48 Binding 0 Decorate 64(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeFunction 7(fvec4) 11: TypeInt 32 0 12(cb3): TypeStruct 11(int) 6(float) 13: 11(int) Constant 4 14: TypeArray 12(cb3) 13 15: 11(int) Constant 2 16: TypeArray 14 15 17: TypePointer Uniform 16 18(cb3): 17(ptr) Variable Uniform 19: TypeInt 32 1 20: 19(int) Constant 1 21: 19(int) Constant 2 22: 19(int) Constant 0 23: TypePointer Uniform 11(int) 26: TypeBool 27: 11(int) Constant 0 31(cb1): TypeStruct 7(fvec4) 32: TypePointer Uniform 31(cb1) 33(cb1): 32(ptr) Variable Uniform 34: TypePointer Uniform 7(fvec4) 37: 11(int) Constant 3 38: TypeArray 12(cb3) 37 39: TypePointer Uniform 38 40(cb2): 39(ptr) Variable Uniform 41: TypePointer Uniform 6(float) 46(cbuff): TypeStruct 19(int) 47: TypePointer Uniform 46(cbuff) 48: 47(ptr) Variable Uniform 49: TypePointer Uniform 19(int) 57: 19(int) Constant 3 63: TypePointer Output 7(fvec4) 64(@entryPointOutput): 63(ptr) Variable Output 4(main): 2 Function None 3 5: Label 65: 7(fvec4) FunctionCall 9(@main() Store 64(@entryPointOutput) 65 Return FunctionEnd 9(@main(): 7(fvec4) Function None 8 10: Label 24: 23(ptr) AccessChain 18(cb3) 20 21 22 25: 11(int) Load 24 28: 26(bool) INotEqual 25 27 SelectionMerge 30 None BranchConditional 28 29 56 29: Label 35: 34(ptr) AccessChain 33(cb1) 22 36: 7(fvec4) Load 35 42: 41(ptr) AccessChain 40(cb2) 20 20 43: 6(float) Load 42 44: 7(fvec4) CompositeConstruct 43 43 43 43 45: 7(fvec4) FAdd 36 44 50: 49(ptr) AccessChain 48 22 51: 19(int) Load 50 52: 6(float) ConvertSToF 51 53: 7(fvec4) CompositeConstruct 52 52 52 52 54: 7(fvec4) FAdd 45 53 ReturnValue 54 56: Label 58: 41(ptr) AccessChain 18(cb3) 20 57 20 59: 6(float) Load 58 60: 7(fvec4) CompositeConstruct 59 59 59 59 ReturnValue 60 30: Label Unreachable FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.constructArray.vert.out000066400000000000000000000447771360464450000244340ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.constructexpr.frag.out000066400000000000000000000146411360464450000242560ustar00rootroot00000000000000hlsl.constructexpr.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:4 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: 0:6 3 (const int) 0:7 Constant: 0:7 4 (const int) 0:8 Constant: 0:8 5 (const int) 0:9 Constant: 0:9 6 (const int) 0:10 Constant: 0:10 7 (const int) 0:11 Constant: 0:11 8 (const int) 0:12 Comma ( temp 2-component vector of float) 0:? Constant: 0:? 9.000000 0:? 10.000000 0:? Constant: 0:? 11.000000 0:? 12.000000 0:15 move second child to first child ( temp 4-component vector of float) 0:15 color: direct index for structure ( temp 4-component vector of float) 0:15 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:15 Constant: 0:15 0 (const int) 0:15 Constant: 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:16 Branch: Return with expression 0:16 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:4 Function Definition: main( ( temp void) 0:4 Function Parameters: 0:? Sequence 0:4 Sequence 0:4 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:4 color: direct index for structure ( temp 4-component vector of float) 0:4 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:4 Constant: 0:4 0 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:4 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: 0:6 3 (const int) 0:7 Constant: 0:7 4 (const int) 0:8 Constant: 0:8 5 (const int) 0:9 Constant: 0:9 6 (const int) 0:10 Constant: 0:10 7 (const int) 0:11 Constant: 0:11 8 (const int) 0:12 Comma ( temp 2-component vector of float) 0:? Constant: 0:? 9.000000 0:? 10.000000 0:? Constant: 0:? 11.000000 0:? 12.000000 0:15 move second child to first child ( temp 4-component vector of float) 0:15 color: direct index for structure ( temp 4-component vector of float) 0:15 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:15 Constant: 0:15 0 (const int) 0:15 Constant: 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:16 Branch: Return with expression 0:16 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:4 Function Definition: main( ( temp void) 0:4 Function Parameters: 0:? Sequence 0:4 Sequence 0:4 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:4 color: direct index for structure ( temp 4-component vector of float) 0:4 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:4 Constant: 0:4 0 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.constructimat.frag.out000066400000000000000000000630141360464450000242300ustar00rootroot00000000000000hlsl.constructimat.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:2 Function Definition: @main( ( temp int) 0:2 Function Parameters: 0:? Sequence 0:6 Sequence 0:6 move second child to first child ( temp 4X4 matrix of int) 0:6 'var443' ( temp 4X4 matrix of int) 0:6 Constant: 0:6 0 (const int) 0:6 1 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 1 (const int) 0:6 1 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 1 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:7 Sequence 0:7 move second child to first child ( temp 4X4 matrix of int) 0:7 'var444' ( temp 4X4 matrix of int) 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:11 Sequence 0:11 move second child to first child ( temp 4X2 matrix of int) 0:11 'var423' ( temp 4X2 matrix of int) 0:11 Constant: 0:11 0 (const int) 0:11 1 (const int) 0:11 1 (const int) 0:11 1 (const int) 0:11 1 (const int) 0:11 0 (const int) 0:11 0 (const int) 0:11 0 (const int) 0:12 Sequence 0:12 move second child to first child ( temp 4X2 matrix of int) 0:12 'var424' ( temp 4X2 matrix of int) 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:16 Sequence 0:16 move second child to first child ( temp 3X2 matrix of int) 0:16 'var323' ( temp 3X2 matrix of int) 0:16 Constant: 0:16 0 (const int) 0:16 1 (const int) 0:16 1 (const int) 0:16 1 (const int) 0:16 1 (const int) 0:16 0 (const int) 0:17 Sequence 0:17 move second child to first child ( temp 3X2 matrix of int) 0:17 'var234' ( temp 3X2 matrix of int) 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 0 (const int) 0:22 Sequence 0:22 move second child to first child ( temp 4X4 matrix of uint) 0:22 'uvar443' ( temp 4X4 matrix of uint) 0:22 Constant: 0:22 0 (const uint) 0:22 1 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 1 (const uint) 0:22 1 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 1 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:23 Sequence 0:23 move second child to first child ( temp 4X4 matrix of uint) 0:23 'uvar444' ( temp 4X4 matrix of uint) 0:? Constant: 0:? 0 (const uint) 0:? 1 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 1 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:27 Sequence 0:27 move second child to first child ( temp 4X2 matrix of uint) 0:27 'uvar423' ( temp 4X2 matrix of uint) 0:27 Constant: 0:27 0 (const uint) 0:27 1 (const uint) 0:27 1 (const uint) 0:27 1 (const uint) 0:27 1 (const uint) 0:27 0 (const uint) 0:27 0 (const uint) 0:27 0 (const uint) 0:28 Sequence 0:28 move second child to first child ( temp 4X2 matrix of uint) 0:28 'uvar424' ( temp 4X2 matrix of uint) 0:? Constant: 0:? 0 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:32 Sequence 0:32 move second child to first child ( temp 3X2 matrix of uint) 0:32 'uvar323' ( temp 3X2 matrix of uint) 0:32 Constant: 0:32 0 (const uint) 0:32 1 (const uint) 0:32 1 (const uint) 0:32 1 (const uint) 0:32 1 (const uint) 0:32 0 (const uint) 0:33 Sequence 0:33 move second child to first child ( temp 3X2 matrix of uint) 0:33 'uvar234' ( temp 3X2 matrix of uint) 0:? Constant: 0:? 0 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 0 (const uint) 0:38 Sequence 0:38 move second child to first child ( temp 4X4 matrix of bool) 0:38 'bvar443' ( temp 4X4 matrix of bool) 0:38 Constant: 0:38 false (const bool) 0:38 true (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 true (const bool) 0:38 true (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 true (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:39 Sequence 0:39 move second child to first child ( temp 4X4 matrix of bool) 0:39 'bvar444' ( temp 4X4 matrix of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:? false (const bool) 0:? false (const bool) 0:? true (const bool) 0:? true (const bool) 0:? false (const bool) 0:? false (const bool) 0:? true (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:43 Sequence 0:43 move second child to first child ( temp 4X2 matrix of bool) 0:43 'bvar423' ( temp 4X2 matrix of bool) 0:43 Constant: 0:43 false (const bool) 0:43 true (const bool) 0:43 true (const bool) 0:43 true (const bool) 0:43 true (const bool) 0:43 false (const bool) 0:43 false (const bool) 0:43 false (const bool) 0:44 Sequence 0:44 move second child to first child ( temp 4X2 matrix of bool) 0:44 'bvar424' ( temp 4X2 matrix of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:? true (const bool) 0:? true (const bool) 0:? true (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:48 Sequence 0:48 move second child to first child ( temp 3X2 matrix of bool) 0:48 'bvar323' ( temp 3X2 matrix of bool) 0:48 Constant: 0:48 false (const bool) 0:48 true (const bool) 0:48 true (const bool) 0:48 true (const bool) 0:48 true (const bool) 0:48 false (const bool) 0:49 Sequence 0:49 move second child to first child ( temp 3X2 matrix of bool) 0:49 'bvar234' ( temp 3X2 matrix of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:? true (const bool) 0:? true (const bool) 0:? true (const bool) 0:? false (const bool) 0:51 Branch: Return with expression 0:51 Constant: 0:51 0 (const int) 0:2 Function Definition: main( ( temp void) 0:2 Function Parameters: 0:? Sequence 0:2 move second child to first child ( temp int) 0:? '@entryPointOutput' (layout( location=0) out int) 0:2 Function Call: @main( ( temp int) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out int) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:2 Function Definition: @main( ( temp int) 0:2 Function Parameters: 0:? Sequence 0:6 Sequence 0:6 move second child to first child ( temp 4X4 matrix of int) 0:6 'var443' ( temp 4X4 matrix of int) 0:6 Constant: 0:6 0 (const int) 0:6 1 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 1 (const int) 0:6 1 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 1 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:6 0 (const int) 0:7 Sequence 0:7 move second child to first child ( temp 4X4 matrix of int) 0:7 'var444' ( temp 4X4 matrix of int) 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:11 Sequence 0:11 move second child to first child ( temp 4X2 matrix of int) 0:11 'var423' ( temp 4X2 matrix of int) 0:11 Constant: 0:11 0 (const int) 0:11 1 (const int) 0:11 1 (const int) 0:11 1 (const int) 0:11 1 (const int) 0:11 0 (const int) 0:11 0 (const int) 0:11 0 (const int) 0:12 Sequence 0:12 move second child to first child ( temp 4X2 matrix of int) 0:12 'var424' ( temp 4X2 matrix of int) 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:? 0 (const int) 0:16 Sequence 0:16 move second child to first child ( temp 3X2 matrix of int) 0:16 'var323' ( temp 3X2 matrix of int) 0:16 Constant: 0:16 0 (const int) 0:16 1 (const int) 0:16 1 (const int) 0:16 1 (const int) 0:16 1 (const int) 0:16 0 (const int) 0:17 Sequence 0:17 move second child to first child ( temp 3X2 matrix of int) 0:17 'var234' ( temp 3X2 matrix of int) 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:? 0 (const int) 0:22 Sequence 0:22 move second child to first child ( temp 4X4 matrix of uint) 0:22 'uvar443' ( temp 4X4 matrix of uint) 0:22 Constant: 0:22 0 (const uint) 0:22 1 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 1 (const uint) 0:22 1 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 1 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:22 0 (const uint) 0:23 Sequence 0:23 move second child to first child ( temp 4X4 matrix of uint) 0:23 'uvar444' ( temp 4X4 matrix of uint) 0:? Constant: 0:? 0 (const uint) 0:? 1 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 1 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:27 Sequence 0:27 move second child to first child ( temp 4X2 matrix of uint) 0:27 'uvar423' ( temp 4X2 matrix of uint) 0:27 Constant: 0:27 0 (const uint) 0:27 1 (const uint) 0:27 1 (const uint) 0:27 1 (const uint) 0:27 1 (const uint) 0:27 0 (const uint) 0:27 0 (const uint) 0:27 0 (const uint) 0:28 Sequence 0:28 move second child to first child ( temp 4X2 matrix of uint) 0:28 'uvar424' ( temp 4X2 matrix of uint) 0:? Constant: 0:? 0 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:? 0 (const uint) 0:32 Sequence 0:32 move second child to first child ( temp 3X2 matrix of uint) 0:32 'uvar323' ( temp 3X2 matrix of uint) 0:32 Constant: 0:32 0 (const uint) 0:32 1 (const uint) 0:32 1 (const uint) 0:32 1 (const uint) 0:32 1 (const uint) 0:32 0 (const uint) 0:33 Sequence 0:33 move second child to first child ( temp 3X2 matrix of uint) 0:33 'uvar234' ( temp 3X2 matrix of uint) 0:? Constant: 0:? 0 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 1 (const uint) 0:? 0 (const uint) 0:38 Sequence 0:38 move second child to first child ( temp 4X4 matrix of bool) 0:38 'bvar443' ( temp 4X4 matrix of bool) 0:38 Constant: 0:38 false (const bool) 0:38 true (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 true (const bool) 0:38 true (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 true (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:38 false (const bool) 0:39 Sequence 0:39 move second child to first child ( temp 4X4 matrix of bool) 0:39 'bvar444' ( temp 4X4 matrix of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:? false (const bool) 0:? false (const bool) 0:? true (const bool) 0:? true (const bool) 0:? false (const bool) 0:? false (const bool) 0:? true (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:43 Sequence 0:43 move second child to first child ( temp 4X2 matrix of bool) 0:43 'bvar423' ( temp 4X2 matrix of bool) 0:43 Constant: 0:43 false (const bool) 0:43 true (const bool) 0:43 true (const bool) 0:43 true (const bool) 0:43 true (const bool) 0:43 false (const bool) 0:43 false (const bool) 0:43 false (const bool) 0:44 Sequence 0:44 move second child to first child ( temp 4X2 matrix of bool) 0:44 'bvar424' ( temp 4X2 matrix of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:? true (const bool) 0:? true (const bool) 0:? true (const bool) 0:? false (const bool) 0:? false (const bool) 0:? false (const bool) 0:48 Sequence 0:48 move second child to first child ( temp 3X2 matrix of bool) 0:48 'bvar323' ( temp 3X2 matrix of bool) 0:48 Constant: 0:48 false (const bool) 0:48 true (const bool) 0:48 true (const bool) 0:48 true (const bool) 0:48 true (const bool) 0:48 false (const bool) 0:49 Sequence 0:49 move second child to first child ( temp 3X2 matrix of bool) 0:49 'bvar234' ( temp 3X2 matrix of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:? true (const bool) 0:? true (const bool) 0:? true (const bool) 0:? false (const bool) 0:51 Branch: Return with expression 0:51 Constant: 0:51 0 (const int) 0:2 Function Definition: main( ( temp void) 0:2 Function Parameters: 0:? Sequence 0:2 move second child to first child ( temp int) 0:? '@entryPointOutput' (layout( location=0) out int) 0:2 Function Call: @main( ( temp int) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out int) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.coverage.frag.out000066400000000000000000000242641360464450000231300ustar00rootroot00000000000000hlsl.coverage.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:15 Function Definition: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 Function Parameters: 0:15 'i' ( in structure{}) 0:? Sequence 0:17 move second child to first child ( temp 4-component vector of float) 0:17 vColor: direct index for structure ( temp 4-component vector of float) 0:17 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:17 Constant: 0:17 0 (const int) 0:? Constant: 0:? 1.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:18 move second child to first child ( temp uint) 0:18 nCoverageMask: direct index for structure ( temp uint) 0:18 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:18 Constant: 0:18 1 (const int) 0:18 Constant: 0:18 0 (const uint) 0:19 Branch: Return with expression 0:19 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 Function Definition: main( ( temp void) 0:15 Function Parameters: 0:? Sequence 0:15 Sequence 0:15 move second child to first child ( temp structure{}) 0:? 'i' ( temp structure{}) 0:? 'i' ( in structure{}) 0:15 Sequence 0:15 move second child to first child ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 Function Call: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:? 'i' ( temp structure{}) 0:15 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) 0:15 vColor: direct index for structure ( temp 4-component vector of float) 0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 Constant: 0:15 0 (const int) 0:15 move second child to first child ( temp uint) 0:15 direct index ( out uint SampleMaskIn) 0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) 0:15 Constant: 0:15 0 (const int) 0:15 nCoverageMask: direct index for structure ( temp uint) 0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 Constant: 0:15 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) 0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:15 Function Definition: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 Function Parameters: 0:15 'i' ( in structure{}) 0:? Sequence 0:17 move second child to first child ( temp 4-component vector of float) 0:17 vColor: direct index for structure ( temp 4-component vector of float) 0:17 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:17 Constant: 0:17 0 (const int) 0:? Constant: 0:? 1.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:18 move second child to first child ( temp uint) 0:18 nCoverageMask: direct index for structure ( temp uint) 0:18 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:18 Constant: 0:18 1 (const int) 0:18 Constant: 0:18 0 (const uint) 0:19 Branch: Return with expression 0:19 'o' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 Function Definition: main( ( temp void) 0:15 Function Parameters: 0:? Sequence 0:15 Sequence 0:15 move second child to first child ( temp structure{}) 0:? 'i' ( temp structure{}) 0:? 'i' ( in structure{}) 0:15 Sequence 0:15 move second child to first child ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 Function Call: @main(struct-PS_INPUT1; ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:? 'i' ( temp structure{}) 0:15 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) 0:15 vColor: direct index for structure ( temp 4-component vector of float) 0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 Constant: 0:15 0 (const int) 0:15 move second child to first child ( temp uint) 0:15 direct index ( out uint SampleMaskIn) 0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) 0:15 Constant: 0:15 0 (const int) 0:15 nCoverageMask: direct index for structure ( temp uint) 0:15 'flattenTemp' ( temp structure{ temp 4-component vector of float vColor, temp uint nCoverageMask}) 0:15 Constant: 0:15 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.nCoverageMask' ( out 1-element array of uint SampleMaskIn) 0:? '@entryPointOutput.vColor' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.dashI.vert.out000066400000000000000000000065001360464450000224170ustar00rootroot00000000000000hlsl.dashI.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out000066400000000000000000000027361360464450000261510ustar00rootroot00000000000000hlsl.deadFunctionMissingBody.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.depthGreater.frag.out000066400000000000000000000071531360464450000237510ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.depthLess.frag.out000066400000000000000000000055571360464450000232740ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.discard.frag.out000066400000000000000000000170101360464450000227350ustar00rootroot00000000000000hlsl.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): 80008 // Id's are bound by 50 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 45 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "PixelShaderFunction" Name 10 "foo(f1;" Name 9 "f" Name 16 "@PixelShaderFunction(vf4;" Name 15 "input" Name 25 "param" Name 39 "f" Name 43 "input" Name 45 "input" Name 47 "param" Decorate 45(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeFunction 2 7(ptr) 12: TypeVector 6(float) 4 13: TypePointer Function 12(fvec4) 14: TypeFunction 2 13(ptr) 19: 6(float) Constant 1065353216 20: TypeBool 26: TypeInt 32 0 27: 26(int) Constant 2 31: 26(int) Constant 0 34: 6(float) Constant 0 44: TypePointer Input 12(fvec4) 45(input): 44(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 43(input): 13(ptr) Variable Function 47(param): 13(ptr) Variable Function 46: 12(fvec4) Load 45(input) Store 43(input) 46 48: 12(fvec4) Load 43(input) Store 47(param) 48 49: 2 FunctionCall 16(@PixelShaderFunction(vf4;) 47(param) Return FunctionEnd 10(foo(f1;): 2 Function None 8 9(f): 7(ptr) FunctionParameter 11: Label 18: 6(float) Load 9(f) 21: 20(bool) FOrdLessThan 18 19 SelectionMerge 23 None BranchConditional 21 22 23 22: Label Kill 23: Label Return FunctionEnd 16(@PixelShaderFunction(vf4;): 2 Function None 14 15(input): 13(ptr) FunctionParameter 17: Label 25(param): 7(ptr) Variable Function 39(f): 7(ptr) Variable Function 28: 7(ptr) AccessChain 15(input) 27 29: 6(float) Load 28 Store 25(param) 29 30: 2 FunctionCall 10(foo(f1;) 25(param) 32: 7(ptr) AccessChain 15(input) 31 33: 6(float) Load 32 35: 20(bool) FOrdNotEqual 33 34 SelectionMerge 37 None BranchConditional 35 36 37 36: Label Kill 37: Label 40: 7(ptr) AccessChain 15(input) 31 41: 6(float) Load 40 Store 39(f) 41 Kill FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.doLoop.frag.out000066400000000000000000000353701360464450000225710ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.domain.1.tese.out000066400000000000000000000641021360464450000227570ustar00rootroot00000000000000hlsl.domain.1.tese Shader version: 500 input primitive = triangles vertex spacing = none triangle order = none 0:? Sequence 0:22 Function Definition: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Function Parameters: 0:22 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 'f' ( in float) 0:22 'tesscoord' ( in 3-component vector of float) 0:22 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:? Sequence 0:25 move second child to first child ( temp 4-component vector of float) 0:25 pos: direct index for structure ( temp 4-component vector of float) 0:25 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Constant: 0:25 0 (const int) 0:25 add ( temp 4-component vector of float) 0:25 pos: direct index for structure ( temp 4-component vector of float) 0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Constant: 0:25 0 (const int) 0:25 Constant: 0:25 0 (const int) 0:25 component-wise multiply ( temp float) 0:25 direct index ( temp float) 0:25 'tesscoord' ( in 3-component vector of float) 0:25 Constant: 0:25 0 (const int) 0:25 'f' ( in float) 0:26 move second child to first child ( temp 3-component vector of float) 0:26 norm: direct index for structure ( temp 3-component vector of float) 0:26 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:26 Constant: 0:26 1 (const int) 0:26 add ( temp 3-component vector of float) 0:26 norm: direct index for structure ( temp 3-component vector of float) 0:26 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:26 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:26 Constant: 0:26 0 (const int) 0:26 Constant: 0:26 1 (const int) 0:26 direct index ( temp float) 0:26 'tesscoord' ( in 3-component vector of float) 0:26 Constant: 0:26 1 (const int) 0:28 direct index ( temp float) 0:28 'tesscoord' ( in 3-component vector of float) 0:28 Constant: 0:28 2 (const int) 0:30 Branch: Return with expression 0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Function Definition: main( ( temp void) 0:22 Function Parameters: 0:? Sequence 0:22 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 move second child to first child ( temp float) 0:? 'f' ( temp float) 0:? 'f' (layout( location=2) patch in float) 0:22 move second child to first child ( temp 3-component vector of float) 0:? 'tesscoord' ( temp 3-component vector of float) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:22 Sequence 0:22 move second child to first child ( temp float) 0:22 direct index ( temp float) 0:22 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 Constant: 0:22 0 (const int) 0:22 Constant: 0:22 0 (const int) 0:22 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:22 Constant: 0:22 0 (const int) 0:22 move second child to first child ( temp float) 0:22 direct index ( temp float) 0:22 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 Constant: 0:22 0 (const int) 0:22 Constant: 0:22 1 (const int) 0:22 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:22 Constant: 0:22 1 (const int) 0:22 move second child to first child ( temp float) 0:22 direct index ( temp float) 0:22 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 Constant: 0:22 0 (const int) 0:22 Constant: 0:22 2 (const int) 0:22 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:22 Constant: 0:22 2 (const int) 0:22 move second child to first child ( temp float) 0:22 flInsideTessFactor: direct index for structure ( temp float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 Constant: 0:22 1 (const int) 0:22 direct index ( patch in float TessLevelInner) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:22 Constant: 0:22 0 (const int) 0:22 Sequence 0:22 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Function Call: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'f' ( temp float) 0:? 'tesscoord' ( temp 3-component vector of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:22 pos: direct index for structure ( temp 4-component vector of float) 0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Constant: 0:22 0 (const int) 0:22 move second child to first child ( temp 3-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:22 norm: direct index for structure ( temp 3-component vector of float) 0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Constant: 0:22 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'f' (layout( location=2) patch in float) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) Linked tessellation evaluation stage: Shader version: 500 input primitive = triangles vertex spacing = none triangle order = none 0:? Sequence 0:22 Function Definition: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Function Parameters: 0:22 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 'f' ( in float) 0:22 'tesscoord' ( in 3-component vector of float) 0:22 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:? Sequence 0:25 move second child to first child ( temp 4-component vector of float) 0:25 pos: direct index for structure ( temp 4-component vector of float) 0:25 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Constant: 0:25 0 (const int) 0:25 add ( temp 4-component vector of float) 0:25 pos: direct index for structure ( temp 4-component vector of float) 0:25 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Constant: 0:25 0 (const int) 0:25 Constant: 0:25 0 (const int) 0:25 component-wise multiply ( temp float) 0:25 direct index ( temp float) 0:25 'tesscoord' ( in 3-component vector of float) 0:25 Constant: 0:25 0 (const int) 0:25 'f' ( in float) 0:26 move second child to first child ( temp 3-component vector of float) 0:26 norm: direct index for structure ( temp 3-component vector of float) 0:26 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:26 Constant: 0:26 1 (const int) 0:26 add ( temp 3-component vector of float) 0:26 norm: direct index for structure ( temp 3-component vector of float) 0:26 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:26 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:26 Constant: 0:26 0 (const int) 0:26 Constant: 0:26 1 (const int) 0:26 direct index ( temp float) 0:26 'tesscoord' ( in 3-component vector of float) 0:26 Constant: 0:26 1 (const int) 0:28 direct index ( temp float) 0:28 'tesscoord' ( in 3-component vector of float) 0:28 Constant: 0:28 2 (const int) 0:30 Branch: Return with expression 0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Function Definition: main( ( temp void) 0:22 Function Parameters: 0:? Sequence 0:22 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 move second child to first child ( temp float) 0:? 'f' ( temp float) 0:? 'f' (layout( location=2) patch in float) 0:22 move second child to first child ( temp 3-component vector of float) 0:? 'tesscoord' ( temp 3-component vector of float) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:22 Sequence 0:22 move second child to first child ( temp float) 0:22 direct index ( temp float) 0:22 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 Constant: 0:22 0 (const int) 0:22 Constant: 0:22 0 (const int) 0:22 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:22 Constant: 0:22 0 (const int) 0:22 move second child to first child ( temp float) 0:22 direct index ( temp float) 0:22 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 Constant: 0:22 0 (const int) 0:22 Constant: 0:22 1 (const int) 0:22 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:22 Constant: 0:22 1 (const int) 0:22 move second child to first child ( temp float) 0:22 direct index ( temp float) 0:22 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 Constant: 0:22 0 (const int) 0:22 Constant: 0:22 2 (const int) 0:22 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:22 Constant: 0:22 2 (const int) 0:22 move second child to first child ( temp float) 0:22 flInsideTessFactor: direct index for structure ( temp float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 Constant: 0:22 1 (const int) 0:22 direct index ( patch in float TessLevelInner) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:22 Constant: 0:22 0 (const int) 0:22 Sequence 0:22 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Function Call: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'f' ( temp float) 0:? 'tesscoord' ( temp 3-component vector of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:22 pos: direct index for structure ( temp 4-component vector of float) 0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Constant: 0:22 0 (const int) 0:22 move second child to first child ( temp 3-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:22 norm: direct index for structure ( temp 3-component vector of float) 0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Constant: 0:22 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'f' (layout( location=2) patch in float) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 103 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationEvaluation 4 "main" 54 58 62 68 82 96 100 ExecutionMode 4 Triangles Source HLSL 500 Name 4 "main" Name 9 "ds_in_t" MemberName 9(ds_in_t) 0 "pos" MemberName 9(ds_in_t) 1 "norm" Name 16 "pcf_in_t" MemberName 16(pcf_in_t) 0 "flTessFactor" MemberName 16(pcf_in_t) 1 "flInsideTessFactor" Name 18 "gs_in_t" MemberName 18(gs_in_t) 0 "pos" MemberName 18(gs_in_t) 1 "norm" Name 24 "@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;" Name 20 "i" Name 21 "f" Name 22 "tesscoord" Name 23 "pcf_data" Name 27 "o" Name 52 "i" Name 54 "i" Name 56 "f" Name 58 "f" Name 60 "tesscoord" Name 62 "tesscoord" Name 64 "pcf_data" Name 68 "pcf_data.flTessFactor" Name 82 "pcf_data.flInsideTessFactor" Name 86 "flattenTemp" Name 88 "param" Name 90 "param" Name 92 "param" Name 96 "@entryPointOutput.pos" Name 100 "@entryPointOutput.norm" Decorate 54(i) Location 0 Decorate 58(f) Patch Decorate 58(f) Location 2 Decorate 62(tesscoord) Patch Decorate 62(tesscoord) BuiltIn TessCoord Decorate 68(pcf_data.flTessFactor) Patch Decorate 68(pcf_data.flTessFactor) BuiltIn TessLevelOuter Decorate 82(pcf_data.flInsideTessFactor) Patch Decorate 82(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner Decorate 96(@entryPointOutput.pos) Location 0 Decorate 100(@entryPointOutput.norm) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeVector 6(float) 3 9(ds_in_t): TypeStruct 7(fvec4) 8(fvec3) 10: TypeInt 32 0 11: 10(int) Constant 3 12: TypeArray 9(ds_in_t) 11 13: TypePointer Function 6(float) 14: TypePointer Function 8(fvec3) 15: TypeArray 6(float) 11 16(pcf_in_t): TypeStruct 15 6(float) 17: TypePointer Function 16(pcf_in_t) 18(gs_in_t): TypeStruct 7(fvec4) 8(fvec3) 19: TypeFunction 18(gs_in_t) 12 13(ptr) 14(ptr) 17(ptr) 26: TypePointer Function 18(gs_in_t) 28: TypeInt 32 1 29: 28(int) Constant 0 31: 10(int) Constant 0 38: TypePointer Function 7(fvec4) 40: 28(int) Constant 1 42: 10(int) Constant 1 51: TypePointer Function 12 53: TypePointer Input 12 54(i): 53(ptr) Variable Input 57: TypePointer Input 6(float) 58(f): 57(ptr) Variable Input 61: TypePointer Input 8(fvec3) 62(tesscoord): 61(ptr) Variable Input 65: 10(int) Constant 4 66: TypeArray 6(float) 65 67: TypePointer Input 66 68(pcf_data.flTessFactor): 67(ptr) Variable Input 75: 28(int) Constant 2 79: 10(int) Constant 2 80: TypeArray 6(float) 79 81: TypePointer Input 80 82(pcf_data.flInsideTessFactor): 81(ptr) Variable Input 95: TypePointer Output 7(fvec4) 96(@entryPointOutput.pos): 95(ptr) Variable Output 99: TypePointer Output 8(fvec3) 100(@entryPointOutput.norm): 99(ptr) Variable Output 4(main): 2 Function None 3 5: Label 52(i): 51(ptr) Variable Function 56(f): 13(ptr) Variable Function 60(tesscoord): 14(ptr) Variable Function 64(pcf_data): 17(ptr) Variable Function 86(flattenTemp): 26(ptr) Variable Function 88(param): 13(ptr) Variable Function 90(param): 14(ptr) Variable Function 92(param): 17(ptr) Variable Function 55: 12 Load 54(i) Store 52(i) 55 59: 6(float) Load 58(f) Store 56(f) 59 63: 8(fvec3) Load 62(tesscoord) Store 60(tesscoord) 63 69: 57(ptr) AccessChain 68(pcf_data.flTessFactor) 29 70: 6(float) Load 69 71: 13(ptr) AccessChain 64(pcf_data) 29 29 Store 71 70 72: 57(ptr) AccessChain 68(pcf_data.flTessFactor) 40 73: 6(float) Load 72 74: 13(ptr) AccessChain 64(pcf_data) 29 40 Store 74 73 76: 57(ptr) AccessChain 68(pcf_data.flTessFactor) 75 77: 6(float) Load 76 78: 13(ptr) AccessChain 64(pcf_data) 29 75 Store 78 77 83: 57(ptr) AccessChain 82(pcf_data.flInsideTessFactor) 29 84: 6(float) Load 83 85: 13(ptr) AccessChain 64(pcf_data) 40 Store 85 84 87: 12 Load 52(i) 89: 6(float) Load 56(f) Store 88(param) 89 91: 8(fvec3) Load 60(tesscoord) Store 90(param) 91 93:16(pcf_in_t) Load 64(pcf_data) Store 92(param) 93 94: 18(gs_in_t) FunctionCall 24(@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;) 87 88(param) 90(param) 92(param) Store 86(flattenTemp) 94 97: 38(ptr) AccessChain 86(flattenTemp) 29 98: 7(fvec4) Load 97 Store 96(@entryPointOutput.pos) 98 101: 14(ptr) AccessChain 86(flattenTemp) 40 102: 8(fvec3) Load 101 Store 100(@entryPointOutput.norm) 102 Return FunctionEnd 24(@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;): 18(gs_in_t) Function None 19 20(i): 12 FunctionParameter 21(f): 13(ptr) FunctionParameter 22(tesscoord): 14(ptr) FunctionParameter 23(pcf_data): 17(ptr) FunctionParameter 25: Label 27(o): 26(ptr) Variable Function 30: 7(fvec4) CompositeExtract 20(i) 0 0 32: 13(ptr) AccessChain 22(tesscoord) 31 33: 6(float) Load 32 34: 6(float) Load 21(f) 35: 6(float) FMul 33 34 36: 7(fvec4) CompositeConstruct 35 35 35 35 37: 7(fvec4) FAdd 30 36 39: 38(ptr) AccessChain 27(o) 29 Store 39 37 41: 8(fvec3) CompositeExtract 20(i) 0 1 43: 13(ptr) AccessChain 22(tesscoord) 42 44: 6(float) Load 43 45: 8(fvec3) CompositeConstruct 44 44 44 46: 8(fvec3) FAdd 41 45 47: 14(ptr) AccessChain 27(o) 40 Store 47 46 48: 18(gs_in_t) Load 27(o) ReturnValue 48 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.domain.2.tese.out000066400000000000000000000642621360464450000227670ustar00rootroot00000000000000hlsl.domain.2.tese Shader version: 500 input primitive = triangles vertex spacing = none triangle order = none 0:? Sequence 0:25 Function Definition: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Function Parameters: 0:25 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 'tesscoord' ( in 3-component vector of float) 0:? Sequence 0:28 move second child to first child ( temp 4-component vector of float) 0:28 pos: direct index for structure ( temp 4-component vector of float) 0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 Constant: 0:28 0 (const int) 0:28 add ( temp 4-component vector of float) 0:28 pos: direct index for structure ( temp 4-component vector of float) 0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:28 direct index ( temp float) 0:28 'tesscoord' ( in 3-component vector of float) 0:28 Constant: 0:28 0 (const int) 0:29 move second child to first child ( temp 3-component vector of float) 0:29 norm: direct index for structure ( temp 3-component vector of float) 0:29 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:29 Constant: 0:29 1 (const int) 0:29 add ( temp 3-component vector of float) 0:29 norm: direct index for structure ( temp 3-component vector of float) 0:29 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:29 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:29 Constant: 0:29 0 (const int) 0:29 Constant: 0:29 1 (const int) 0:29 direct index ( temp float) 0:29 'tesscoord' ( in 3-component vector of float) 0:29 Constant: 0:29 1 (const int) 0:31 direct index ( temp float) 0:31 'tesscoord' ( in 3-component vector of float) 0:31 Constant: 0:31 2 (const int) 0:33 Branch: Return with expression 0:33 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Function Definition: main( ( temp void) 0:25 Function Parameters: 0:? Sequence 0:25 Sequence 0:25 move second child to first child ( temp float) 0:25 direct index ( temp float) 0:25 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 Constant: 0:25 0 (const int) 0:25 Constant: 0:25 0 (const int) 0:25 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:25 Constant: 0:25 0 (const int) 0:25 move second child to first child ( temp float) 0:25 direct index ( temp float) 0:25 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 Constant: 0:25 0 (const int) 0:25 Constant: 0:25 1 (const int) 0:25 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:25 Constant: 0:25 1 (const int) 0:25 move second child to first child ( temp float) 0:25 direct index ( temp float) 0:25 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 Constant: 0:25 0 (const int) 0:25 Constant: 0:25 2 (const int) 0:25 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:25 Constant: 0:25 2 (const int) 0:25 move second child to first child ( temp float) 0:25 flInsideTessFactor: direct index for structure ( temp float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 Constant: 0:25 1 (const int) 0:25 direct index ( patch in float TessLevelInner) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:25 Constant: 0:25 0 (const int) 0:25 move second child to first child ( temp float) 0:25 foo: direct index for structure ( temp float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 Constant: 0:25 2 (const int) 0:? 'pcf_data.foo' (layout( location=2) patch in float) 0:25 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 move second child to first child ( temp 3-component vector of float) 0:? 'tesscoord' ( temp 3-component vector of float) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:25 Sequence 0:25 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Function Call: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( temp 3-component vector of float) 0:25 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:25 pos: direct index for structure ( temp 4-component vector of float) 0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Constant: 0:25 0 (const int) 0:25 move second child to first child ( temp 3-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:25 norm: direct index for structure ( temp 3-component vector of float) 0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Constant: 0:25 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:? 'pcf_data.foo' (layout( location=2) patch in float) Linked tessellation evaluation stage: Shader version: 500 input primitive = triangles vertex spacing = none triangle order = none 0:? Sequence 0:25 Function Definition: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Function Parameters: 0:25 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 'tesscoord' ( in 3-component vector of float) 0:? Sequence 0:28 move second child to first child ( temp 4-component vector of float) 0:28 pos: direct index for structure ( temp 4-component vector of float) 0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 Constant: 0:28 0 (const int) 0:28 add ( temp 4-component vector of float) 0:28 pos: direct index for structure ( temp 4-component vector of float) 0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:28 direct index ( temp float) 0:28 'tesscoord' ( in 3-component vector of float) 0:28 Constant: 0:28 0 (const int) 0:29 move second child to first child ( temp 3-component vector of float) 0:29 norm: direct index for structure ( temp 3-component vector of float) 0:29 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:29 Constant: 0:29 1 (const int) 0:29 add ( temp 3-component vector of float) 0:29 norm: direct index for structure ( temp 3-component vector of float) 0:29 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:29 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:29 Constant: 0:29 0 (const int) 0:29 Constant: 0:29 1 (const int) 0:29 direct index ( temp float) 0:29 'tesscoord' ( in 3-component vector of float) 0:29 Constant: 0:29 1 (const int) 0:31 direct index ( temp float) 0:31 'tesscoord' ( in 3-component vector of float) 0:31 Constant: 0:31 2 (const int) 0:33 Branch: Return with expression 0:33 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Function Definition: main( ( temp void) 0:25 Function Parameters: 0:? Sequence 0:25 Sequence 0:25 move second child to first child ( temp float) 0:25 direct index ( temp float) 0:25 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 Constant: 0:25 0 (const int) 0:25 Constant: 0:25 0 (const int) 0:25 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:25 Constant: 0:25 0 (const int) 0:25 move second child to first child ( temp float) 0:25 direct index ( temp float) 0:25 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 Constant: 0:25 0 (const int) 0:25 Constant: 0:25 1 (const int) 0:25 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:25 Constant: 0:25 1 (const int) 0:25 move second child to first child ( temp float) 0:25 direct index ( temp float) 0:25 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 Constant: 0:25 0 (const int) 0:25 Constant: 0:25 2 (const int) 0:25 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:25 Constant: 0:25 2 (const int) 0:25 move second child to first child ( temp float) 0:25 flInsideTessFactor: direct index for structure ( temp float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 Constant: 0:25 1 (const int) 0:25 direct index ( patch in float TessLevelInner) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:25 Constant: 0:25 0 (const int) 0:25 move second child to first child ( temp float) 0:25 foo: direct index for structure ( temp float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:25 Constant: 0:25 2 (const int) 0:? 'pcf_data.foo' (layout( location=2) patch in float) 0:25 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 move second child to first child ( temp 3-component vector of float) 0:? 'tesscoord' ( temp 3-component vector of float) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:25 Sequence 0:25 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Function Call: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( temp 3-component vector of float) 0:25 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:25 pos: direct index for structure ( temp 4-component vector of float) 0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Constant: 0:25 0 (const int) 0:25 move second child to first child ( temp 3-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:25 norm: direct index for structure ( temp 3-component vector of float) 0:25 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 Constant: 0:25 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:? 'pcf_data.foo' (layout( location=2) patch in float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 98 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationEvaluation 4 "main" 52 67 71 77 81 91 95 ExecutionMode 4 Triangles Source HLSL 500 Name 4 "main" Name 10 "pcf_in_t" MemberName 10(pcf_in_t) 0 "flTessFactor" MemberName 10(pcf_in_t) 1 "flInsideTessFactor" MemberName 10(pcf_in_t) 2 "foo" Name 14 "ds_in_t" MemberName 14(ds_in_t) 0 "pos" MemberName 14(ds_in_t) 1 "norm" Name 17 "gs_in_t" MemberName 17(gs_in_t) 0 "pos" MemberName 17(gs_in_t) 1 "norm" Name 22 "@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;" Name 19 "pcf_data" Name 20 "i" Name 21 "tesscoord" Name 25 "o" Name 48 "pcf_data" Name 52 "pcf_data.flTessFactor" Name 67 "pcf_data.flInsideTessFactor" Name 71 "pcf_data.foo" Name 75 "i" Name 77 "i" Name 79 "tesscoord" Name 81 "tesscoord" Name 83 "flattenTemp" Name 85 "param" Name 87 "param" Name 91 "@entryPointOutput.pos" Name 95 "@entryPointOutput.norm" Decorate 52(pcf_data.flTessFactor) Patch Decorate 52(pcf_data.flTessFactor) BuiltIn TessLevelOuter Decorate 67(pcf_data.flInsideTessFactor) Patch Decorate 67(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner Decorate 71(pcf_data.foo) Patch Decorate 71(pcf_data.foo) Location 2 Decorate 77(i) Location 0 Decorate 81(tesscoord) Patch Decorate 81(tesscoord) BuiltIn TessCoord Decorate 91(@entryPointOutput.pos) Location 0 Decorate 95(@entryPointOutput.norm) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeInt 32 0 8: 7(int) Constant 3 9: TypeArray 6(float) 8 10(pcf_in_t): TypeStruct 9 6(float) 6(float) 11: TypePointer Function 10(pcf_in_t) 12: TypeVector 6(float) 4 13: TypeVector 6(float) 3 14(ds_in_t): TypeStruct 12(fvec4) 13(fvec3) 15: TypeArray 14(ds_in_t) 8 16: TypePointer Function 13(fvec3) 17(gs_in_t): TypeStruct 12(fvec4) 13(fvec3) 18: TypeFunction 17(gs_in_t) 11(ptr) 15 16(ptr) 24: TypePointer Function 17(gs_in_t) 26: TypeInt 32 1 27: 26(int) Constant 0 29: 7(int) Constant 0 30: TypePointer Function 6(float) 35: TypePointer Function 12(fvec4) 37: 26(int) Constant 1 39: 7(int) Constant 1 49: 7(int) Constant 4 50: TypeArray 6(float) 49 51: TypePointer Input 50 52(pcf_data.flTessFactor): 51(ptr) Variable Input 53: TypePointer Input 6(float) 60: 26(int) Constant 2 64: 7(int) Constant 2 65: TypeArray 6(float) 64 66: TypePointer Input 65 67(pcf_data.flInsideTessFactor): 66(ptr) Variable Input 71(pcf_data.foo): 53(ptr) Variable Input 74: TypePointer Function 15 76: TypePointer Input 15 77(i): 76(ptr) Variable Input 80: TypePointer Input 13(fvec3) 81(tesscoord): 80(ptr) Variable Input 90: TypePointer Output 12(fvec4) 91(@entryPointOutput.pos): 90(ptr) Variable Output 94: TypePointer Output 13(fvec3) 95(@entryPointOutput.norm): 94(ptr) Variable Output 4(main): 2 Function None 3 5: Label 48(pcf_data): 11(ptr) Variable Function 75(i): 74(ptr) Variable Function 79(tesscoord): 16(ptr) Variable Function 83(flattenTemp): 24(ptr) Variable Function 85(param): 11(ptr) Variable Function 87(param): 16(ptr) Variable Function 54: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 27 55: 6(float) Load 54 56: 30(ptr) AccessChain 48(pcf_data) 27 27 Store 56 55 57: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 37 58: 6(float) Load 57 59: 30(ptr) AccessChain 48(pcf_data) 27 37 Store 59 58 61: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 60 62: 6(float) Load 61 63: 30(ptr) AccessChain 48(pcf_data) 27 60 Store 63 62 68: 53(ptr) AccessChain 67(pcf_data.flInsideTessFactor) 27 69: 6(float) Load 68 70: 30(ptr) AccessChain 48(pcf_data) 37 Store 70 69 72: 6(float) Load 71(pcf_data.foo) 73: 30(ptr) AccessChain 48(pcf_data) 60 Store 73 72 78: 15 Load 77(i) Store 75(i) 78 82: 13(fvec3) Load 81(tesscoord) Store 79(tesscoord) 82 84: 15 Load 75(i) 86:10(pcf_in_t) Load 48(pcf_data) Store 85(param) 86 88: 13(fvec3) Load 79(tesscoord) Store 87(param) 88 89: 17(gs_in_t) FunctionCall 22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;) 85(param) 84 87(param) Store 83(flattenTemp) 89 92: 35(ptr) AccessChain 83(flattenTemp) 27 93: 12(fvec4) Load 92 Store 91(@entryPointOutput.pos) 93 96: 16(ptr) AccessChain 83(flattenTemp) 37 97: 13(fvec3) Load 96 Store 95(@entryPointOutput.norm) 97 Return FunctionEnd 22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;): 17(gs_in_t) Function None 18 19(pcf_data): 11(ptr) FunctionParameter 20(i): 15 FunctionParameter 21(tesscoord): 16(ptr) FunctionParameter 23: Label 25(o): 24(ptr) Variable Function 28: 12(fvec4) CompositeExtract 20(i) 0 0 31: 30(ptr) AccessChain 21(tesscoord) 29 32: 6(float) Load 31 33: 12(fvec4) CompositeConstruct 32 32 32 32 34: 12(fvec4) FAdd 28 33 36: 35(ptr) AccessChain 25(o) 27 Store 36 34 38: 13(fvec3) CompositeExtract 20(i) 0 1 40: 30(ptr) AccessChain 21(tesscoord) 39 41: 6(float) Load 40 42: 13(fvec3) CompositeConstruct 41 41 41 43: 13(fvec3) FAdd 38 42 44: 16(ptr) AccessChain 25(o) 37 Store 44 43 45: 17(gs_in_t) Load 25(o) ReturnValue 45 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.domain.3.tese.out000066400000000000000000000613721360464450000227670ustar00rootroot00000000000000hlsl.domain.3.tese Shader version: 500 input primitive = isolines vertex spacing = none triangle order = none 0:? Sequence 0:24 Function Definition: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 Function Parameters: 0:24 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 'tesscoord' ( in 2-component vector of float) 0:24 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:? Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 pos: direct index for structure ( temp 4-component vector of float) 0:27 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:27 Constant: 0:27 0 (const int) 0:27 add ( temp 4-component vector of float) 0:27 pos: direct index for structure ( temp 4-component vector of float) 0:27 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:27 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:27 Constant: 0:27 0 (const int) 0:27 Constant: 0:27 0 (const int) 0:27 direct index ( temp float) 0:27 'tesscoord' ( in 2-component vector of float) 0:27 Constant: 0:27 0 (const int) 0:28 move second child to first child ( temp 3-component vector of float) 0:28 norm: direct index for structure ( temp 3-component vector of float) 0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 Constant: 0:28 1 (const int) 0:28 add ( temp 3-component vector of float) 0:28 norm: direct index for structure ( temp 3-component vector of float) 0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 1 (const int) 0:28 direct index ( temp float) 0:28 'tesscoord' ( in 2-component vector of float) 0:28 Constant: 0:28 1 (const int) 0:30 Branch: Return with expression 0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 move second child to first child ( temp 2-component vector of float) 0:? 'tesscoord' ( temp 2-component vector of float) 0:? Construct vec2 ( temp 2-component vector of float) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:24 Sequence 0:24 move second child to first child ( temp float) 0:24 direct index ( temp float) 0:24 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:24 direct index ( temp float) 0:24 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 1 (const int) 0:24 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:24 Constant: 0:24 1 (const int) 0:24 move second child to first child ( temp float) 0:24 direct index ( temp float) 0:24 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 2 (const int) 0:24 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:24 Constant: 0:24 2 (const int) 0:24 move second child to first child ( temp float) 0:24 flInsideTessFactor: direct index for structure ( temp float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:24 Constant: 0:24 1 (const int) 0:24 direct index ( patch in float TessLevelInner) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:24 Constant: 0:24 0 (const int) 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 Function Call: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( temp 2-component vector of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:24 pos: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp 3-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:24 norm: direct index for structure ( temp 3-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:? 'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) Linked tessellation evaluation stage: Shader version: 500 input primitive = isolines vertex spacing = none triangle order = none 0:? Sequence 0:24 Function Definition: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 Function Parameters: 0:24 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 'tesscoord' ( in 2-component vector of float) 0:24 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:? Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 pos: direct index for structure ( temp 4-component vector of float) 0:27 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:27 Constant: 0:27 0 (const int) 0:27 add ( temp 4-component vector of float) 0:27 pos: direct index for structure ( temp 4-component vector of float) 0:27 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:27 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:27 Constant: 0:27 0 (const int) 0:27 Constant: 0:27 0 (const int) 0:27 direct index ( temp float) 0:27 'tesscoord' ( in 2-component vector of float) 0:27 Constant: 0:27 0 (const int) 0:28 move second child to first child ( temp 3-component vector of float) 0:28 norm: direct index for structure ( temp 3-component vector of float) 0:28 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 Constant: 0:28 1 (const int) 0:28 add ( temp 3-component vector of float) 0:28 norm: direct index for structure ( temp 3-component vector of float) 0:28 direct index ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 1 (const int) 0:28 direct index ( temp float) 0:28 'tesscoord' ( in 2-component vector of float) 0:28 Constant: 0:28 1 (const int) 0:30 Branch: Return with expression 0:30 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 move second child to first child ( temp 2-component vector of float) 0:? 'tesscoord' ( temp 2-component vector of float) 0:? Construct vec2 ( temp 2-component vector of float) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:24 Sequence 0:24 move second child to first child ( temp float) 0:24 direct index ( temp float) 0:24 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:24 direct index ( temp float) 0:24 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 1 (const int) 0:24 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:24 Constant: 0:24 1 (const int) 0:24 move second child to first child ( temp float) 0:24 direct index ( temp float) 0:24 flTessFactor: direct index for structure ( temp 3-element array of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 2 (const int) 0:24 direct index ( patch in float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:24 Constant: 0:24 2 (const int) 0:24 move second child to first child ( temp float) 0:24 flInsideTessFactor: direct index for structure ( temp float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:24 Constant: 0:24 1 (const int) 0:24 direct index ( patch in float TessLevelInner) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:24 Constant: 0:24 0 (const int) 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 Function Call: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( temp 2-component vector of float) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:24 pos: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp 3-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:24 norm: direct index for structure ( temp 3-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:? 'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 100 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationEvaluation 4 "main" 54 58 67 81 93 97 ExecutionMode 4 Isolines Source HLSL 500 Name 4 "main" Name 9 "ds_in_t" MemberName 9(ds_in_t) 0 "pos" MemberName 9(ds_in_t) 1 "norm" Name 17 "pcf_in_t" MemberName 17(pcf_in_t) 0 "flTessFactor" MemberName 17(pcf_in_t) 1 "flInsideTessFactor" Name 19 "gs_in_t" MemberName 19(gs_in_t) 0 "pos" MemberName 19(gs_in_t) 1 "norm" Name 24 "@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;" Name 21 "i" Name 22 "tesscoord" Name 23 "pcf_data" Name 27 "o" Name 52 "i" Name 54 "i" Name 56 "tesscoord" Name 58 "tesscoord" Name 63 "pcf_data" Name 67 "pcf_data.flTessFactor" Name 81 "pcf_data.flInsideTessFactor" Name 85 "flattenTemp" Name 87 "param" Name 89 "param" Name 93 "@entryPointOutput.pos" Name 97 "@entryPointOutput.norm" Decorate 54(i) Location 0 Decorate 58(tesscoord) Patch Decorate 58(tesscoord) BuiltIn TessCoord Decorate 67(pcf_data.flTessFactor) Patch Decorate 67(pcf_data.flTessFactor) BuiltIn TessLevelOuter Decorate 81(pcf_data.flInsideTessFactor) Patch Decorate 81(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner Decorate 93(@entryPointOutput.pos) Location 0 Decorate 97(@entryPointOutput.norm) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeVector 6(float) 3 9(ds_in_t): TypeStruct 7(fvec4) 8(fvec3) 10: TypeInt 32 0 11: 10(int) Constant 2 12: TypeArray 9(ds_in_t) 11 13: TypeVector 6(float) 2 14: TypePointer Function 13(fvec2) 15: 10(int) Constant 3 16: TypeArray 6(float) 15 17(pcf_in_t): TypeStruct 16 6(float) 18: TypePointer Function 17(pcf_in_t) 19(gs_in_t): TypeStruct 7(fvec4) 8(fvec3) 20: TypeFunction 19(gs_in_t) 12 14(ptr) 18(ptr) 26: TypePointer Function 19(gs_in_t) 28: TypeInt 32 1 29: 28(int) Constant 0 31: 10(int) Constant 0 32: TypePointer Function 6(float) 37: TypePointer Function 7(fvec4) 39: 28(int) Constant 1 41: 10(int) Constant 1 46: TypePointer Function 8(fvec3) 51: TypePointer Function 12 53: TypePointer Input 12 54(i): 53(ptr) Variable Input 57: TypePointer Input 8(fvec3) 58(tesscoord): 57(ptr) Variable Input 64: 10(int) Constant 4 65: TypeArray 6(float) 64 66: TypePointer Input 65 67(pcf_data.flTessFactor): 66(ptr) Variable Input 68: TypePointer Input 6(float) 75: 28(int) Constant 2 79: TypeArray 6(float) 11 80: TypePointer Input 79 81(pcf_data.flInsideTessFactor): 80(ptr) Variable Input 92: TypePointer Output 7(fvec4) 93(@entryPointOutput.pos): 92(ptr) Variable Output 96: TypePointer Output 8(fvec3) 97(@entryPointOutput.norm): 96(ptr) Variable Output 4(main): 2 Function None 3 5: Label 52(i): 51(ptr) Variable Function 56(tesscoord): 14(ptr) Variable Function 63(pcf_data): 18(ptr) Variable Function 85(flattenTemp): 26(ptr) Variable Function 87(param): 14(ptr) Variable Function 89(param): 18(ptr) Variable Function 55: 12 Load 54(i) Store 52(i) 55 59: 8(fvec3) Load 58(tesscoord) 60: 6(float) CompositeExtract 59 0 61: 6(float) CompositeExtract 59 1 62: 13(fvec2) CompositeConstruct 60 61 Store 56(tesscoord) 62 69: 68(ptr) AccessChain 67(pcf_data.flTessFactor) 29 70: 6(float) Load 69 71: 32(ptr) AccessChain 63(pcf_data) 29 29 Store 71 70 72: 68(ptr) AccessChain 67(pcf_data.flTessFactor) 39 73: 6(float) Load 72 74: 32(ptr) AccessChain 63(pcf_data) 29 39 Store 74 73 76: 68(ptr) AccessChain 67(pcf_data.flTessFactor) 75 77: 6(float) Load 76 78: 32(ptr) AccessChain 63(pcf_data) 29 75 Store 78 77 82: 68(ptr) AccessChain 81(pcf_data.flInsideTessFactor) 29 83: 6(float) Load 82 84: 32(ptr) AccessChain 63(pcf_data) 39 Store 84 83 86: 12 Load 52(i) 88: 13(fvec2) Load 56(tesscoord) Store 87(param) 88 90:17(pcf_in_t) Load 63(pcf_data) Store 89(param) 90 91: 19(gs_in_t) FunctionCall 24(@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;) 86 87(param) 89(param) Store 85(flattenTemp) 91 94: 37(ptr) AccessChain 85(flattenTemp) 29 95: 7(fvec4) Load 94 Store 93(@entryPointOutput.pos) 95 98: 46(ptr) AccessChain 85(flattenTemp) 39 99: 8(fvec3) Load 98 Store 97(@entryPointOutput.norm) 99 Return FunctionEnd 24(@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;): 19(gs_in_t) Function None 20 21(i): 12 FunctionParameter 22(tesscoord): 14(ptr) FunctionParameter 23(pcf_data): 18(ptr) FunctionParameter 25: Label 27(o): 26(ptr) Variable Function 30: 7(fvec4) CompositeExtract 21(i) 0 0 33: 32(ptr) AccessChain 22(tesscoord) 31 34: 6(float) Load 33 35: 7(fvec4) CompositeConstruct 34 34 34 34 36: 7(fvec4) FAdd 30 35 38: 37(ptr) AccessChain 27(o) 29 Store 38 36 40: 8(fvec3) CompositeExtract 21(i) 0 1 42: 32(ptr) AccessChain 22(tesscoord) 41 43: 6(float) Load 42 44: 8(fvec3) CompositeConstruct 43 43 43 45: 8(fvec3) FAdd 40 44 47: 46(ptr) AccessChain 27(o) 39 Store 47 45 48: 19(gs_in_t) Load 27(o) ReturnValue 48 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.earlydepthstencil.frag.out000077500000000000000000000216041360464450000250560ustar00rootroot00000000000000hlsl.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:? 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:? 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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.emptystruct.init.vert.out000066400000000000000000000111401360464450000247300ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.emptystructreturn.frag.out000066400000000000000000000077061360464450000252020ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.emptystructreturn.vert.out000066400000000000000000000075001360464450000252330ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.entry-in.frag.out000066400000000000000000000411451360464450000230770ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.entry-out.frag.out000066400000000000000000000525161360464450000233040ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.entry.rename.frag.out000066400000000000000000000141741360464450000237430ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out000066400000000000000000000067531360464450000260330ustar00rootroot00000000000000hlsl.explicitDescriptorSet.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.explicitDescriptorSet.frag.out000066400000000000000000000067531360464450000256740ustar00rootroot00000000000000hlsl.explicitDescriptorSet.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.flatten.return.frag.out000066400000000000000000000303361360464450000243050ustar00rootroot00000000000000hlsl.flatten.return.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:11 Function Definition: Func1( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:11 Function Parameters: 0:? Sequence 0:12 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:16 Function Definition: @main( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Function Parameters: 0:? Sequence 0:17 Branch: Return with expression 0:17 Function Call: Func1( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 Sequence 0:16 move second child to first child ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Function Call: @main( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:16 color: direct index for structure ( temp 4-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Constant: 0:16 0 (const int) 0:16 move second child to first child ( temp float) 0:? '@entryPointOutput.other_struct_member1' (layout( location=1) out float) 0:16 other_struct_member1: direct index for structure ( temp float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Constant: 0:16 1 (const int) 0:16 move second child to first child ( temp float) 0:? '@entryPointOutput.other_struct_member2' (layout( location=2) out float) 0:16 other_struct_member2: direct index for structure ( temp float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Constant: 0:16 2 (const int) 0:16 move second child to first child ( temp float) 0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float) 0:16 other_struct_member3: direct index for structure ( temp float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Constant: 0:16 3 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.other_struct_member1' (layout( location=1) out float) 0:? '@entryPointOutput.other_struct_member2' (layout( location=2) out float) 0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:11 Function Definition: Func1( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:11 Function Parameters: 0:? Sequence 0:12 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:16 Function Definition: @main( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Function Parameters: 0:? Sequence 0:17 Branch: Return with expression 0:17 Function Call: Func1( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 Sequence 0:16 move second child to first child ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Function Call: @main( ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:16 color: direct index for structure ( temp 4-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Constant: 0:16 0 (const int) 0:16 move second child to first child ( temp float) 0:? '@entryPointOutput.other_struct_member1' (layout( location=1) out float) 0:16 other_struct_member1: direct index for structure ( temp float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Constant: 0:16 1 (const int) 0:16 move second child to first child ( temp float) 0:? '@entryPointOutput.other_struct_member2' (layout( location=2) out float) 0:16 other_struct_member2: direct index for structure ( temp float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Constant: 0:16 2 (const int) 0:16 move second child to first child ( temp float) 0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float) 0:16 other_struct_member3: direct index for structure ( temp float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) 0:16 Constant: 0:16 3 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.other_struct_member1' (layout( location=1) out float) 0:? '@entryPointOutput.other_struct_member2' (layout( location=2) out float) 0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.flattenOpaque.frag.out000066400000000000000000000577031360464450000241510ustar00rootroot00000000000000hlsl.flattenOpaque.frag WARNING: AST will form illegal SPIR-V; need to transform to legalize Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:15 Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) 0:15 Function Parameters: 0:15 's' ( in structure{ temp sampler s2D}) 0:? Sequence 0:16 Branch: Return with expression 0:16 texture ( temp 4-component vector of float) 0:16 Construct combined texture-sampler ( temp sampler2D) 0:16 'tex' ( uniform texture2D) 0:16 s2D: direct index for structure ( temp sampler) 0:16 's' ( in structure{ temp sampler s2D}) 0:16 Constant: 0:16 0 (const int) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:20 Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) 0:20 Function Parameters: 0:20 's' ( in structure{ temp sampler s2D}) 0:20 'f2' ( in 2-component vector of float) 0:? Sequence 0:21 Branch: Return with expression 0:21 texture ( temp 4-component vector of float) 0:21 Construct combined texture-sampler ( temp sampler2D) 0:21 'tex' ( uniform texture2D) 0:21 s2D: direct index for structure ( temp sampler) 0:21 's' ( in structure{ temp sampler s2D}) 0:21 Constant: 0:21 0 (const int) 0:21 'f2' ( in 2-component vector of float) 0:25 Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) 0:25 Function Parameters: 0:25 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:? Sequence 0:26 Branch: Return with expression 0:26 texture ( temp 4-component vector of float) 0:26 Construct combined texture-sampler ( temp sampler2D) 0:26 tex: direct index for structure ( temp texture2D) 0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:26 Constant: 0:26 1 (const int) 0:26 s2D: direct index for structure ( temp sampler) 0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:26 Constant: 0:26 0 (const int) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:30 Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) 0:30 Function Parameters: 0:30 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:30 'f2' ( in 2-component vector of float) 0:? Sequence 0:31 Branch: Return with expression 0:31 texture ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2D) 0:31 tex: direct index for structure ( temp texture2D) 0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:31 Constant: 0:31 1 (const int) 0:31 s2D: direct index for structure ( temp sampler) 0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:31 Constant: 0:31 0 (const int) 0:31 'f2' ( in 2-component vector of float) 0:35 Function Definition: @main( ( temp 4-component vector of float) 0:35 Function Parameters: 0:? Sequence 0:39 Branch: Return with expression 0:38 add ( temp 4-component vector of float) 0:37 add ( temp 4-component vector of float) 0:36 add ( temp 4-component vector of float) 0:36 Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) 0:36 Comma ( temp structure{ temp sampler s2D}) 0:36 Sequence 0:36 move second child to first child ( temp sampler) 0:36 s2D: direct index for structure ( temp sampler) 0:36 'aggShadow' ( temp structure{ temp sampler s2D}) 0:36 Constant: 0:36 0 (const int) 0:? 's.s2D' ( uniform sampler) 0:36 'aggShadow' ( temp structure{ temp sampler s2D}) 0:37 Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) 0:37 Comma ( temp structure{ temp sampler s2D}) 0:37 Sequence 0:37 move second child to first child ( temp sampler) 0:37 s2D: direct index for structure ( temp sampler) 0:37 'aggShadow' ( temp structure{ temp sampler s2D}) 0:37 Constant: 0:37 0 (const int) 0:? 's.s2D' ( uniform sampler) 0:37 'aggShadow' ( temp structure{ temp sampler s2D}) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:38 Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) 0:38 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:38 Sequence 0:38 move second child to first child ( temp sampler) 0:38 s2D: direct index for structure ( temp sampler) 0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:38 Constant: 0:38 0 (const int) 0:? 's2.s2D' ( uniform sampler) 0:38 move second child to first child ( temp texture2D) 0:38 tex: direct index for structure ( temp texture2D) 0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:38 Constant: 0:38 1 (const int) 0:? 's2.tex' ( uniform texture2D) 0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:39 Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) 0:39 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:39 Sequence 0:39 move second child to first child ( temp sampler) 0:39 s2D: direct index for structure ( temp sampler) 0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:39 Constant: 0:39 0 (const int) 0:? 's2.s2D' ( uniform sampler) 0:39 move second child to first child ( temp texture2D) 0:39 tex: direct index for structure ( temp texture2D) 0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:39 Constant: 0:39 1 (const int) 0:? 's2.tex' ( uniform texture2D) 0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:35 Function Definition: main( ( temp void) 0:35 Function Parameters: 0:? Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:35 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'tex' ( uniform texture2D) 0:? 's.s2D' ( uniform sampler) 0:? 's2.s2D' ( uniform sampler) 0:? 's2.tex' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:15 Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) 0:15 Function Parameters: 0:15 's' ( in structure{ temp sampler s2D}) 0:? Sequence 0:16 Branch: Return with expression 0:16 texture ( temp 4-component vector of float) 0:16 Construct combined texture-sampler ( temp sampler2D) 0:16 'tex' ( uniform texture2D) 0:16 s2D: direct index for structure ( temp sampler) 0:16 's' ( in structure{ temp sampler s2D}) 0:16 Constant: 0:16 0 (const int) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:20 Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) 0:20 Function Parameters: 0:20 's' ( in structure{ temp sampler s2D}) 0:20 'f2' ( in 2-component vector of float) 0:? Sequence 0:21 Branch: Return with expression 0:21 texture ( temp 4-component vector of float) 0:21 Construct combined texture-sampler ( temp sampler2D) 0:21 'tex' ( uniform texture2D) 0:21 s2D: direct index for structure ( temp sampler) 0:21 's' ( in structure{ temp sampler s2D}) 0:21 Constant: 0:21 0 (const int) 0:21 'f2' ( in 2-component vector of float) 0:25 Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) 0:25 Function Parameters: 0:25 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:? Sequence 0:26 Branch: Return with expression 0:26 texture ( temp 4-component vector of float) 0:26 Construct combined texture-sampler ( temp sampler2D) 0:26 tex: direct index for structure ( temp texture2D) 0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:26 Constant: 0:26 1 (const int) 0:26 s2D: direct index for structure ( temp sampler) 0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:26 Constant: 0:26 0 (const int) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:30 Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) 0:30 Function Parameters: 0:30 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:30 'f2' ( in 2-component vector of float) 0:? Sequence 0:31 Branch: Return with expression 0:31 texture ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2D) 0:31 tex: direct index for structure ( temp texture2D) 0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:31 Constant: 0:31 1 (const int) 0:31 s2D: direct index for structure ( temp sampler) 0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex}) 0:31 Constant: 0:31 0 (const int) 0:31 'f2' ( in 2-component vector of float) 0:35 Function Definition: @main( ( temp 4-component vector of float) 0:35 Function Parameters: 0:? Sequence 0:39 Branch: Return with expression 0:38 add ( temp 4-component vector of float) 0:37 add ( temp 4-component vector of float) 0:36 add ( temp 4-component vector of float) 0:36 Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) 0:36 Comma ( temp structure{ temp sampler s2D}) 0:36 Sequence 0:36 move second child to first child ( temp sampler) 0:36 s2D: direct index for structure ( temp sampler) 0:36 'aggShadow' ( temp structure{ temp sampler s2D}) 0:36 Constant: 0:36 0 (const int) 0:? 's.s2D' ( uniform sampler) 0:36 'aggShadow' ( temp structure{ temp sampler s2D}) 0:37 Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) 0:37 Comma ( temp structure{ temp sampler s2D}) 0:37 Sequence 0:37 move second child to first child ( temp sampler) 0:37 s2D: direct index for structure ( temp sampler) 0:37 'aggShadow' ( temp structure{ temp sampler s2D}) 0:37 Constant: 0:37 0 (const int) 0:? 's.s2D' ( uniform sampler) 0:37 'aggShadow' ( temp structure{ temp sampler s2D}) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:38 Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) 0:38 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:38 Sequence 0:38 move second child to first child ( temp sampler) 0:38 s2D: direct index for structure ( temp sampler) 0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:38 Constant: 0:38 0 (const int) 0:? 's2.s2D' ( uniform sampler) 0:38 move second child to first child ( temp texture2D) 0:38 tex: direct index for structure ( temp texture2D) 0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:38 Constant: 0:38 1 (const int) 0:? 's2.tex' ( uniform texture2D) 0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:39 Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) 0:39 Comma ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:39 Sequence 0:39 move second child to first child ( temp sampler) 0:39 s2D: direct index for structure ( temp sampler) 0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:39 Constant: 0:39 0 (const int) 0:? 's2.s2D' ( uniform sampler) 0:39 move second child to first child ( temp texture2D) 0:39 tex: direct index for structure ( temp texture2D) 0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:39 Constant: 0:39 1 (const int) 0:? 's2.tex' ( uniform texture2D) 0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex}) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:35 Function Definition: main( ( temp void) 0:35 Function Parameters: 0:? Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:35 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'tex' ( uniform texture2D) 0:? 's.s2D' ( uniform sampler) 0:? 's2.s2D' ( uniform sampler) 0:? 's2.tex' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 97(s2.s2D) DescriptorSet 0 Decorate 97(s2.s2D) Binding 0 Decorate 100(s2.tex) DescriptorSet 0 Decorate 100(s2.tex) Binding 0 Decorate 120(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler 7(os): TypeStruct 6 8: TypePointer Function 7(os) 9: TypeFloat 32 10: TypeVector 9(float) 4 11: TypeFunction 10(fvec4) 8(ptr) 15: TypeVector 9(float) 2 16: TypePointer Function 15(fvec2) 17: TypeFunction 10(fvec4) 8(ptr) 16(ptr) 22: TypeImage 9(float) 2D sampled format:Unknown 23(os2): TypeStruct 6 22 24: TypePointer Function 23(os2) 25: TypeFunction 10(fvec4) 24(ptr) 29: TypeFunction 10(fvec4) 24(ptr) 16(ptr) 34: TypeFunction 10(fvec4) 37: TypePointer UniformConstant 22 38(tex): 37(ptr) Variable UniformConstant 40: TypeInt 32 1 41: 40(int) Constant 0 42: TypePointer Function 6 45: TypeSampledImage 22 47: 9(float) Constant 1045220557 48: 9(float) Constant 1050253722 49: 15(fvec2) ConstantComposite 47 48 61: 40(int) Constant 1 62: TypePointer Function 22 81: TypePointer UniformConstant 6 82(s.s2D): 81(ptr) Variable UniformConstant 97(s2.s2D): 81(ptr) Variable UniformConstant 100(s2.tex): 37(ptr) Variable UniformConstant 119: TypePointer Output 10(fvec4) 120(@entryPointOutput): 119(ptr) Variable Output 4(main): 2 Function None 3 5: Label 121: 10(fvec4) FunctionCall 35(@main() Store 120(@entryPointOutput) 121 Return FunctionEnd 13(osCall1(struct-os-p11;): 10(fvec4) Function None 11 12(s): 8(ptr) FunctionParameter 14: Label 39: 22 Load 38(tex) 43: 42(ptr) AccessChain 12(s) 41 44: 6 Load 43 46: 45 SampledImage 39 44 50: 10(fvec4) ImageSampleImplicitLod 46 49 ReturnValue 50 FunctionEnd 20(osCall2(struct-os-p11;vf2;): 10(fvec4) Function None 17 18(s): 8(ptr) FunctionParameter 19(f2): 16(ptr) FunctionParameter 21: Label 53: 22 Load 38(tex) 54: 42(ptr) AccessChain 18(s) 41 55: 6 Load 54 56: 45 SampledImage 53 55 57: 15(fvec2) Load 19(f2) 58: 10(fvec4) ImageSampleImplicitLod 56 57 ReturnValue 58 FunctionEnd 27(os2Call1(struct-os2-p1-t211;): 10(fvec4) Function None 25 26(s): 24(ptr) FunctionParameter 28: Label 63: 62(ptr) AccessChain 26(s) 61 64: 22 Load 63 65: 42(ptr) AccessChain 26(s) 41 66: 6 Load 65 67: 45 SampledImage 64 66 68: 10(fvec4) ImageSampleImplicitLod 67 49 ReturnValue 68 FunctionEnd 32(os2Call2(struct-os2-p1-t211;vf2;): 10(fvec4) Function None 29 30(s): 24(ptr) FunctionParameter 31(f2): 16(ptr) FunctionParameter 33: Label 71: 62(ptr) AccessChain 30(s) 61 72: 22 Load 71 73: 42(ptr) AccessChain 30(s) 41 74: 6 Load 73 75: 45 SampledImage 72 74 76: 15(fvec2) Load 31(f2) 77: 10(fvec4) ImageSampleImplicitLod 75 76 ReturnValue 77 FunctionEnd 35(@main(): 10(fvec4) Function None 34 36: Label 80(aggShadow): 8(ptr) Variable Function 85(param): 8(ptr) Variable Function 88(aggShadow): 8(ptr) Variable Function 91(param): 8(ptr) Variable Function 93(param): 16(ptr) Variable Function 96(aggShadow): 24(ptr) Variable Function 103(param): 24(ptr) Variable Function 107(aggShadow): 24(ptr) Variable Function 112(param): 24(ptr) Variable Function 114(param): 16(ptr) Variable Function 83: 6 Load 82(s.s2D) 84: 42(ptr) AccessChain 80(aggShadow) 41 Store 84 83 86: 7(os) Load 80(aggShadow) Store 85(param) 86 87: 10(fvec4) FunctionCall 13(osCall1(struct-os-p11;) 85(param) 89: 6 Load 82(s.s2D) 90: 42(ptr) AccessChain 88(aggShadow) 41 Store 90 89 92: 7(os) Load 88(aggShadow) Store 91(param) 92 Store 93(param) 49 94: 10(fvec4) FunctionCall 20(osCall2(struct-os-p11;vf2;) 91(param) 93(param) 95: 10(fvec4) FAdd 87 94 98: 6 Load 97(s2.s2D) 99: 42(ptr) AccessChain 96(aggShadow) 41 Store 99 98 101: 22 Load 100(s2.tex) 102: 62(ptr) AccessChain 96(aggShadow) 61 Store 102 101 104: 23(os2) Load 96(aggShadow) Store 103(param) 104 105: 10(fvec4) FunctionCall 27(os2Call1(struct-os2-p1-t211;) 103(param) 106: 10(fvec4) FAdd 95 105 108: 6 Load 97(s2.s2D) 109: 42(ptr) AccessChain 107(aggShadow) 41 Store 109 108 110: 22 Load 100(s2.tex) 111: 62(ptr) AccessChain 107(aggShadow) 61 Store 111 110 113: 23(os2) Load 107(aggShadow) Store 112(param) 113 Store 114(param) 49 115: 10(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 112(param) 114(param) 116: 10(fvec4) FAdd 106 115 ReturnValue 116 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.flattenOpaqueInit.vert.out000066400000000000000000000361351360464450000250320ustar00rootroot00000000000000hlsl.flattenOpaqueInit.vert WARNING: AST will form illegal SPIR-V; need to transform to legalize Shader version: 500 0:? Sequence 0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:5 Function Parameters: 0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) 0:? Sequence 0:6 Branch: Return with expression 0:6 texture ( temp 4-component vector of float) 0:6 Construct combined texture-sampler ( temp sampler2D) 0:6 tex: direct index for structure ( temp texture2D) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) 0:6 Constant: 0:6 1 (const int) 0:6 smpl: direct index for structure ( temp sampler) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) 0:6 Constant: 0:6 0 (const int) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:10 Function Definition: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:10 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp sampler) 0:12 smpl: direct index for structure ( temp sampler) 0:12 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:12 Constant: 0:12 0 (const int) 0:12 'g_tInputTexture_sampler' ( uniform sampler) 0:13 move second child to first child ( temp texture2D) 0:13 tex: direct index for structure ( temp texture2D) 0:13 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:13 Constant: 0:13 1 (const int) 0:13 'g_tInputTexture' ( uniform texture2D) 0:14 Branch: Return with expression 0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:18 Function Definition: @main( ( temp 4-component vector of float) 0:18 Function Parameters: 0:? Sequence 0:19 Sequence 0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 'g_tInputTexture_sampler' ( uniform sampler) 0:19 'g_tInputTexture' ( uniform texture2D) 0:20 Sequence 0:20 move second child to first child ( temp 4-component vector of float) 0:20 'res' ( temp 4-component vector of float) 0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:20 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 Sequence 0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:22 add second child into first child ( temp 4-component vector of float) 0:22 'res' ( temp 4-component vector of float) 0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:22 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:23 Sequence 0:23 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:23 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:23 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:24 add second child into first child ( temp 4-component vector of float) 0:24 'res' ( temp 4-component vector of float) 0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:24 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:26 Branch: Return with expression 0:26 'res' ( temp 4-component vector of float) 0:18 Function Definition: main( ( temp void) 0:18 Function Parameters: 0:? Sequence 0:18 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:18 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tInputTexture_sampler' ( uniform sampler) 0:? 'g_tInputTexture' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked vertex stage: Shader version: 500 0:? Sequence 0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:5 Function Parameters: 0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) 0:? Sequence 0:6 Branch: Return with expression 0:6 texture ( temp 4-component vector of float) 0:6 Construct combined texture-sampler ( temp sampler2D) 0:6 tex: direct index for structure ( temp texture2D) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) 0:6 Constant: 0:6 1 (const int) 0:6 smpl: direct index for structure ( temp sampler) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex}) 0:6 Constant: 0:6 0 (const int) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:10 Function Definition: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:10 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp sampler) 0:12 smpl: direct index for structure ( temp sampler) 0:12 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:12 Constant: 0:12 0 (const int) 0:12 'g_tInputTexture_sampler' ( uniform sampler) 0:13 move second child to first child ( temp texture2D) 0:13 tex: direct index for structure ( temp texture2D) 0:13 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:13 Constant: 0:13 1 (const int) 0:13 'g_tInputTexture' ( uniform texture2D) 0:14 Branch: Return with expression 0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:18 Function Definition: @main( ( temp 4-component vector of float) 0:18 Function Parameters: 0:? Sequence 0:19 Sequence 0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 'g_tInputTexture_sampler' ( uniform sampler) 0:19 'g_tInputTexture' ( uniform texture2D) 0:20 Sequence 0:20 move second child to first child ( temp 4-component vector of float) 0:20 'res' ( temp 4-component vector of float) 0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:20 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 Sequence 0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:22 add second child into first child ( temp 4-component vector of float) 0:22 'res' ( temp 4-component vector of float) 0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:22 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:23 Sequence 0:23 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:23 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:23 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:24 add second child into first child ( temp 4-component vector of float) 0:24 'res' ( temp 4-component vector of float) 0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:24 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:26 Branch: Return with expression 0:26 'res' ( temp 4-component vector of float) 0:18 Function Definition: main( ( temp void) 0:18 Function Parameters: 0:? Sequence 0:18 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:18 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tInputTexture_sampler' ( uniform sampler) 0:? 'g_tInputTexture' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 80(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler 7: TypeFloat 32 8: TypeImage 7(float) 2D sampled format:Unknown 9(FxaaTex): TypeStruct 6 8 10: TypePointer Function 9(FxaaTex) 11: TypeVector 7(float) 4 12: TypeFunction 11(fvec4) 10(ptr) 16: TypeFunction 9(FxaaTex) 19: TypeFunction 11(fvec4) 22: TypeInt 32 1 23: 22(int) Constant 1 24: TypePointer Function 8 27: 22(int) Constant 0 28: TypePointer Function 6 31: TypeSampledImage 8 33: TypeVector 7(float) 2 34: 7(float) Constant 1050253722 35: 7(float) Constant 1053609165 36: 33(fvec2) ConstantComposite 34 35 37: 7(float) Constant 0 42: TypePointer UniformConstant 6 43(g_tInputTexture_sampler): 42(ptr) Variable UniformConstant 46: TypePointer UniformConstant 8 47(g_tInputTexture): 46(ptr) Variable UniformConstant 57: TypePointer Function 11(fvec4) 79: TypePointer Output 11(fvec4) 80(@entryPointOutput): 79(ptr) Variable Output 4(main): 2 Function None 3 5: Label 81: 11(fvec4) FunctionCall 20(@main() Store 80(@entryPointOutput) 81 Return FunctionEnd 14(lookUp(struct-FxaaTex-p1-t211;): 11(fvec4) Function None 12 13(tex): 10(ptr) FunctionParameter 15: Label 25: 24(ptr) AccessChain 13(tex) 23 26: 8 Load 25 29: 28(ptr) AccessChain 13(tex) 27 30: 6 Load 29 32: 31 SampledImage 26 30 38: 11(fvec4) ImageSampleExplicitLod 32 36 Lod 37 ReturnValue 38 FunctionEnd 17(fillOpaque(): 9(FxaaTex) Function None 16 18: Label 41(t): 10(ptr) Variable Function 44: 6 Load 43(g_tInputTexture_sampler) 45: 28(ptr) AccessChain 41(t) 27 Store 45 44 48: 8 Load 47(g_tInputTexture) 49: 24(ptr) AccessChain 41(t) 23 Store 49 48 50: 9(FxaaTex) Load 41(t) ReturnValue 50 FunctionEnd 20(@main(): 11(fvec4) Function None 19 21: Label 53(tex1): 10(ptr) Variable Function 58(res): 57(ptr) Variable Function 59(param): 10(ptr) Variable Function 62(tex2): 10(ptr) Variable Function 64(param): 10(ptr) Variable Function 69(tex3): 10(ptr) Variable Function 71(param): 10(ptr) Variable Function 54: 6 Load 43(g_tInputTexture_sampler) 55: 8 Load 47(g_tInputTexture) 56: 9(FxaaTex) CompositeConstruct 54 55 Store 53(tex1) 56 60: 9(FxaaTex) Load 53(tex1) Store 59(param) 60 61: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 59(param) Store 58(res) 61 63: 9(FxaaTex) FunctionCall 17(fillOpaque() Store 62(tex2) 63 65: 9(FxaaTex) Load 62(tex2) Store 64(param) 65 66: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 64(param) 67: 11(fvec4) Load 58(res) 68: 11(fvec4) FAdd 67 66 Store 58(res) 68 70: 9(FxaaTex) Load 53(tex1) Store 69(tex3) 70 72: 9(FxaaTex) Load 69(tex3) Store 71(param) 72 73: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 71(param) 74: 11(fvec4) Load 58(res) 75: 11(fvec4) FAdd 74 73 Store 58(res) 75 76: 11(fvec4) Load 58(res) ReturnValue 76 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out000066400000000000000000000237171360464450000255120ustar00rootroot00000000000000hlsl.flattenOpaqueInitMix.vert WARNING: AST will form illegal SPIR-V; need to transform to legalize Shader version: 500 0:? Sequence 0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) 0:5 Function Parameters: 0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:? Sequence 0:6 Branch: Return with expression 0:6 texture ( temp 4-component vector of float) 0:6 Construct combined texture-sampler ( temp sampler2D) 0:6 tex: direct index for structure ( temp texture2D) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:6 Constant: 0:6 1 (const int) 0:6 smpl: direct index for structure ( temp sampler) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:6 Constant: 0:6 0 (const int) 0:? Construct vec2 ( temp 2-component vector of float) 0:6 f: direct index for structure ( temp float) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:6 Constant: 0:6 2 (const int) 0:6 f: direct index for structure ( temp float) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:6 Constant: 0:6 2 (const int) 0:10 Function Definition: @main( ( temp 4-component vector of float) 0:10 Function Parameters: 0:? Sequence 0:11 Sequence 0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 'g_tInputTexture_sampler' ( uniform sampler) 0:11 'g_tInputTexture' ( uniform texture2D) 0:11 Constant: 0:11 0.500000 0:12 Branch: Return with expression 0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) 0:12 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:10 Function Definition: main( ( temp void) 0:10 Function Parameters: 0:? Sequence 0:10 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:10 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tInputTexture_sampler' ( uniform sampler) 0:? 'g_tInputTexture' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked vertex stage: Shader version: 500 0:? Sequence 0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) 0:5 Function Parameters: 0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:? Sequence 0:6 Branch: Return with expression 0:6 texture ( temp 4-component vector of float) 0:6 Construct combined texture-sampler ( temp sampler2D) 0:6 tex: direct index for structure ( temp texture2D) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:6 Constant: 0:6 1 (const int) 0:6 smpl: direct index for structure ( temp sampler) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:6 Constant: 0:6 0 (const int) 0:? Construct vec2 ( temp 2-component vector of float) 0:6 f: direct index for structure ( temp float) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:6 Constant: 0:6 2 (const int) 0:6 f: direct index for structure ( temp float) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:6 Constant: 0:6 2 (const int) 0:10 Function Definition: @main( ( temp 4-component vector of float) 0:10 Function Parameters: 0:? Sequence 0:11 Sequence 0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 'g_tInputTexture_sampler' ( uniform sampler) 0:11 'g_tInputTexture' ( uniform texture2D) 0:11 Constant: 0:11 0.500000 0:12 Branch: Return with expression 0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) 0:12 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:10 Function Definition: main( ( temp void) 0:10 Function Parameters: 0:? Sequence 0:10 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:10 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tInputTexture_sampler' ( uniform sampler) 0:? 'g_tInputTexture' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 57(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeSampler 7: TypeFloat 32 8: TypeImage 7(float) 2D sampled format:Unknown 9(FxaaTex): TypeStruct 6 8 7(float) 10: TypePointer Function 9(FxaaTex) 11: TypeVector 7(float) 4 12: TypeFunction 11(fvec4) 10(ptr) 16: TypeFunction 11(fvec4) 19: TypeInt 32 1 20: 19(int) Constant 1 21: TypePointer Function 8 24: 19(int) Constant 0 25: TypePointer Function 6 28: TypeSampledImage 8 30: 19(int) Constant 2 31: TypePointer Function 7(float) 36: TypeVector 7(float) 2 38: 7(float) Constant 0 43: TypePointer UniformConstant 6 44(g_tInputTexture_sampler): 43(ptr) Variable UniformConstant 46: TypePointer UniformConstant 8 47(g_tInputTexture): 46(ptr) Variable UniformConstant 49: 7(float) Constant 1056964608 56: TypePointer Output 11(fvec4) 57(@entryPointOutput): 56(ptr) Variable Output 4(main): 2 Function None 3 5: Label 58: 11(fvec4) FunctionCall 17(@main() Store 57(@entryPointOutput) 58 Return FunctionEnd 14(lookUp(struct-FxaaTex-p1-t21-f11;): 11(fvec4) Function None 12 13(tex): 10(ptr) FunctionParameter 15: Label 22: 21(ptr) AccessChain 13(tex) 20 23: 8 Load 22 26: 25(ptr) AccessChain 13(tex) 24 27: 6 Load 26 29: 28 SampledImage 23 27 32: 31(ptr) AccessChain 13(tex) 30 33: 7(float) Load 32 34: 31(ptr) AccessChain 13(tex) 30 35: 7(float) Load 34 37: 36(fvec2) CompositeConstruct 33 35 39: 11(fvec4) ImageSampleExplicitLod 29 37 Lod 38 ReturnValue 39 FunctionEnd 17(@main(): 11(fvec4) Function None 16 18: Label 42(tex): 10(ptr) Variable Function 51(param): 10(ptr) Variable Function 45: 6 Load 44(g_tInputTexture_sampler) 48: 8 Load 47(g_tInputTexture) 50: 9(FxaaTex) CompositeConstruct 45 48 49 Store 42(tex) 50 52: 9(FxaaTex) Load 42(tex) Store 51(param) 52 53: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t21-f11;) 51(param) ReturnValue 53 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.flattenSubset.frag.out000066400000000000000000000301571360464450000241560ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 47(vpos) Location 0 Decorate 50(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) 13: TypeSampler 14: TypeInt 32 1 15(S0): TypeStruct 14(int) 14(int) 13 16(S1): TypeStruct 6(float) 13 15(S0) 14(int) 17: TypePointer Function 16(S1) 19: 14(int) Constant 2 20: TypePointer UniformConstant 13 21(samp): 20(ptr) Variable UniformConstant 23: TypePointer Function 13 25(S2): TypeStruct 14(int) 14(int) 14(int) 14(int) 14(int) 16(S1) 26: TypePointer Function 25(S2) 28: 14(int) Constant 5 31: TypeImage 6(float) 2D sampled format:Unknown 32: TypePointer UniformConstant 31 33(tex): 32(ptr) Variable UniformConstant 37: TypeSampledImage 31 39: TypeVector 6(float) 2 40: 6(float) Constant 1056964608 41: 39(fvec2) ConstantComposite 40 40 46: TypePointer Input 7(fvec4) 47(vpos): 46(ptr) Variable Input 49: TypePointer Output 7(fvec4) 50(@entryPointOutput): 49(ptr) Variable Output 4(main): 2 Function None 3 5: Label 45(vpos): 8(ptr) Variable Function 51(param): 8(ptr) Variable Function 48: 7(fvec4) Load 47(vpos) Store 45(vpos) 48 52: 7(fvec4) Load 45(vpos) Store 51(param) 52 53: 7(fvec4) FunctionCall 11(@main(vf4;) 51(param) Store 50(@entryPointOutput) 53 Return FunctionEnd 11(@main(vf4;): 7(fvec4) Function None 9 10(vpos): 8(ptr) FunctionParameter 12: Label 18(s1): 17(ptr) Variable Function 27(s2): 26(ptr) Variable Function 22: 13 Load 21(samp) 24: 23(ptr) AccessChain 18(s1) 19 19 Store 24 22 29: 16(S1) Load 18(s1) 30: 17(ptr) AccessChain 27(s2) 28 Store 30 29 34: 31 Load 33(tex) 35: 23(ptr) AccessChain 27(s2) 28 19 19 36: 13 Load 35 38: 37 SampledImage 34 36 42: 7(fvec4) ImageSampleImplicitLod 38 41 ReturnValue 42 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.flattenSubset2.frag.out000066400000000000000000000311631360464450000242360ustar00rootroot00000000000000hlsl.flattenSubset2.frag WARNING: AST will form illegal SPIR-V; need to transform to legalize Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: @main(vf4; ( temp 4-component vector of float) 0:8 Function Parameters: 0:8 'vpos' ( in 4-component vector of float) 0:? Sequence 0:13 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) 0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:13 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) 0:13 Constant: 0:13 0 (const int) 0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:13 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) 0:13 Constant: 0:13 0 (const int) 0:14 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) 0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:14 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) 0:14 Constant: 0:14 0 (const int) 0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:14 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) 0:14 Constant: 0:14 0 (const int) 0:17 Sequence 0:17 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) 0:17 'n' ( temp structure{ temp float y, temp texture2D texNested}) 0:17 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:17 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) 0:17 Constant: 0:17 0 (const int) 0:20 move second child to first child ( temp texture2D) 0:20 texNested: direct index for structure ( temp texture2D) 0:20 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:20 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) 0:20 Constant: 0:20 0 (const int) 0:20 Constant: 0:20 1 (const int) 0:20 'someTex' ( uniform texture2D) 0:21 move second child to first child ( temp float) 0:21 y: direct index for structure ( temp float) 0:21 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:21 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) 0:21 Constant: 0:21 0 (const int) 0:21 Constant: 0:21 0 (const int) 0:21 Constant: 0:21 1.000000 0:23 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:8 Function Definition: main( ( temp void) 0:8 Function Parameters: 0:? Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:? 'vpos' ( temp 4-component vector of float) 0:? 'vpos' (layout( location=0) in 4-component vector of float) 0:8 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:8 Function Call: @main(vf4; ( temp 4-component vector of float) 0:? 'vpos' ( temp 4-component vector of float) 0:? Linker Objects 0:? 'someTex' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'vpos' (layout( location=0) in 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: @main(vf4; ( temp 4-component vector of float) 0:8 Function Parameters: 0:8 'vpos' ( in 4-component vector of float) 0:? Sequence 0:13 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) 0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:13 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) 0:13 Constant: 0:13 0 (const int) 0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:13 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) 0:13 Constant: 0:13 0 (const int) 0:14 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) 0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:14 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) 0:14 Constant: 0:14 0 (const int) 0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:14 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) 0:14 Constant: 0:14 0 (const int) 0:17 Sequence 0:17 move second child to first child ( temp structure{ temp float y, temp texture2D texNested}) 0:17 'n' ( temp structure{ temp float y, temp texture2D texNested}) 0:17 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:17 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex}) 0:17 Constant: 0:17 0 (const int) 0:20 move second child to first child ( temp texture2D) 0:20 texNested: direct index for structure ( temp texture2D) 0:20 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:20 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) 0:20 Constant: 0:20 0 (const int) 0:20 Constant: 0:20 1 (const int) 0:20 'someTex' ( uniform texture2D) 0:21 move second child to first child ( temp float) 0:21 y: direct index for structure ( temp float) 0:21 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested}) 0:21 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x}) 0:21 Constant: 0:21 0 (const int) 0:21 Constant: 0:21 0 (const int) 0:21 Constant: 0:21 1.000000 0:23 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:8 Function Definition: main( ( temp void) 0:8 Function Parameters: 0:? Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:? 'vpos' ( temp 4-component vector of float) 0:? 'vpos' (layout( location=0) in 4-component vector of float) 0:8 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:8 Function Call: @main(vf4; ( temp 4-component vector of float) 0:? 'vpos' ( temp 4-component vector of float) 0:? Linker Objects 0:? 'someTex' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'vpos' (layout( location=0) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.float1.frag.out000066400000000000000000000105351360464450000225170ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.float4.frag.out000066400000000000000000000124211360464450000225160ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.forLoop.frag.out000066400000000000000000001123701360464450000227510ustar00rootroot00000000000000hlsl.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): 80008 // 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) FOrdNotEqual 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) FOrdNotEqual 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) FOrdNotEqual 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 glslang-8.13.3559/Test/baseResults/hlsl.format.rwtexture.frag.out000066400000000000000000000710701360464450000246720ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.frag.out000066400000000000000000000164431360464450000213360ustar00rootroot00000000000000hlsl.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 glslang-8.13.3559/Test/baseResults/hlsl.fraggeom.frag.out000066400000000000000000000110211360464450000231070ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.function.frag.out000066400000000000000000000103561360464450000231570ustar00rootroot00000000000000hlsl.function.frag ERROR: 0:24: 'fun1' : unknown variable ERROR: 0:24: 'return' : type does not match, or is not convertible to, the function's return type ERROR: 2 compilation errors. No code generated. Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:2 Function Definition: fun0( ( temp 4-component vector of float) 0:2 Function Parameters: 0:? Sequence 0:3 Branch: Return with expression 0:3 Constant: 0:3 1.000000 0:3 1.000000 0:3 1.000000 0:3 1.000000 0:7 Function Definition: fun2(vf4; ( temp uint) 0:7 Function Parameters: 0:7 'col' ( in 4-component vector of float) 0:? Sequence 0:8 Branch: Return with expression 0:8 Constant: 0:8 7 (const uint) 0:12 Function Definition: fun4(u1;u1; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'id1' ( in uint) 0:12 'id2' ( in uint) 0:? Sequence 0:13 Branch: Return with expression 0:13 Construct vec4 ( temp 4-component vector of float) 0:13 Convert uint to float ( temp float) 0:13 component-wise multiply ( temp uint) 0:13 'id1' ( in uint) 0:13 'id2' ( in uint) 0:17 Function Definition: fun1(i1; ( temp 4-component vector of float) 0:17 Function Parameters: 0:17 'index' ( in int) 0:? Sequence 0:18 Sequence 0:18 move second child to first child ( temp uint) 0:18 'entityId' ( temp uint) 0:18 Function Call: fun2(vf4; ( temp uint) 0:18 Function Call: fun0( ( temp 4-component vector of float) 0:19 Branch: Return with expression 0:19 Function Call: fun4(u1;u1; ( temp 4-component vector of float) 0:19 'entityId' ( temp uint) 0:19 'entityId' ( temp uint) 0:23 Function Definition: @main( ( temp int) 0:23 Function Parameters: 0:23 Function Definition: main( ( temp void) 0:23 Function Parameters: 0:? Sequence 0:23 move second child to first child ( temp int) 0:? '@entryPointOutput' (layout( location=0) out int) 0:23 Function Call: @main( ( temp int) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out int) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:2 Function Definition: fun0( ( temp 4-component vector of float) 0:2 Function Parameters: 0:? Sequence 0:3 Branch: Return with expression 0:3 Constant: 0:3 1.000000 0:3 1.000000 0:3 1.000000 0:3 1.000000 0:7 Function Definition: fun2(vf4; ( temp uint) 0:7 Function Parameters: 0:7 'col' ( in 4-component vector of float) 0:? Sequence 0:8 Branch: Return with expression 0:8 Constant: 0:8 7 (const uint) 0:12 Function Definition: fun4(u1;u1; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'id1' ( in uint) 0:12 'id2' ( in uint) 0:? Sequence 0:13 Branch: Return with expression 0:13 Construct vec4 ( temp 4-component vector of float) 0:13 Convert uint to float ( temp float) 0:13 component-wise multiply ( temp uint) 0:13 'id1' ( in uint) 0:13 'id2' ( in uint) 0:17 Function Definition: fun1(i1; ( temp 4-component vector of float) 0:17 Function Parameters: 0:17 'index' ( in int) 0:? Sequence 0:18 Sequence 0:18 move second child to first child ( temp uint) 0:18 'entityId' ( temp uint) 0:18 Function Call: fun2(vf4; ( temp uint) 0:18 Function Call: fun0( ( temp 4-component vector of float) 0:19 Branch: Return with expression 0:19 Function Call: fun4(u1;u1; ( temp 4-component vector of float) 0:19 'entityId' ( temp uint) 0:19 'entityId' ( temp uint) 0:23 Function Definition: @main( ( temp int) 0:23 Function Parameters: 0:23 Function Definition: main( ( temp void) 0:23 Function Parameters: 0:? Sequence 0:23 move second child to first child ( temp int) 0:? '@entryPointOutput' (layout( location=0) out int) 0:23 Function Call: @main( ( temp int) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out int) SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/hlsl.gather.array.dx10.frag.out000066400000000000000000000561551360464450000245030ustar00rootroot00000000000000hlsl.gather.array.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of float) 0:29 'txval20' ( temp 4-component vector of float) 0:29 textureGather ( temp 4-component vector of float) 0:29 Construct combined texture-sampler ( temp sampler2DArray) 0:29 'g_tTex2df4a' ( uniform texture2DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of int) 0:30 'txval21' ( temp 4-component vector of int) 0:30 textureGather ( temp 4-component vector of int) 0:30 Construct combined texture-sampler ( temp isampler2DArray) 0:30 'g_tTex2di4a' ( uniform itexture2DArray) 0:30 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of uint) 0:31 'txval22' ( temp 4-component vector of uint) 0:31 textureGather ( temp 4-component vector of uint) 0:31 Construct combined texture-sampler ( temp usampler2DArray) 0:31 'g_tTex2du4a' ( uniform utexture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval40' ( temp 4-component vector of float) 0:35 textureGather ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp samplerCubeArray) 0:35 'g_tTexcdf4a' ( uniform textureCubeArray) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval41' ( temp 4-component vector of int) 0:36 textureGather ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isamplerCubeArray) 0:36 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval42' ( temp 4-component vector of uint) 0:37 textureGather ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usamplerCubeArray) 0:37 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? 1.000000 0:39 move second child to first child ( temp 4-component vector of float) 0:39 Color: direct index for structure ( temp 4-component vector of float) 0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp float) 0:40 Depth: direct index for structure ( temp float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Branch: Return with expression 0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of float) 0:29 'txval20' ( temp 4-component vector of float) 0:29 textureGather ( temp 4-component vector of float) 0:29 Construct combined texture-sampler ( temp sampler2DArray) 0:29 'g_tTex2df4a' ( uniform texture2DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of int) 0:30 'txval21' ( temp 4-component vector of int) 0:30 textureGather ( temp 4-component vector of int) 0:30 Construct combined texture-sampler ( temp isampler2DArray) 0:30 'g_tTex2di4a' ( uniform itexture2DArray) 0:30 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of uint) 0:31 'txval22' ( temp 4-component vector of uint) 0:31 textureGather ( temp 4-component vector of uint) 0:31 Construct combined texture-sampler ( temp usampler2DArray) 0:31 'g_tTex2du4a' ( uniform utexture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval40' ( temp 4-component vector of float) 0:35 textureGather ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp samplerCubeArray) 0:35 'g_tTexcdf4a' ( uniform textureCubeArray) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval41' ( temp 4-component vector of int) 0:36 textureGather ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isamplerCubeArray) 0:36 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval42' ( temp 4-component vector of uint) 0:37 textureGather ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usamplerCubeArray) 0:37 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? 1.000000 0:39 move second child to first child ( temp 4-component vector of float) 0:39 Color: direct index for structure ( temp 4-component vector of float) 0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp float) 0:40 Depth: direct index for structure ( temp float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Branch: Return with expression 0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 Decorate 37(g_tTex2di4a) DescriptorSet 0 Decorate 37(g_tTex2di4a) Binding 0 Decorate 52(g_tTex2du4a) DescriptorSet 0 Decorate 52(g_tTex2du4a) Binding 0 Decorate 64(g_tTexcdf4a) DescriptorSet 0 Decorate 64(g_tTexcdf4a) Binding 0 Decorate 74(g_tTexcdi4a) DescriptorSet 0 Decorate 74(g_tTexcdi4a) Binding 0 Decorate 84(g_tTexcdu4a) DescriptorSet 0 Decorate 84(g_tTexcdu4a) Binding 0 Decorate 107(@entryPointOutput.Color) Location 0 Decorate 111(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 116(g_tTex1df4a) DescriptorSet 0 Decorate 116(g_tTex1df4a) Binding 1 Decorate 117(g_tTex1df4) DescriptorSet 0 Decorate 117(g_tTex1df4) Binding 0 Decorate 120(g_tTex1di4a) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.gather.basic.dx10.frag.out000066400000000000000000000601711360464450000244370ustar00rootroot00000000000000hlsl.gather.basic.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of float) 0:34 'txval20' ( temp 4-component vector of float) 0:34 textureGather ( temp 4-component vector of float) 0:34 Construct combined texture-sampler ( temp sampler2D) 0:34 'g_tTex2df4' ( uniform texture2D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of int) 0:35 'txval21' ( temp 4-component vector of int) 0:35 textureGather ( temp 4-component vector of int) 0:35 Construct combined texture-sampler ( temp isampler2D) 0:35 'g_tTex2di4' ( uniform itexture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of uint) 0:36 'txval22' ( temp 4-component vector of uint) 0:36 textureGather ( temp 4-component vector of uint) 0:36 Construct combined texture-sampler ( temp usampler2D) 0:36 'g_tTex2du4' ( uniform utexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of float) 0:40 'txval40' ( temp 4-component vector of float) 0:40 textureGather ( temp 4-component vector of float) 0:40 Construct combined texture-sampler ( temp samplerCube) 0:40 'g_tTexcdf4' ( uniform textureCube) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of int) 0:41 'txval41' ( temp 4-component vector of int) 0:41 textureGather ( temp 4-component vector of int) 0:41 Construct combined texture-sampler ( temp isamplerCube) 0:41 'g_tTexcdi4' ( uniform itextureCube) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:42 Sequence 0:42 move second child to first child ( temp 4-component vector of uint) 0:42 'txval42' ( temp 4-component vector of uint) 0:42 textureGather ( temp 4-component vector of uint) 0:42 Construct combined texture-sampler ( temp usamplerCube) 0:42 'g_tTexcdu4' ( uniform utextureCube) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:44 move second child to first child ( temp 4-component vector of float) 0:44 Color: direct index for structure ( temp 4-component vector of float) 0:44 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: 0:44 1.000000 0:44 1.000000 0:44 1.000000 0:44 1.000000 0:45 move second child to first child ( temp float) 0:45 Depth: direct index for structure ( temp float) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 0:47 Branch: Return with expression 0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Definition: main( ( temp void) 0:29 Function Parameters: 0:? Sequence 0:29 Sequence 0:29 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:29 Color: direct index for structure ( temp 4-component vector of float) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Constant: 0:29 0 (const int) 0:29 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:29 Depth: direct index for structure ( temp float) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Constant: 0:29 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_sSamp2d' ( uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of float) 0:34 'txval20' ( temp 4-component vector of float) 0:34 textureGather ( temp 4-component vector of float) 0:34 Construct combined texture-sampler ( temp sampler2D) 0:34 'g_tTex2df4' ( uniform texture2D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of int) 0:35 'txval21' ( temp 4-component vector of int) 0:35 textureGather ( temp 4-component vector of int) 0:35 Construct combined texture-sampler ( temp isampler2D) 0:35 'g_tTex2di4' ( uniform itexture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of uint) 0:36 'txval22' ( temp 4-component vector of uint) 0:36 textureGather ( temp 4-component vector of uint) 0:36 Construct combined texture-sampler ( temp usampler2D) 0:36 'g_tTex2du4' ( uniform utexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of float) 0:40 'txval40' ( temp 4-component vector of float) 0:40 textureGather ( temp 4-component vector of float) 0:40 Construct combined texture-sampler ( temp samplerCube) 0:40 'g_tTexcdf4' ( uniform textureCube) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of int) 0:41 'txval41' ( temp 4-component vector of int) 0:41 textureGather ( temp 4-component vector of int) 0:41 Construct combined texture-sampler ( temp isamplerCube) 0:41 'g_tTexcdi4' ( uniform itextureCube) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:42 Sequence 0:42 move second child to first child ( temp 4-component vector of uint) 0:42 'txval42' ( temp 4-component vector of uint) 0:42 textureGather ( temp 4-component vector of uint) 0:42 Construct combined texture-sampler ( temp usamplerCube) 0:42 'g_tTexcdu4' ( uniform utextureCube) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:44 move second child to first child ( temp 4-component vector of float) 0:44 Color: direct index for structure ( temp 4-component vector of float) 0:44 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:44 Constant: 0:44 0 (const int) 0:44 Constant: 0:44 1.000000 0:44 1.000000 0:44 1.000000 0:44 1.000000 0:45 move second child to first child ( temp float) 0:45 Depth: direct index for structure ( temp float) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 0:47 Branch: Return with expression 0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Definition: main( ( temp void) 0:29 Function Parameters: 0:? Sequence 0:29 Sequence 0:29 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:29 Color: direct index for structure ( temp 4-component vector of float) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Constant: 0:29 0 (const int) 0:29 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:29 Depth: direct index for structure ( temp float) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Constant: 0:29 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_sSamp2d' ( uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 36(g_tTex2di4) Binding 0 Decorate 51(g_tTex2du4) DescriptorSet 0 Decorate 51(g_tTex2du4) Binding 0 Decorate 63(g_tTexcdf4) DescriptorSet 0 Decorate 63(g_tTexcdf4) Binding 0 Decorate 74(g_tTexcdi4) DescriptorSet 0 Decorate 74(g_tTexcdi4) Binding 0 Decorate 84(g_tTexcdu4) DescriptorSet 0 Decorate 84(g_tTexcdu4) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.gather.basic.dx10.vert.out000066400000000000000000000513121360464450000244750ustar00rootroot00000000000000hlsl.gather.basic.dx10.vert Shader version: 500 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of float) 0:33 'txval20' ( temp 4-component vector of float) 0:33 textureGather ( temp 4-component vector of float) 0:33 Construct combined texture-sampler ( temp sampler2D) 0:33 'g_tTex2df4' ( uniform texture2D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of int) 0:34 'txval21' ( temp 4-component vector of int) 0:34 textureGather ( temp 4-component vector of int) 0:34 Construct combined texture-sampler ( temp isampler2D) 0:34 'g_tTex2di4' ( uniform itexture2D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of uint) 0:35 'txval22' ( temp 4-component vector of uint) 0:35 textureGather ( temp 4-component vector of uint) 0:35 Construct combined texture-sampler ( temp usampler2D) 0:35 'g_tTex2du4' ( uniform utexture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval40' ( temp 4-component vector of float) 0:39 textureGather ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp samplerCube) 0:39 'g_tTexcdf4' ( uniform textureCube) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval41' ( temp 4-component vector of int) 0:40 textureGather ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isamplerCube) 0:40 'g_tTexcdi4' ( uniform itextureCube) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval42' ( temp 4-component vector of uint) 0:41 textureGather ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usamplerCube) 0:41 'g_tTexcdu4' ( uniform utextureCube) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:43 move second child to first child ( temp 4-component vector of float) 0:43 Pos: direct index for structure ( temp 4-component vector of float) 0:43 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:43 Constant: 0:43 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:45 Branch: Return with expression 0:45 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) 0:28 Pos: direct index for structure ( temp 4-component vector of float) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:28 Constant: 0:28 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_sSamp2d' ( uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) Linked vertex stage: Shader version: 500 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of float) 0:33 'txval20' ( temp 4-component vector of float) 0:33 textureGather ( temp 4-component vector of float) 0:33 Construct combined texture-sampler ( temp sampler2D) 0:33 'g_tTex2df4' ( uniform texture2D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of int) 0:34 'txval21' ( temp 4-component vector of int) 0:34 textureGather ( temp 4-component vector of int) 0:34 Construct combined texture-sampler ( temp isampler2D) 0:34 'g_tTex2di4' ( uniform itexture2D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of uint) 0:35 'txval22' ( temp 4-component vector of uint) 0:35 textureGather ( temp 4-component vector of uint) 0:35 Construct combined texture-sampler ( temp usampler2D) 0:35 'g_tTex2du4' ( uniform utexture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval40' ( temp 4-component vector of float) 0:39 textureGather ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp samplerCube) 0:39 'g_tTexcdf4' ( uniform textureCube) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval41' ( temp 4-component vector of int) 0:40 textureGather ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isamplerCube) 0:40 'g_tTexcdi4' ( uniform itextureCube) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval42' ( temp 4-component vector of uint) 0:41 textureGather ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usamplerCube) 0:41 'g_tTexcdu4' ( uniform utextureCube) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:43 move second child to first child ( temp 4-component vector of float) 0:43 Pos: direct index for structure ( temp 4-component vector of float) 0:43 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:43 Constant: 0:43 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:45 Branch: Return with expression 0:45 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) 0:28 Pos: direct index for structure ( temp 4-component vector of float) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:28 Constant: 0:28 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_sSamp2d' ( uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 Decorate 36(g_tTex2di4) DescriptorSet 0 Decorate 36(g_tTex2di4) Binding 0 Decorate 51(g_tTex2du4) DescriptorSet 0 Decorate 51(g_tTex2du4) Binding 0 Decorate 63(g_tTexcdf4) DescriptorSet 0 Decorate 63(g_tTexcdf4) Binding 0 Decorate 74(g_tTexcdi4) DescriptorSet 0 Decorate 74(g_tTexcdi4) Binding 0 Decorate 84(g_tTexcdu4) DescriptorSet 0 Decorate 84(g_tTexcdu4) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.gather.offset.dx10.frag.out000066400000000000000000000501221360464450000246370ustar00rootroot00000000000000hlsl.gather.offset.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of float) 0:33 'txval20' ( temp 4-component vector of float) 0:33 textureGatherOffset ( temp 4-component vector of float) 0:33 Construct combined texture-sampler ( temp sampler2D) 0:33 'g_tTex2df4' ( uniform texture2D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of int) 0:34 'txval21' ( temp 4-component vector of int) 0:34 textureGatherOffset ( temp 4-component vector of int) 0:34 Construct combined texture-sampler ( temp isampler2D) 0:34 'g_tTex2di4' ( uniform itexture2D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of uint) 0:35 'txval22' ( temp 4-component vector of uint) 0:35 textureGatherOffset ( temp 4-component vector of uint) 0:35 Construct combined texture-sampler ( temp usampler2D) 0:35 'g_tTex2du4' ( uniform utexture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:40 move second child to first child ( temp 4-component vector of float) 0:40 Color: direct index for structure ( temp 4-component vector of float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:41 move second child to first child ( temp float) 0:41 Depth: direct index for structure ( temp float) 0:41 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Branch: Return with expression 0:43 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of float) 0:33 'txval20' ( temp 4-component vector of float) 0:33 textureGatherOffset ( temp 4-component vector of float) 0:33 Construct combined texture-sampler ( temp sampler2D) 0:33 'g_tTex2df4' ( uniform texture2D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of int) 0:34 'txval21' ( temp 4-component vector of int) 0:34 textureGatherOffset ( temp 4-component vector of int) 0:34 Construct combined texture-sampler ( temp isampler2D) 0:34 'g_tTex2di4' ( uniform itexture2D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of uint) 0:35 'txval22' ( temp 4-component vector of uint) 0:35 textureGatherOffset ( temp 4-component vector of uint) 0:35 Construct combined texture-sampler ( temp usampler2D) 0:35 'g_tTex2du4' ( uniform utexture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:40 move second child to first child ( temp 4-component vector of float) 0:40 Color: direct index for structure ( temp 4-component vector of float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:40 1.000000 0:41 move second child to first child ( temp float) 0:41 Depth: direct index for structure ( temp float) 0:41 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:41 Constant: 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 0:43 Branch: Return with expression 0:43 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 Decorate 39(g_tTex2di4) DescriptorSet 0 Decorate 39(g_tTex2di4) Binding 0 Decorate 55(g_tTex2du4) DescriptorSet 0 Decorate 55(g_tTex2du4) Binding 0 Decorate 79(@entryPointOutput.Color) Location 0 Decorate 83(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 88(g_tTex1df4a) DescriptorSet 0 Decorate 88(g_tTex1df4a) Binding 1 Decorate 89(g_tTex1df4) DescriptorSet 0 Decorate 89(g_tTex1df4) Binding 0 Decorate 92(g_tTex1di4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out000066400000000000000000000433421360464450000257040ustar00rootroot00000000000000hlsl.gather.offsetarray.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence 0:25 move second child to first child ( temp 4-component vector of float) 0:25 'txval20' ( temp 4-component vector of float) 0:25 textureGatherOffset ( temp 4-component vector of float) 0:25 Construct combined texture-sampler ( temp sampler2DArray) 0:25 'g_tTex2df4' ( uniform texture2DArray) 0:25 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:26 Sequence 0:26 move second child to first child ( temp 4-component vector of int) 0:26 'txval21' ( temp 4-component vector of int) 0:26 textureGatherOffset ( temp 4-component vector of int) 0:26 Construct combined texture-sampler ( temp isampler2DArray) 0:26 'g_tTex2di4' ( uniform itexture2DArray) 0:26 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.400000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of uint) 0:27 'txval22' ( temp 4-component vector of uint) 0:27 textureGatherOffset ( temp 4-component vector of uint) 0:27 Construct combined texture-sampler ( temp usampler2DArray) 0:27 'g_tTex2du4' ( uniform utexture2DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:32 move second child to first child ( temp 4-component vector of float) 0:32 Color: direct index for structure ( temp 4-component vector of float) 0:32 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: 0:32 1.000000 0:32 1.000000 0:32 1.000000 0:32 1.000000 0:33 move second child to first child ( temp float) 0:33 Depth: direct index for structure ( temp float) 0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 0:35 Branch: Return with expression 0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Definition: main( ( temp void) 0:20 Function Parameters: 0:? Sequence 0:20 Sequence 0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:20 Color: direct index for structure ( temp 4-component vector of float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 0 (const int) 0:20 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:20 Depth: direct index for structure ( temp float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence 0:25 move second child to first child ( temp 4-component vector of float) 0:25 'txval20' ( temp 4-component vector of float) 0:25 textureGatherOffset ( temp 4-component vector of float) 0:25 Construct combined texture-sampler ( temp sampler2DArray) 0:25 'g_tTex2df4' ( uniform texture2DArray) 0:25 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:26 Sequence 0:26 move second child to first child ( temp 4-component vector of int) 0:26 'txval21' ( temp 4-component vector of int) 0:26 textureGatherOffset ( temp 4-component vector of int) 0:26 Construct combined texture-sampler ( temp isampler2DArray) 0:26 'g_tTex2di4' ( uniform itexture2DArray) 0:26 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.400000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of uint) 0:27 'txval22' ( temp 4-component vector of uint) 0:27 textureGatherOffset ( temp 4-component vector of uint) 0:27 Construct combined texture-sampler ( temp usampler2DArray) 0:27 'g_tTex2du4' ( uniform utexture2DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:32 move second child to first child ( temp 4-component vector of float) 0:32 Color: direct index for structure ( temp 4-component vector of float) 0:32 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:32 Constant: 0:32 0 (const int) 0:32 Constant: 0:32 1.000000 0:32 1.000000 0:32 1.000000 0:32 1.000000 0:33 move second child to first child ( temp float) 0:33 Depth: direct index for structure ( temp float) 0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 0:35 Branch: Return with expression 0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Definition: main( ( temp void) 0:20 Function Parameters: 0:? Sequence 0:20 Sequence 0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:20 Color: direct index for structure ( temp 4-component vector of float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 0 (const int) 0:20 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:20 Depth: direct index for structure ( temp float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 Decorate 40(g_tTex2di4) DescriptorSet 0 Decorate 40(g_tTex2di4) Binding 0 Decorate 55(g_tTex2du4) DescriptorSet 0 Decorate 55(g_tTex2du4) Binding 0 Decorate 80(@entryPointOutput.Color) Location 0 Decorate 84(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 89(g_tTex1df4a) DescriptorSet 0 Decorate 89(g_tTex1df4a) Binding 1 Decorate 90(g_tTex1df4) DescriptorSet 0 Decorate 90(g_tTex1df4) Binding 0 Decorate 93(g_tTex1di4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out000066400000000000000000002022001360464450000251170ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 MemberDecorate 26($Global) 0 Offset 0 MemberDecorate 26($Global) 1 Offset 8 MemberDecorate 26($Global) 2 Offset 16 MemberDecorate 26($Global) 3 Offset 32 Decorate 26($Global) Block Decorate 28 DescriptorSet 0 Decorate 28 Binding 0 Decorate 41(g_tTex2di4a) DescriptorSet 0 Decorate 41(g_tTex2di4a) Binding 0 Decorate 55(g_tTex2du4a) DescriptorSet 0 Decorate 55(g_tTex2du4a) Binding 0 Decorate 131(g_tTexcdf4a) DescriptorSet 0 Decorate 131(g_tTexcdf4a) Binding 0 Decorate 143(g_tTexcdi4a) DescriptorSet 0 Decorate 143(g_tTexcdi4a) Binding 0 Decorate 154(g_tTexcdu4a) DescriptorSet 0 Decorate 154(g_tTexcdu4a) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out000066400000000000000000002040741360464450000250750ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 MemberDecorate 26($Global) 0 Offset 0 MemberDecorate 26($Global) 1 Offset 8 MemberDecorate 26($Global) 2 Offset 16 MemberDecorate 26($Global) 3 Offset 32 Decorate 26($Global) Block Decorate 28 DescriptorSet 0 Decorate 28 Binding 0 Decorate 41(g_tTex2di4) DescriptorSet 0 Decorate 41(g_tTex2di4) Binding 0 Decorate 55(g_tTex2du4) DescriptorSet 0 Decorate 55(g_tTex2du4) Binding 0 Decorate 131(g_tTexcdf4) DescriptorSet 0 Decorate 131(g_tTexcdf4) Binding 0 Decorate 143(g_tTexcdi4) DescriptorSet 0 Decorate 143(g_tTexcdi4) Binding 0 Decorate 154(g_tTexcdu4) DescriptorSet 0 Decorate 154(g_tTexcdu4) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out000066400000000000000000004304571360464450000253100ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 MemberDecorate 30($Global) 0 Offset 0 MemberDecorate 30($Global) 1 Offset 8 MemberDecorate 30($Global) 2 Offset 16 MemberDecorate 30($Global) 3 Offset 32 MemberDecorate 30($Global) 4 Offset 48 MemberDecorate 30($Global) 5 Offset 56 MemberDecorate 30($Global) 6 Offset 64 MemberDecorate 30($Global) 7 Offset 80 Decorate 30($Global) Block Decorate 32 DescriptorSet 0 Decorate 32 Binding 0 Decorate 47(g_tTex2di4) DescriptorSet 0 Decorate 47(g_tTex2di4) Binding 0 Decorate 63(g_tTex2du4) DescriptorSet 0 Decorate 63(g_tTex2du4) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out000066400000000000000000004264631360464450000263510ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 MemberDecorate 30($Global) 0 Offset 0 MemberDecorate 30($Global) 1 Offset 8 MemberDecorate 30($Global) 2 Offset 16 MemberDecorate 30($Global) 3 Offset 32 MemberDecorate 30($Global) 4 Offset 48 MemberDecorate 30($Global) 5 Offset 56 MemberDecorate 30($Global) 6 Offset 64 MemberDecorate 30($Global) 7 Offset 80 Decorate 30($Global) Block Decorate 32 DescriptorSet 0 Decorate 32 Binding 0 Decorate 47(g_tTex2di4a) DescriptorSet 0 Decorate 47(g_tTex2di4a) Binding 0 Decorate 63(g_tTex2du4a) DescriptorSet 0 Decorate 63(g_tTex2du4a) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out000066400000000000000000001153131360464450000257770ustar00rootroot00000000000000hlsl.gathercmpRGBA.offset.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of float) 0:45 'txval001' ( temp 4-component vector of float) 0:45 textureGatherOffset ( temp 4-component vector of float) 0:45 Construct combined texture-sampler ( temp sampler2DShadow) 0:45 'g_tTex2df4' ( uniform texture2DShadow) 0:45 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:45 c2: direct index for structure ( uniform 2-component vector of float) 0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:45 Constant: 0:45 1 (const uint) 0:45 Constant: 0:45 0.750000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:46 Sequence 0:46 move second child to first child ( temp 4-component vector of int) 0:46 'txval011' ( temp 4-component vector of int) 0:46 textureGatherOffset ( temp 4-component vector of int) 0:46 Construct combined texture-sampler ( temp isampler2DShadow) 0:46 'g_tTex2di4' ( uniform itexture2DShadow) 0:46 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:46 c2: direct index for structure ( uniform 2-component vector of float) 0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:46 Constant: 0:46 1 (const uint) 0:46 Constant: 0:46 0.750000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:47 Sequence 0:47 move second child to first child ( temp 4-component vector of uint) 0:47 'txval021' ( temp 4-component vector of uint) 0:47 textureGatherOffset ( temp 4-component vector of uint) 0:47 Construct combined texture-sampler ( temp usampler2DShadow) 0:47 'g_tTex2du4' ( uniform utexture2DShadow) 0:47 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:47 c2: direct index for structure ( uniform 2-component vector of float) 0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:47 Constant: 0:47 1 (const uint) 0:47 Constant: 0:47 0.750000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:49 Sequence 0:49 move second child to first child ( temp 4-component vector of float) 0:49 'txval004' ( temp 4-component vector of float) 0:49 textureGatherOffsets ( temp 4-component vector of float) 0:49 Construct combined texture-sampler ( temp sampler2DShadow) 0:49 'g_tTex2df4' ( uniform texture2DShadow) 0:49 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:49 c2: direct index for structure ( uniform 2-component vector of float) 0:49 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:49 Constant: 0:49 1 (const uint) 0:49 Constant: 0:49 0.750000 0:49 Constant: 0:49 1 (const int) 0:49 0 (const int) 0:49 1 (const int) 0:49 0 (const int) 0:49 1 (const int) 0:49 0 (const int) 0:49 1 (const int) 0:49 0 (const int) 0:50 Sequence 0:50 move second child to first child ( temp 4-component vector of int) 0:50 'txval014' ( temp 4-component vector of int) 0:50 textureGatherOffsets ( temp 4-component vector of int) 0:50 Construct combined texture-sampler ( temp isampler2DShadow) 0:50 'g_tTex2di4' ( uniform itexture2DShadow) 0:50 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:50 c2: direct index for structure ( uniform 2-component vector of float) 0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:50 Constant: 0:50 1 (const uint) 0:50 Constant: 0:50 0.750000 0:50 Constant: 0:50 1 (const int) 0:50 -1 (const int) 0:50 1 (const int) 0:50 -1 (const int) 0:50 1 (const int) 0:50 -1 (const int) 0:50 1 (const int) 0:50 -1 (const int) 0:51 Sequence 0:51 move second child to first child ( temp 4-component vector of uint) 0:51 'txval024' ( temp 4-component vector of uint) 0:51 textureGatherOffsets ( temp 4-component vector of uint) 0:51 Construct combined texture-sampler ( temp usampler2DShadow) 0:51 'g_tTex2du4' ( uniform utexture2DShadow) 0:51 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:51 c2: direct index for structure ( uniform 2-component vector of float) 0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:51 Constant: 0:51 1 (const uint) 0:51 Constant: 0:51 0.750000 0:51 Constant: 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:53 Sequence 0:53 move second child to first child ( temp 4-component vector of float) 0:53 'txval401' ( temp 4-component vector of float) 0:53 textureGatherOffset ( temp 4-component vector of float) 0:53 Construct combined texture-sampler ( temp sampler2DShadow) 0:53 'g_tTex2df4' ( uniform texture2DShadow) 0:53 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:53 c2: direct index for structure ( uniform 2-component vector of float) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:53 Constant: 0:53 1 (const uint) 0:53 Constant: 0:53 0.750000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:54 Sequence 0:54 move second child to first child ( temp 4-component vector of int) 0:54 'txval411' ( temp 4-component vector of int) 0:54 textureGatherOffset ( temp 4-component vector of int) 0:54 Construct combined texture-sampler ( temp isampler2DShadow) 0:54 'g_tTex2di4' ( uniform itexture2DShadow) 0:54 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:54 c2: direct index for structure ( uniform 2-component vector of float) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:54 Constant: 0:54 1 (const uint) 0:54 Constant: 0:54 0.750000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:55 Sequence 0:55 move second child to first child ( temp 4-component vector of uint) 0:55 'txval421' ( temp 4-component vector of uint) 0:55 textureGatherOffset ( temp 4-component vector of uint) 0:55 Construct combined texture-sampler ( temp usampler2DShadow) 0:55 'g_tTex2du4' ( uniform utexture2DShadow) 0:55 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:55 c2: direct index for structure ( uniform 2-component vector of float) 0:55 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:55 Constant: 0:55 1 (const uint) 0:55 Constant: 0:55 0.750000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:110 move second child to first child ( temp 4-component vector of float) 0:110 Color: direct index for structure ( temp 4-component vector of float) 0:110 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:110 Constant: 0:110 0 (const int) 0:110 Constant: 0:110 1.000000 0:110 1.000000 0:110 1.000000 0:110 1.000000 0:111 move second child to first child ( temp float) 0:111 Depth: direct index for structure ( temp float) 0:111 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:111 Constant: 0:111 1 (const int) 0:111 Constant: 0:111 1.000000 0:113 Branch: Return with expression 0:113 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2DShadow) 0:? 'g_tTex2di4' ( uniform itexture2DShadow) 0:? 'g_tTex2du4' ( uniform utexture2DShadow) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of float) 0:45 'txval001' ( temp 4-component vector of float) 0:45 textureGatherOffset ( temp 4-component vector of float) 0:45 Construct combined texture-sampler ( temp sampler2DShadow) 0:45 'g_tTex2df4' ( uniform texture2DShadow) 0:45 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:45 c2: direct index for structure ( uniform 2-component vector of float) 0:45 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:45 Constant: 0:45 1 (const uint) 0:45 Constant: 0:45 0.750000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:46 Sequence 0:46 move second child to first child ( temp 4-component vector of int) 0:46 'txval011' ( temp 4-component vector of int) 0:46 textureGatherOffset ( temp 4-component vector of int) 0:46 Construct combined texture-sampler ( temp isampler2DShadow) 0:46 'g_tTex2di4' ( uniform itexture2DShadow) 0:46 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:46 c2: direct index for structure ( uniform 2-component vector of float) 0:46 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:46 Constant: 0:46 1 (const uint) 0:46 Constant: 0:46 0.750000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:47 Sequence 0:47 move second child to first child ( temp 4-component vector of uint) 0:47 'txval021' ( temp 4-component vector of uint) 0:47 textureGatherOffset ( temp 4-component vector of uint) 0:47 Construct combined texture-sampler ( temp usampler2DShadow) 0:47 'g_tTex2du4' ( uniform utexture2DShadow) 0:47 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:47 c2: direct index for structure ( uniform 2-component vector of float) 0:47 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:47 Constant: 0:47 1 (const uint) 0:47 Constant: 0:47 0.750000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:49 Sequence 0:49 move second child to first child ( temp 4-component vector of float) 0:49 'txval004' ( temp 4-component vector of float) 0:49 textureGatherOffsets ( temp 4-component vector of float) 0:49 Construct combined texture-sampler ( temp sampler2DShadow) 0:49 'g_tTex2df4' ( uniform texture2DShadow) 0:49 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:49 c2: direct index for structure ( uniform 2-component vector of float) 0:49 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:49 Constant: 0:49 1 (const uint) 0:49 Constant: 0:49 0.750000 0:49 Constant: 0:49 1 (const int) 0:49 0 (const int) 0:49 1 (const int) 0:49 0 (const int) 0:49 1 (const int) 0:49 0 (const int) 0:49 1 (const int) 0:49 0 (const int) 0:50 Sequence 0:50 move second child to first child ( temp 4-component vector of int) 0:50 'txval014' ( temp 4-component vector of int) 0:50 textureGatherOffsets ( temp 4-component vector of int) 0:50 Construct combined texture-sampler ( temp isampler2DShadow) 0:50 'g_tTex2di4' ( uniform itexture2DShadow) 0:50 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:50 c2: direct index for structure ( uniform 2-component vector of float) 0:50 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:50 Constant: 0:50 1 (const uint) 0:50 Constant: 0:50 0.750000 0:50 Constant: 0:50 1 (const int) 0:50 -1 (const int) 0:50 1 (const int) 0:50 -1 (const int) 0:50 1 (const int) 0:50 -1 (const int) 0:50 1 (const int) 0:50 -1 (const int) 0:51 Sequence 0:51 move second child to first child ( temp 4-component vector of uint) 0:51 'txval024' ( temp 4-component vector of uint) 0:51 textureGatherOffsets ( temp 4-component vector of uint) 0:51 Construct combined texture-sampler ( temp usampler2DShadow) 0:51 'g_tTex2du4' ( uniform utexture2DShadow) 0:51 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:51 c2: direct index for structure ( uniform 2-component vector of float) 0:51 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:51 Constant: 0:51 1 (const uint) 0:51 Constant: 0:51 0.750000 0:51 Constant: 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:51 1 (const int) 0:53 Sequence 0:53 move second child to first child ( temp 4-component vector of float) 0:53 'txval401' ( temp 4-component vector of float) 0:53 textureGatherOffset ( temp 4-component vector of float) 0:53 Construct combined texture-sampler ( temp sampler2DShadow) 0:53 'g_tTex2df4' ( uniform texture2DShadow) 0:53 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:53 c2: direct index for structure ( uniform 2-component vector of float) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:53 Constant: 0:53 1 (const uint) 0:53 Constant: 0:53 0.750000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:54 Sequence 0:54 move second child to first child ( temp 4-component vector of int) 0:54 'txval411' ( temp 4-component vector of int) 0:54 textureGatherOffset ( temp 4-component vector of int) 0:54 Construct combined texture-sampler ( temp isampler2DShadow) 0:54 'g_tTex2di4' ( uniform itexture2DShadow) 0:54 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:54 c2: direct index for structure ( uniform 2-component vector of float) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:54 Constant: 0:54 1 (const uint) 0:54 Constant: 0:54 0.750000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:55 Sequence 0:55 move second child to first child ( temp 4-component vector of uint) 0:55 'txval421' ( temp 4-component vector of uint) 0:55 textureGatherOffset ( temp 4-component vector of uint) 0:55 Construct combined texture-sampler ( temp usampler2DShadow) 0:55 'g_tTex2du4' ( uniform utexture2DShadow) 0:55 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:55 c2: direct index for structure ( uniform 2-component vector of float) 0:55 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:55 Constant: 0:55 1 (const uint) 0:55 Constant: 0:55 0.750000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:110 move second child to first child ( temp 4-component vector of float) 0:110 Color: direct index for structure ( temp 4-component vector of float) 0:110 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:110 Constant: 0:110 0 (const int) 0:110 Constant: 0:110 1.000000 0:110 1.000000 0:110 1.000000 0:110 1.000000 0:111 move second child to first child ( temp float) 0:111 Depth: direct index for structure ( temp float) 0:111 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:111 Constant: 0:111 1 (const int) 0:111 Constant: 0:111 1.000000 0:113 Branch: Return with expression 0:113 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSampCmp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2DShadow) 0:? 'g_tTex2di4' ( uniform itexture2DShadow) 0:? 'g_tTex2du4' ( uniform utexture2DShadow) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float c1, uniform 2-component vector of float c2, uniform 3-component vector of float c3, uniform 4-component vector of float c4}) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 20(g_sSampCmp) DescriptorSet 0 Decorate 20(g_sSampCmp) Binding 0 MemberDecorate 26($Global) 0 Offset 0 MemberDecorate 26($Global) 1 Offset 8 MemberDecorate 26($Global) 2 Offset 16 MemberDecorate 26($Global) 3 Offset 32 Decorate 26($Global) Block Decorate 28 DescriptorSet 0 Decorate 28 Binding 0 Decorate 44(g_tTex2di4) DescriptorSet 0 Decorate 44(g_tTex2di4) Binding 0 Decorate 60(g_tTex2du4) DescriptorSet 0 Decorate 60(g_tTex2du4) Binding 0 Decorate 129(@entryPointOutput.Color) Location 0 Decorate 133(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 138(g_tTex1df4a) DescriptorSet 0 Decorate 138(g_tTex1df4a) Binding 1 Decorate 139(g_tTex1df4) DescriptorSet 0 Decorate 139(g_tTex1df4) Binding 0 Decorate 142(g_tTex1di4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.getdimensions.dx10.frag.out000066400000000000000000004630171360464450000247630ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 48(g_tTex1du4) DescriptorSet 0 Decorate 48(g_tTex1du4) Binding 0 Decorate 63(g_tTex1df4a) DescriptorSet 0 Decorate 63(g_tTex1df4a) Binding 0 Decorate 85(g_tTex1di4a) DescriptorSet 0 Decorate 85(g_tTex1di4a) Binding 0 Decorate 104(g_tTex1du4a) DescriptorSet 0 Decorate 104(g_tTex1du4a) Binding 0 Decorate 123(g_tTex2df4) DescriptorSet 0 Decorate 123(g_tTex2df4) Binding 0 Decorate 143(g_tTex2di4) DescriptorSet 0 Decorate 143(g_tTex2di4) Binding 0 Decorate 162(g_tTex2du4) DescriptorSet 0 Decorate 162(g_tTex2du4) Binding 0 Decorate 183(g_tTex2df4a) DescriptorSet 0 Decorate 183(g_tTex2df4a) Binding 0 Decorate 207(g_tTex2di4a) DescriptorSet 0 Decorate 207(g_tTex2di4a) Binding 0 Decorate 230(g_tTex2du4a) DescriptorSet 0 Decorate 230(g_tTex2du4a) Binding 0 Decorate 253(g_tTex3df4) DescriptorSet 0 Decorate 253(g_tTex3df4) Binding 0 Decorate 277(g_tTex3di4) DescriptorSet 0 Decorate 277(g_tTex3di4) Binding 0 Decorate 300(g_tTex3du4) DescriptorSet 0 Decorate 300(g_tTex3du4) Binding 0 Decorate 323(g_tTexcdf4) DescriptorSet 0 Decorate 323(g_tTexcdf4) Binding 0 Decorate 342(g_tTexcdi4) DescriptorSet 0 Decorate 342(g_tTexcdi4) Binding 0 Decorate 361(g_tTexcdu4) DescriptorSet 0 Decorate 361(g_tTexcdu4) Binding 0 Decorate 380(g_tTexcdf4a) DescriptorSet 0 Decorate 380(g_tTexcdf4a) Binding 0 Decorate 403(g_tTexcdi4a) DescriptorSet 0 Decorate 403(g_tTexcdi4a) Binding 0 Decorate 426(g_tTexcdu4a) DescriptorSet 0 Decorate 426(g_tTexcdu4a) Binding 0 Decorate 449(g_tTex2dmsf4) DescriptorSet 0 Decorate 449(g_tTex2dmsf4) Binding 0 Decorate 462(g_tTex2dmsi4) DescriptorSet 0 Decorate 462(g_tTex2dmsi4) Binding 0 Decorate 474(g_tTex2dmsu4) DescriptorSet 0 Decorate 474(g_tTex2dmsu4) Binding 0 Decorate 486(g_tTex2dmsf4a) DescriptorSet 0 Decorate 486(g_tTex2dmsf4a) Binding 0 Decorate 500(g_tTex2dmsi4a) DescriptorSet 0 Decorate 500(g_tTex2dmsi4a) Binding 0 Decorate 514(g_tTex2dmsu4a) DescriptorSet 0 Decorate 514(g_tTex2dmsu4a) Binding 0 Decorate 540(@entryPointOutput.Color) Location 0 Decorate 544(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 549(g_sSamp) DescriptorSet 0 Decorate 549(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypeInt 32 0 13: TypePointer Function 12(int) 15: TypeImage 6(float) 1D sampled format:Unknown 16: TypePointer UniformConstant 15 17(g_tTex1df4): 16(ptr) Variable UniformConstant 19: TypeInt 32 1 20: 19(int) Constant 0 26: 12(int) Constant 6 33: TypeImage 19(int) 1D sampled format:Unknown 34: TypePointer UniformConstant 33 35(g_tTex1di4): 34(ptr) Variable UniformConstant 46: TypeImage 12(int) 1D sampled format:Unknown 47: TypePointer UniformConstant 46 48(g_tTex1du4): 47(ptr) Variable UniformConstant 58: TypeVector 12(int) 2 59: TypePointer Function 58(ivec2) 61: TypeImage 6(float) 1D array sampled format:Unknown 62: TypePointer UniformConstant 61 63(g_tTex1df4a): 62(ptr) Variable UniformConstant 66: 12(int) Constant 0 70: 12(int) Constant 1 83: TypeImage 19(int) 1D array sampled format:Unknown 84: TypePointer UniformConstant 83 85(g_tTex1di4a): 84(ptr) Variable UniformConstant 102: TypeImage 12(int) 1D array sampled format:Unknown 103: TypePointer UniformConstant 102 104(g_tTex1du4a): 103(ptr) Variable UniformConstant 121: TypeImage 6(float) 2D sampled format:Unknown 122: TypePointer UniformConstant 121 123(g_tTex2df4): 122(ptr) Variable UniformConstant 141: TypeImage 19(int) 2D sampled format:Unknown 142: TypePointer UniformConstant 141 143(g_tTex2di4): 142(ptr) Variable UniformConstant 160: TypeImage 12(int) 2D sampled format:Unknown 161: TypePointer UniformConstant 160 162(g_tTex2du4): 161(ptr) Variable UniformConstant 178: TypeVector 12(int) 3 179: TypePointer Function 178(ivec3) 181: TypeImage 6(float) 2D array sampled format:Unknown 182: TypePointer UniformConstant 181 183(g_tTex2df4a): 182(ptr) Variable UniformConstant 190: 12(int) Constant 2 205: TypeImage 19(int) 2D array sampled format:Unknown 206: TypePointer UniformConstant 205 207(g_tTex2di4a): 206(ptr) Variable UniformConstant 228: TypeImage 12(int) 2D array sampled format:Unknown 229: TypePointer UniformConstant 228 230(g_tTex2du4a): 229(ptr) Variable UniformConstant 251: TypeImage 6(float) 3D sampled format:Unknown 252: TypePointer UniformConstant 251 253(g_tTex3df4): 252(ptr) Variable UniformConstant 275: TypeImage 19(int) 3D sampled format:Unknown 276: TypePointer UniformConstant 275 277(g_tTex3di4): 276(ptr) Variable UniformConstant 298: TypeImage 12(int) 3D sampled format:Unknown 299: TypePointer UniformConstant 298 300(g_tTex3du4): 299(ptr) Variable UniformConstant 321: TypeImage 6(float) Cube sampled format:Unknown 322: TypePointer UniformConstant 321 323(g_tTexcdf4): 322(ptr) Variable UniformConstant 340: TypeImage 19(int) Cube sampled format:Unknown 341: TypePointer UniformConstant 340 342(g_tTexcdi4): 341(ptr) Variable UniformConstant 359: TypeImage 12(int) Cube sampled format:Unknown 360: TypePointer UniformConstant 359 361(g_tTexcdu4): 360(ptr) Variable UniformConstant 378: TypeImage 6(float) Cube array sampled format:Unknown 379: TypePointer UniformConstant 378 380(g_tTexcdf4a): 379(ptr) Variable UniformConstant 401: TypeImage 19(int) Cube array sampled format:Unknown 402: TypePointer UniformConstant 401 403(g_tTexcdi4a): 402(ptr) Variable UniformConstant 424: TypeImage 12(int) Cube array sampled format:Unknown 425: TypePointer UniformConstant 424 426(g_tTexcdu4a): 425(ptr) Variable UniformConstant 447: TypeImage 6(float) 2D multi-sampled sampled format:Unknown 448: TypePointer UniformConstant 447 449(g_tTex2dmsf4): 448(ptr) Variable UniformConstant 460: TypeImage 19(int) 2D multi-sampled sampled format:Unknown 461: TypePointer UniformConstant 460 462(g_tTex2dmsi4): 461(ptr) Variable UniformConstant 472: TypeImage 12(int) 2D multi-sampled sampled format:Unknown 473: TypePointer UniformConstant 472 474(g_tTex2dmsu4): 473(ptr) Variable UniformConstant 484: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown 485: TypePointer UniformConstant 484 486(g_tTex2dmsf4a): 485(ptr) Variable UniformConstant 498: TypeImage 19(int) 2D array multi-sampled sampled format:Unknown 499: TypePointer UniformConstant 498 500(g_tTex2dmsi4a): 499(ptr) Variable UniformConstant 512: TypeImage 12(int) 2D array multi-sampled sampled format:Unknown 513: TypePointer UniformConstant 512 514(g_tTex2dmsu4a): 513(ptr) Variable UniformConstant 525: TypePointer Function 8(PS_OUTPUT) 527: 6(float) Constant 1065353216 528: 7(fvec4) ConstantComposite 527 527 527 527 529: TypePointer Function 7(fvec4) 531: 19(int) Constant 1 532: TypePointer Function 6(float) 539: TypePointer Output 7(fvec4) 540(@entryPointOutput.Color): 539(ptr) Variable Output 543: TypePointer Output 6(float) 544(@entryPointOutput.Depth): 543(ptr) Variable Output 547: TypeSampler 548: TypePointer UniformConstant 547 549(g_sSamp): 548(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 537(flattenTemp): 525(ptr) Variable Function 538:8(PS_OUTPUT) FunctionCall 10(@main() Store 537(flattenTemp) 538 541: 529(ptr) AccessChain 537(flattenTemp) 20 542: 7(fvec4) Load 541 Store 540(@entryPointOutput.Color) 542 545: 532(ptr) AccessChain 537(flattenTemp) 531 546: 6(float) Load 545 Store 544(@entryPointOutput.Depth) 546 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 14(sizeQueryTemp): 13(ptr) Variable Function 22(WidthU): 13(ptr) Variable Function 24(sizeQueryTemp): 13(ptr) Variable Function 29(NumberOfLevelsU): 13(ptr) Variable Function 32(sizeQueryTemp): 13(ptr) Variable Function 39(sizeQueryTemp): 13(ptr) Variable Function 45(sizeQueryTemp): 13(ptr) Variable Function 52(sizeQueryTemp): 13(ptr) Variable Function 60(sizeQueryTemp): 59(ptr) Variable Function 69(ElementsU): 13(ptr) Variable Function 73(sizeQueryTemp): 59(ptr) Variable Function 82(sizeQueryTemp): 59(ptr) Variable Function 92(sizeQueryTemp): 59(ptr) Variable Function 101(sizeQueryTemp): 59(ptr) Variable Function 111(sizeQueryTemp): 59(ptr) Variable Function 120(sizeQueryTemp): 59(ptr) Variable Function 128(HeightU): 13(ptr) Variable Function 131(sizeQueryTemp): 59(ptr) Variable Function 140(sizeQueryTemp): 59(ptr) Variable Function 150(sizeQueryTemp): 59(ptr) Variable Function 159(sizeQueryTemp): 59(ptr) Variable Function 169(sizeQueryTemp): 59(ptr) Variable Function 180(sizeQueryTemp): 179(ptr) Variable Function 193(sizeQueryTemp): 179(ptr) Variable Function 204(sizeQueryTemp): 179(ptr) Variable Function 216(sizeQueryTemp): 179(ptr) Variable Function 227(sizeQueryTemp): 179(ptr) Variable Function 239(sizeQueryTemp): 179(ptr) Variable Function 250(sizeQueryTemp): 179(ptr) Variable Function 260(DepthU): 13(ptr) Variable Function 263(sizeQueryTemp): 179(ptr) Variable Function 274(sizeQueryTemp): 179(ptr) Variable Function 286(sizeQueryTemp): 179(ptr) Variable Function 297(sizeQueryTemp): 179(ptr) Variable Function 309(sizeQueryTemp): 179(ptr) Variable Function 320(sizeQueryTemp): 59(ptr) Variable Function 330(sizeQueryTemp): 59(ptr) Variable Function 339(sizeQueryTemp): 59(ptr) Variable Function 349(sizeQueryTemp): 59(ptr) Variable Function 358(sizeQueryTemp): 59(ptr) Variable Function 368(sizeQueryTemp): 59(ptr) Variable Function 377(sizeQueryTemp): 179(ptr) Variable Function 389(sizeQueryTemp): 179(ptr) Variable Function 400(sizeQueryTemp): 179(ptr) Variable Function 412(sizeQueryTemp): 179(ptr) Variable Function 423(sizeQueryTemp): 179(ptr) Variable Function 435(sizeQueryTemp): 179(ptr) Variable Function 446(sizeQueryTemp): 59(ptr) Variable Function 456(NumberOfSamplesU): 13(ptr) Variable Function 459(sizeQueryTemp): 59(ptr) Variable Function 471(sizeQueryTemp): 59(ptr) Variable Function 483(sizeQueryTemp): 179(ptr) Variable Function 497(sizeQueryTemp): 179(ptr) Variable Function 511(sizeQueryTemp): 179(ptr) Variable Function 526(psout): 525(ptr) Variable Function 18: 15 Load 17(g_tTex1df4) 21: 12(int) ImageQuerySizeLod 18 20 Store 14(sizeQueryTemp) 21 23: 12(int) Load 14(sizeQueryTemp) Store 22(WidthU) 23 25: 15 Load 17(g_tTex1df4) 27: 12(int) ImageQuerySizeLod 25 26 Store 24(sizeQueryTemp) 27 28: 12(int) Load 24(sizeQueryTemp) Store 22(WidthU) 28 30: 15 Load 17(g_tTex1df4) 31: 12(int) ImageQueryLevels 30 Store 29(NumberOfLevelsU) 31 36: 33 Load 35(g_tTex1di4) 37: 12(int) ImageQuerySizeLod 36 20 Store 32(sizeQueryTemp) 37 38: 12(int) Load 32(sizeQueryTemp) Store 22(WidthU) 38 40: 33 Load 35(g_tTex1di4) 41: 12(int) ImageQuerySizeLod 40 26 Store 39(sizeQueryTemp) 41 42: 12(int) Load 39(sizeQueryTemp) Store 22(WidthU) 42 43: 33 Load 35(g_tTex1di4) 44: 12(int) ImageQueryLevels 43 Store 29(NumberOfLevelsU) 44 49: 46 Load 48(g_tTex1du4) 50: 12(int) ImageQuerySizeLod 49 20 Store 45(sizeQueryTemp) 50 51: 12(int) Load 45(sizeQueryTemp) Store 22(WidthU) 51 53: 46 Load 48(g_tTex1du4) 54: 12(int) ImageQuerySizeLod 53 26 Store 52(sizeQueryTemp) 54 55: 12(int) Load 52(sizeQueryTemp) Store 22(WidthU) 55 56: 46 Load 48(g_tTex1du4) 57: 12(int) ImageQueryLevels 56 Store 29(NumberOfLevelsU) 57 64: 61 Load 63(g_tTex1df4a) 65: 58(ivec2) ImageQuerySizeLod 64 20 Store 60(sizeQueryTemp) 65 67: 13(ptr) AccessChain 60(sizeQueryTemp) 66 68: 12(int) Load 67 Store 22(WidthU) 68 71: 13(ptr) AccessChain 60(sizeQueryTemp) 70 72: 12(int) Load 71 Store 69(ElementsU) 72 74: 61 Load 63(g_tTex1df4a) 75: 58(ivec2) ImageQuerySizeLod 74 26 Store 73(sizeQueryTemp) 75 76: 13(ptr) AccessChain 73(sizeQueryTemp) 66 77: 12(int) Load 76 Store 22(WidthU) 77 78: 13(ptr) AccessChain 73(sizeQueryTemp) 70 79: 12(int) Load 78 Store 69(ElementsU) 79 80: 61 Load 63(g_tTex1df4a) 81: 12(int) ImageQueryLevels 80 Store 29(NumberOfLevelsU) 81 86: 83 Load 85(g_tTex1di4a) 87: 58(ivec2) ImageQuerySizeLod 86 20 Store 82(sizeQueryTemp) 87 88: 13(ptr) AccessChain 82(sizeQueryTemp) 66 89: 12(int) Load 88 Store 22(WidthU) 89 90: 13(ptr) AccessChain 82(sizeQueryTemp) 70 91: 12(int) Load 90 Store 69(ElementsU) 91 93: 83 Load 85(g_tTex1di4a) 94: 58(ivec2) ImageQuerySizeLod 93 26 Store 92(sizeQueryTemp) 94 95: 13(ptr) AccessChain 92(sizeQueryTemp) 66 96: 12(int) Load 95 Store 22(WidthU) 96 97: 13(ptr) AccessChain 92(sizeQueryTemp) 70 98: 12(int) Load 97 Store 69(ElementsU) 98 99: 83 Load 85(g_tTex1di4a) 100: 12(int) ImageQueryLevels 99 Store 29(NumberOfLevelsU) 100 105: 102 Load 104(g_tTex1du4a) 106: 58(ivec2) ImageQuerySizeLod 105 20 Store 101(sizeQueryTemp) 106 107: 13(ptr) AccessChain 101(sizeQueryTemp) 66 108: 12(int) Load 107 Store 22(WidthU) 108 109: 13(ptr) AccessChain 101(sizeQueryTemp) 70 110: 12(int) Load 109 Store 69(ElementsU) 110 112: 102 Load 104(g_tTex1du4a) 113: 58(ivec2) ImageQuerySizeLod 112 26 Store 111(sizeQueryTemp) 113 114: 13(ptr) AccessChain 111(sizeQueryTemp) 66 115: 12(int) Load 114 Store 22(WidthU) 115 116: 13(ptr) AccessChain 111(sizeQueryTemp) 70 117: 12(int) Load 116 Store 69(ElementsU) 117 118: 102 Load 104(g_tTex1du4a) 119: 12(int) ImageQueryLevels 118 Store 29(NumberOfLevelsU) 119 124: 121 Load 123(g_tTex2df4) 125: 58(ivec2) ImageQuerySizeLod 124 20 Store 120(sizeQueryTemp) 125 126: 13(ptr) AccessChain 120(sizeQueryTemp) 66 127: 12(int) Load 126 Store 22(WidthU) 127 129: 13(ptr) AccessChain 120(sizeQueryTemp) 70 130: 12(int) Load 129 Store 128(HeightU) 130 132: 121 Load 123(g_tTex2df4) 133: 58(ivec2) ImageQuerySizeLod 132 26 Store 131(sizeQueryTemp) 133 134: 13(ptr) AccessChain 131(sizeQueryTemp) 66 135: 12(int) Load 134 Store 22(WidthU) 135 136: 13(ptr) AccessChain 131(sizeQueryTemp) 70 137: 12(int) Load 136 Store 128(HeightU) 137 138: 121 Load 123(g_tTex2df4) 139: 12(int) ImageQueryLevels 138 Store 29(NumberOfLevelsU) 139 144: 141 Load 143(g_tTex2di4) 145: 58(ivec2) ImageQuerySizeLod 144 20 Store 140(sizeQueryTemp) 145 146: 13(ptr) AccessChain 140(sizeQueryTemp) 66 147: 12(int) Load 146 Store 22(WidthU) 147 148: 13(ptr) AccessChain 140(sizeQueryTemp) 70 149: 12(int) Load 148 Store 128(HeightU) 149 151: 141 Load 143(g_tTex2di4) 152: 58(ivec2) ImageQuerySizeLod 151 26 Store 150(sizeQueryTemp) 152 153: 13(ptr) AccessChain 150(sizeQueryTemp) 66 154: 12(int) Load 153 Store 22(WidthU) 154 155: 13(ptr) AccessChain 150(sizeQueryTemp) 70 156: 12(int) Load 155 Store 128(HeightU) 156 157: 141 Load 143(g_tTex2di4) 158: 12(int) ImageQueryLevels 157 Store 29(NumberOfLevelsU) 158 163: 160 Load 162(g_tTex2du4) 164: 58(ivec2) ImageQuerySizeLod 163 20 Store 159(sizeQueryTemp) 164 165: 13(ptr) AccessChain 159(sizeQueryTemp) 66 166: 12(int) Load 165 Store 22(WidthU) 166 167: 13(ptr) AccessChain 159(sizeQueryTemp) 70 168: 12(int) Load 167 Store 128(HeightU) 168 170: 160 Load 162(g_tTex2du4) 171: 58(ivec2) ImageQuerySizeLod 170 26 Store 169(sizeQueryTemp) 171 172: 13(ptr) AccessChain 169(sizeQueryTemp) 66 173: 12(int) Load 172 Store 22(WidthU) 173 174: 13(ptr) AccessChain 169(sizeQueryTemp) 70 175: 12(int) Load 174 Store 128(HeightU) 175 176: 160 Load 162(g_tTex2du4) 177: 12(int) ImageQueryLevels 176 Store 29(NumberOfLevelsU) 177 184: 181 Load 183(g_tTex2df4a) 185: 178(ivec3) ImageQuerySizeLod 184 20 Store 180(sizeQueryTemp) 185 186: 13(ptr) AccessChain 180(sizeQueryTemp) 66 187: 12(int) Load 186 Store 22(WidthU) 187 188: 13(ptr) AccessChain 180(sizeQueryTemp) 70 189: 12(int) Load 188 Store 128(HeightU) 189 191: 13(ptr) AccessChain 180(sizeQueryTemp) 190 192: 12(int) Load 191 Store 69(ElementsU) 192 194: 181 Load 183(g_tTex2df4a) 195: 178(ivec3) ImageQuerySizeLod 194 26 Store 193(sizeQueryTemp) 195 196: 13(ptr) AccessChain 193(sizeQueryTemp) 66 197: 12(int) Load 196 Store 22(WidthU) 197 198: 13(ptr) AccessChain 193(sizeQueryTemp) 70 199: 12(int) Load 198 Store 128(HeightU) 199 200: 13(ptr) AccessChain 193(sizeQueryTemp) 190 201: 12(int) Load 200 Store 69(ElementsU) 201 202: 181 Load 183(g_tTex2df4a) 203: 12(int) ImageQueryLevels 202 Store 29(NumberOfLevelsU) 203 208: 205 Load 207(g_tTex2di4a) 209: 178(ivec3) ImageQuerySizeLod 208 20 Store 204(sizeQueryTemp) 209 210: 13(ptr) AccessChain 204(sizeQueryTemp) 66 211: 12(int) Load 210 Store 22(WidthU) 211 212: 13(ptr) AccessChain 204(sizeQueryTemp) 70 213: 12(int) Load 212 Store 128(HeightU) 213 214: 13(ptr) AccessChain 204(sizeQueryTemp) 190 215: 12(int) Load 214 Store 69(ElementsU) 215 217: 205 Load 207(g_tTex2di4a) 218: 178(ivec3) ImageQuerySizeLod 217 26 Store 216(sizeQueryTemp) 218 219: 13(ptr) AccessChain 216(sizeQueryTemp) 66 220: 12(int) Load 219 Store 22(WidthU) 220 221: 13(ptr) AccessChain 216(sizeQueryTemp) 70 222: 12(int) Load 221 Store 128(HeightU) 222 223: 13(ptr) AccessChain 216(sizeQueryTemp) 190 224: 12(int) Load 223 Store 69(ElementsU) 224 225: 205 Load 207(g_tTex2di4a) 226: 12(int) ImageQueryLevels 225 Store 29(NumberOfLevelsU) 226 231: 228 Load 230(g_tTex2du4a) 232: 178(ivec3) ImageQuerySizeLod 231 20 Store 227(sizeQueryTemp) 232 233: 13(ptr) AccessChain 227(sizeQueryTemp) 66 234: 12(int) Load 233 Store 22(WidthU) 234 235: 13(ptr) AccessChain 227(sizeQueryTemp) 70 236: 12(int) Load 235 Store 128(HeightU) 236 237: 13(ptr) AccessChain 227(sizeQueryTemp) 190 238: 12(int) Load 237 Store 69(ElementsU) 238 240: 228 Load 230(g_tTex2du4a) 241: 178(ivec3) ImageQuerySizeLod 240 26 Store 239(sizeQueryTemp) 241 242: 13(ptr) AccessChain 239(sizeQueryTemp) 66 243: 12(int) Load 242 Store 22(WidthU) 243 244: 13(ptr) AccessChain 239(sizeQueryTemp) 70 245: 12(int) Load 244 Store 128(HeightU) 245 246: 13(ptr) AccessChain 239(sizeQueryTemp) 190 247: 12(int) Load 246 Store 69(ElementsU) 247 248: 228 Load 230(g_tTex2du4a) 249: 12(int) ImageQueryLevels 248 Store 29(NumberOfLevelsU) 249 254: 251 Load 253(g_tTex3df4) 255: 178(ivec3) ImageQuerySizeLod 254 20 Store 250(sizeQueryTemp) 255 256: 13(ptr) AccessChain 250(sizeQueryTemp) 66 257: 12(int) Load 256 Store 22(WidthU) 257 258: 13(ptr) AccessChain 250(sizeQueryTemp) 70 259: 12(int) Load 258 Store 128(HeightU) 259 261: 13(ptr) AccessChain 250(sizeQueryTemp) 190 262: 12(int) Load 261 Store 260(DepthU) 262 264: 251 Load 253(g_tTex3df4) 265: 178(ivec3) ImageQuerySizeLod 264 26 Store 263(sizeQueryTemp) 265 266: 13(ptr) AccessChain 263(sizeQueryTemp) 66 267: 12(int) Load 266 Store 22(WidthU) 267 268: 13(ptr) AccessChain 263(sizeQueryTemp) 70 269: 12(int) Load 268 Store 128(HeightU) 269 270: 13(ptr) AccessChain 263(sizeQueryTemp) 190 271: 12(int) Load 270 Store 260(DepthU) 271 272: 251 Load 253(g_tTex3df4) 273: 12(int) ImageQueryLevels 272 Store 29(NumberOfLevelsU) 273 278: 275 Load 277(g_tTex3di4) 279: 178(ivec3) ImageQuerySizeLod 278 20 Store 274(sizeQueryTemp) 279 280: 13(ptr) AccessChain 274(sizeQueryTemp) 66 281: 12(int) Load 280 Store 22(WidthU) 281 282: 13(ptr) AccessChain 274(sizeQueryTemp) 70 283: 12(int) Load 282 Store 128(HeightU) 283 284: 13(ptr) AccessChain 274(sizeQueryTemp) 190 285: 12(int) Load 284 Store 260(DepthU) 285 287: 275 Load 277(g_tTex3di4) 288: 178(ivec3) ImageQuerySizeLod 287 26 Store 286(sizeQueryTemp) 288 289: 13(ptr) AccessChain 286(sizeQueryTemp) 66 290: 12(int) Load 289 Store 22(WidthU) 290 291: 13(ptr) AccessChain 286(sizeQueryTemp) 70 292: 12(int) Load 291 Store 128(HeightU) 292 293: 13(ptr) AccessChain 286(sizeQueryTemp) 190 294: 12(int) Load 293 Store 260(DepthU) 294 295: 275 Load 277(g_tTex3di4) 296: 12(int) ImageQueryLevels 295 Store 29(NumberOfLevelsU) 296 301: 298 Load 300(g_tTex3du4) 302: 178(ivec3) ImageQuerySizeLod 301 20 Store 297(sizeQueryTemp) 302 303: 13(ptr) AccessChain 297(sizeQueryTemp) 66 304: 12(int) Load 303 Store 22(WidthU) 304 305: 13(ptr) AccessChain 297(sizeQueryTemp) 70 306: 12(int) Load 305 Store 128(HeightU) 306 307: 13(ptr) AccessChain 297(sizeQueryTemp) 190 308: 12(int) Load 307 Store 260(DepthU) 308 310: 298 Load 300(g_tTex3du4) 311: 178(ivec3) ImageQuerySizeLod 310 26 Store 309(sizeQueryTemp) 311 312: 13(ptr) AccessChain 309(sizeQueryTemp) 66 313: 12(int) Load 312 Store 22(WidthU) 313 314: 13(ptr) AccessChain 309(sizeQueryTemp) 70 315: 12(int) Load 314 Store 128(HeightU) 315 316: 13(ptr) AccessChain 309(sizeQueryTemp) 190 317: 12(int) Load 316 Store 260(DepthU) 317 318: 298 Load 300(g_tTex3du4) 319: 12(int) ImageQueryLevels 318 Store 29(NumberOfLevelsU) 319 324: 321 Load 323(g_tTexcdf4) 325: 58(ivec2) ImageQuerySizeLod 324 20 Store 320(sizeQueryTemp) 325 326: 13(ptr) AccessChain 320(sizeQueryTemp) 66 327: 12(int) Load 326 Store 22(WidthU) 327 328: 13(ptr) AccessChain 320(sizeQueryTemp) 70 329: 12(int) Load 328 Store 128(HeightU) 329 331: 321 Load 323(g_tTexcdf4) 332: 58(ivec2) ImageQuerySizeLod 331 26 Store 330(sizeQueryTemp) 332 333: 13(ptr) AccessChain 330(sizeQueryTemp) 66 334: 12(int) Load 333 Store 22(WidthU) 334 335: 13(ptr) AccessChain 330(sizeQueryTemp) 70 336: 12(int) Load 335 Store 128(HeightU) 336 337: 321 Load 323(g_tTexcdf4) 338: 12(int) ImageQueryLevels 337 Store 29(NumberOfLevelsU) 338 343: 340 Load 342(g_tTexcdi4) 344: 58(ivec2) ImageQuerySizeLod 343 20 Store 339(sizeQueryTemp) 344 345: 13(ptr) AccessChain 339(sizeQueryTemp) 66 346: 12(int) Load 345 Store 22(WidthU) 346 347: 13(ptr) AccessChain 339(sizeQueryTemp) 70 348: 12(int) Load 347 Store 128(HeightU) 348 350: 340 Load 342(g_tTexcdi4) 351: 58(ivec2) ImageQuerySizeLod 350 26 Store 349(sizeQueryTemp) 351 352: 13(ptr) AccessChain 349(sizeQueryTemp) 66 353: 12(int) Load 352 Store 22(WidthU) 353 354: 13(ptr) AccessChain 349(sizeQueryTemp) 70 355: 12(int) Load 354 Store 128(HeightU) 355 356: 340 Load 342(g_tTexcdi4) 357: 12(int) ImageQueryLevels 356 Store 29(NumberOfLevelsU) 357 362: 359 Load 361(g_tTexcdu4) 363: 58(ivec2) ImageQuerySizeLod 362 20 Store 358(sizeQueryTemp) 363 364: 13(ptr) AccessChain 358(sizeQueryTemp) 66 365: 12(int) Load 364 Store 22(WidthU) 365 366: 13(ptr) AccessChain 358(sizeQueryTemp) 70 367: 12(int) Load 366 Store 128(HeightU) 367 369: 359 Load 361(g_tTexcdu4) 370: 58(ivec2) ImageQuerySizeLod 369 26 Store 368(sizeQueryTemp) 370 371: 13(ptr) AccessChain 368(sizeQueryTemp) 66 372: 12(int) Load 371 Store 22(WidthU) 372 373: 13(ptr) AccessChain 368(sizeQueryTemp) 70 374: 12(int) Load 373 Store 128(HeightU) 374 375: 359 Load 361(g_tTexcdu4) 376: 12(int) ImageQueryLevels 375 Store 29(NumberOfLevelsU) 376 381: 378 Load 380(g_tTexcdf4a) 382: 178(ivec3) ImageQuerySizeLod 381 20 Store 377(sizeQueryTemp) 382 383: 13(ptr) AccessChain 377(sizeQueryTemp) 66 384: 12(int) Load 383 Store 22(WidthU) 384 385: 13(ptr) AccessChain 377(sizeQueryTemp) 70 386: 12(int) Load 385 Store 128(HeightU) 386 387: 13(ptr) AccessChain 377(sizeQueryTemp) 190 388: 12(int) Load 387 Store 69(ElementsU) 388 390: 378 Load 380(g_tTexcdf4a) 391: 178(ivec3) ImageQuerySizeLod 390 26 Store 389(sizeQueryTemp) 391 392: 13(ptr) AccessChain 389(sizeQueryTemp) 66 393: 12(int) Load 392 Store 22(WidthU) 393 394: 13(ptr) AccessChain 389(sizeQueryTemp) 70 395: 12(int) Load 394 Store 128(HeightU) 395 396: 13(ptr) AccessChain 389(sizeQueryTemp) 190 397: 12(int) Load 396 Store 69(ElementsU) 397 398: 378 Load 380(g_tTexcdf4a) 399: 12(int) ImageQueryLevels 398 Store 29(NumberOfLevelsU) 399 404: 401 Load 403(g_tTexcdi4a) 405: 178(ivec3) ImageQuerySizeLod 404 20 Store 400(sizeQueryTemp) 405 406: 13(ptr) AccessChain 400(sizeQueryTemp) 66 407: 12(int) Load 406 Store 22(WidthU) 407 408: 13(ptr) AccessChain 400(sizeQueryTemp) 70 409: 12(int) Load 408 Store 128(HeightU) 409 410: 13(ptr) AccessChain 400(sizeQueryTemp) 190 411: 12(int) Load 410 Store 69(ElementsU) 411 413: 401 Load 403(g_tTexcdi4a) 414: 178(ivec3) ImageQuerySizeLod 413 26 Store 412(sizeQueryTemp) 414 415: 13(ptr) AccessChain 412(sizeQueryTemp) 66 416: 12(int) Load 415 Store 22(WidthU) 416 417: 13(ptr) AccessChain 412(sizeQueryTemp) 70 418: 12(int) Load 417 Store 128(HeightU) 418 419: 13(ptr) AccessChain 412(sizeQueryTemp) 190 420: 12(int) Load 419 Store 69(ElementsU) 420 421: 401 Load 403(g_tTexcdi4a) 422: 12(int) ImageQueryLevels 421 Store 29(NumberOfLevelsU) 422 427: 424 Load 426(g_tTexcdu4a) 428: 178(ivec3) ImageQuerySizeLod 427 20 Store 423(sizeQueryTemp) 428 429: 13(ptr) AccessChain 423(sizeQueryTemp) 66 430: 12(int) Load 429 Store 22(WidthU) 430 431: 13(ptr) AccessChain 423(sizeQueryTemp) 70 432: 12(int) Load 431 Store 128(HeightU) 432 433: 13(ptr) AccessChain 423(sizeQueryTemp) 190 434: 12(int) Load 433 Store 69(ElementsU) 434 436: 424 Load 426(g_tTexcdu4a) 437: 178(ivec3) ImageQuerySizeLod 436 26 Store 435(sizeQueryTemp) 437 438: 13(ptr) AccessChain 435(sizeQueryTemp) 66 439: 12(int) Load 438 Store 22(WidthU) 439 440: 13(ptr) AccessChain 435(sizeQueryTemp) 70 441: 12(int) Load 440 Store 128(HeightU) 441 442: 13(ptr) AccessChain 435(sizeQueryTemp) 190 443: 12(int) Load 442 Store 69(ElementsU) 443 444: 424 Load 426(g_tTexcdu4a) 445: 12(int) ImageQueryLevels 444 Store 29(NumberOfLevelsU) 445 450: 447 Load 449(g_tTex2dmsf4) 451: 58(ivec2) ImageQuerySize 450 Store 446(sizeQueryTemp) 451 452: 13(ptr) AccessChain 446(sizeQueryTemp) 66 453: 12(int) Load 452 Store 22(WidthU) 453 454: 13(ptr) AccessChain 446(sizeQueryTemp) 70 455: 12(int) Load 454 Store 128(HeightU) 455 457: 447 Load 449(g_tTex2dmsf4) 458: 12(int) ImageQuerySamples 457 Store 456(NumberOfSamplesU) 458 463: 460 Load 462(g_tTex2dmsi4) 464: 58(ivec2) ImageQuerySize 463 Store 459(sizeQueryTemp) 464 465: 13(ptr) AccessChain 459(sizeQueryTemp) 66 466: 12(int) Load 465 Store 22(WidthU) 466 467: 13(ptr) AccessChain 459(sizeQueryTemp) 70 468: 12(int) Load 467 Store 128(HeightU) 468 469: 460 Load 462(g_tTex2dmsi4) 470: 12(int) ImageQuerySamples 469 Store 456(NumberOfSamplesU) 470 475: 472 Load 474(g_tTex2dmsu4) 476: 58(ivec2) ImageQuerySize 475 Store 471(sizeQueryTemp) 476 477: 13(ptr) AccessChain 471(sizeQueryTemp) 66 478: 12(int) Load 477 Store 22(WidthU) 478 479: 13(ptr) AccessChain 471(sizeQueryTemp) 70 480: 12(int) Load 479 Store 128(HeightU) 480 481: 472 Load 474(g_tTex2dmsu4) 482: 12(int) ImageQuerySamples 481 Store 456(NumberOfSamplesU) 482 487: 484 Load 486(g_tTex2dmsf4a) 488: 178(ivec3) ImageQuerySize 487 Store 483(sizeQueryTemp) 488 489: 13(ptr) AccessChain 483(sizeQueryTemp) 66 490: 12(int) Load 489 Store 22(WidthU) 490 491: 13(ptr) AccessChain 483(sizeQueryTemp) 70 492: 12(int) Load 491 Store 128(HeightU) 492 493: 13(ptr) AccessChain 483(sizeQueryTemp) 190 494: 12(int) Load 493 Store 69(ElementsU) 494 495: 484 Load 486(g_tTex2dmsf4a) 496: 12(int) ImageQuerySamples 495 Store 456(NumberOfSamplesU) 496 501: 498 Load 500(g_tTex2dmsi4a) 502: 178(ivec3) ImageQuerySize 501 Store 497(sizeQueryTemp) 502 503: 13(ptr) AccessChain 497(sizeQueryTemp) 66 504: 12(int) Load 503 Store 22(WidthU) 504 505: 13(ptr) AccessChain 497(sizeQueryTemp) 70 506: 12(int) Load 505 Store 128(HeightU) 506 507: 13(ptr) AccessChain 497(sizeQueryTemp) 190 508: 12(int) Load 507 Store 69(ElementsU) 508 509: 498 Load 500(g_tTex2dmsi4a) 510: 12(int) ImageQuerySamples 509 Store 456(NumberOfSamplesU) 510 515: 512 Load 514(g_tTex2dmsu4a) 516: 178(ivec3) ImageQuerySize 515 Store 511(sizeQueryTemp) 516 517: 13(ptr) AccessChain 511(sizeQueryTemp) 66 518: 12(int) Load 517 Store 22(WidthU) 518 519: 13(ptr) AccessChain 511(sizeQueryTemp) 70 520: 12(int) Load 519 Store 128(HeightU) 520 521: 13(ptr) AccessChain 511(sizeQueryTemp) 190 522: 12(int) Load 521 Store 69(ElementsU) 522 523: 512 Load 514(g_tTex2dmsu4a) 524: 12(int) ImageQuerySamples 523 Store 456(NumberOfSamplesU) 524 530: 529(ptr) AccessChain 526(psout) 20 Store 530 528 533: 532(ptr) AccessChain 526(psout) 531 Store 533 527 534:8(PS_OUTPUT) Load 526(psout) ReturnValue 534 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.getdimensions.dx10.vert.out000066400000000000000000000220121360464450000250060ustar00rootroot00000000000000hlsl.getdimensions.dx10.vert Shader version: 500 0:? Sequence 0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence 0:21 move second child to first child ( temp uint) 0:21 'sizeQueryTemp' ( temp uint) 0:21 textureSize ( temp uint) 0:21 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:21 Constant: 0:21 0 (const int) 0:21 move second child to first child ( temp uint) 0:21 'WidthU' ( temp uint) 0:21 'sizeQueryTemp' ( temp uint) 0:22 Sequence 0:22 move second child to first child ( temp uint) 0:22 'sizeQueryTemp' ( temp uint) 0:22 textureSize ( temp uint) 0:22 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:22 Constant: 0:22 6 (const uint) 0:22 move second child to first child ( temp uint) 0:22 'WidthU' ( temp uint) 0:22 'sizeQueryTemp' ( temp uint) 0:22 move second child to first child ( temp uint) 0:22 'NumberOfLevelsU' ( temp uint) 0:22 textureQueryLevels ( temp uint) 0:22 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:24 move second child to first child ( temp 4-component vector of float) 0:24 Pos: direct index for structure ( temp 4-component vector of float) 0:24 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:24 Constant: 0:24 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:26 Branch: Return with expression 0:26 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:11 Function Definition: main( ( temp void) 0:11 Function Parameters: 0:? Sequence 0:11 Sequence 0:11 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) 0:11 Pos: direct index for structure ( temp 4-component vector of float) 0:11 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:11 Constant: 0:11 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) Linked vertex stage: Shader version: 500 0:? Sequence 0:11 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence 0:21 move second child to first child ( temp uint) 0:21 'sizeQueryTemp' ( temp uint) 0:21 textureSize ( temp uint) 0:21 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:21 Constant: 0:21 0 (const int) 0:21 move second child to first child ( temp uint) 0:21 'WidthU' ( temp uint) 0:21 'sizeQueryTemp' ( temp uint) 0:22 Sequence 0:22 move second child to first child ( temp uint) 0:22 'sizeQueryTemp' ( temp uint) 0:22 textureSize ( temp uint) 0:22 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:22 Constant: 0:22 6 (const uint) 0:22 move second child to first child ( temp uint) 0:22 'WidthU' ( temp uint) 0:22 'sizeQueryTemp' ( temp uint) 0:22 move second child to first child ( temp uint) 0:22 'NumberOfLevelsU' ( temp uint) 0:22 textureQueryLevels ( temp uint) 0:22 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:24 move second child to first child ( temp 4-component vector of float) 0:24 Pos: direct index for structure ( temp 4-component vector of float) 0:24 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:24 Constant: 0:24 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:26 Branch: Return with expression 0:26 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:11 Function Definition: main( ( temp void) 0:11 Function Parameters: 0:? Sequence 0:11 Sequence 0:11 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) 0:11 Pos: direct index for structure ( temp 4-component vector of float) 0:11 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:11 Constant: 0:11 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out000066400000000000000000001616541360464450000254140ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 33(g_tTex1du4) DescriptorSet 0 Decorate 33(g_tTex1du4) Binding 0 Decorate 40(g_tBuffF) DescriptorSet 0 Decorate 40(g_tBuffF) Binding 0 Decorate 47(g_tBuffI) DescriptorSet 0 Decorate 47(g_tBuffI) Binding 0 Decorate 54(g_tBuffU) DescriptorSet 0 Decorate 54(g_tBuffU) Binding 0 Decorate 63(g_tTex1df4a) DescriptorSet 0 Decorate 63(g_tTex1df4a) Binding 0 Decorate 76(g_tTex1di4a) DescriptorSet 0 Decorate 76(g_tTex1di4a) Binding 0 Decorate 86(g_tTex1du4a) DescriptorSet 0 Decorate 86(g_tTex1du4a) Binding 0 Decorate 96(g_tTex2df4) DescriptorSet 0 Decorate 96(g_tTex2df4) Binding 0 Decorate 107(g_tTex2di4) DescriptorSet 0 Decorate 107(g_tTex2di4) Binding 0 Decorate 117(g_tTex2du4) DescriptorSet 0 Decorate 117(g_tTex2du4) Binding 0 Decorate 129(g_tTex2df4a) DescriptorSet 0 Decorate 129(g_tTex2df4a) Binding 0 Decorate 142(g_tTex2di4a) DescriptorSet 0 Decorate 142(g_tTex2di4a) Binding 0 Decorate 154(g_tTex2du4a) DescriptorSet 0 Decorate 154(g_tTex2du4a) Binding 0 Decorate 166(g_tTex3df4) DescriptorSet 0 Decorate 166(g_tTex3df4) Binding 0 Decorate 179(g_tTex3di4) DescriptorSet 0 Decorate 179(g_tTex3di4) Binding 0 Decorate 191(g_tTex3du4) DescriptorSet 0 Decorate 191(g_tTex3du4) Binding 0 Decorate 216(@entryPointOutput.Color) Location 0 Decorate 220(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 225(g_sSamp) DescriptorSet 0 Decorate 225(g_sSamp) Binding 0 MemberDecorate 229($Global) 0 Offset 0 MemberDecorate 229($Global) 1 Offset 8 MemberDecorate 229($Global) 2 Offset 16 MemberDecorate 229($Global) 3 Offset 32 MemberDecorate 229($Global) 4 Offset 48 MemberDecorate 229($Global) 5 Offset 56 MemberDecorate 229($Global) 6 Offset 64 MemberDecorate 229($Global) 7 Offset 80 Decorate 229($Global) Block Decorate 231 DescriptorSet 0 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 glslang-8.13.3559/Test/baseResults/hlsl.getsampleposition.dx10.frag.out000066400000000000000000001134261360464450000256550ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 131(g_tTex2dmsf4a) DescriptorSet 0 Decorate 131(g_tTex2dmsf4a) Binding 0 Decorate 181(sample) Flat Decorate 181(sample) Location 0 Decorate 188(@entryPointOutput.Color) Location 0 Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 197(g_sSamp) DescriptorSet 0 Decorate 197(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 8: TypeFloat 32 9: TypeVector 8(float) 4 10(PS_OUTPUT): TypeStruct 9(fvec4) 8(float) 11: TypeFunction 10(PS_OUTPUT) 7(ptr) 15: TypeVector 8(float) 2 16: TypePointer Function 15(fvec2) 18: TypeInt 32 0 19: TypePointer Function 18(int) 21: TypeImage 8(float) 2D multi-sampled sampled format:Unknown 22: TypePointer UniformConstant 21 23(g_tTex2dmsf4): 22(ptr) Variable UniformConstant 27: 6(int) Constant 2 28: TypeBool 30: 18(int) Constant 2 31: TypeArray 15(fvec2) 30 32: 8(float) Constant 1048576000 33: 15(fvec2) ConstantComposite 32 32 34: 8(float) Constant 3196059648 35: 15(fvec2) ConstantComposite 34 34 36: 31 ConstantComposite 33 35 38: TypePointer Function 31 43: 6(int) Constant 4 45: 18(int) Constant 4 46: TypeArray 15(fvec2) 45 47: 8(float) Constant 3187671040 48: 8(float) Constant 3200253952 49: 15(fvec2) ConstantComposite 47 48 50: 8(float) Constant 1052770304 51: 15(fvec2) ConstantComposite 50 47 52: 8(float) Constant 1040187392 53: 15(fvec2) ConstantComposite 48 52 54: 15(fvec2) ConstantComposite 52 50 55: 46 ConstantComposite 49 51 53 54 57: TypePointer Function 46 62: 6(int) Constant 8 64: 18(int) Constant 8 65: TypeArray 15(fvec2) 64 66: 8(float) Constant 1031798784 67: 8(float) Constant 3191865344 68: 15(fvec2) ConstantComposite 66 67 69: 8(float) Constant 3179282432 70: 8(float) Constant 1044381696 71: 15(fvec2) ConstantComposite 69 70 72: 8(float) Constant 1050673152 73: 15(fvec2) ConstantComposite 72 66 74: 8(float) Constant 3198156800 75: 15(fvec2) ConstantComposite 67 74 76: 15(fvec2) ConstantComposite 74 72 77: 8(float) Constant 3202351104 78: 15(fvec2) ConstantComposite 77 69 79: 8(float) Constant 1054867456 80: 15(fvec2) ConstantComposite 70 79 81: 15(fvec2) ConstantComposite 79 77 82: 65 ConstantComposite 68 71 73 75 76 78 80 81 84: TypePointer Function 65 89: 6(int) Constant 16 91: 18(int) Constant 16 92: TypeArray 15(fvec2) 91 93: 15(fvec2) ConstantComposite 66 66 94: 15(fvec2) ConstantComposite 69 67 95: 15(fvec2) ConstantComposite 67 52 96: 15(fvec2) ConstantComposite 32 69 97: 15(fvec2) ConstantComposite 74 47 98: 15(fvec2) ConstantComposite 52 72 99: 15(fvec2) ConstantComposite 72 70 100: 15(fvec2) ConstantComposite 70 74 101: 15(fvec2) ConstantComposite 47 50 102: 8(float) Constant 0 103: 15(fvec2) ConstantComposite 102 77 104: 15(fvec2) ConstantComposite 34 48 105: 15(fvec2) ConstantComposite 48 32 106: 8(float) Constant 3204448256 107: 15(fvec2) ConstantComposite 106 102 108: 15(fvec2) ConstantComposite 79 34 109: 15(fvec2) ConstantComposite 50 79 110: 15(fvec2) ConstantComposite 77 106 111: 92 ConstantComposite 93 94 95 96 97 98 99 100 101 103 104 105 107 108 109 110 113: TypePointer Function 92 117: 15(fvec2) ConstantComposite 102 102 118: TypeVector 28(bool) 2 129: TypeImage 8(float) 2D array multi-sampled sampled format:Unknown 130: TypePointer UniformConstant 129 131(g_tTex2dmsf4a): 130(ptr) Variable UniformConstant 166: TypePointer Function 10(PS_OUTPUT) 168: 6(int) Constant 0 169: 8(float) Constant 1065353216 170: 9(fvec4) ConstantComposite 169 169 169 169 171: TypePointer Function 9(fvec4) 173: 6(int) Constant 1 174: TypePointer Function 8(float) 180: TypePointer Input 6(int) 181(sample): 180(ptr) Variable Input 187: TypePointer Output 9(fvec4) 188(@entryPointOutput.Color): 187(ptr) Variable Output 191: TypePointer Output 8(float) 192(@entryPointOutput.Depth): 191(ptr) Variable Output 195: TypeSampler 196: TypePointer UniformConstant 195 197(g_sSamp): 196(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 179(sample): 7(ptr) Variable Function 183(flattenTemp): 166(ptr) Variable Function 184(param): 7(ptr) Variable Function 182: 6(int) Load 181(sample) Store 179(sample) 182 185: 6(int) Load 179(sample) Store 184(param) 185 186:10(PS_OUTPUT) FunctionCall 13(@main(i1;) 184(param) Store 183(flattenTemp) 186 189: 171(ptr) AccessChain 183(flattenTemp) 168 190: 9(fvec4) Load 189 Store 188(@entryPointOutput.Color) 190 193: 174(ptr) AccessChain 183(flattenTemp) 173 194: 8(float) Load 193 Store 192(@entryPointOutput.Depth) 194 Return FunctionEnd 13(@main(i1;):10(PS_OUTPUT) Function None 11 12(sample): 7(ptr) FunctionParameter 14: Label 17(r00): 16(ptr) Variable Function 20(@sampleCount): 19(ptr) Variable Function 39(indexable): 38(ptr) Variable Function 58(indexable): 57(ptr) Variable Function 85(indexable): 84(ptr) Variable Function 114(indexable): 113(ptr) Variable Function 127(r01): 16(ptr) Variable Function 128(@sampleCount): 19(ptr) Variable Function 137(indexable): 38(ptr) Variable Function 143(indexable): 57(ptr) Variable Function 149(indexable): 84(ptr) Variable Function 155(indexable): 113(ptr) Variable Function 167(psout): 166(ptr) Variable Function 24: 21 Load 23(g_tTex2dmsf4) 25: 18(int) ImageQuerySamples 24 Store 20(@sampleCount) 25 26: 18(int) Load 20(@sampleCount) 29: 28(bool) IEqual 26 27 37: 6(int) Load 12(sample) Store 39(indexable) 36 40: 16(ptr) AccessChain 39(indexable) 37 41: 15(fvec2) Load 40 42: 18(int) Load 20(@sampleCount) 44: 28(bool) IEqual 42 43 56: 6(int) Load 12(sample) Store 58(indexable) 55 59: 16(ptr) AccessChain 58(indexable) 56 60: 15(fvec2) Load 59 61: 18(int) Load 20(@sampleCount) 63: 28(bool) IEqual 61 62 83: 6(int) Load 12(sample) Store 85(indexable) 82 86: 16(ptr) AccessChain 85(indexable) 83 87: 15(fvec2) Load 86 88: 18(int) Load 20(@sampleCount) 90: 28(bool) IEqual 88 89 112: 6(int) Load 12(sample) Store 114(indexable) 111 115: 16(ptr) AccessChain 114(indexable) 112 116: 15(fvec2) Load 115 119: 118(bvec2) CompositeConstruct 90 90 120: 15(fvec2) Select 119 116 117 121: 118(bvec2) CompositeConstruct 63 63 122: 15(fvec2) Select 121 87 120 123: 118(bvec2) CompositeConstruct 44 44 124: 15(fvec2) Select 123 60 122 125: 118(bvec2) CompositeConstruct 29 29 126: 15(fvec2) Select 125 41 124 Store 17(r00) 126 132: 129 Load 131(g_tTex2dmsf4a) 133: 18(int) ImageQuerySamples 132 Store 128(@sampleCount) 133 134: 18(int) Load 128(@sampleCount) 135: 28(bool) IEqual 134 27 136: 6(int) Load 12(sample) Store 137(indexable) 36 138: 16(ptr) AccessChain 137(indexable) 136 139: 15(fvec2) Load 138 140: 18(int) Load 128(@sampleCount) 141: 28(bool) IEqual 140 43 142: 6(int) Load 12(sample) Store 143(indexable) 55 144: 16(ptr) AccessChain 143(indexable) 142 145: 15(fvec2) Load 144 146: 18(int) Load 128(@sampleCount) 147: 28(bool) IEqual 146 62 148: 6(int) Load 12(sample) Store 149(indexable) 82 150: 16(ptr) AccessChain 149(indexable) 148 151: 15(fvec2) Load 150 152: 18(int) Load 128(@sampleCount) 153: 28(bool) IEqual 152 89 154: 6(int) Load 12(sample) Store 155(indexable) 111 156: 16(ptr) AccessChain 155(indexable) 154 157: 15(fvec2) Load 156 158: 118(bvec2) CompositeConstruct 153 153 159: 15(fvec2) Select 158 157 117 160: 118(bvec2) CompositeConstruct 147 147 161: 15(fvec2) Select 160 151 159 162: 118(bvec2) CompositeConstruct 141 141 163: 15(fvec2) Select 162 145 161 164: 118(bvec2) CompositeConstruct 135 135 165: 15(fvec2) Select 164 139 163 Store 127(r01) 165 172: 171(ptr) AccessChain 167(psout) 168 Store 172 170 175: 174(ptr) AccessChain 167(psout) 173 Store 175 169 176:10(PS_OUTPUT) Load 167(psout) ReturnValue 176 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.global-const-init.frag.out000066400000000000000000000204111360464450000246500ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.groupid.comp.out000066400000000000000000000143571360464450000230270ustar00rootroot00000000000000hlsl.groupid.comp Shader version: 500 local_size = (8, 8, 1) 0:? Sequence 0:7 Function Definition: @main(vu2; ( temp void) 0:7 Function Parameters: 0:7 'vGroupId' ( in 2-component vector of uint) 0:? Sequence 0:8 Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:8 'storeTemp' ( temp 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:8 imageStore ( temp void) 0:8 'OutputTexture' (layout( rgba32f) uniform image2D) 0:8 vector swizzle ( temp 2-component vector of uint) 0:8 'vGroupId' ( in 2-component vector of uint) 0:8 Sequence 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 1 (const int) 0:8 'storeTemp' ( temp 4-component vector of float) 0:8 'storeTemp' ( temp 4-component vector of float) 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp 2-component vector of uint) 0:? 'vGroupId' ( temp 2-component vector of uint) 0:? Construct uvec2 ( temp 2-component vector of uint) 0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) 0:7 Function Call: @main(vu2; ( temp void) 0:? 'vGroupId' ( temp 2-component vector of uint) 0:? Linker Objects 0:? 'OutputTexture' (layout( rgba32f) uniform image2D) 0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) Linked compute stage: Shader version: 500 local_size = (8, 8, 1) 0:? Sequence 0:7 Function Definition: @main(vu2; ( temp void) 0:7 Function Parameters: 0:7 'vGroupId' ( in 2-component vector of uint) 0:? Sequence 0:8 Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:8 'storeTemp' ( temp 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:8 imageStore ( temp void) 0:8 'OutputTexture' (layout( rgba32f) uniform image2D) 0:8 vector swizzle ( temp 2-component vector of uint) 0:8 'vGroupId' ( in 2-component vector of uint) 0:8 Sequence 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 1 (const int) 0:8 'storeTemp' ( temp 4-component vector of float) 0:8 'storeTemp' ( temp 4-component vector of float) 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp 2-component vector of uint) 0:? 'vGroupId' ( temp 2-component vector of uint) 0:? Construct uvec2 ( temp 2-component vector of uint) 0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) 0:7 Function Call: @main(vu2; ( temp void) 0:? 'vGroupId' ( temp 2-component vector of uint) 0:? Linker Objects 0:? 'OutputTexture' (layout( rgba32f) uniform image2D) 0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.gs-hs-mix.tesc.out000066400000000000000000002156751360464450000232000ustar00rootroot00000000000000hlsl.gs-hs-mix.tesc Shader version: 500 vertices = 3 input primitive = triangles vertex spacing = fractional_odd_spacing triangle order = ccw 0:? Sequence 0:31 Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:31 Function Parameters: 0:31 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? Sequence 0:32 Sequence 0:32 move second child to first child ( temp 3-component vector of float) 0:32 'roundedEdgeTessFactor' ( temp 3-component vector of float) 0:32 tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float) 0:32 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) 0:32 Constant: 0:32 6 (const uint) 0:33 Sequence 0:33 move second child to first child ( temp float) 0:33 'roundedInsideTessFactor' ( temp float) 0:33 Constant: 0:33 3.000000 0:34 Sequence 0:34 move second child to first child ( temp float) 0:34 'insideTessFactor' ( temp float) 0:34 Constant: 0:34 1.000000 0:39 move second child to first child ( temp float) 0:39 direct index ( temp float) 0:39 EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:39 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( temp float) 0:39 'roundedEdgeTessFactor' ( temp 3-component vector of float) 0:39 Constant: 0:39 0 (const int) 0:40 move second child to first child ( temp float) 0:40 direct index ( temp float) 0:40 EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:40 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: 0:40 1 (const int) 0:40 direct index ( temp float) 0:40 'roundedEdgeTessFactor' ( temp 3-component vector of float) 0:40 Constant: 0:40 1 (const int) 0:41 move second child to first child ( temp float) 0:41 direct index ( temp float) 0:41 EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:41 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:41 Constant: 0:41 0 (const int) 0:41 Constant: 0:41 2 (const int) 0:41 direct index ( temp float) 0:41 'roundedEdgeTessFactor' ( temp 3-component vector of float) 0:41 Constant: 0:41 2 (const int) 0:42 move second child to first child ( temp float) 0:42 InsideTessFactor: direct index for structure ( temp float) 0:42 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:42 Constant: 0:42 1 (const int) 0:42 'roundedInsideTessFactor' ( temp float) 0:45 move second child to first child ( temp 3-component vector of float) 0:45 direct index ( temp 3-component vector of float) 0:45 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) 0:45 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:45 Constant: 0:45 2 (const int) 0:45 Constant: 0:45 0 (const int) 0:45 NormalWS: direct index for structure ( temp 3-component vector of float) 0:45 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:45 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: 0:45 1 (const int) 0:46 move second child to first child ( temp 3-component vector of float) 0:46 direct index ( temp 3-component vector of float) 0:46 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) 0:46 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:46 Constant: 0:46 2 (const int) 0:46 Constant: 0:46 1 (const int) 0:46 NormalWS: direct index for structure ( temp 3-component vector of float) 0:46 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:46 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1 (const int) 0:47 move second child to first child ( temp 3-component vector of float) 0:47 direct index ( temp 3-component vector of float) 0:47 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) 0:47 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:47 Constant: 0:47 2 (const int) 0:47 Constant: 0:47 2 (const int) 0:47 NormalWS: direct index for structure ( temp 3-component vector of float) 0:47 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:47 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:47 Constant: 0:47 2 (const int) 0:47 Constant: 0:47 1 (const int) 0:49 Branch: Return with expression 0:49 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:61 Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) 0:61 Function Parameters: 0:61 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:61 'id' ( in uint) 0:? Sequence 0:63 move second child to first child ( temp 3-component vector of float) 0:63 PositionWS: direct index for structure ( temp 3-component vector of float) 0:63 'output' ( temp structure{ temp 3-component vector of float PositionWS}) 0:63 Constant: 0:63 0 (const int) 0:63 PositionWS: direct index for structure ( temp 3-component vector of float) 0:63 indirect index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:63 'id' ( in uint) 0:63 Constant: 0:63 0 (const int) 0:64 Branch: Return with expression 0:64 'output' ( temp structure{ temp 3-component vector of float PositionWS}) 0:61 Function Definition: HSMain( ( temp void) 0:61 Function Parameters: 0:? Sequence 0:61 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:61 move second child to first child ( temp uint) 0:? 'id' ( temp uint) 0:? 'id' ( in uint InvocationID) 0:61 move second child to first child ( temp structure{ temp 3-component vector of float PositionWS}) 0:61 indirect index (layout( location=0) out structure{ temp 3-component vector of float PositionWS}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS}) 0:? 'id' ( in uint InvocationID) 0:61 Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? 'id' ( temp uint) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'id' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 2 (const int) 0:? direct index ( temp float) 0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 2 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelInner) 0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) 0:? Constant: 0:? 0 (const int) 0:? InsideTessFactor: direct index for structure ( temp float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp 3-element array of 3-component vector of float) 0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) 0:? '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 0 (const int) 0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 2 (const int) 0:84 Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void) 0:84 Function Parameters: 0:84 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:84 'output' ( out structure{ temp 4-component vector of float PositionCS}) 0:? Sequence 0:86 Sequence 0:86 move second child to first child ( temp 3-component vector of float) 0:86 'P0' ( temp 3-component vector of float) 0:86 vector swizzle ( temp 3-component vector of float) 0:86 PositionWS: direct index for structure ( temp 3-component vector of float) 0:86 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:86 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:86 Constant: 0:86 0 (const int) 0:86 Constant: 0:86 0 (const int) 0:86 Sequence 0:86 Constant: 0:86 0 (const int) 0:86 Constant: 0:86 1 (const int) 0:86 Constant: 0:86 2 (const int) 0:87 Sequence 0:87 move second child to first child ( temp 3-component vector of float) 0:87 'P1' ( temp 3-component vector of float) 0:87 vector swizzle ( temp 3-component vector of float) 0:87 PositionWS: direct index for structure ( temp 3-component vector of float) 0:87 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:87 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: 0:87 0 (const int) 0:87 Sequence 0:87 Constant: 0:87 0 (const int) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: 0:87 2 (const int) 0:88 Sequence 0:88 move second child to first child ( temp 3-component vector of float) 0:88 'P2' ( temp 3-component vector of float) 0:88 vector swizzle ( temp 3-component vector of float) 0:88 PositionWS: direct index for structure ( temp 3-component vector of float) 0:88 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:88 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:88 Constant: 0:88 2 (const int) 0:88 Constant: 0:88 0 (const int) 0:88 Sequence 0:88 Constant: 0:88 0 (const int) 0:88 Constant: 0:88 1 (const int) 0:88 Constant: 0:88 2 (const int) 0:92 add second child into first child ( temp float) 0:92 direct index ( temp float) 0:92 'P0' ( temp 3-component vector of float) 0:92 Constant: 0:92 2 (const int) 0:92 Constant: 0:92 0.001000 0:93 add second child into first child ( temp float) 0:93 direct index ( temp float) 0:93 'P1' ( temp 3-component vector of float) 0:93 Constant: 0:93 2 (const int) 0:93 Constant: 0:93 0.001000 0:94 add second child into first child ( temp float) 0:94 direct index ( temp float) 0:94 'P2' ( temp 3-component vector of float) 0:94 Constant: 0:94 2 (const int) 0:94 Constant: 0:94 0.001000 0:95 Sequence 0:95 move second child to first child ( temp 4-component vector of float) 0:95 'Q0' ( temp 4-component vector of float) 0:95 vector-times-matrix ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:95 'P0' ( temp 3-component vector of float) 0:95 Constant: 0:95 1.000000 0:95 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) 0:95 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) 0:95 Constant: 0:95 1 (const uint) 0:96 Sequence 0:96 move second child to first child ( temp 4-component vector of float) 0:96 'Q1' ( temp 4-component vector of float) 0:96 vector-times-matrix ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:96 'P1' ( temp 3-component vector of float) 0:96 Constant: 0:96 1.000000 0:96 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) 0:96 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) 0:96 Constant: 0:96 1 (const uint) 0:97 Sequence 0:97 move second child to first child ( temp 4-component vector of float) 0:97 'Q2' ( temp 4-component vector of float) 0:97 vector-times-matrix ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:97 'P2' ( temp 3-component vector of float) 0:97 Constant: 0:97 1.000000 0:97 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) 0:97 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) 0:97 Constant: 0:97 1 (const uint) 0:100 move second child to first child ( temp 4-component vector of float) 0:100 PositionCS: direct index for structure ( temp 4-component vector of float) 0:100 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:100 Constant: 0:100 0 (const int) 0:100 'Q0' ( temp 4-component vector of float) 0:101 Constant: 0:101 0.000000 0:102 move second child to first child ( temp 4-component vector of float) 0:102 PositionCS: direct index for structure ( temp 4-component vector of float) 0:102 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:102 Constant: 0:102 0 (const int) 0:102 'Q1' ( temp 4-component vector of float) 0:103 Constant: 0:103 0.000000 0:104 Constant: 0:104 0.000000 0:107 move second child to first child ( temp 4-component vector of float) 0:107 PositionCS: direct index for structure ( temp 4-component vector of float) 0:107 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:107 Constant: 0:107 0 (const int) 0:107 'Q1' ( temp 4-component vector of float) 0:108 Constant: 0:108 0.000000 0:109 move second child to first child ( temp 4-component vector of float) 0:109 PositionCS: direct index for structure ( temp 4-component vector of float) 0:109 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:109 Constant: 0:109 0 (const int) 0:109 'Q2' ( temp 4-component vector of float) 0:110 Constant: 0:110 0.000000 0:111 Constant: 0:111 0.000000 0:114 move second child to first child ( temp 4-component vector of float) 0:114 PositionCS: direct index for structure ( temp 4-component vector of float) 0:114 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:114 Constant: 0:114 0 (const int) 0:114 'Q2' ( temp 4-component vector of float) 0:115 Constant: 0:115 0.000000 0:116 move second child to first child ( temp 4-component vector of float) 0:116 PositionCS: direct index for structure ( temp 4-component vector of float) 0:116 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:116 Constant: 0:116 0 (const int) 0:116 'Q0' ( temp 4-component vector of float) 0:117 Constant: 0:117 0.000000 0:118 Constant: 0:118 0.000000 0:? Linker Objects 0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS}) 0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? 'id' ( in uint InvocationID) 0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) 0:? '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS}) Linked tessellation control stage: Shader version: 500 vertices = 3 input primitive = triangles vertex spacing = fractional_odd_spacing triangle order = ccw 0:? Sequence 0:31 Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:31 Function Parameters: 0:31 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? Sequence 0:32 Sequence 0:32 move second child to first child ( temp 3-component vector of float) 0:32 'roundedEdgeTessFactor' ( temp 3-component vector of float) 0:32 tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float) 0:32 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) 0:32 Constant: 0:32 6 (const uint) 0:33 Sequence 0:33 move second child to first child ( temp float) 0:33 'roundedInsideTessFactor' ( temp float) 0:33 Constant: 0:33 3.000000 0:34 Sequence 0:34 move second child to first child ( temp float) 0:34 'insideTessFactor' ( temp float) 0:34 Constant: 0:34 1.000000 0:39 move second child to first child ( temp float) 0:39 direct index ( temp float) 0:39 EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:39 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( temp float) 0:39 'roundedEdgeTessFactor' ( temp 3-component vector of float) 0:39 Constant: 0:39 0 (const int) 0:40 move second child to first child ( temp float) 0:40 direct index ( temp float) 0:40 EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:40 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:40 Constant: 0:40 0 (const int) 0:40 Constant: 0:40 1 (const int) 0:40 direct index ( temp float) 0:40 'roundedEdgeTessFactor' ( temp 3-component vector of float) 0:40 Constant: 0:40 1 (const int) 0:41 move second child to first child ( temp float) 0:41 direct index ( temp float) 0:41 EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:41 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:41 Constant: 0:41 0 (const int) 0:41 Constant: 0:41 2 (const int) 0:41 direct index ( temp float) 0:41 'roundedEdgeTessFactor' ( temp 3-component vector of float) 0:41 Constant: 0:41 2 (const int) 0:42 move second child to first child ( temp float) 0:42 InsideTessFactor: direct index for structure ( temp float) 0:42 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:42 Constant: 0:42 1 (const int) 0:42 'roundedInsideTessFactor' ( temp float) 0:45 move second child to first child ( temp 3-component vector of float) 0:45 direct index ( temp 3-component vector of float) 0:45 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) 0:45 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:45 Constant: 0:45 2 (const int) 0:45 Constant: 0:45 0 (const int) 0:45 NormalWS: direct index for structure ( temp 3-component vector of float) 0:45 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:45 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: 0:45 1 (const int) 0:46 move second child to first child ( temp 3-component vector of float) 0:46 direct index ( temp 3-component vector of float) 0:46 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) 0:46 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:46 Constant: 0:46 2 (const int) 0:46 Constant: 0:46 1 (const int) 0:46 NormalWS: direct index for structure ( temp 3-component vector of float) 0:46 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:46 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1 (const int) 0:47 move second child to first child ( temp 3-component vector of float) 0:47 direct index ( temp 3-component vector of float) 0:47 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) 0:47 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:47 Constant: 0:47 2 (const int) 0:47 Constant: 0:47 2 (const int) 0:47 NormalWS: direct index for structure ( temp 3-component vector of float) 0:47 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:47 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:47 Constant: 0:47 2 (const int) 0:47 Constant: 0:47 1 (const int) 0:49 Branch: Return with expression 0:49 'result' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:61 Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) 0:61 Function Parameters: 0:61 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:61 'id' ( in uint) 0:? Sequence 0:63 move second child to first child ( temp 3-component vector of float) 0:63 PositionWS: direct index for structure ( temp 3-component vector of float) 0:63 'output' ( temp structure{ temp 3-component vector of float PositionWS}) 0:63 Constant: 0:63 0 (const int) 0:63 PositionWS: direct index for structure ( temp 3-component vector of float) 0:63 indirect index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:63 'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:63 'id' ( in uint) 0:63 Constant: 0:63 0 (const int) 0:64 Branch: Return with expression 0:64 'output' ( temp structure{ temp 3-component vector of float PositionWS}) 0:61 Function Definition: HSMain( ( temp void) 0:61 Function Parameters: 0:? Sequence 0:61 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:61 move second child to first child ( temp uint) 0:? 'id' ( temp uint) 0:? 'id' ( in uint InvocationID) 0:61 move second child to first child ( temp structure{ temp 3-component vector of float PositionWS}) 0:61 indirect index (layout( location=0) out structure{ temp 3-component vector of float PositionWS}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS}) 0:? 'id' ( in uint InvocationID) 0:61 Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? 'id' ( temp uint) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'id' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? 'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 2 (const int) 0:? direct index ( temp float) 0:? EdgeTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 2 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelInner) 0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) 0:? Constant: 0:? 0 (const int) 0:? InsideTessFactor: direct index for structure ( temp float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp 3-element array of 3-component vector of float) 0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) 0:? '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 0 (const int) 0:? NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor, temp float InsideTessFactor, temp 3-element array of 3-component vector of float NormalWS}) 0:? Constant: 0:? 2 (const int) 0:84 Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void) 0:84 Function Parameters: 0:84 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:84 'output' ( out structure{ temp 4-component vector of float PositionCS}) 0:? Sequence 0:86 Sequence 0:86 move second child to first child ( temp 3-component vector of float) 0:86 'P0' ( temp 3-component vector of float) 0:86 vector swizzle ( temp 3-component vector of float) 0:86 PositionWS: direct index for structure ( temp 3-component vector of float) 0:86 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:86 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:86 Constant: 0:86 0 (const int) 0:86 Constant: 0:86 0 (const int) 0:86 Sequence 0:86 Constant: 0:86 0 (const int) 0:86 Constant: 0:86 1 (const int) 0:86 Constant: 0:86 2 (const int) 0:87 Sequence 0:87 move second child to first child ( temp 3-component vector of float) 0:87 'P1' ( temp 3-component vector of float) 0:87 vector swizzle ( temp 3-component vector of float) 0:87 PositionWS: direct index for structure ( temp 3-component vector of float) 0:87 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:87 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: 0:87 0 (const int) 0:87 Sequence 0:87 Constant: 0:87 0 (const int) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: 0:87 2 (const int) 0:88 Sequence 0:88 move second child to first child ( temp 3-component vector of float) 0:88 'P2' ( temp 3-component vector of float) 0:88 vector swizzle ( temp 3-component vector of float) 0:88 PositionWS: direct index for structure ( temp 3-component vector of float) 0:88 direct index ( temp structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:88 'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:88 Constant: 0:88 2 (const int) 0:88 Constant: 0:88 0 (const int) 0:88 Sequence 0:88 Constant: 0:88 0 (const int) 0:88 Constant: 0:88 1 (const int) 0:88 Constant: 0:88 2 (const int) 0:92 add second child into first child ( temp float) 0:92 direct index ( temp float) 0:92 'P0' ( temp 3-component vector of float) 0:92 Constant: 0:92 2 (const int) 0:92 Constant: 0:92 0.001000 0:93 add second child into first child ( temp float) 0:93 direct index ( temp float) 0:93 'P1' ( temp 3-component vector of float) 0:93 Constant: 0:93 2 (const int) 0:93 Constant: 0:93 0.001000 0:94 add second child into first child ( temp float) 0:94 direct index ( temp float) 0:94 'P2' ( temp 3-component vector of float) 0:94 Constant: 0:94 2 (const int) 0:94 Constant: 0:94 0.001000 0:95 Sequence 0:95 move second child to first child ( temp 4-component vector of float) 0:95 'Q0' ( temp 4-component vector of float) 0:95 vector-times-matrix ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:95 'P0' ( temp 3-component vector of float) 0:95 Constant: 0:95 1.000000 0:95 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) 0:95 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) 0:95 Constant: 0:95 1 (const uint) 0:96 Sequence 0:96 move second child to first child ( temp 4-component vector of float) 0:96 'Q1' ( temp 4-component vector of float) 0:96 vector-times-matrix ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:96 'P1' ( temp 3-component vector of float) 0:96 Constant: 0:96 1.000000 0:96 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) 0:96 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) 0:96 Constant: 0:96 1 (const uint) 0:97 Sequence 0:97 move second child to first child ( temp 4-component vector of float) 0:97 'Q2' ( temp 4-component vector of float) 0:97 vector-times-matrix ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:97 'P2' ( temp 3-component vector of float) 0:97 Constant: 0:97 1.000000 0:97 proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float) 0:97 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) 0:97 Constant: 0:97 1 (const uint) 0:100 move second child to first child ( temp 4-component vector of float) 0:100 PositionCS: direct index for structure ( temp 4-component vector of float) 0:100 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:100 Constant: 0:100 0 (const int) 0:100 'Q0' ( temp 4-component vector of float) 0:101 Constant: 0:101 0.000000 0:102 move second child to first child ( temp 4-component vector of float) 0:102 PositionCS: direct index for structure ( temp 4-component vector of float) 0:102 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:102 Constant: 0:102 0 (const int) 0:102 'Q1' ( temp 4-component vector of float) 0:103 Constant: 0:103 0.000000 0:104 Constant: 0:104 0.000000 0:107 move second child to first child ( temp 4-component vector of float) 0:107 PositionCS: direct index for structure ( temp 4-component vector of float) 0:107 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:107 Constant: 0:107 0 (const int) 0:107 'Q1' ( temp 4-component vector of float) 0:108 Constant: 0:108 0.000000 0:109 move second child to first child ( temp 4-component vector of float) 0:109 PositionCS: direct index for structure ( temp 4-component vector of float) 0:109 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:109 Constant: 0:109 0 (const int) 0:109 'Q2' ( temp 4-component vector of float) 0:110 Constant: 0:110 0.000000 0:111 Constant: 0:111 0.000000 0:114 move second child to first child ( temp 4-component vector of float) 0:114 PositionCS: direct index for structure ( temp 4-component vector of float) 0:114 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:114 Constant: 0:114 0 (const int) 0:114 'Q2' ( temp 4-component vector of float) 0:115 Constant: 0:115 0.000000 0:116 move second child to first child ( temp 4-component vector of float) 0:116 PositionCS: direct index for structure ( temp 4-component vector of float) 0:116 'vertex' ( temp structure{ temp 4-component vector of float PositionCS}) 0:116 Constant: 0:116 0 (const int) 0:116 'Q0' ( temp 4-component vector of float) 0:117 Constant: 0:117 0.000000 0:118 Constant: 0:118 0.000000 0:? Linker Objects 0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS}) 0:? 'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS, temp 3-component vector of float NormalWS}) 0:? 'id' ( in uint InvocationID) 0:? '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner) 0:? '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS}) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 216 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "HSMain" 97 101 105 126 139 145 ExecutionMode 4 OutputVertices 3 ExecutionMode 4 Triangles ExecutionMode 4 SpacingFractionalOdd ExecutionMode 4 VertexOrderCcw Source HLSL 500 Name 4 "HSMain" Name 8 "HSInput" MemberName 8(HSInput) 0 "PositionWS" MemberName 8(HSInput) 1 "NormalWS" Name 15 "HSTrianglePatchConstant" MemberName 15(HSTrianglePatchConstant) 0 "EdgeTessFactor" MemberName 15(HSTrianglePatchConstant) 1 "InsideTessFactor" MemberName 15(HSTrianglePatchConstant) 2 "NormalWS" Name 18 "HSPatchConstant(struct-HSInput-vf3-vf31[3];" Name 17 "patch" Name 21 "HSOutput" MemberName 21(HSOutput) 0 "PositionWS" Name 25 "@HSMain(struct-HSInput-vf3-vf31[3];u1;" Name 23 "patch" Name 24 "id" Name 27 "GSVertexInput" MemberName 27(GSVertexInput) 0 "PositionWS" MemberName 27(GSVertexInput) 1 "NormalWS" Name 31 "GSVertexOutput" MemberName 31(GSVertexOutput) 0 "PositionCS" Name 36 "GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;" Name 34 "input" Name 35 "output" Name 39 "roundedEdgeTessFactor" Name 42 "UniformBlock0" MemberName 42(UniformBlock0) 0 "model_view_matrix" MemberName 42(UniformBlock0) 1 "proj_matrix" MemberName 42(UniformBlock0) 2 "model_view_proj_matrix" MemberName 42(UniformBlock0) 3 "normal_matrix" MemberName 42(UniformBlock0) 4 "color" MemberName 42(UniformBlock0) 5 "view_dir" MemberName 42(UniformBlock0) 6 "tess_factor" Name 44 "" Name 51 "roundedInsideTessFactor" Name 53 "insideTessFactor" Name 56 "result" Name 87 "output" Name 95 "patch" Name 97 "patch" Name 99 "id" Name 101 "id" Name 105 "@entryPointOutput" Name 107 "param" Name 109 "param" Name 120 "@patchConstantResult" Name 121 "param" Name 126 "@patchConstantOutput.EdgeTessFactor" Name 139 "@patchConstantOutput.InsideTessFactor" Name 143 "HSTrianglePatchConstant" MemberName 143(HSTrianglePatchConstant) 0 "NormalWS" Name 145 "@patchConstantOutput" Name 151 "P0" Name 154 "P1" Name 157 "P2" Name 174 "Q0" Name 184 "Q1" Name 193 "Q2" Name 202 "vertex" MemberDecorate 42(UniformBlock0) 0 RowMajor MemberDecorate 42(UniformBlock0) 0 Offset 0 MemberDecorate 42(UniformBlock0) 0 MatrixStride 16 MemberDecorate 42(UniformBlock0) 1 RowMajor MemberDecorate 42(UniformBlock0) 1 Offset 64 MemberDecorate 42(UniformBlock0) 1 MatrixStride 16 MemberDecorate 42(UniformBlock0) 2 RowMajor MemberDecorate 42(UniformBlock0) 2 Offset 128 MemberDecorate 42(UniformBlock0) 2 MatrixStride 16 MemberDecorate 42(UniformBlock0) 3 RowMajor MemberDecorate 42(UniformBlock0) 3 Offset 192 MemberDecorate 42(UniformBlock0) 3 MatrixStride 16 MemberDecorate 42(UniformBlock0) 4 Offset 240 MemberDecorate 42(UniformBlock0) 5 Offset 256 MemberDecorate 42(UniformBlock0) 6 Offset 272 Decorate 42(UniformBlock0) Block Decorate 44 DescriptorSet 0 Decorate 44 Binding 0 Decorate 97(patch) Location 0 Decorate 101(id) BuiltIn InvocationId Decorate 105(@entryPointOutput) Location 0 Decorate 126(@patchConstantOutput.EdgeTessFactor) Patch Decorate 126(@patchConstantOutput.EdgeTessFactor) BuiltIn TessLevelOuter Decorate 139(@patchConstantOutput.InsideTessFactor) Patch Decorate 139(@patchConstantOutput.InsideTessFactor) BuiltIn TessLevelInner MemberDecorate 143(HSTrianglePatchConstant) 0 Patch Decorate 145(@patchConstantOutput) Patch Decorate 145(@patchConstantOutput) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8(HSInput): TypeStruct 7(fvec3) 7(fvec3) 9: TypeInt 32 0 10: 9(int) Constant 3 11: TypeArray 8(HSInput) 10 12: TypePointer Function 11 13: TypeArray 6(float) 10 14: TypeArray 7(fvec3) 10 15(HSTrianglePatchConstant): TypeStruct 13 6(float) 14 16: TypeFunction 15(HSTrianglePatchConstant) 12(ptr) 20: TypePointer Function 9(int) 21(HSOutput): TypeStruct 7(fvec3) 22: TypeFunction 21(HSOutput) 12(ptr) 20(ptr) 27(GSVertexInput): TypeStruct 7(fvec3) 7(fvec3) 28: TypeArray 27(GSVertexInput) 10 29: TypePointer Function 28 30: TypeVector 6(float) 4 31(GSVertexOutput): TypeStruct 30(fvec4) 32: TypePointer Function 31(GSVertexOutput) 33: TypeFunction 2 29(ptr) 32(ptr) 38: TypePointer Function 7(fvec3) 40: TypeMatrix 30(fvec4) 4 41: TypeMatrix 7(fvec3) 3 42(UniformBlock0): TypeStruct 40 40 40 41 7(fvec3) 7(fvec3) 7(fvec3) 43: TypePointer Uniform 42(UniformBlock0) 44: 43(ptr) Variable Uniform 45: TypeInt 32 1 46: 45(int) Constant 6 47: TypePointer Uniform 7(fvec3) 50: TypePointer Function 6(float) 52: 6(float) Constant 1077936128 54: 6(float) Constant 1065353216 55: TypePointer Function 15(HSTrianglePatchConstant) 57: 45(int) Constant 0 58: 9(int) Constant 0 62: 45(int) Constant 1 63: 9(int) Constant 1 67: 45(int) Constant 2 68: 9(int) Constant 2 86: TypePointer Function 21(HSOutput) 96: TypePointer Input 11 97(patch): 96(ptr) Variable Input 100: TypePointer Input 9(int) 101(id): 100(ptr) Variable Input 103: TypeArray 21(HSOutput) 10 104: TypePointer Output 103 105(@entryPointOutput): 104(ptr) Variable Output 112: TypePointer Output 21(HSOutput) 114: 9(int) Constant 4 116: TypeBool 124: TypeArray 6(float) 114 125: TypePointer Output 124 126(@patchConstantOutput.EdgeTessFactor): 125(ptr) Variable Output 129: TypePointer Output 6(float) 137: TypeArray 6(float) 68 138: TypePointer Output 137 139(@patchConstantOutput.InsideTessFactor): 138(ptr) Variable Output 143(HSTrianglePatchConstant): TypeStruct 14 144: TypePointer Output 143(HSTrianglePatchConstant) 145(@patchConstantOutput): 144(ptr) Variable Output 146: TypePointer Function 14 149: TypePointer Output 14 160: 6(float) Constant 981668463 173: TypePointer Function 30(fvec4) 180: TypePointer Uniform 40 205: 6(float) Constant 0 4(HSMain): 2 Function None 3 5: Label 95(patch): 12(ptr) Variable Function 99(id): 20(ptr) Variable Function 107(param): 12(ptr) Variable Function 109(param): 20(ptr) Variable Function 120(@patchConstantResult): 55(ptr) Variable Function 121(param): 12(ptr) Variable Function 98: 11 Load 97(patch) Store 95(patch) 98 102: 9(int) Load 101(id) Store 99(id) 102 106: 9(int) Load 101(id) 108: 11 Load 95(patch) Store 107(param) 108 110: 9(int) Load 99(id) Store 109(param) 110 111:21(HSOutput) FunctionCall 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;) 107(param) 109(param) 113: 112(ptr) AccessChain 105(@entryPointOutput) 106 Store 113 111 ControlBarrier 68 114 58 115: 9(int) Load 101(id) 117: 116(bool) IEqual 115 57 SelectionMerge 119 None BranchConditional 117 118 119 118: Label 122: 11 Load 95(patch) Store 121(param) 122 123:15(HSTrianglePatchConstant) FunctionCall 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];) 121(param) Store 120(@patchConstantResult) 123 127: 50(ptr) AccessChain 120(@patchConstantResult) 57 57 128: 6(float) Load 127 130: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 57 Store 130 128 131: 50(ptr) AccessChain 120(@patchConstantResult) 57 62 132: 6(float) Load 131 133: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 62 Store 133 132 134: 50(ptr) AccessChain 120(@patchConstantResult) 57 67 135: 6(float) Load 134 136: 129(ptr) AccessChain 126(@patchConstantOutput.EdgeTessFactor) 67 Store 136 135 140: 50(ptr) AccessChain 120(@patchConstantResult) 62 141: 6(float) Load 140 142: 129(ptr) AccessChain 139(@patchConstantOutput.InsideTessFactor) 57 Store 142 141 147: 146(ptr) AccessChain 120(@patchConstantResult) 67 148: 14 Load 147 150: 149(ptr) AccessChain 145(@patchConstantOutput) 57 Store 150 148 Branch 119 119: Label Return FunctionEnd 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];):15(HSTrianglePatchConstant) Function None 16 17(patch): 12(ptr) FunctionParameter 19: Label 39(roundedEdgeTessFactor): 38(ptr) Variable Function 51(roundedInsideTessFactor): 50(ptr) Variable Function 53(insideTessFactor): 50(ptr) Variable Function 56(result): 55(ptr) Variable Function 48: 47(ptr) AccessChain 44 46 49: 7(fvec3) Load 48 Store 39(roundedEdgeTessFactor) 49 Store 51(roundedInsideTessFactor) 52 Store 53(insideTessFactor) 54 59: 50(ptr) AccessChain 39(roundedEdgeTessFactor) 58 60: 6(float) Load 59 61: 50(ptr) AccessChain 56(result) 57 57 Store 61 60 64: 50(ptr) AccessChain 39(roundedEdgeTessFactor) 63 65: 6(float) Load 64 66: 50(ptr) AccessChain 56(result) 57 62 Store 66 65 69: 50(ptr) AccessChain 39(roundedEdgeTessFactor) 68 70: 6(float) Load 69 71: 50(ptr) AccessChain 56(result) 57 67 Store 71 70 72: 6(float) Load 51(roundedInsideTessFactor) 73: 50(ptr) AccessChain 56(result) 62 Store 73 72 74: 38(ptr) AccessChain 17(patch) 57 62 75: 7(fvec3) Load 74 76: 38(ptr) AccessChain 56(result) 67 57 Store 76 75 77: 38(ptr) AccessChain 17(patch) 62 62 78: 7(fvec3) Load 77 79: 38(ptr) AccessChain 56(result) 67 62 Store 79 78 80: 38(ptr) AccessChain 17(patch) 67 62 81: 7(fvec3) Load 80 82: 38(ptr) AccessChain 56(result) 67 67 Store 82 81 83:15(HSTrianglePatchConstant) Load 56(result) ReturnValue 83 FunctionEnd 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;):21(HSOutput) Function None 22 23(patch): 12(ptr) FunctionParameter 24(id): 20(ptr) FunctionParameter 26: Label 87(output): 86(ptr) Variable Function 88: 9(int) Load 24(id) 89: 38(ptr) AccessChain 23(patch) 88 57 90: 7(fvec3) Load 89 91: 38(ptr) AccessChain 87(output) 57 Store 91 90 92:21(HSOutput) Load 87(output) ReturnValue 92 FunctionEnd 36(GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;): 2 Function None 33 34(input): 29(ptr) FunctionParameter 35(output): 32(ptr) FunctionParameter 37: Label 151(P0): 38(ptr) Variable Function 154(P1): 38(ptr) Variable Function 157(P2): 38(ptr) Variable Function 174(Q0): 173(ptr) Variable Function 184(Q1): 173(ptr) Variable Function 193(Q2): 173(ptr) Variable Function 202(vertex): 32(ptr) Variable Function 152: 38(ptr) AccessChain 34(input) 57 57 153: 7(fvec3) Load 152 Store 151(P0) 153 155: 38(ptr) AccessChain 34(input) 62 57 156: 7(fvec3) Load 155 Store 154(P1) 156 158: 38(ptr) AccessChain 34(input) 67 57 159: 7(fvec3) Load 158 Store 157(P2) 159 161: 50(ptr) AccessChain 151(P0) 68 162: 6(float) Load 161 163: 6(float) FAdd 162 160 164: 50(ptr) AccessChain 151(P0) 68 Store 164 163 165: 50(ptr) AccessChain 154(P1) 68 166: 6(float) Load 165 167: 6(float) FAdd 166 160 168: 50(ptr) AccessChain 154(P1) 68 Store 168 167 169: 50(ptr) AccessChain 157(P2) 68 170: 6(float) Load 169 171: 6(float) FAdd 170 160 172: 50(ptr) AccessChain 157(P2) 68 Store 172 171 175: 7(fvec3) Load 151(P0) 176: 6(float) CompositeExtract 175 0 177: 6(float) CompositeExtract 175 1 178: 6(float) CompositeExtract 175 2 179: 30(fvec4) CompositeConstruct 176 177 178 54 181: 180(ptr) AccessChain 44 62 182: 40 Load 181 183: 30(fvec4) VectorTimesMatrix 179 182 Store 174(Q0) 183 185: 7(fvec3) Load 154(P1) 186: 6(float) CompositeExtract 185 0 187: 6(float) CompositeExtract 185 1 188: 6(float) CompositeExtract 185 2 189: 30(fvec4) CompositeConstruct 186 187 188 54 190: 180(ptr) AccessChain 44 62 191: 40 Load 190 192: 30(fvec4) VectorTimesMatrix 189 191 Store 184(Q1) 192 194: 7(fvec3) Load 157(P2) 195: 6(float) CompositeExtract 194 0 196: 6(float) CompositeExtract 194 1 197: 6(float) CompositeExtract 194 2 198: 30(fvec4) CompositeConstruct 195 196 197 54 199: 180(ptr) AccessChain 44 62 200: 40 Load 199 201: 30(fvec4) VectorTimesMatrix 198 200 Store 193(Q2) 201 203: 30(fvec4) Load 174(Q0) 204: 173(ptr) AccessChain 202(vertex) 57 Store 204 203 206: 30(fvec4) Load 184(Q1) 207: 173(ptr) AccessChain 202(vertex) 57 Store 207 206 208: 30(fvec4) Load 184(Q1) 209: 173(ptr) AccessChain 202(vertex) 57 Store 209 208 210: 30(fvec4) Load 193(Q2) 211: 173(ptr) AccessChain 202(vertex) 57 Store 211 210 212: 30(fvec4) Load 193(Q2) 213: 173(ptr) AccessChain 202(vertex) 57 Store 213 212 214: 30(fvec4) Load 174(Q0) 215: 173(ptr) AccessChain 202(vertex) 57 Store 215 214 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.hlslOffset.vert.out000066400000000000000000000117471360464450000235110ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.hull.1.tesc.out000066400000000000000000000457501360464450000224620ustar00rootroot00000000000000hlsl.hull.1.tesc Shader version: 500 vertices = 4 vertex spacing = equal_spacing 0:? Sequence 0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Parameters: 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:26 'm_cpid' ( in uint) 0:? Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:29 Branch: Return with expression 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Definition: main( ( temp void) 0:26 Function Parameters: 0:? Sequence 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:26 move second child to first child ( temp uint) 0:? 'm_cpid' ( temp uint) 0:? 'm_cpid' ( in uint InvocationID) 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) 0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'm_cpid' ( in uint InvocationID) 0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'm_cpid' ( temp uint) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'm_cpid' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges}) 0:? 'pid' ( in uint PrimitiveID) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges}) 0:33 Function Parameters: 0:33 'pid' ( in uint) 0:? Sequence 0:36 move second child to first child ( temp float) 0:36 direct index ( temp float) 0:36 edges: direct index for structure ( temp 2-element array of float) 0:36 'output' ( temp structure{ temp 2-element array of float edges}) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 2.000000 0:37 move second child to first child ( temp float) 0:37 direct index ( temp float) 0:37 edges: direct index for structure ( temp 2-element array of float) 0:37 'output' ( temp structure{ temp 2-element array of float edges}) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 1 (const int) 0:37 Constant: 0:37 8.000000 0:38 Branch: Return with expression 0:38 'output' ( temp structure{ temp 2-element array of float edges}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'm_cpid' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) Linked tessellation control stage: Shader version: 500 vertices = 4 vertex spacing = equal_spacing 0:? Sequence 0:26 Function Definition: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Parameters: 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:26 'm_cpid' ( in uint) 0:? Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:29 Branch: Return with expression 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Definition: main( ( temp void) 0:26 Function Parameters: 0:? Sequence 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:26 move second child to first child ( temp uint) 0:? 'm_cpid' ( temp uint) 0:? 'm_cpid' ( in uint InvocationID) 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) 0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'm_cpid' ( in uint InvocationID) 0:26 Function Call: @main(struct-VS_OUT-vf31[4];u1; ( temp structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'm_cpid' ( temp uint) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'm_cpid' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Function Call: PCF(u1; ( temp structure{ temp 2-element array of float edges}) 0:? 'pid' ( in uint PrimitiveID) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:33 Function Definition: PCF(u1; ( temp structure{ temp 2-element array of float edges}) 0:33 Function Parameters: 0:33 'pid' ( in uint) 0:? Sequence 0:36 move second child to first child ( temp float) 0:36 direct index ( temp float) 0:36 edges: direct index for structure ( temp 2-element array of float) 0:36 'output' ( temp structure{ temp 2-element array of float edges}) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 2.000000 0:37 move second child to first child ( temp float) 0:37 direct index ( temp float) 0:37 edges: direct index for structure ( temp 2-element array of float) 0:37 'output' ( temp structure{ temp 2-element array of float edges}) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 1 (const int) 0:37 Constant: 0:37 8.000000 0:38 Branch: Return with expression 0:38 'output' ( temp structure{ temp 2-element array of float edges}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'm_cpid' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 89 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 40 44 48 65 71 ExecutionMode 4 OutputVertices 4 ExecutionMode 4 Isolines ExecutionMode 4 SpacingEqual Source HLSL 500 Name 4 "main" Name 8 "VS_OUT" MemberName 8(VS_OUT) 0 "cpoint" Name 14 "HS_OUT" MemberName 14(HS_OUT) 0 "cpoint" Name 18 "@main(struct-VS_OUT-vf31[4];u1;" Name 16 "ip" Name 17 "m_cpid" Name 22 "HS_CONSTANT_OUT" MemberName 22(HS_CONSTANT_OUT) 0 "edges" Name 25 "PCF(u1;" Name 24 "pid" Name 28 "output" Name 38 "ip" Name 40 "ip" Name 42 "m_cpid" Name 44 "m_cpid" Name 48 "@entryPointOutput" Name 50 "param" Name 52 "param" Name 64 "@patchConstantResult" Name 65 "pid" Name 66 "param" Name 71 "@patchConstantOutput.edges" Name 81 "output" Decorate 40(ip) Location 0 Decorate 44(m_cpid) BuiltIn InvocationId Decorate 48(@entryPointOutput) Location 0 Decorate 65(pid) BuiltIn PrimitiveId Decorate 71(@patchConstantOutput.edges) Patch Decorate 71(@patchConstantOutput.edges) BuiltIn TessLevelOuter 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8(VS_OUT): TypeStruct 7(fvec3) 9: TypeInt 32 0 10: 9(int) Constant 4 11: TypeArray 8(VS_OUT) 10 12: TypePointer Function 11 13: TypePointer Function 9(int) 14(HS_OUT): TypeStruct 7(fvec3) 15: TypeFunction 14(HS_OUT) 12(ptr) 13(ptr) 20: 9(int) Constant 2 21: TypeArray 6(float) 20 22(HS_CONSTANT_OUT): TypeStruct 21 23: TypeFunction 22(HS_CONSTANT_OUT) 13(ptr) 27: TypePointer Function 14(HS_OUT) 29: TypeInt 32 1 30: 29(int) Constant 0 31: TypePointer Function 7(fvec3) 39: TypePointer Input 11 40(ip): 39(ptr) Variable Input 43: TypePointer Input 9(int) 44(m_cpid): 43(ptr) Variable Input 46: TypeArray 14(HS_OUT) 10 47: TypePointer Output 46 48(@entryPointOutput): 47(ptr) Variable Output 55: TypePointer Output 14(HS_OUT) 57: 9(int) Constant 0 59: TypeBool 63: TypePointer Function 22(HS_CONSTANT_OUT) 65(pid): 43(ptr) Variable Input 69: TypeArray 6(float) 10 70: TypePointer Output 69 71(@patchConstantOutput.edges): 70(ptr) Variable Output 72: TypePointer Function 6(float) 75: TypePointer Output 6(float) 77: 29(int) Constant 1 82: 6(float) Constant 1073741824 84: 6(float) Constant 1090519040 4(main): 2 Function None 3 5: Label 38(ip): 12(ptr) Variable Function 42(m_cpid): 13(ptr) Variable Function 50(param): 12(ptr) Variable Function 52(param): 13(ptr) Variable Function 64(@patchConstantResult): 63(ptr) Variable Function 66(param): 13(ptr) Variable Function 41: 11 Load 40(ip) Store 38(ip) 41 45: 9(int) Load 44(m_cpid) Store 42(m_cpid) 45 49: 9(int) Load 44(m_cpid) 51: 11 Load 38(ip) Store 50(param) 51 53: 9(int) Load 42(m_cpid) Store 52(param) 53 54: 14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param) 56: 55(ptr) AccessChain 48(@entryPointOutput) 49 Store 56 54 ControlBarrier 20 10 57 58: 9(int) Load 44(m_cpid) 60: 59(bool) IEqual 58 30 SelectionMerge 62 None BranchConditional 60 61 62 61: Label 67: 9(int) Load 65(pid) Store 66(param) 67 68:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 66(param) Store 64(@patchConstantResult) 68 73: 72(ptr) AccessChain 64(@patchConstantResult) 30 30 74: 6(float) Load 73 76: 75(ptr) AccessChain 71(@patchConstantOutput.edges) 30 Store 76 74 78: 72(ptr) AccessChain 64(@patchConstantResult) 30 77 79: 6(float) Load 78 80: 75(ptr) AccessChain 71(@patchConstantOutput.edges) 77 Store 80 79 Branch 62 62: Label Return FunctionEnd 18(@main(struct-VS_OUT-vf31[4];u1;): 14(HS_OUT) Function None 15 16(ip): 12(ptr) FunctionParameter 17(m_cpid): 13(ptr) FunctionParameter 19: Label 28(output): 27(ptr) Variable Function 32: 31(ptr) AccessChain 16(ip) 30 30 33: 7(fvec3) Load 32 34: 31(ptr) AccessChain 28(output) 30 Store 34 33 35: 14(HS_OUT) Load 28(output) ReturnValue 35 FunctionEnd 25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23 24(pid): 13(ptr) FunctionParameter 26: Label 81(output): 63(ptr) Variable Function 83: 72(ptr) AccessChain 81(output) 30 30 Store 83 82 85: 72(ptr) AccessChain 81(output) 30 77 Store 85 84 86:22(HS_CONSTANT_OUT) Load 81(output) ReturnValue 86 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.hull.2.tesc.out000066400000000000000000000461671360464450000224660ustar00rootroot00000000000000hlsl.hull.2.tesc Shader version: 500 vertices = 4 vertex spacing = equal_spacing 0:? Sequence 0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Parameters: 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:29 Branch: Return with expression 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Definition: main( ( temp void) 0:26 Function Parameters: 0:? Sequence 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) 0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) 0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'InvocationId' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) 0:33 Function Parameters: 0:33 'pid' ( in uint) 0:33 'pos' ( in 4-component vector of float) 0:? Sequence 0:36 move second child to first child ( temp float) 0:36 direct index ( temp float) 0:36 edges: direct index for structure ( temp 2-element array of float) 0:36 'output' ( temp structure{ temp 2-element array of float edges}) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 2.000000 0:37 move second child to first child ( temp float) 0:37 direct index ( temp float) 0:37 edges: direct index for structure ( temp 2-element array of float) 0:37 'output' ( temp structure{ temp 2-element array of float edges}) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 1 (const int) 0:37 Constant: 0:37 8.000000 0:38 Branch: Return with expression 0:38 'output' ( temp structure{ temp 2-element array of float edges}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) Linked tessellation control stage: Shader version: 500 vertices = 4 vertex spacing = equal_spacing 0:? Sequence 0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Parameters: 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:29 Branch: Return with expression 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Definition: main( ( temp void) 0:26 Function Parameters: 0:? Sequence 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) 0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) 0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'InvocationId' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) 0:33 Function Parameters: 0:33 'pid' ( in uint) 0:33 'pos' ( in 4-component vector of float) 0:? Sequence 0:36 move second child to first child ( temp float) 0:36 direct index ( temp float) 0:36 edges: direct index for structure ( temp 2-element array of float) 0:36 'output' ( temp structure{ temp 2-element array of float edges}) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 2.000000 0:37 move second child to first child ( temp float) 0:37 direct index ( temp float) 0:37 edges: direct index for structure ( temp 2-element array of float) 0:37 'output' ( temp structure{ temp 2-element array of float edges}) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 1 (const int) 0:37 Constant: 0:37 8.000000 0:38 Branch: Return with expression 0:38 'output' ( temp structure{ temp 2-element array of float edges}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 91 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 42 46 48 63 65 73 ExecutionMode 4 OutputVertices 4 ExecutionMode 4 Isolines ExecutionMode 4 SpacingEqual Source HLSL 500 Name 4 "main" Name 8 "VS_OUT" MemberName 8(VS_OUT) 0 "cpoint" Name 13 "HS_OUT" MemberName 13(HS_OUT) 0 "cpoint" Name 16 "@main(struct-VS_OUT-vf31[4];" Name 15 "ip" Name 23 "HS_CONSTANT_OUT" MemberName 23(HS_CONSTANT_OUT) 0 "edges" Name 27 "PCF(u1;vf4;" Name 25 "pid" Name 26 "pos" Name 30 "output" Name 40 "ip" Name 42 "ip" Name 46 "@entryPointOutput" Name 48 "InvocationId" Name 50 "param" Name 62 "@patchConstantResult" Name 63 "pid" Name 65 "pos" Name 66 "param" Name 68 "param" Name 73 "@patchConstantOutput.edges" Name 83 "output" Decorate 42(ip) Location 0 Decorate 46(@entryPointOutput) Location 0 Decorate 48(InvocationId) BuiltIn InvocationId Decorate 63(pid) BuiltIn PrimitiveId Decorate 65(pos) BuiltIn Position Decorate 73(@patchConstantOutput.edges) Patch Decorate 73(@patchConstantOutput.edges) BuiltIn TessLevelOuter 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8(VS_OUT): TypeStruct 7(fvec3) 9: TypeInt 32 0 10: 9(int) Constant 4 11: TypeArray 8(VS_OUT) 10 12: TypePointer Function 11 13(HS_OUT): TypeStruct 7(fvec3) 14: TypeFunction 13(HS_OUT) 12(ptr) 18: TypePointer Function 9(int) 19: TypeVector 6(float) 4 20: TypePointer Function 19(fvec4) 21: 9(int) Constant 2 22: TypeArray 6(float) 21 23(HS_CONSTANT_OUT): TypeStruct 22 24: TypeFunction 23(HS_CONSTANT_OUT) 18(ptr) 20(ptr) 29: TypePointer Function 13(HS_OUT) 31: TypeInt 32 1 32: 31(int) Constant 0 33: TypePointer Function 7(fvec3) 41: TypePointer Input 11 42(ip): 41(ptr) Variable Input 44: TypeArray 13(HS_OUT) 10 45: TypePointer Output 44 46(@entryPointOutput): 45(ptr) Variable Output 47: TypePointer Input 9(int) 48(InvocationId): 47(ptr) Variable Input 53: TypePointer Output 13(HS_OUT) 55: 9(int) Constant 0 57: TypeBool 61: TypePointer Function 23(HS_CONSTANT_OUT) 63(pid): 47(ptr) Variable Input 64: TypePointer Input 19(fvec4) 65(pos): 64(ptr) Variable Input 71: TypeArray 6(float) 10 72: TypePointer Output 71 73(@patchConstantOutput.edges): 72(ptr) Variable Output 74: TypePointer Function 6(float) 77: TypePointer Output 6(float) 79: 31(int) Constant 1 84: 6(float) Constant 1073741824 86: 6(float) Constant 1090519040 4(main): 2 Function None 3 5: Label 40(ip): 12(ptr) Variable Function 50(param): 12(ptr) Variable Function 62(@patchConstantResult): 61(ptr) Variable Function 66(param): 18(ptr) Variable Function 68(param): 20(ptr) Variable Function 43: 11 Load 42(ip) Store 40(ip) 43 49: 9(int) Load 48(InvocationId) 51: 11 Load 40(ip) Store 50(param) 51 52: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 50(param) 54: 53(ptr) AccessChain 46(@entryPointOutput) 49 Store 54 52 ControlBarrier 21 10 55 56: 9(int) Load 48(InvocationId) 58: 57(bool) IEqual 56 32 SelectionMerge 60 None BranchConditional 58 59 60 59: Label 67: 9(int) Load 63(pid) Store 66(param) 67 69: 19(fvec4) Load 65(pos) Store 68(param) 69 70:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 66(param) 68(param) Store 62(@patchConstantResult) 70 75: 74(ptr) AccessChain 62(@patchConstantResult) 32 32 76: 6(float) Load 75 78: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 32 Store 78 76 80: 74(ptr) AccessChain 62(@patchConstantResult) 32 79 81: 6(float) Load 80 82: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 79 Store 82 81 Branch 60 60: Label Return FunctionEnd 16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14 15(ip): 12(ptr) FunctionParameter 17: Label 30(output): 29(ptr) Variable Function 34: 33(ptr) AccessChain 15(ip) 32 32 35: 7(fvec3) Load 34 36: 33(ptr) AccessChain 30(output) 32 Store 36 35 37: 13(HS_OUT) Load 30(output) ReturnValue 37 FunctionEnd 27(PCF(u1;vf4;):23(HS_CONSTANT_OUT) Function None 24 25(pid): 18(ptr) FunctionParameter 26(pos): 20(ptr) FunctionParameter 28: Label 83(output): 61(ptr) Variable Function 85: 74(ptr) AccessChain 83(output) 32 32 Store 85 84 87: 74(ptr) AccessChain 83(output) 32 79 Store 87 86 88:23(HS_CONSTANT_OUT) Load 83(output) ReturnValue 88 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.hull.3.tesc.out000066400000000000000000000462601360464450000224610ustar00rootroot00000000000000hlsl.hull.3.tesc Shader version: 500 vertices = 4 vertex spacing = equal_spacing 0:? Sequence 0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Parameters: 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:29 Branch: Return with expression 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Definition: main( ( temp void) 0:26 Function Parameters: 0:? Sequence 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) 0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) 0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'InvocationId' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) 0:33 Function Parameters: 0:33 'pid' ( in uint) 0:33 'pos' ( in 4-component vector of float) 0:? Sequence 0:36 move second child to first child ( temp float) 0:36 direct index ( temp float) 0:36 edges: direct index for structure ( temp 2-element array of float) 0:36 'output' ( temp structure{ temp 2-element array of float edges}) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 2.000000 0:37 move second child to first child ( temp float) 0:37 direct index ( temp float) 0:37 edges: direct index for structure ( temp 2-element array of float) 0:37 'output' ( temp structure{ temp 2-element array of float edges}) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 1 (const int) 0:37 Constant: 0:37 8.000000 0:38 Branch: Return with expression 0:38 'output' ( temp structure{ temp 2-element array of float edges}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) Linked tessellation control stage: Shader version: 500 vertices = 4 vertex spacing = equal_spacing 0:? Sequence 0:26 Function Definition: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Parameters: 0:26 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) 0:28 'ip' ( in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:29 Branch: Return with expression 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Definition: main( ( temp void) 0:26 Function Parameters: 0:? Sequence 0:26 move second child to first child ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) 0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) 0:26 Function Call: @main(struct-VS_OUT-vf31[4]; ( temp structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'InvocationId' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 2-element array of float edges}) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Function Call: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? edges: direct index for structure ( temp 2-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 2-element array of float edges}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:33 Function Definition: PCF(u1;vf4; ( temp structure{ temp 2-element array of float edges}) 0:33 Function Parameters: 0:33 'pid' ( in uint) 0:33 'pos' ( in 4-component vector of float) 0:? Sequence 0:36 move second child to first child ( temp float) 0:36 direct index ( temp float) 0:36 edges: direct index for structure ( temp 2-element array of float) 0:36 'output' ( temp structure{ temp 2-element array of float edges}) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 0 (const int) 0:36 Constant: 0:36 2.000000 0:37 move second child to first child ( temp float) 0:37 direct index ( temp float) 0:37 edges: direct index for structure ( temp 2-element array of float) 0:37 'output' ( temp structure{ temp 2-element array of float edges}) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 1 (const int) 0:37 Constant: 0:37 8.000000 0:38 Branch: Return with expression 0:38 'output' ( temp structure{ temp 2-element array of float edges}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 4-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) 0:? 'pid' ( in uint PrimitiveID) 0:? 'pos' ( in 4-component vector of float Position) 0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 91 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 42 46 48 63 65 73 ExecutionMode 4 OutputVertices 4 ExecutionMode 4 Triangles ExecutionMode 4 SpacingEqual ExecutionMode 4 PointMode Source HLSL 500 Name 4 "main" Name 8 "VS_OUT" MemberName 8(VS_OUT) 0 "cpoint" Name 13 "HS_OUT" MemberName 13(HS_OUT) 0 "cpoint" Name 16 "@main(struct-VS_OUT-vf31[4];" Name 15 "ip" Name 23 "HS_CONSTANT_OUT" MemberName 23(HS_CONSTANT_OUT) 0 "edges" Name 27 "PCF(u1;vf4;" Name 25 "pid" Name 26 "pos" Name 30 "output" Name 40 "ip" Name 42 "ip" Name 46 "@entryPointOutput" Name 48 "InvocationId" Name 50 "param" Name 62 "@patchConstantResult" Name 63 "pid" Name 65 "pos" Name 66 "param" Name 68 "param" Name 73 "@patchConstantOutput.edges" Name 83 "output" Decorate 42(ip) Location 0 Decorate 46(@entryPointOutput) Location 0 Decorate 48(InvocationId) BuiltIn InvocationId Decorate 63(pid) BuiltIn PrimitiveId Decorate 65(pos) BuiltIn Position Decorate 73(@patchConstantOutput.edges) Patch Decorate 73(@patchConstantOutput.edges) BuiltIn TessLevelOuter 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8(VS_OUT): TypeStruct 7(fvec3) 9: TypeInt 32 0 10: 9(int) Constant 4 11: TypeArray 8(VS_OUT) 10 12: TypePointer Function 11 13(HS_OUT): TypeStruct 7(fvec3) 14: TypeFunction 13(HS_OUT) 12(ptr) 18: TypePointer Function 9(int) 19: TypeVector 6(float) 4 20: TypePointer Function 19(fvec4) 21: 9(int) Constant 2 22: TypeArray 6(float) 21 23(HS_CONSTANT_OUT): TypeStruct 22 24: TypeFunction 23(HS_CONSTANT_OUT) 18(ptr) 20(ptr) 29: TypePointer Function 13(HS_OUT) 31: TypeInt 32 1 32: 31(int) Constant 0 33: TypePointer Function 7(fvec3) 41: TypePointer Input 11 42(ip): 41(ptr) Variable Input 44: TypeArray 13(HS_OUT) 10 45: TypePointer Output 44 46(@entryPointOutput): 45(ptr) Variable Output 47: TypePointer Input 9(int) 48(InvocationId): 47(ptr) Variable Input 53: TypePointer Output 13(HS_OUT) 55: 9(int) Constant 0 57: TypeBool 61: TypePointer Function 23(HS_CONSTANT_OUT) 63(pid): 47(ptr) Variable Input 64: TypePointer Input 19(fvec4) 65(pos): 64(ptr) Variable Input 71: TypeArray 6(float) 10 72: TypePointer Output 71 73(@patchConstantOutput.edges): 72(ptr) Variable Output 74: TypePointer Function 6(float) 77: TypePointer Output 6(float) 79: 31(int) Constant 1 84: 6(float) Constant 1073741824 86: 6(float) Constant 1090519040 4(main): 2 Function None 3 5: Label 40(ip): 12(ptr) Variable Function 50(param): 12(ptr) Variable Function 62(@patchConstantResult): 61(ptr) Variable Function 66(param): 18(ptr) Variable Function 68(param): 20(ptr) Variable Function 43: 11 Load 42(ip) Store 40(ip) 43 49: 9(int) Load 48(InvocationId) 51: 11 Load 40(ip) Store 50(param) 51 52: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[4];) 50(param) 54: 53(ptr) AccessChain 46(@entryPointOutput) 49 Store 54 52 ControlBarrier 21 10 55 56: 9(int) Load 48(InvocationId) 58: 57(bool) IEqual 56 32 SelectionMerge 60 None BranchConditional 58 59 60 59: Label 67: 9(int) Load 63(pid) Store 66(param) 67 69: 19(fvec4) Load 65(pos) Store 68(param) 69 70:23(HS_CONSTANT_OUT) FunctionCall 27(PCF(u1;vf4;) 66(param) 68(param) Store 62(@patchConstantResult) 70 75: 74(ptr) AccessChain 62(@patchConstantResult) 32 32 76: 6(float) Load 75 78: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 32 Store 78 76 80: 74(ptr) AccessChain 62(@patchConstantResult) 32 79 81: 6(float) Load 80 82: 77(ptr) AccessChain 73(@patchConstantOutput.edges) 79 Store 82 81 Branch 60 60: Label Return FunctionEnd 16(@main(struct-VS_OUT-vf31[4];): 13(HS_OUT) Function None 14 15(ip): 12(ptr) FunctionParameter 17: Label 30(output): 29(ptr) Variable Function 34: 33(ptr) AccessChain 15(ip) 32 32 35: 7(fvec3) Load 34 36: 33(ptr) AccessChain 30(output) 32 Store 36 35 37: 13(HS_OUT) Load 30(output) ReturnValue 37 FunctionEnd 27(PCF(u1;vf4;):23(HS_CONSTANT_OUT) Function None 24 25(pid): 18(ptr) FunctionParameter 26(pos): 20(ptr) FunctionParameter 28: Label 83(output): 61(ptr) Variable Function 85: 74(ptr) AccessChain 83(output) 32 32 Store 85 84 87: 74(ptr) AccessChain 83(output) 32 79 Store 87 86 88:23(HS_CONSTANT_OUT) Load 83(output) ReturnValue 88 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.hull.4.tesc.out000066400000000000000000001154371360464450000224650ustar00rootroot00000000000000hlsl.hull.4.tesc Shader version: 500 vertices = 3 vertex spacing = fractional_odd_spacing triangle order = cw 0:? Sequence 0:25 Function Definition: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:25 Function Parameters: 0:25 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? Sequence 0:26 Sequence 0:26 move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:26 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:26 Constant: 0:26 0.000000 0:26 0.000000 0:26 0.000000 0:26 0.000000 0:28 move second child to first child ( temp float) 0:28 fInsideTessFactor: direct index for structure ( temp float) 0:28 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:28 Constant: 0:28 1 (const int) 0:28 add ( temp float) 0:28 direct index ( temp float) 0:28 m_Position: direct index for structure ( temp 4-component vector of float) 0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 3 (const int) 0:28 direct index ( temp float) 0:28 m_Normal: direct index for structure ( temp 4-component vector of float) 0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 1 (const int) 0:28 Constant: 0:28 3 (const int) 0:30 Branch: Return with expression 0:30 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:39 Function Definition: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) 0:39 Function Parameters: 0:39 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 'cpid' ( in uint) 0:? Sequence 0:40 Sequence 0:40 move second child to first child ( temp structure{ temp 4-component vector of float m_Position}) 0:40 'output' ( temp structure{ temp 4-component vector of float m_Position}) 0:40 Constant: 0:40 0.000000 0:40 0.000000 0:40 0.000000 0:40 0.000000 0:41 move second child to first child ( temp 4-component vector of float) 0:41 m_Position: direct index for structure ( temp 4-component vector of float) 0:41 'output' ( temp structure{ temp 4-component vector of float m_Position}) 0:41 Constant: 0:41 0 (const int) 0:41 Constant: 0:41 0.000000 0:41 0.000000 0:41 0.000000 0:41 0.000000 0:42 Branch: Return with expression 0:42 'output' ( temp structure{ temp 4-component vector of float m_Position}) 0:39 Function Definition: main( ( temp void) 0:39 Function Parameters: 0:? Sequence 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Position: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( in 4-component vector of float Position) 0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) 0:39 Constant: 0:39 0 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1 (const int) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) 0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Position: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 1 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( in 4-component vector of float Position) 0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) 0:39 Constant: 0:39 1 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 1 (const int) 0:39 Constant: 0:39 1 (const int) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) 0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 1 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Position: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 2 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( in 4-component vector of float Position) 0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) 0:39 Constant: 0:39 2 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 2 (const int) 0:39 Constant: 0:39 1 (const int) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) 0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 2 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 move second child to first child ( temp uint) 0:? 'cpid' ( temp uint) 0:? 'cpid' ( in uint InvocationID) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 indirect index ( out 4-component vector of float Position) 0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) 0:? 'cpid' ( in uint InvocationID) 0:39 m_Position: direct index for structure ( temp 4-component vector of float) 0:39 Function Call: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'cpid' ( temp uint) 0:39 Constant: 0:39 0 (const int) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'cpid' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? Function Call: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? fTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? fTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 2 (const int) 0:? direct index ( temp float) 0:? fTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 2 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelInner) 0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) 0:? Constant: 0:? 0 (const int) 0:? fInsideTessFactor: direct index for structure ( temp float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? Constant: 0:? 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) 0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) 0:? 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) 0:? 'cpid' ( in uint InvocationID) 0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) Linked tessellation control stage: Shader version: 500 vertices = 3 vertex spacing = fractional_odd_spacing triangle order = cw 0:? Sequence 0:25 Function Definition: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:25 Function Parameters: 0:25 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? Sequence 0:26 Sequence 0:26 move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:26 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:26 Constant: 0:26 0.000000 0:26 0.000000 0:26 0.000000 0:26 0.000000 0:28 move second child to first child ( temp float) 0:28 fInsideTessFactor: direct index for structure ( temp float) 0:28 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:28 Constant: 0:28 1 (const int) 0:28 add ( temp float) 0:28 direct index ( temp float) 0:28 m_Position: direct index for structure ( temp 4-component vector of float) 0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 3 (const int) 0:28 direct index ( temp float) 0:28 m_Normal: direct index for structure ( temp 4-component vector of float) 0:28 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:28 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 1 (const int) 0:28 Constant: 0:28 3 (const int) 0:30 Branch: Return with expression 0:30 'O' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:39 Function Definition: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) 0:39 Function Parameters: 0:39 'I' ( in 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 'cpid' ( in uint) 0:? Sequence 0:40 Sequence 0:40 move second child to first child ( temp structure{ temp 4-component vector of float m_Position}) 0:40 'output' ( temp structure{ temp 4-component vector of float m_Position}) 0:40 Constant: 0:40 0.000000 0:40 0.000000 0:40 0.000000 0:40 0.000000 0:41 move second child to first child ( temp 4-component vector of float) 0:41 m_Position: direct index for structure ( temp 4-component vector of float) 0:41 'output' ( temp structure{ temp 4-component vector of float m_Position}) 0:41 Constant: 0:41 0 (const int) 0:41 Constant: 0:41 0.000000 0:41 0.000000 0:41 0.000000 0:41 0.000000 0:42 Branch: Return with expression 0:42 'output' ( temp structure{ temp 4-component vector of float m_Position}) 0:39 Function Definition: main( ( temp void) 0:39 Function Parameters: 0:? Sequence 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Position: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( in 4-component vector of float Position) 0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) 0:39 Constant: 0:39 0 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1 (const int) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) 0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Position: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 1 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( in 4-component vector of float Position) 0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) 0:39 Constant: 0:39 1 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 1 (const int) 0:39 Constant: 0:39 1 (const int) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) 0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 1 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Position: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 2 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( in 4-component vector of float Position) 0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) 0:39 Constant: 0:39 2 (const int) 0:39 move second child to first child ( temp 4-component vector of float) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index ( temp structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 2 (const int) 0:39 Constant: 0:39 1 (const int) 0:39 m_Normal: direct index for structure ( temp 4-component vector of float) 0:39 direct index (layout( location=0) in structure{ temp 4-component vector of float m_Normal}) 0:39 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) 0:39 Constant: 0:39 2 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 move second child to first child ( temp uint) 0:? 'cpid' ( temp uint) 0:? 'cpid' ( in uint InvocationID) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 indirect index ( out 4-component vector of float Position) 0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) 0:? 'cpid' ( in uint InvocationID) 0:39 m_Position: direct index for structure ( temp 4-component vector of float) 0:39 Function Call: @main(struct-HS_Input-vf4-vf41[3];u1; ( temp structure{ temp 4-component vector of float m_Position}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? 'cpid' ( temp uint) 0:39 Constant: 0:39 0 (const int) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'cpid' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? Function Call: HS_ConstFunc(struct-HS_Input-vf4-vf41[3]; ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? 'I' ( temp 3-element array of structure{ temp 4-component vector of float m_Position, temp 4-component vector of float m_Normal}) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? fTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? fTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 2 (const int) 0:? direct index ( temp float) 0:? fTessFactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 2 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelInner) 0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) 0:? Constant: 0:? 0 (const int) 0:? fInsideTessFactor: direct index for structure ( temp float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float fTessFactor, temp float fInsideTessFactor}) 0:? Constant: 0:? 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.m_Position' ( out 3-element array of 4-component vector of float Position) 0:? 'I.m_Position' ( in 3-element array of 4-component vector of float Position) 0:? 'I' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float m_Normal}) 0:? 'cpid' ( in uint InvocationID) 0:? '@patchConstantOutput.fTessFactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 127 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 56 64 83 86 110 123 ExecutionMode 4 OutputVertices 3 ExecutionMode 4 Triangles ExecutionMode 4 SpacingFractionalOdd ExecutionMode 4 VertexOrderCw Source HLSL 500 Name 4 "main" Name 8 "HS_Input" MemberName 8(HS_Input) 0 "m_Position" MemberName 8(HS_Input) 1 "m_Normal" Name 14 "HS_Output" MemberName 14(HS_Output) 0 "fTessFactor" MemberName 14(HS_Output) 1 "fInsideTessFactor" Name 17 "HS_ConstFunc(struct-HS_Input-vf4-vf41[3];" Name 16 "I" Name 20 "HS_Main_Output" MemberName 20(HS_Main_Output) 0 "m_Position" Name 24 "@main(struct-HS_Input-vf4-vf41[3];u1;" Name 22 "I" Name 23 "cpid" Name 27 "O" Name 45 "output" Name 53 "I" Name 56 "I.m_Position" Name 61 "HS_Input" MemberName 61(HS_Input) 0 "m_Normal" Name 64 "I" Name 81 "cpid" Name 83 "cpid" Name 86 "@entryPointOutput.m_Position" Name 88 "param" Name 90 "param" Name 104 "@patchConstantResult" Name 105 "param" Name 110 "@patchConstantOutput.fTessFactor" Name 123 "@patchConstantOutput.fInsideTessFactor" Decorate 56(I.m_Position) BuiltIn Position Decorate 64(I) Location 0 Decorate 83(cpid) BuiltIn InvocationId Decorate 86(@entryPointOutput.m_Position) BuiltIn Position Decorate 110(@patchConstantOutput.fTessFactor) Patch Decorate 110(@patchConstantOutput.fTessFactor) BuiltIn TessLevelOuter Decorate 123(@patchConstantOutput.fInsideTessFactor) Patch Decorate 123(@patchConstantOutput.fInsideTessFactor) BuiltIn TessLevelInner 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(HS_Input): TypeStruct 7(fvec4) 7(fvec4) 9: TypeInt 32 0 10: 9(int) Constant 3 11: TypeArray 8(HS_Input) 10 12: TypePointer Function 11 13: TypeArray 6(float) 10 14(HS_Output): TypeStruct 13 6(float) 15: TypeFunction 14(HS_Output) 12(ptr) 19: TypePointer Function 9(int) 20(HS_Main_Output): TypeStruct 7(fvec4) 21: TypeFunction 20(HS_Main_Output) 12(ptr) 19(ptr) 26: TypePointer Function 14(HS_Output) 28: 6(float) Constant 0 29: 13 ConstantComposite 28 28 28 30:14(HS_Output) ConstantComposite 29 28 31: TypeInt 32 1 32: 31(int) Constant 1 33: 31(int) Constant 0 34: TypePointer Function 6(float) 44: TypePointer Function 20(HS_Main_Output) 46: 7(fvec4) ConstantComposite 28 28 28 28 47:20(HS_Main_Output) ConstantComposite 46 48: TypePointer Function 7(fvec4) 54: TypeArray 7(fvec4) 10 55: TypePointer Input 54 56(I.m_Position): 55(ptr) Variable Input 57: TypePointer Input 7(fvec4) 61(HS_Input): TypeStruct 7(fvec4) 62: TypeArray 61(HS_Input) 10 63: TypePointer Input 62 64(I): 63(ptr) Variable Input 74: 31(int) Constant 2 82: TypePointer Input 9(int) 83(cpid): 82(ptr) Variable Input 85: TypePointer Output 54 86(@entryPointOutput.m_Position): 85(ptr) Variable Output 94: TypePointer Output 7(fvec4) 96: 9(int) Constant 2 97: 9(int) Constant 4 98: 9(int) Constant 0 100: TypeBool 108: TypeArray 6(float) 97 109: TypePointer Output 108 110(@patchConstantOutput.fTessFactor): 109(ptr) Variable Output 113: TypePointer Output 6(float) 121: TypeArray 6(float) 96 122: TypePointer Output 121 123(@patchConstantOutput.fInsideTessFactor): 122(ptr) Variable Output 4(main): 2 Function None 3 5: Label 53(I): 12(ptr) Variable Function 81(cpid): 19(ptr) Variable Function 88(param): 12(ptr) Variable Function 90(param): 19(ptr) Variable Function 104(@patchConstantResult): 26(ptr) Variable Function 105(param): 12(ptr) Variable Function 58: 57(ptr) AccessChain 56(I.m_Position) 33 59: 7(fvec4) Load 58 60: 48(ptr) AccessChain 53(I) 33 33 Store 60 59 65: 57(ptr) AccessChain 64(I) 33 33 66: 7(fvec4) Load 65 67: 48(ptr) AccessChain 53(I) 33 32 Store 67 66 68: 57(ptr) AccessChain 56(I.m_Position) 32 69: 7(fvec4) Load 68 70: 48(ptr) AccessChain 53(I) 32 33 Store 70 69 71: 57(ptr) AccessChain 64(I) 32 33 72: 7(fvec4) Load 71 73: 48(ptr) AccessChain 53(I) 32 32 Store 73 72 75: 57(ptr) AccessChain 56(I.m_Position) 74 76: 7(fvec4) Load 75 77: 48(ptr) AccessChain 53(I) 74 33 Store 77 76 78: 57(ptr) AccessChain 64(I) 74 33 79: 7(fvec4) Load 78 80: 48(ptr) AccessChain 53(I) 74 32 Store 80 79 84: 9(int) Load 83(cpid) Store 81(cpid) 84 87: 9(int) Load 83(cpid) 89: 11 Load 53(I) Store 88(param) 89 91: 9(int) Load 81(cpid) Store 90(param) 91 92:20(HS_Main_Output) FunctionCall 24(@main(struct-HS_Input-vf4-vf41[3];u1;) 88(param) 90(param) 93: 7(fvec4) CompositeExtract 92 0 95: 94(ptr) AccessChain 86(@entryPointOutput.m_Position) 87 Store 95 93 ControlBarrier 96 97 98 99: 9(int) Load 83(cpid) 101: 100(bool) IEqual 99 33 SelectionMerge 103 None BranchConditional 101 102 103 102: Label 106: 11 Load 53(I) Store 105(param) 106 107:14(HS_Output) FunctionCall 17(HS_ConstFunc(struct-HS_Input-vf4-vf41[3];) 105(param) Store 104(@patchConstantResult) 107 111: 34(ptr) AccessChain 104(@patchConstantResult) 33 33 112: 6(float) Load 111 114: 113(ptr) AccessChain 110(@patchConstantOutput.fTessFactor) 33 Store 114 112 115: 34(ptr) AccessChain 104(@patchConstantResult) 33 32 116: 6(float) Load 115 117: 113(ptr) AccessChain 110(@patchConstantOutput.fTessFactor) 32 Store 117 116 118: 34(ptr) AccessChain 104(@patchConstantResult) 33 74 119: 6(float) Load 118 120: 113(ptr) AccessChain 110(@patchConstantOutput.fTessFactor) 74 Store 120 119 124: 34(ptr) AccessChain 104(@patchConstantResult) 32 125: 6(float) Load 124 126: 113(ptr) AccessChain 123(@patchConstantOutput.fInsideTessFactor) 33 Store 126 125 Branch 103 103: Label Return FunctionEnd 17(HS_ConstFunc(struct-HS_Input-vf4-vf41[3];):14(HS_Output) Function None 15 16(I): 12(ptr) FunctionParameter 18: Label 27(O): 26(ptr) Variable Function Store 27(O) 30 35: 34(ptr) AccessChain 16(I) 33 33 10 36: 6(float) Load 35 37: 34(ptr) AccessChain 16(I) 33 32 10 38: 6(float) Load 37 39: 6(float) FAdd 36 38 40: 34(ptr) AccessChain 27(O) 32 Store 40 39 41:14(HS_Output) Load 27(O) ReturnValue 41 FunctionEnd 24(@main(struct-HS_Input-vf4-vf41[3];u1;):20(HS_Main_Output) Function None 21 22(I): 12(ptr) FunctionParameter 23(cpid): 19(ptr) FunctionParameter 25: Label 45(output): 44(ptr) Variable Function Store 45(output) 47 49: 48(ptr) AccessChain 45(output) 33 Store 49 46 50:20(HS_Main_Output) Load 45(output) ReturnValue 50 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.hull.5.tesc.out000066400000000000000000000224101360464450000224520ustar00rootroot00000000000000hlsl.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 glslang-8.13.3559/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out000066400000000000000000001016561360464450000237660ustar00rootroot00000000000000hlsl.hull.ctrlpt-1.tesc Shader version: 500 vertices = 3 vertex spacing = fractional_odd_spacing triangle order = cw 0:? Sequence 0:27 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:27 Function Parameters: 0:27 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) 0:27 'cpid' ( in uint) 0:? Sequence 0:29 move second child to first child ( temp 3-component vector of float) 0:29 val: direct index for structure ( temp 3-component vector of float) 0:29 'o' ( temp structure{ temp 3-component vector of float val}) 0:29 Constant: 0:29 0 (const int) 0:29 Construct vec3 ( temp 3-component vector of float) 0:29 Convert uint to float ( temp float) 0:29 'cpid' ( in uint) 0:30 Branch: Return with expression 0:30 'o' ( temp structure{ temp 3-component vector of float val}) 0:27 Function Definition: main( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:27 move second child to first child ( temp uint) 0:? 'cpid' ( temp uint) 0:? 'cpid' ( in uint InvocationID) 0:27 move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:27 indirect index (layout( location=0) out structure{ temp 3-component vector of float val}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) 0:27 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( temp uint) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'cpid' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 0 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 0 (const uint) 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 1 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 1 (const uint) 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 2 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 2 (const uint) 0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Function Call: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 2 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 2 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelInner) 0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) 0:? Constant: 0:? 0 (const int) 0:? flInFactor: direct index for structure ( temp float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 1 (const int) 0:34 Function Definition: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:34 Function Parameters: 0:34 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:? Sequence 0:37 move second child to first child ( temp float) 0:37 direct index ( temp float) 0:37 tfactor: direct index for structure ( temp 3-element array of float) 0:37 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 0 (const int) 0:37 direct index ( temp float) 0:37 val: direct index for structure ( temp 3-component vector of float) 0:37 direct index ( temp structure{ temp 3-component vector of float val}) 0:37 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 0 (const int) 0:38 move second child to first child ( temp float) 0:38 direct index ( temp float) 0:38 tfactor: direct index for structure ( temp 3-element array of float) 0:38 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:38 Constant: 0:38 0 (const int) 0:38 Constant: 0:38 1 (const int) 0:38 direct index ( temp float) 0:38 val: direct index for structure ( temp 3-component vector of float) 0:38 direct index ( temp structure{ temp 3-component vector of float val}) 0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:38 Constant: 0:38 1 (const int) 0:38 Constant: 0:38 0 (const int) 0:38 Constant: 0:38 0 (const int) 0:39 move second child to first child ( temp float) 0:39 direct index ( temp float) 0:39 tfactor: direct index for structure ( temp 3-element array of float) 0:39 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 2 (const int) 0:39 direct index ( temp float) 0:39 val: direct index for structure ( temp 3-component vector of float) 0:39 direct index ( temp structure{ temp 3-component vector of float val}) 0:39 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:39 Constant: 0:39 2 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 0 (const int) 0:40 move second child to first child ( temp float) 0:40 flInFactor: direct index for structure ( temp float) 0:40 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 4.000000 0:42 Branch: Return with expression 0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) Linked tessellation control stage: Shader version: 500 vertices = 3 vertex spacing = fractional_odd_spacing triangle order = cw 0:? Sequence 0:27 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:27 Function Parameters: 0:27 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) 0:27 'cpid' ( in uint) 0:? Sequence 0:29 move second child to first child ( temp 3-component vector of float) 0:29 val: direct index for structure ( temp 3-component vector of float) 0:29 'o' ( temp structure{ temp 3-component vector of float val}) 0:29 Constant: 0:29 0 (const int) 0:29 Construct vec3 ( temp 3-component vector of float) 0:29 Convert uint to float ( temp float) 0:29 'cpid' ( in uint) 0:30 Branch: Return with expression 0:30 'o' ( temp structure{ temp 3-component vector of float val}) 0:27 Function Definition: main( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:27 move second child to first child ( temp uint) 0:? 'cpid' ( temp uint) 0:? 'cpid' ( in uint InvocationID) 0:27 move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:27 indirect index (layout( location=0) out structure{ temp 3-component vector of float val}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) 0:27 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( temp uint) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'cpid' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 0 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 0 (const uint) 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 1 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 1 (const uint) 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 2 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 2 (const uint) 0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Function Call: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 2 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 2 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelInner) 0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) 0:? Constant: 0:? 0 (const int) 0:? flInFactor: direct index for structure ( temp float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 1 (const int) 0:34 Function Definition: PCF(struct-hs_out_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:34 Function Parameters: 0:34 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:? Sequence 0:37 move second child to first child ( temp float) 0:37 direct index ( temp float) 0:37 tfactor: direct index for structure ( temp 3-element array of float) 0:37 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 0 (const int) 0:37 direct index ( temp float) 0:37 val: direct index for structure ( temp 3-component vector of float) 0:37 direct index ( temp structure{ temp 3-component vector of float val}) 0:37 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 0 (const int) 0:37 Constant: 0:37 0 (const int) 0:38 move second child to first child ( temp float) 0:38 direct index ( temp float) 0:38 tfactor: direct index for structure ( temp 3-element array of float) 0:38 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:38 Constant: 0:38 0 (const int) 0:38 Constant: 0:38 1 (const int) 0:38 direct index ( temp float) 0:38 val: direct index for structure ( temp 3-component vector of float) 0:38 direct index ( temp structure{ temp 3-component vector of float val}) 0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:38 Constant: 0:38 1 (const int) 0:38 Constant: 0:38 0 (const int) 0:38 Constant: 0:38 0 (const int) 0:39 move second child to first child ( temp float) 0:39 direct index ( temp float) 0:39 tfactor: direct index for structure ( temp 3-element array of float) 0:39 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 2 (const int) 0:39 direct index ( temp float) 0:39 val: direct index for structure ( temp 3-component vector of float) 0:39 direct index ( temp structure{ temp 3-component vector of float val}) 0:39 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:39 Constant: 0:39 2 (const int) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 0 (const int) 0:40 move second child to first child ( temp float) 0:40 flInFactor: direct index for structure ( temp float) 0:40 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 4.000000 0:42 Branch: Return with expression 0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 124 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 41 45 48 94 108 ExecutionMode 4 OutputVertices 3 ExecutionMode 4 Triangles ExecutionMode 4 SpacingFractionalOdd ExecutionMode 4 VertexOrderCw Source HLSL 500 Name 4 "main" Name 8 "hs_in_t" MemberName 8(hs_in_t) 0 "val" Name 14 "hs_out_t" MemberName 14(hs_out_t) 0 "val" Name 18 "@main(struct-hs_in_t-vf31[3];u1;" Name 16 "i" Name 17 "cpid" Name 22 "hs_pcf_t" MemberName 22(hs_pcf_t) 0 "tfactor" MemberName 22(hs_pcf_t) 1 "flInFactor" Name 25 "PCF(struct-hs_out_t-vf31[3];" Name 24 "pcf_out" Name 28 "o" Name 39 "i" Name 41 "i" Name 43 "cpid" Name 45 "cpid" Name 48 "@entryPointOutput" Name 50 "param" Name 52 "param" Name 66 "pcf_out" Name 67 "i" Name 68 "param" Name 70 "param" Name 74 "i" Name 76 "param" Name 78 "param" Name 82 "i" Name 83 "param" Name 85 "param" Name 89 "@patchConstantResult" Name 94 "@patchConstantOutput.tfactor" Name 108 "@patchConstantOutput.flInFactor" Name 112 "o" Decorate 41(i) Location 0 Decorate 45(cpid) BuiltIn InvocationId Decorate 48(@entryPointOutput) Location 0 Decorate 94(@patchConstantOutput.tfactor) Patch Decorate 94(@patchConstantOutput.tfactor) BuiltIn TessLevelOuter Decorate 108(@patchConstantOutput.flInFactor) Patch Decorate 108(@patchConstantOutput.flInFactor) BuiltIn TessLevelInner 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8(hs_in_t): TypeStruct 7(fvec3) 9: TypeInt 32 0 10: 9(int) Constant 3 11: TypeArray 8(hs_in_t) 10 12: TypePointer Function 11 13: TypePointer Function 9(int) 14(hs_out_t): TypeStruct 7(fvec3) 15: TypeFunction 14(hs_out_t) 12(ptr) 13(ptr) 20: TypeArray 14(hs_out_t) 10 21: TypeArray 6(float) 10 22(hs_pcf_t): TypeStruct 21 6(float) 23: TypeFunction 22(hs_pcf_t) 20 27: TypePointer Function 14(hs_out_t) 29: TypeInt 32 1 30: 29(int) Constant 0 34: TypePointer Function 7(fvec3) 40: TypePointer Input 11 41(i): 40(ptr) Variable Input 44: TypePointer Input 9(int) 45(cpid): 44(ptr) Variable Input 47: TypePointer Output 20 48(@entryPointOutput): 47(ptr) Variable Output 55: TypePointer Output 14(hs_out_t) 57: 9(int) Constant 2 58: 9(int) Constant 4 59: 9(int) Constant 0 61: TypeBool 65: TypePointer Function 20 73: 29(int) Constant 1 75: 9(int) Constant 1 81: 29(int) Constant 2 88: TypePointer Function 22(hs_pcf_t) 92: TypeArray 6(float) 58 93: TypePointer Output 92 94(@patchConstantOutput.tfactor): 93(ptr) Variable Output 95: TypePointer Function 6(float) 98: TypePointer Output 6(float) 106: TypeArray 6(float) 57 107: TypePointer Output 106 108(@patchConstantOutput.flInFactor): 107(ptr) Variable Output 119: 6(float) Constant 1082130432 4(main): 2 Function None 3 5: Label 39(i): 12(ptr) Variable Function 43(cpid): 13(ptr) Variable Function 50(param): 12(ptr) Variable Function 52(param): 13(ptr) Variable Function 66(pcf_out): 65(ptr) Variable Function 67(i): 12(ptr) Variable Function 68(param): 12(ptr) Variable Function 70(param): 13(ptr) Variable Function 74(i): 12(ptr) Variable Function 76(param): 12(ptr) Variable Function 78(param): 13(ptr) Variable Function 82(i): 12(ptr) Variable Function 83(param): 12(ptr) Variable Function 85(param): 13(ptr) Variable Function 89(@patchConstantResult): 88(ptr) Variable Function 42: 11 Load 41(i) Store 39(i) 42 46: 9(int) Load 45(cpid) Store 43(cpid) 46 49: 9(int) Load 45(cpid) 51: 11 Load 39(i) Store 50(param) 51 53: 9(int) Load 43(cpid) Store 52(param) 53 54:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 50(param) 52(param) 56: 55(ptr) AccessChain 48(@entryPointOutput) 49 Store 56 54 ControlBarrier 57 58 59 60: 9(int) Load 45(cpid) 62: 61(bool) IEqual 60 30 SelectionMerge 64 None BranchConditional 62 63 64 63: Label 69: 11 Load 67(i) Store 68(param) 69 Store 70(param) 59 71:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 68(param) 70(param) 72: 27(ptr) AccessChain 66(pcf_out) 30 Store 72 71 77: 11 Load 74(i) Store 76(param) 77 Store 78(param) 75 79:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 76(param) 78(param) 80: 27(ptr) AccessChain 66(pcf_out) 73 Store 80 79 84: 11 Load 82(i) Store 83(param) 84 Store 85(param) 57 86:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 83(param) 85(param) 87: 27(ptr) AccessChain 66(pcf_out) 81 Store 87 86 90: 20 Load 66(pcf_out) 91:22(hs_pcf_t) FunctionCall 25(PCF(struct-hs_out_t-vf31[3];) 90 Store 89(@patchConstantResult) 91 96: 95(ptr) AccessChain 89(@patchConstantResult) 30 30 97: 6(float) Load 96 99: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 30 Store 99 97 100: 95(ptr) AccessChain 89(@patchConstantResult) 30 73 101: 6(float) Load 100 102: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 73 Store 102 101 103: 95(ptr) AccessChain 89(@patchConstantResult) 30 81 104: 6(float) Load 103 105: 98(ptr) AccessChain 94(@patchConstantOutput.tfactor) 81 Store 105 104 109: 95(ptr) AccessChain 89(@patchConstantResult) 73 110: 6(float) Load 109 111: 98(ptr) AccessChain 108(@patchConstantOutput.flInFactor) 30 Store 111 110 Branch 64 64: Label Return FunctionEnd 18(@main(struct-hs_in_t-vf31[3];u1;):14(hs_out_t) Function None 15 16(i): 12(ptr) FunctionParameter 17(cpid): 13(ptr) FunctionParameter 19: Label 28(o): 27(ptr) Variable Function 31: 9(int) Load 17(cpid) 32: 6(float) ConvertUToF 31 33: 7(fvec3) CompositeConstruct 32 32 32 35: 34(ptr) AccessChain 28(o) 30 Store 35 33 36:14(hs_out_t) Load 28(o) ReturnValue 36 FunctionEnd 25(PCF(struct-hs_out_t-vf31[3];):22(hs_pcf_t) Function None 23 24(pcf_out): 20 FunctionParameter 26: Label 112(o): 88(ptr) Variable Function 113: 6(float) CompositeExtract 24(pcf_out) 0 0 0 114: 95(ptr) AccessChain 112(o) 30 30 Store 114 113 115: 6(float) CompositeExtract 24(pcf_out) 1 0 0 116: 95(ptr) AccessChain 112(o) 30 73 Store 116 115 117: 6(float) CompositeExtract 24(pcf_out) 2 0 0 118: 95(ptr) AccessChain 112(o) 30 81 Store 118 117 120: 95(ptr) AccessChain 112(o) 73 Store 120 119 121:22(hs_pcf_t) Load 112(o) ReturnValue 121 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out000066400000000000000000001045051360464450000237630ustar00rootroot00000000000000hlsl.hull.ctrlpt-2.tesc Shader version: 500 vertices = 3 vertex spacing = fractional_odd_spacing triangle order = cw 0:? Sequence 0:28 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:28 Function Parameters: 0:28 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) 0:28 'cpid' ( in uint) 0:? Sequence 0:29 val: direct index for structure ( temp 3-component vector of float) 0:29 direct index ( temp structure{ temp 3-component vector of float val}) 0:29 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) 0:29 Constant: 0:29 0 (const int) 0:29 Constant: 0:29 0 (const int) 0:32 move second child to first child ( temp 3-component vector of float) 0:32 val: direct index for structure ( temp 3-component vector of float) 0:32 'o' ( temp structure{ temp 3-component vector of float val}) 0:32 Constant: 0:32 0 (const int) 0:32 Construct vec3 ( temp 3-component vector of float) 0:32 Convert uint to float ( temp float) 0:32 'cpid' ( in uint) 0:33 Branch: Return with expression 0:33 'o' ( temp structure{ temp 3-component vector of float val}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:28 move second child to first child ( temp uint) 0:? 'cpid' ( temp uint) 0:? 'cpid' ( in uint InvocationID) 0:28 move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:28 indirect index (layout( location=0) out structure{ temp 3-component vector of float val}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) 0:28 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( temp uint) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'cpid' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 0 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 0 (const uint) 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 1 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 1 (const uint) 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 2 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 2 (const uint) 0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Function Call: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 2 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 2 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelInner) 0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) 0:? Constant: 0:? 0 (const int) 0:? flInFactor: direct index for structure ( temp float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 1 (const int) 0:38 Function Definition: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:38 Function Parameters: 0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:38 'pcf_in' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:? Sequence 0:41 move second child to first child ( temp float) 0:41 direct index ( temp float) 0:41 tfactor: direct index for structure ( temp 3-element array of float) 0:41 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:41 Constant: 0:41 0 (const int) 0:41 Constant: 0:41 0 (const int) 0:41 direct index ( temp float) 0:41 val: direct index for structure ( temp 3-component vector of float) 0:41 direct index ( temp structure{ temp 3-component vector of float val}) 0:41 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:41 Constant: 0:41 0 (const int) 0:41 Constant: 0:41 0 (const int) 0:41 Constant: 0:41 0 (const int) 0:42 move second child to first child ( temp float) 0:42 direct index ( temp float) 0:42 tfactor: direct index for structure ( temp 3-element array of float) 0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:42 Constant: 0:42 0 (const int) 0:42 Constant: 0:42 1 (const int) 0:42 direct index ( temp float) 0:42 val: direct index for structure ( temp 3-component vector of float) 0:42 direct index ( temp structure{ temp 3-component vector of float val}) 0:42 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:42 Constant: 0:42 1 (const int) 0:42 Constant: 0:42 0 (const int) 0:42 Constant: 0:42 0 (const int) 0:43 move second child to first child ( temp float) 0:43 direct index ( temp float) 0:43 tfactor: direct index for structure ( temp 3-element array of float) 0:43 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:43 Constant: 0:43 0 (const int) 0:43 Constant: 0:43 2 (const int) 0:43 direct index ( temp float) 0:43 val: direct index for structure ( temp 3-component vector of float) 0:43 direct index ( temp structure{ temp 3-component vector of float val}) 0:43 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:43 Constant: 0:43 2 (const int) 0:43 Constant: 0:43 0 (const int) 0:43 Constant: 0:43 0 (const int) 0:44 move second child to first child ( temp float) 0:44 flInFactor: direct index for structure ( temp float) 0:44 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:44 Constant: 0:44 1 (const int) 0:44 Constant: 0:44 4.000000 0:46 Branch: Return with expression 0:46 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) Linked tessellation control stage: Shader version: 500 vertices = 3 vertex spacing = fractional_odd_spacing triangle order = cw 0:? Sequence 0:28 Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:28 Function Parameters: 0:28 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) 0:28 'cpid' ( in uint) 0:? Sequence 0:29 val: direct index for structure ( temp 3-component vector of float) 0:29 direct index ( temp structure{ temp 3-component vector of float val}) 0:29 'i' ( in 3-element array of structure{ temp 3-component vector of float val}) 0:29 Constant: 0:29 0 (const int) 0:29 Constant: 0:29 0 (const int) 0:32 move second child to first child ( temp 3-component vector of float) 0:32 val: direct index for structure ( temp 3-component vector of float) 0:32 'o' ( temp structure{ temp 3-component vector of float val}) 0:32 Constant: 0:32 0 (const int) 0:32 Construct vec3 ( temp 3-component vector of float) 0:32 Convert uint to float ( temp float) 0:32 'cpid' ( in uint) 0:33 Branch: Return with expression 0:33 'o' ( temp structure{ temp 3-component vector of float val}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:28 move second child to first child ( temp uint) 0:? 'cpid' ( temp uint) 0:? 'cpid' ( in uint InvocationID) 0:28 move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:28 indirect index (layout( location=0) out structure{ temp 3-component vector of float val}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) 0:28 Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( temp uint) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'cpid' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 0 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 0 (const uint) 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 1 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 1 (const uint) 0:? move second child to first child ( temp structure{ temp 3-component vector of float val}) 0:? direct index ( temp structure{ temp 3-component vector of float val}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 2 (const int) 0:? Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Constant: 0:? 2 (const uint) 0:? move second child to first child ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Function Call: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? 'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' ( temp 3-element array of structure{ temp 3-component vector of float val}) 0:? Sequence 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 0 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 0 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 1 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 1 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelOuter) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? Constant: 0:? 2 (const int) 0:? direct index ( temp float) 0:? tfactor: direct index for structure ( temp 3-element array of float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 0 (const int) 0:? Constant: 0:? 2 (const int) 0:? move second child to first child ( temp float) 0:? direct index ( patch out float TessLevelInner) 0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) 0:? Constant: 0:? 0 (const int) 0:? flInFactor: direct index for structure ( temp float) 0:? '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Constant: 0:? 1 (const int) 0:38 Function Definition: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:38 Function Parameters: 0:38 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:38 'pcf_in' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:? Sequence 0:41 move second child to first child ( temp float) 0:41 direct index ( temp float) 0:41 tfactor: direct index for structure ( temp 3-element array of float) 0:41 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:41 Constant: 0:41 0 (const int) 0:41 Constant: 0:41 0 (const int) 0:41 direct index ( temp float) 0:41 val: direct index for structure ( temp 3-component vector of float) 0:41 direct index ( temp structure{ temp 3-component vector of float val}) 0:41 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:41 Constant: 0:41 0 (const int) 0:41 Constant: 0:41 0 (const int) 0:41 Constant: 0:41 0 (const int) 0:42 move second child to first child ( temp float) 0:42 direct index ( temp float) 0:42 tfactor: direct index for structure ( temp 3-element array of float) 0:42 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:42 Constant: 0:42 0 (const int) 0:42 Constant: 0:42 1 (const int) 0:42 direct index ( temp float) 0:42 val: direct index for structure ( temp 3-component vector of float) 0:42 direct index ( temp structure{ temp 3-component vector of float val}) 0:42 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:42 Constant: 0:42 1 (const int) 0:42 Constant: 0:42 0 (const int) 0:42 Constant: 0:42 0 (const int) 0:43 move second child to first child ( temp float) 0:43 direct index ( temp float) 0:43 tfactor: direct index for structure ( temp 3-element array of float) 0:43 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:43 Constant: 0:43 0 (const int) 0:43 Constant: 0:43 2 (const int) 0:43 direct index ( temp float) 0:43 val: direct index for structure ( temp 3-component vector of float) 0:43 direct index ( temp structure{ temp 3-component vector of float val}) 0:43 'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val}) 0:43 Constant: 0:43 2 (const int) 0:43 Constant: 0:43 0 (const int) 0:43 Constant: 0:43 0 (const int) 0:44 move second child to first child ( temp float) 0:44 flInFactor: direct index for structure ( temp float) 0:44 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:44 Constant: 0:44 1 (const int) 0:44 Constant: 0:44 4.000000 0:46 Branch: Return with expression 0:46 'o' ( temp structure{ temp 3-element array of float tfactor, temp float flInFactor}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val}) 0:? 'cpid' ( in uint InvocationID) 0:? '@patchConstantOutput.tfactor' ( patch out 4-element array of float TessLevelOuter) 0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 126 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 42 46 49 96 110 ExecutionMode 4 OutputVertices 3 ExecutionMode 4 Triangles ExecutionMode 4 SpacingFractionalOdd ExecutionMode 4 VertexOrderCw Source HLSL 500 Name 4 "main" Name 8 "hs_in_t" MemberName 8(hs_in_t) 0 "val" Name 14 "hs_out_t" MemberName 14(hs_out_t) 0 "val" Name 18 "@main(struct-hs_in_t-vf31[3];u1;" Name 16 "i" Name 17 "cpid" Name 22 "hs_pcf_t" MemberName 22(hs_pcf_t) 0 "tfactor" MemberName 22(hs_pcf_t) 1 "flInFactor" Name 26 "PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];" Name 24 "pcf_out" Name 25 "pcf_in" Name 31 "o" Name 40 "i" Name 42 "i" Name 44 "cpid" Name 46 "cpid" Name 49 "@entryPointOutput" Name 51 "param" Name 53 "param" Name 67 "pcf_out" Name 68 "i" Name 69 "param" Name 71 "param" Name 75 "i" Name 77 "param" Name 79 "param" Name 83 "i" Name 84 "param" Name 86 "param" Name 90 "@patchConstantResult" Name 96 "@patchConstantOutput.tfactor" Name 110 "@patchConstantOutput.flInFactor" Name 114 "o" Decorate 42(i) Location 0 Decorate 46(cpid) BuiltIn InvocationId Decorate 49(@entryPointOutput) Location 0 Decorate 96(@patchConstantOutput.tfactor) Patch Decorate 96(@patchConstantOutput.tfactor) BuiltIn TessLevelOuter Decorate 110(@patchConstantOutput.flInFactor) Patch Decorate 110(@patchConstantOutput.flInFactor) BuiltIn TessLevelInner 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8(hs_in_t): TypeStruct 7(fvec3) 9: TypeInt 32 0 10: 9(int) Constant 3 11: TypeArray 8(hs_in_t) 10 12: TypePointer Function 11 13: TypePointer Function 9(int) 14(hs_out_t): TypeStruct 7(fvec3) 15: TypeFunction 14(hs_out_t) 12(ptr) 13(ptr) 20: TypeArray 14(hs_out_t) 10 21: TypeArray 6(float) 10 22(hs_pcf_t): TypeStruct 21 6(float) 23: TypeFunction 22(hs_pcf_t) 20 11 28: TypeInt 32 1 29: 28(int) Constant 0 30: TypePointer Function 14(hs_out_t) 35: TypePointer Function 7(fvec3) 41: TypePointer Input 11 42(i): 41(ptr) Variable Input 45: TypePointer Input 9(int) 46(cpid): 45(ptr) Variable Input 48: TypePointer Output 20 49(@entryPointOutput): 48(ptr) Variable Output 56: TypePointer Output 14(hs_out_t) 58: 9(int) Constant 2 59: 9(int) Constant 4 60: 9(int) Constant 0 62: TypeBool 66: TypePointer Function 20 74: 28(int) Constant 1 76: 9(int) Constant 1 82: 28(int) Constant 2 89: TypePointer Function 22(hs_pcf_t) 94: TypeArray 6(float) 59 95: TypePointer Output 94 96(@patchConstantOutput.tfactor): 95(ptr) Variable Output 97: TypePointer Function 6(float) 100: TypePointer Output 6(float) 108: TypeArray 6(float) 58 109: TypePointer Output 108 110(@patchConstantOutput.flInFactor): 109(ptr) Variable Output 121: 6(float) Constant 1082130432 4(main): 2 Function None 3 5: Label 40(i): 12(ptr) Variable Function 44(cpid): 13(ptr) Variable Function 51(param): 12(ptr) Variable Function 53(param): 13(ptr) Variable Function 67(pcf_out): 66(ptr) Variable Function 68(i): 12(ptr) Variable Function 69(param): 12(ptr) Variable Function 71(param): 13(ptr) Variable Function 75(i): 12(ptr) Variable Function 77(param): 12(ptr) Variable Function 79(param): 13(ptr) Variable Function 83(i): 12(ptr) Variable Function 84(param): 12(ptr) Variable Function 86(param): 13(ptr) Variable Function 90(@patchConstantResult): 89(ptr) Variable Function 43: 11 Load 42(i) Store 40(i) 43 47: 9(int) Load 46(cpid) Store 44(cpid) 47 50: 9(int) Load 46(cpid) 52: 11 Load 40(i) Store 51(param) 52 54: 9(int) Load 44(cpid) Store 53(param) 54 55:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 51(param) 53(param) 57: 56(ptr) AccessChain 49(@entryPointOutput) 50 Store 57 55 ControlBarrier 58 59 60 61: 9(int) Load 46(cpid) 63: 62(bool) IEqual 61 29 SelectionMerge 65 None BranchConditional 63 64 65 64: Label 70: 11 Load 68(i) Store 69(param) 70 Store 71(param) 60 72:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 69(param) 71(param) 73: 30(ptr) AccessChain 67(pcf_out) 29 Store 73 72 78: 11 Load 75(i) Store 77(param) 78 Store 79(param) 76 80:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 77(param) 79(param) 81: 30(ptr) AccessChain 67(pcf_out) 74 Store 81 80 85: 11 Load 83(i) Store 84(param) 85 Store 86(param) 58 87:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 84(param) 86(param) 88: 30(ptr) AccessChain 67(pcf_out) 82 Store 88 87 91: 20 Load 67(pcf_out) 92: 11 Load 40(i) 93:22(hs_pcf_t) FunctionCall 26(PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];) 91 92 Store 90(@patchConstantResult) 93 98: 97(ptr) AccessChain 90(@patchConstantResult) 29 29 99: 6(float) Load 98 101: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 29 Store 101 99 102: 97(ptr) AccessChain 90(@patchConstantResult) 29 74 103: 6(float) Load 102 104: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 74 Store 104 103 105: 97(ptr) AccessChain 90(@patchConstantResult) 29 82 106: 6(float) Load 105 107: 100(ptr) AccessChain 96(@patchConstantOutput.tfactor) 82 Store 107 106 111: 97(ptr) AccessChain 90(@patchConstantResult) 74 112: 6(float) Load 111 113: 100(ptr) AccessChain 110(@patchConstantOutput.flInFactor) 29 Store 113 112 Branch 65 65: Label Return FunctionEnd 18(@main(struct-hs_in_t-vf31[3];u1;):14(hs_out_t) Function None 15 16(i): 12(ptr) FunctionParameter 17(cpid): 13(ptr) FunctionParameter 19: Label 31(o): 30(ptr) Variable Function 32: 9(int) Load 17(cpid) 33: 6(float) ConvertUToF 32 34: 7(fvec3) CompositeConstruct 33 33 33 36: 35(ptr) AccessChain 31(o) 29 Store 36 34 37:14(hs_out_t) Load 31(o) ReturnValue 37 FunctionEnd 26(PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];):22(hs_pcf_t) Function None 23 24(pcf_out): 20 FunctionParameter 25(pcf_in): 11 FunctionParameter 27: Label 114(o): 89(ptr) Variable Function 115: 6(float) CompositeExtract 24(pcf_out) 0 0 0 116: 97(ptr) AccessChain 114(o) 29 29 Store 116 115 117: 6(float) CompositeExtract 24(pcf_out) 1 0 0 118: 97(ptr) AccessChain 114(o) 29 74 Store 118 117 119: 6(float) CompositeExtract 24(pcf_out) 2 0 0 120: 97(ptr) AccessChain 114(o) 29 82 Store 120 119 122: 97(ptr) AccessChain 114(o) 74 Store 122 121 123:22(hs_pcf_t) Load 114(o) ReturnValue 123 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.hull.void.tesc.out000066400000000000000000000244611360464450000232570ustar00rootroot00000000000000hlsl.hull.void.tesc Shader version: 500 vertices = 3 vertex spacing = fractional_even_spacing triangle order = ccw 0:? Sequence 0:26 Function Definition: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Parameters: 0:26 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) 0:28 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:29 Branch: Return with expression 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Definition: main( ( temp void) 0:26 Function Parameters: 0:? Sequence 0:26 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint}) 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) 0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) 0:26 Function Call: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'InvocationId' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? Function Call: PCF( ( temp void) 0:33 Function Definition: PCF( ( temp void) 0:33 Function Parameters: 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) Linked tessellation control stage: Shader version: 500 vertices = 3 vertex spacing = fractional_even_spacing triangle order = ccw 0:? Sequence 0:26 Function Definition: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Parameters: 0:26 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 cpoint: direct index for structure ( temp 3-component vector of float) 0:28 direct index ( temp structure{ temp 3-component vector of float cpoint}) 0:28 'ip' ( in 3-element array of structure{ temp 3-component vector of float cpoint}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 0 (const int) 0:29 Branch: Return with expression 0:29 'output' ( temp structure{ temp 3-component vector of float cpoint}) 0:26 Function Definition: main( ( temp void) 0:26 Function Parameters: 0:? Sequence 0:26 move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint}) 0:26 move second child to first child ( temp structure{ temp 3-component vector of float cpoint}) 0:26 indirect index (layout( location=0) out structure{ temp 3-component vector of float cpoint}) 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) 0:26 Function Call: @main(struct-VS_OUT-vf31[3]; ( temp structure{ temp 3-component vector of float cpoint}) 0:? 'ip' ( temp 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? Barrier ( temp void) 0:? Test condition and select ( temp void) 0:? Condition 0:? Compare Equal ( temp bool) 0:? 'InvocationId' ( in uint InvocationID) 0:? Constant: 0:? 0 (const int) 0:? true case 0:? Sequence 0:? Function Call: PCF( ( temp void) 0:33 Function Definition: PCF( ( temp void) 0:33 Function Parameters: 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'ip' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float cpoint}) 0:? 'InvocationId' ( in uint InvocationID) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 55 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 33 37 39 ExecutionMode 4 OutputVertices 3 ExecutionMode 4 Triangles ExecutionMode 4 SpacingFractionalEven ExecutionMode 4 VertexOrderCcw Source HLSL 500 Name 4 "main" Name 8 "VS_OUT" MemberName 8(VS_OUT) 0 "cpoint" Name 13 "HS_OUT" MemberName 13(HS_OUT) 0 "cpoint" Name 16 "@main(struct-VS_OUT-vf31[3];" Name 15 "ip" Name 18 "PCF(" Name 21 "output" Name 31 "ip" Name 33 "ip" Name 37 "@entryPointOutput" Name 39 "InvocationId" Name 41 "param" Decorate 33(ip) Location 0 Decorate 37(@entryPointOutput) Location 0 Decorate 39(InvocationId) BuiltIn InvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8(VS_OUT): TypeStruct 7(fvec3) 9: TypeInt 32 0 10: 9(int) Constant 3 11: TypeArray 8(VS_OUT) 10 12: TypePointer Function 11 13(HS_OUT): TypeStruct 7(fvec3) 14: TypeFunction 13(HS_OUT) 12(ptr) 20: TypePointer Function 13(HS_OUT) 22: TypeInt 32 1 23: 22(int) Constant 0 24: TypePointer Function 7(fvec3) 32: TypePointer Input 11 33(ip): 32(ptr) Variable Input 35: TypeArray 13(HS_OUT) 10 36: TypePointer Output 35 37(@entryPointOutput): 36(ptr) Variable Output 38: TypePointer Input 9(int) 39(InvocationId): 38(ptr) Variable Input 44: TypePointer Output 13(HS_OUT) 46: 9(int) Constant 2 47: 9(int) Constant 4 48: 9(int) Constant 0 50: TypeBool 4(main): 2 Function None 3 5: Label 31(ip): 12(ptr) Variable Function 41(param): 12(ptr) Variable Function 34: 11 Load 33(ip) Store 31(ip) 34 40: 9(int) Load 39(InvocationId) 42: 11 Load 31(ip) Store 41(param) 42 43: 13(HS_OUT) FunctionCall 16(@main(struct-VS_OUT-vf31[3];) 41(param) 45: 44(ptr) AccessChain 37(@entryPointOutput) 40 Store 45 43 ControlBarrier 46 47 48 49: 9(int) Load 39(InvocationId) 51: 50(bool) IEqual 49 23 SelectionMerge 53 None BranchConditional 51 52 53 52: Label 54: 2 FunctionCall 18(PCF() Branch 53 53: Label Return FunctionEnd 16(@main(struct-VS_OUT-vf31[3];): 13(HS_OUT) Function None 14 15(ip): 12(ptr) FunctionParameter 17: Label 21(output): 20(ptr) Variable Function 25: 24(ptr) AccessChain 15(ip) 23 23 26: 7(fvec3) Load 25 27: 24(ptr) AccessChain 21(output) 23 Store 27 26 28: 13(HS_OUT) Load 21(output) ReturnValue 28 FunctionEnd 18(PCF(): 2 Function None 3 19: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.identifier.sample.frag.out000066400000000000000000000126111360464450000247300ustar00rootroot00000000000000hlsl.identifier.sample.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:9 Function Definition: sample(i1; ( temp int) 0:9 Function Parameters: 0:9 'x' ( in int) 0:? Sequence 0:9 Branch: Return with expression 0:9 'x' ( in int) 0:12 Function Definition: @main( ( temp 4-component vector of float) 0:12 Function Parameters: 0:? Sequence 0:15 Sequence 0:15 move second child to first child ( temp 4-component vector of float) 0:15 'sample' ( temp 4-component vector of float) 0:? Constant: 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:17 Branch: Return with expression 0:17 vector swizzle ( temp 4-component vector of float) 0:17 'sample' ( temp 4-component vector of float) 0:17 Sequence 0:17 Constant: 0:17 0 (const int) 0:17 Constant: 0:17 1 (const int) 0:17 Constant: 0:17 2 (const int) 0:17 Constant: 0:17 3 (const int) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:12 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:9 Function Definition: sample(i1; ( temp int) 0:9 Function Parameters: 0:9 'x' ( in int) 0:? Sequence 0:9 Branch: Return with expression 0:9 'x' ( in int) 0:12 Function Definition: @main( ( temp 4-component vector of float) 0:12 Function Parameters: 0:? Sequence 0:15 Sequence 0:15 move second child to first child ( temp 4-component vector of float) 0:15 'sample' ( temp 4-component vector of float) 0:? Constant: 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:17 Branch: Return with expression 0:17 vector swizzle ( temp 4-component vector of float) 0:17 'sample' ( temp 4-component vector of float) 0:17 Sequence 0:17 Constant: 0:17 0 (const int) 0:17 Constant: 0:17 1 (const int) 0:17 Constant: 0:17 2 (const int) 0:17 Constant: 0:17 3 (const int) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:12 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.if.frag.out000066400000000000000000000441371360464450000217340ustar00rootroot00000000000000hlsl.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): 80008 // 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) FOrdNotEqual 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 glslang-8.13.3559/Test/baseResults/hlsl.imagefetch-subvec4.comp.out000066400000000000000000000140601360464450000250120ustar00rootroot00000000000000hlsl.imagefetch-subvec4.comp Shader version: 500 local_size = (8, 8, 8) 0:? Sequence 0:6 Function Definition: @main(vu3; ( temp void) 0:6 Function Parameters: 0:6 'tid' ( in 3-component vector of uint) 0:? Sequence 0:7 Sequence 0:7 move second child to first child ( temp uint) 0:7 'storeTemp' ( temp uint) 0:7 Convert int to uint ( temp uint) 0:7 textureFetch ( temp int) 0:7 'IN' (layout( binding=0) uniform itexture3D) 0:7 'tid' ( in 3-component vector of uint) 0:7 Constant: 0:7 0 (const int) 0:7 imageStore ( temp void) 0:7 'OUT' (layout( binding=1 r32ui) uniform uimage3D) 0:7 'tid' ( in 3-component vector of uint) 0:7 'storeTemp' ( temp uint) 0:7 'storeTemp' ( temp uint) 0:6 Function Definition: main( ( temp void) 0:6 Function Parameters: 0:? Sequence 0:6 move second child to first child ( temp 3-component vector of uint) 0:? 'tid' ( temp 3-component vector of uint) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) 0:6 Function Call: @main(vu3; ( temp void) 0:? 'tid' ( temp 3-component vector of uint) 0:? Linker Objects 0:? 'IN' (layout( binding=0) uniform itexture3D) 0:? 'OUT' (layout( binding=1 r32ui) uniform uimage3D) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) Linked compute stage: Shader version: 500 local_size = (8, 8, 8) 0:? Sequence 0:6 Function Definition: @main(vu3; ( temp void) 0:6 Function Parameters: 0:6 'tid' ( in 3-component vector of uint) 0:? Sequence 0:7 Sequence 0:7 move second child to first child ( temp uint) 0:7 'storeTemp' ( temp uint) 0:7 Convert int to uint ( temp uint) 0:7 textureFetch ( temp int) 0:7 'IN' (layout( binding=0) uniform itexture3D) 0:7 'tid' ( in 3-component vector of uint) 0:7 Constant: 0:7 0 (const int) 0:7 imageStore ( temp void) 0:7 'OUT' (layout( binding=1 r32ui) uniform uimage3D) 0:7 'tid' ( in 3-component vector of uint) 0:7 'storeTemp' ( temp uint) 0:7 'storeTemp' ( temp uint) 0:6 Function Definition: main( ( temp void) 0:6 Function Parameters: 0:? Sequence 0:6 move second child to first child ( temp 3-component vector of uint) 0:? 'tid' ( temp 3-component vector of uint) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) 0:6 Function Call: @main(vu3; ( temp void) 0:? 'tid' ( temp 3-component vector of uint) 0:? Linker Objects 0:? 'IN' (layout( binding=0) uniform itexture3D) 0:? 'OUT' (layout( binding=1 r32ui) uniform uimage3D) 0:? 'tid' ( in 3-component vector of uint GlobalInvocationID) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" 34 ExecutionMode 4 LocalSize 8 8 8 Source HLSL 500 Name 4 "main" Name 11 "@main(vu3;" Name 10 "tid" Name 14 "storeTemp" Name 18 "IN" Name 28 "OUT" Name 32 "tid" Name 34 "tid" Name 36 "param" Decorate 18(IN) DescriptorSet 0 Decorate 18(IN) Binding 0 Decorate 28(OUT) DescriptorSet 0 Decorate 28(OUT) Binding 1 Decorate 34(tid) BuiltIn GlobalInvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypeVector 6(int) 3 8: TypePointer Function 7(ivec3) 9: TypeFunction 2 8(ptr) 13: TypePointer Function 6(int) 15: TypeInt 32 1 16: TypeImage 15(int) 3D sampled format:Unknown 17: TypePointer UniformConstant 16 18(IN): 17(ptr) Variable UniformConstant 21: 15(int) Constant 0 22: TypeVector 15(int) 4 26: TypeImage 6(int) 3D nonsampled format:R32ui 27: TypePointer UniformConstant 26 28(OUT): 27(ptr) Variable UniformConstant 33: TypePointer Input 7(ivec3) 34(tid): 33(ptr) Variable Input 4(main): 2 Function None 3 5: Label 32(tid): 8(ptr) Variable Function 36(param): 8(ptr) Variable Function 35: 7(ivec3) Load 34(tid) Store 32(tid) 35 37: 7(ivec3) Load 32(tid) Store 36(param) 37 38: 2 FunctionCall 11(@main(vu3;) 36(param) Return FunctionEnd 11(@main(vu3;): 2 Function None 9 10(tid): 8(ptr) FunctionParameter 12: Label 14(storeTemp): 13(ptr) Variable Function 19: 16 Load 18(IN) 20: 7(ivec3) Load 10(tid) 23: 22(ivec4) ImageFetch 19 20 Lod 21 24: 15(int) CompositeExtract 23 0 25: 6(int) Bitcast 24 Store 14(storeTemp) 25 29: 26 Load 28(OUT) 30: 7(ivec3) Load 10(tid) 31: 6(int) Load 14(storeTemp) ImageWrite 29 30 31 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.implicitBool.frag.out000066400000000000000000000625561360464450000237710ustar00rootroot00000000000000hlsl.implicitBool.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: @main( ( temp 4-component vector of float) 0:7 Function Parameters: 0:? Sequence 0:8 Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:8 'a' ( temp 4-component vector of float) 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:9 Test condition and select ( temp void) 0:9 Condition 0:9 Convert int to bool ( temp bool) 0:9 condi: direct index for structure ( uniform int) 0:9 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:9 Constant: 0:9 1 (const uint) 0:9 true case 0:10 Branch: Return with expression 0:10 add ( temp 4-component vector of float) 0:10 'a' ( temp 4-component vector of float) 0:10 Constant: 0:10 1.000000 0:11 Test condition and select ( temp void) 0:11 Condition 0:11 Convert float to bool ( temp bool) 0:11 condf: direct index for structure ( uniform float) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:11 Constant: 0:11 0 (const uint) 0:11 true case 0:12 Branch: Return with expression 0:12 add ( temp 4-component vector of float) 0:12 'a' ( temp 4-component vector of float) 0:12 Constant: 0:12 2.000000 0:13 Test condition and select ( temp void) 0:13 Condition 0:13 Convert float to bool ( temp bool) 0:13 condf1: direct index for structure ( uniform 1-component vector of float) 0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:13 Constant: 0:13 2 (const uint) 0:13 true case 0:14 Branch: Return with expression 0:14 add ( temp 4-component vector of float) 0:14 'a' ( temp 4-component vector of float) 0:14 Constant: 0:14 3.000000 0:15 Test condition and select ( temp void) 0:15 Condition 0:15 Convert int to bool ( temp bool) 0:15 condi1: direct index for structure ( uniform 1-component vector of int) 0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:15 Constant: 0:15 3 (const uint) 0:15 true case 0:16 Branch: Return with expression 0:16 add ( temp 4-component vector of float) 0:16 'a' ( temp 4-component vector of float) 0:16 Constant: 0:16 4.000000 0:17 Test condition and select ( temp void) 0:17 Condition 0:17 logical-or ( temp bool) 0:17 logical-and ( temp bool) 0:17 Convert int to bool ( temp bool) 0:17 condi: direct index for structure ( uniform int) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:17 Constant: 0:17 1 (const uint) 0:17 Convert float to bool ( temp bool) 0:17 condf: direct index for structure ( uniform float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:17 Constant: 0:17 0 (const uint) 0:17 Convert float to bool ( temp bool) 0:17 condf1: direct index for structure ( uniform 1-component vector of float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:17 Constant: 0:17 2 (const uint) 0:17 true case 0:18 Branch: Return with expression 0:18 add ( temp 4-component vector of float) 0:18 'a' ( temp 4-component vector of float) 0:18 Constant: 0:18 5.000000 0:20 Sequence 0:20 move second child to first child ( temp float) 0:20 'f' ( temp float) 0:20 condf: direct index for structure ( uniform float) 0:20 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:20 Constant: 0:20 0 (const uint) 0:21 Loop with condition tested first 0:21 Loop Condition 0:21 Convert float to bool ( temp bool) 0:21 'f' ( temp float) 0:21 Loop Body 0:? Sequence 0:21 Pre-Decrement ( temp float) 0:21 'f' ( temp float) 0:23 Sequence 0:23 move second child to first child ( temp int) 0:23 'i' ( temp int) 0:23 condi: direct index for structure ( uniform int) 0:23 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:23 Constant: 0:23 1 (const uint) 0:24 Loop with condition not tested first 0:24 Loop Condition 0:24 Convert int to bool ( temp bool) 0:24 'i' ( temp int) 0:24 Loop Body 0:? Sequence 0:24 Pre-Decrement ( temp int) 0:24 'i' ( temp int) 0:? Sequence 0:26 Loop with condition tested first 0:26 Loop Condition 0:26 Convert int to bool ( temp bool) 0:26 'i' ( temp int) 0:26 Loop Body 0:? Sequence 0:26 Pre-Decrement ( temp int) 0:26 'i' ( temp int) 0:28 Sequence 0:28 move second child to first child ( temp float) 0:28 'g' ( temp float) 0:28 Test condition and select ( temp float): no shortcircuit 0:28 Condition 0:28 Convert float to bool ( temp bool) 0:28 condf: direct index for structure ( uniform float) 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:28 Constant: 0:28 0 (const uint) 0:28 true case 0:28 Constant: 0:28 7.000000 0:28 false case 0:28 Constant: 0:28 8.000000 0:29 add second child into first child ( temp 4-component vector of float) 0:29 'a' ( temp 4-component vector of float) 0:29 'g' ( temp float) 0:31 Branch: Return with expression 0:31 subtract ( temp 4-component vector of float) 0:31 'a' ( temp 4-component vector of float) 0:31 Constant: 0:31 1.000000 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: @main( ( temp 4-component vector of float) 0:7 Function Parameters: 0:? Sequence 0:8 Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:8 'a' ( temp 4-component vector of float) 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:9 Test condition and select ( temp void) 0:9 Condition 0:9 Convert int to bool ( temp bool) 0:9 condi: direct index for structure ( uniform int) 0:9 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:9 Constant: 0:9 1 (const uint) 0:9 true case 0:10 Branch: Return with expression 0:10 add ( temp 4-component vector of float) 0:10 'a' ( temp 4-component vector of float) 0:10 Constant: 0:10 1.000000 0:11 Test condition and select ( temp void) 0:11 Condition 0:11 Convert float to bool ( temp bool) 0:11 condf: direct index for structure ( uniform float) 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:11 Constant: 0:11 0 (const uint) 0:11 true case 0:12 Branch: Return with expression 0:12 add ( temp 4-component vector of float) 0:12 'a' ( temp 4-component vector of float) 0:12 Constant: 0:12 2.000000 0:13 Test condition and select ( temp void) 0:13 Condition 0:13 Convert float to bool ( temp bool) 0:13 condf1: direct index for structure ( uniform 1-component vector of float) 0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:13 Constant: 0:13 2 (const uint) 0:13 true case 0:14 Branch: Return with expression 0:14 add ( temp 4-component vector of float) 0:14 'a' ( temp 4-component vector of float) 0:14 Constant: 0:14 3.000000 0:15 Test condition and select ( temp void) 0:15 Condition 0:15 Convert int to bool ( temp bool) 0:15 condi1: direct index for structure ( uniform 1-component vector of int) 0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:15 Constant: 0:15 3 (const uint) 0:15 true case 0:16 Branch: Return with expression 0:16 add ( temp 4-component vector of float) 0:16 'a' ( temp 4-component vector of float) 0:16 Constant: 0:16 4.000000 0:17 Test condition and select ( temp void) 0:17 Condition 0:17 logical-or ( temp bool) 0:17 logical-and ( temp bool) 0:17 Convert int to bool ( temp bool) 0:17 condi: direct index for structure ( uniform int) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:17 Constant: 0:17 1 (const uint) 0:17 Convert float to bool ( temp bool) 0:17 condf: direct index for structure ( uniform float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:17 Constant: 0:17 0 (const uint) 0:17 Convert float to bool ( temp bool) 0:17 condf1: direct index for structure ( uniform 1-component vector of float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:17 Constant: 0:17 2 (const uint) 0:17 true case 0:18 Branch: Return with expression 0:18 add ( temp 4-component vector of float) 0:18 'a' ( temp 4-component vector of float) 0:18 Constant: 0:18 5.000000 0:20 Sequence 0:20 move second child to first child ( temp float) 0:20 'f' ( temp float) 0:20 condf: direct index for structure ( uniform float) 0:20 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:20 Constant: 0:20 0 (const uint) 0:21 Loop with condition tested first 0:21 Loop Condition 0:21 Convert float to bool ( temp bool) 0:21 'f' ( temp float) 0:21 Loop Body 0:? Sequence 0:21 Pre-Decrement ( temp float) 0:21 'f' ( temp float) 0:23 Sequence 0:23 move second child to first child ( temp int) 0:23 'i' ( temp int) 0:23 condi: direct index for structure ( uniform int) 0:23 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:23 Constant: 0:23 1 (const uint) 0:24 Loop with condition not tested first 0:24 Loop Condition 0:24 Convert int to bool ( temp bool) 0:24 'i' ( temp int) 0:24 Loop Body 0:? Sequence 0:24 Pre-Decrement ( temp int) 0:24 'i' ( temp int) 0:? Sequence 0:26 Loop with condition tested first 0:26 Loop Condition 0:26 Convert int to bool ( temp bool) 0:26 'i' ( temp int) 0:26 Loop Body 0:? Sequence 0:26 Pre-Decrement ( temp int) 0:26 'i' ( temp int) 0:28 Sequence 0:28 move second child to first child ( temp float) 0:28 'g' ( temp float) 0:28 Test condition and select ( temp float): no shortcircuit 0:28 Condition 0:28 Convert float to bool ( temp bool) 0:28 condf: direct index for structure ( uniform float) 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:28 Constant: 0:28 0 (const uint) 0:28 true case 0:28 Constant: 0:28 7.000000 0:28 false case 0:28 Constant: 0:28 8.000000 0:29 add second child into first child ( temp 4-component vector of float) 0:29 'a' ( temp 4-component vector of float) 0:29 'g' ( temp float) 0:31 Branch: Return with expression 0:31 subtract ( temp 4-component vector of float) 0:31 'a' ( temp 4-component vector of float) 0:31 Constant: 0:31 1.000000 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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) FOrdNotEqual 37 38 SelectionMerge 41 None BranchConditional 39 40 41 40: Label 42: 7(fvec4) Load 12(a) 43: 7(fvec4) CompositeConstruct 13 13 13 13 44: 7(fvec4) FAdd 42 43 ReturnValue 44 41: Label 47: 35(ptr) AccessChain 18 46 48: 6(float) Load 47 49: 23(bool) FOrdNotEqual 48 38 SelectionMerge 51 None BranchConditional 49 50 51 50: Label 52: 7(fvec4) Load 12(a) 54: 7(fvec4) CompositeConstruct 53 53 53 53 55: 7(fvec4) FAdd 52 54 ReturnValue 55 51: Label 58: 20(ptr) AccessChain 18 57 59: 15(int) Load 58 60: 23(bool) INotEqual 59 25 SelectionMerge 62 None BranchConditional 60 61 62 61: Label 63: 7(fvec4) Load 12(a) 65: 7(fvec4) CompositeConstruct 64 64 64 64 66: 7(fvec4) FAdd 63 65 ReturnValue 66 62: Label 68: 20(ptr) AccessChain 18 19 69: 15(int) Load 68 70: 23(bool) INotEqual 69 25 71: 35(ptr) AccessChain 18 34 72: 6(float) Load 71 73: 23(bool) FOrdNotEqual 72 38 74: 23(bool) LogicalAnd 70 73 75: 35(ptr) AccessChain 18 46 76: 6(float) Load 75 77: 23(bool) FOrdNotEqual 76 38 78: 23(bool) LogicalOr 74 77 SelectionMerge 80 None BranchConditional 78 79 80 79: Label 81: 7(fvec4) Load 12(a) 83: 7(fvec4) CompositeConstruct 82 82 82 82 84: 7(fvec4) FAdd 81 83 ReturnValue 84 80: Label 88: 35(ptr) AccessChain 18 34 89: 6(float) Load 88 Store 87(f) 89 Branch 90 90: Label LoopMerge 92 93 None Branch 94 94: Label 95: 6(float) Load 87(f) 96: 23(bool) FOrdNotEqual 95 38 BranchConditional 96 91 92 91: Label 97: 6(float) Load 87(f) 98: 6(float) FSub 97 30 Store 87(f) 98 Branch 93 93: Label Branch 90 92: Label 101: 20(ptr) AccessChain 18 19 102: 15(int) Load 101 Store 100(i) 102 Branch 103 103: Label LoopMerge 105 106 None Branch 104 104: Label 107: 15(int) Load 100(i) 108: 15(int) ISub 107 19 Store 100(i) 108 Branch 106 106: Label 109: 15(int) Load 100(i) 110: 23(bool) INotEqual 109 25 BranchConditional 110 103 105 105: Label Branch 111 111: Label LoopMerge 113 114 None Branch 115 115: Label 116: 15(int) Load 100(i) 117: 23(bool) INotEqual 116 25 BranchConditional 117 112 113 112: Label 118: 15(int) Load 100(i) 119: 15(int) ISub 118 19 Store 100(i) 119 Branch 114 114: Label Branch 111 113: Label 121: 35(ptr) AccessChain 18 34 122: 6(float) Load 121 123: 23(bool) FOrdNotEqual 122 38 126: 6(float) Select 123 124 125 Store 120(g) 126 127: 6(float) Load 120(g) 128: 7(fvec4) Load 12(a) 129: 7(fvec4) CompositeConstruct 127 127 127 127 130: 7(fvec4) FAdd 128 129 Store 12(a) 130 131: 7(fvec4) Load 12(a) 132: 7(fvec4) CompositeConstruct 30 30 30 30 133: 7(fvec4) FSub 131 132 ReturnValue 133 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.include.vert.out000066400000000000000000000071751360464450000230230ustar00rootroot00000000000000../Test/hlsl.include.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.includeNegative.vert.out000066400000000000000000000006411360464450000244750ustar00rootroot00000000000000hlsl.includeNegative.vert ERROR: ./foo.h:1: '#error' : should not be included ERROR: ./inc2/../foo.h:1: '#error' : should not be included ERROR: ./parentBad:3: '#error' : bad parent ERROR: hlsl.includeNegative.vert:7: '#error' : in main hlsl.includeNegative.vert(8): error at column 0, HLSL parsing failed. ERROR: 5 compilation errors. No code generated. SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/hlsl.inf.vert.out000066400000000000000000000146211360464450000221460ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.init.frag.out000066400000000000000000000567271360464450000223110ustar00rootroot00000000000000hlsl.init.frag WARNING: 0:40: 'typedef' : struct-member initializers ignored WARNING: 0:40: 'typedef' : struct-member initializers ignored Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence 0:1 move second child to first child ( temp 4-component vector of float) 0:1 'a1' ( global 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 0.500000 0:? 0.000000 0:? 1.000000 0:1 move second child to first child ( temp 4-component vector of float) 0:1 'b1' ( global 4-component vector of float) 0:? Constant: 0:? 2.000000 0:? 2.500000 0:? 2.100000 0:? 2.200000 0:2 Sequence 0:2 move second child to first child ( temp 4-component vector of float) 0:2 'a1i' ( global 4-component vector of float) 0:2 Constant: 0:2 1.000000 0:2 0.500000 0:2 0.000000 0:2 1.000000 0:2 move second child to first child ( temp 4-component vector of float) 0:2 'b1i' ( global 4-component vector of float) 0:2 Constant: 0:2 2.000000 0:2 2.500000 0:2 2.100000 0:2 2.200000 0:3 Sequence 0:3 move second child to first child ( temp float) 0:3 'a2' ( global float) 0:3 Constant: 0:3 0.200000 0:4 Sequence 0:4 move second child to first child ( temp float) 0:4 'b3' ( global float) 0:4 Constant: 0:4 0.300000 0:5 Sequence 0:5 move second child to first child ( temp float) 0:5 'b4' ( global float) 0:5 Constant: 0:5 0.400000 0:6 Sequence 0:6 move second child to first child ( temp float) 0:6 'a5' ( global float) 0:6 Constant: 0:6 0.500000 0:6 move second child to first child ( temp float) 0:6 'c5' ( global float) 0:6 Constant: 0:6 1.500000 0:9 Sequence 0:9 move second child to first child ( temp structure{ temp int f}) 0:9 'single1' ( global structure{ temp int f}) 0:9 Constant: 0:9 10 (const int) 0:12 Sequence 0:12 move second child to first child ( temp structure{ temp 2-component vector of uint v}) 0:12 'single2' ( global structure{ temp 2-component vector of uint v}) 0:12 Constant: 0:12 1 (const uint) 0:12 2 (const uint) 0:15 Sequence 0:15 move second child to first child ( temp structure{ temp structure{ temp int f} s1}) 0:15 'single3' ( global structure{ temp structure{ temp int f} s1}) 0:15 Constant: 0:15 3 (const int) 0:18 Sequence 0:18 move second child to first child ( temp structure{ temp structure{ temp 2-component vector of uint v} s1}) 0:18 'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1}) 0:18 Constant: 0:18 4 (const uint) 0:18 5 (const uint) 0:21 Function Definition: @ShaderFunction(vf4; ( temp 4-component vector of float) 0:21 Function Parameters: 0:21 'input' ( in 4-component vector of float) 0:? Sequence 0:22 Sequence 0:22 move second child to first child ( temp 4-component vector of float) 0:22 'a2' ( temp 4-component vector of float) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:32 Sequence 0:32 move second child to first child ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:32 's2i' ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:32 Construct structure ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:32 Constant: 0:32 9 (const int) 0:32 'a5' ( global float) 0:32 Construct structure ( temp structure{ temp float f, temp int i}) 0:32 Comma ( temp float) 0:32 'a3' ( global float) 0:32 'a4' ( global float) 0:32 Constant: 0:32 12 (const int) 0:32 move second child to first child ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:32 's2' ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:? Construct structure ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:32 Constant: 0:32 9 (const int) 0:32 'a5' ( global float) 0:? Construct structure ( temp structure{ temp float f, temp int i}) 0:32 Comma ( temp float) 0:32 'a3' ( global float) 0:32 'a4' ( global float) 0:32 Constant: 0:32 12 (const int) 0:33 Sequence 0:33 move second child to first child ( temp float) 0:33 'a8' ( temp float) 0:33 Comma ( temp float) 0:33 'a2' ( temp 4-component vector of float) 0:33 'b2' ( global float) 0:33 move second child to first child ( temp float) 0:33 'a9' ( temp float) 0:33 'a5' ( global float) 0:35 Branch: Return with expression 0:35 component-wise multiply ( temp 4-component vector of float) 0:35 'input' ( in 4-component vector of float) 0:35 'a1' ( global 4-component vector of float) 0:21 Function Definition: ShaderFunction( ( temp void) 0:21 Function Parameters: 0:? Sequence 0:21 move second child to first child ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) 0:21 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:21 Function Call: @ShaderFunction(vf4; ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? Linker Objects 0:? 'a1' ( global 4-component vector of float) 0:? 'b1' ( global 4-component vector of float) 0:? 'a1i' ( global 4-component vector of float) 0:? 'b1i' ( global 4-component vector of float) 0:? 'a2' ( global float) 0:? 'b2' ( global float) 0:? 'a3' ( global float) 0:? 'b3' ( global float) 0:? 'a4' ( global float) 0:? 'b4' ( global float) 0:? 'c4' ( global float) 0:? 'a5' ( global float) 0:? 'b5' ( global float) 0:? 'c5' ( global float) 0:? 'single1' ( global structure{ temp int f}) 0:? 'single2' ( global structure{ temp 2-component vector of uint v}) 0:? 'single3' ( global structure{ temp structure{ temp int f} s1}) 0:? 'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) 0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float a, layout( row_major std140) uniform float b, layout( row_major std140) uniform float c}) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence 0:1 move second child to first child ( temp 4-component vector of float) 0:1 'a1' ( global 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 0.500000 0:? 0.000000 0:? 1.000000 0:1 move second child to first child ( temp 4-component vector of float) 0:1 'b1' ( global 4-component vector of float) 0:? Constant: 0:? 2.000000 0:? 2.500000 0:? 2.100000 0:? 2.200000 0:2 Sequence 0:2 move second child to first child ( temp 4-component vector of float) 0:2 'a1i' ( global 4-component vector of float) 0:2 Constant: 0:2 1.000000 0:2 0.500000 0:2 0.000000 0:2 1.000000 0:2 move second child to first child ( temp 4-component vector of float) 0:2 'b1i' ( global 4-component vector of float) 0:2 Constant: 0:2 2.000000 0:2 2.500000 0:2 2.100000 0:2 2.200000 0:3 Sequence 0:3 move second child to first child ( temp float) 0:3 'a2' ( global float) 0:3 Constant: 0:3 0.200000 0:4 Sequence 0:4 move second child to first child ( temp float) 0:4 'b3' ( global float) 0:4 Constant: 0:4 0.300000 0:5 Sequence 0:5 move second child to first child ( temp float) 0:5 'b4' ( global float) 0:5 Constant: 0:5 0.400000 0:6 Sequence 0:6 move second child to first child ( temp float) 0:6 'a5' ( global float) 0:6 Constant: 0:6 0.500000 0:6 move second child to first child ( temp float) 0:6 'c5' ( global float) 0:6 Constant: 0:6 1.500000 0:9 Sequence 0:9 move second child to first child ( temp structure{ temp int f}) 0:9 'single1' ( global structure{ temp int f}) 0:9 Constant: 0:9 10 (const int) 0:12 Sequence 0:12 move second child to first child ( temp structure{ temp 2-component vector of uint v}) 0:12 'single2' ( global structure{ temp 2-component vector of uint v}) 0:12 Constant: 0:12 1 (const uint) 0:12 2 (const uint) 0:15 Sequence 0:15 move second child to first child ( temp structure{ temp structure{ temp int f} s1}) 0:15 'single3' ( global structure{ temp structure{ temp int f} s1}) 0:15 Constant: 0:15 3 (const int) 0:18 Sequence 0:18 move second child to first child ( temp structure{ temp structure{ temp 2-component vector of uint v} s1}) 0:18 'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1}) 0:18 Constant: 0:18 4 (const uint) 0:18 5 (const uint) 0:21 Function Definition: @ShaderFunction(vf4; ( temp 4-component vector of float) 0:21 Function Parameters: 0:21 'input' ( in 4-component vector of float) 0:? Sequence 0:22 Sequence 0:22 move second child to first child ( temp 4-component vector of float) 0:22 'a2' ( temp 4-component vector of float) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:32 Sequence 0:32 move second child to first child ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:32 's2i' ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:32 Construct structure ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:32 Constant: 0:32 9 (const int) 0:32 'a5' ( global float) 0:32 Construct structure ( temp structure{ temp float f, temp int i}) 0:32 Comma ( temp float) 0:32 'a3' ( global float) 0:32 'a4' ( global float) 0:32 Constant: 0:32 12 (const int) 0:32 move second child to first child ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:32 's2' ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:? Construct structure ( temp structure{ temp int j, temp float g, temp structure{ temp float f, temp int i} s1}) 0:32 Constant: 0:32 9 (const int) 0:32 'a5' ( global float) 0:? Construct structure ( temp structure{ temp float f, temp int i}) 0:32 Comma ( temp float) 0:32 'a3' ( global float) 0:32 'a4' ( global float) 0:32 Constant: 0:32 12 (const int) 0:33 Sequence 0:33 move second child to first child ( temp float) 0:33 'a8' ( temp float) 0:33 Comma ( temp float) 0:33 'a2' ( temp 4-component vector of float) 0:33 'b2' ( global float) 0:33 move second child to first child ( temp float) 0:33 'a9' ( temp float) 0:33 'a5' ( global float) 0:35 Branch: Return with expression 0:35 component-wise multiply ( temp 4-component vector of float) 0:35 'input' ( in 4-component vector of float) 0:35 'a1' ( global 4-component vector of float) 0:21 Function Definition: ShaderFunction( ( temp void) 0:21 Function Parameters: 0:? Sequence 0:21 move second child to first child ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) 0:21 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:21 Function Call: @ShaderFunction(vf4; ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? Linker Objects 0:? 'a1' ( global 4-component vector of float) 0:? 'b1' ( global 4-component vector of float) 0:? 'a1i' ( global 4-component vector of float) 0:? 'b1i' ( global 4-component vector of float) 0:? 'a2' ( global float) 0:? 'b2' ( global float) 0:? 'a3' ( global float) 0:? 'b3' ( global float) 0:? 'a4' ( global float) 0:? 'b4' ( global float) 0:? 'c4' ( global float) 0:? 'a5' ( global float) 0:? 'b5' ( global float) 0:? 'c5' ( global float) 0:? 'single1' ( global structure{ temp int f}) 0:? 'single2' ( global structure{ temp 2-component vector of uint v}) 0:? 'single3' ( global structure{ temp structure{ temp int f} s1}) 0:? 'single4' ( global structure{ temp structure{ temp 2-component vector of uint v} s1}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) 0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float a, layout( row_major std140) uniform float b, layout( row_major std140) uniform float c}) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.init2.frag.out000066400000000000000000000561211360464450000223570ustar00rootroot00000000000000hlsl.init2.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: Test1( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:5 Sequence 0:5 move second child to first child ( temp structure{ temp 2-component vector of float a}) 0:5 'test1' ( temp structure{ temp 2-component vector of float a}) 0:5 Constant: 0:5 1.000000 0:5 2.000000 0:9 Sequence 0:9 move second child to first child ( temp structure{ temp 2-component vector of float a}) 0:9 'test2' ( temp structure{ temp 2-component vector of float a}) 0:9 Constant: 0:9 3.000000 0:9 4.000000 0:17 Sequence 0:17 move second child to first child ( temp float) 0:17 'test4' ( temp float) 0:17 Constant: 0:17 7.000000 0:20 Sequence 0:20 move second child to first child ( temp structure{ temp float a, temp float b, temp float c}) 0:20 'test5' ( temp structure{ temp float a, temp float b, temp float c}) 0:20 Constant: 0:20 8.000000 0:20 9.000000 0:20 10.000000 0:22 Constant: 0:22 10.000000 0:25 Sequence 0:25 move second child to first child ( temp float) 0:25 'n' ( temp float) 0:25 Constant: 0:25 0.000000 0:26 Sequence 0:26 move second child to first child ( temp 8-element array of 3-component vector of float) 0:26 'a' ( const (read only) 8-element array of 3-component vector of float) 0:26 Construct vec3 ( temp 8-element array of 3-component vector of float) 0:27 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? 0.577350 0:? 0.577350 0:? 0.577350 0:27 add second child into first child ( temp float) 0:27 'n' ( temp float) 0:27 Constant: 0:27 1.000000 0:28 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? -0.577350 0:? -0.577350 0:28 add second child into first child ( temp float) 0:28 'n' ( temp float) 0:28 Constant: 0:28 1.000000 0:29 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? -0.577350 0:? 0.577350 0:29 add second child into first child ( temp float) 0:29 'n' ( temp float) 0:29 Constant: 0:29 1.000000 0:30 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? 0.577350 0:? -0.577350 0:30 add second child into first child ( temp float) 0:30 'n' ( temp float) 0:30 Constant: 0:30 1.000000 0:31 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? 0.577350 0:? 0.577350 0:31 add second child into first child ( temp float) 0:31 'n' ( temp float) 0:31 Constant: 0:31 1.000000 0:32 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? 0.577350 0:? -0.577350 0:? -0.577350 0:32 add second child into first child ( temp float) 0:32 'n' ( temp float) 0:32 Constant: 0:32 1.000000 0:33 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? 0.577350 0:? -0.577350 0:? 0.577350 0:33 add second child into first child ( temp float) 0:33 'n' ( temp float) 0:33 Constant: 0:33 1.000000 0:34 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? 0.577350 0:? 0.577350 0:? -0.577350 0:34 add second child into first child ( temp float) 0:34 'n' ( temp float) 0:34 Constant: 0:34 1.000000 0:36 Sequence 0:36 move second child to first child ( temp structure{ temp 3-component vector of float a}) 0:36 'oneNonConst' ( const (read only) structure{ temp 3-component vector of float a}) 0:36 Construct structure ( temp structure{ temp 3-component vector of float a}) 0:36 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? 0.577350 0:? 0.577350 0:36 add second child into first child ( temp float) 0:36 'n' ( temp float) 0:36 Constant: 0:36 1.000000 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 3-component vector of float a, temp 3-component vector of float b}) 0:38 'twoNonConst' ( const (read only) structure{ temp 3-component vector of float a, temp 3-component vector of float b}) 0:38 Construct structure ( temp structure{ temp 3-component vector of float a, temp 3-component vector of float b}) 0:38 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? 0.577350 0:? 0.577350 0:38 add second child into first child ( temp float) 0:38 'n' ( temp float) 0:38 Constant: 0:38 1.000000 0:39 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? 0.577350 0:? 0.577350 0:39 add second child into first child ( temp float) 0:39 'n' ( temp float) 0:39 Constant: 0:39 1.000000 0:45 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:45 Function Parameters: 0:? Sequence 0:46 Function Call: Test1( ( temp void) 0:49 move second child to first child ( temp 4-component vector of float) 0:49 color: direct index for structure ( temp 4-component vector of float) 0:49 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:49 Constant: 0:49 0 (const int) 0:49 Constant: 0:49 1.000000 0:49 1.000000 0:49 1.000000 0:49 1.000000 0:50 Branch: Return with expression 0:50 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:45 Function Definition: main( ( temp void) 0:45 Function Parameters: 0:? Sequence 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:45 color: direct index for structure ( temp 4-component vector of float) 0:45 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:45 Constant: 0:45 0 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: Test1( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:5 Sequence 0:5 move second child to first child ( temp structure{ temp 2-component vector of float a}) 0:5 'test1' ( temp structure{ temp 2-component vector of float a}) 0:5 Constant: 0:5 1.000000 0:5 2.000000 0:9 Sequence 0:9 move second child to first child ( temp structure{ temp 2-component vector of float a}) 0:9 'test2' ( temp structure{ temp 2-component vector of float a}) 0:9 Constant: 0:9 3.000000 0:9 4.000000 0:17 Sequence 0:17 move second child to first child ( temp float) 0:17 'test4' ( temp float) 0:17 Constant: 0:17 7.000000 0:20 Sequence 0:20 move second child to first child ( temp structure{ temp float a, temp float b, temp float c}) 0:20 'test5' ( temp structure{ temp float a, temp float b, temp float c}) 0:20 Constant: 0:20 8.000000 0:20 9.000000 0:20 10.000000 0:22 Constant: 0:22 10.000000 0:25 Sequence 0:25 move second child to first child ( temp float) 0:25 'n' ( temp float) 0:25 Constant: 0:25 0.000000 0:26 Sequence 0:26 move second child to first child ( temp 8-element array of 3-component vector of float) 0:26 'a' ( const (read only) 8-element array of 3-component vector of float) 0:26 Construct vec3 ( temp 8-element array of 3-component vector of float) 0:27 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? 0.577350 0:? 0.577350 0:? 0.577350 0:27 add second child into first child ( temp float) 0:27 'n' ( temp float) 0:27 Constant: 0:27 1.000000 0:28 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? -0.577350 0:? -0.577350 0:28 add second child into first child ( temp float) 0:28 'n' ( temp float) 0:28 Constant: 0:28 1.000000 0:29 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? -0.577350 0:? 0.577350 0:29 add second child into first child ( temp float) 0:29 'n' ( temp float) 0:29 Constant: 0:29 1.000000 0:30 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? 0.577350 0:? -0.577350 0:30 add second child into first child ( temp float) 0:30 'n' ( temp float) 0:30 Constant: 0:30 1.000000 0:31 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? 0.577350 0:? 0.577350 0:31 add second child into first child ( temp float) 0:31 'n' ( temp float) 0:31 Constant: 0:31 1.000000 0:32 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? 0.577350 0:? -0.577350 0:? -0.577350 0:32 add second child into first child ( temp float) 0:32 'n' ( temp float) 0:32 Constant: 0:32 1.000000 0:33 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? 0.577350 0:? -0.577350 0:? 0.577350 0:33 add second child into first child ( temp float) 0:33 'n' ( temp float) 0:33 Constant: 0:33 1.000000 0:34 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? 0.577350 0:? 0.577350 0:? -0.577350 0:34 add second child into first child ( temp float) 0:34 'n' ( temp float) 0:34 Constant: 0:34 1.000000 0:36 Sequence 0:36 move second child to first child ( temp structure{ temp 3-component vector of float a}) 0:36 'oneNonConst' ( const (read only) structure{ temp 3-component vector of float a}) 0:36 Construct structure ( temp structure{ temp 3-component vector of float a}) 0:36 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? 0.577350 0:? 0.577350 0:36 add second child into first child ( temp float) 0:36 'n' ( temp float) 0:36 Constant: 0:36 1.000000 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 3-component vector of float a, temp 3-component vector of float b}) 0:38 'twoNonConst' ( const (read only) structure{ temp 3-component vector of float a, temp 3-component vector of float b}) 0:38 Construct structure ( temp structure{ temp 3-component vector of float a, temp 3-component vector of float b}) 0:38 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? 0.577350 0:? 0.577350 0:38 add second child into first child ( temp float) 0:38 'n' ( temp float) 0:38 Constant: 0:38 1.000000 0:39 vector-scale ( temp 3-component vector of float) 0:? Constant: 0:? -0.577350 0:? 0.577350 0:? 0.577350 0:39 add second child into first child ( temp float) 0:39 'n' ( temp float) 0:39 Constant: 0:39 1.000000 0:45 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:45 Function Parameters: 0:? Sequence 0:46 Function Call: Test1( ( temp void) 0:49 move second child to first child ( temp 4-component vector of float) 0:49 color: direct index for structure ( temp 4-component vector of float) 0:49 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:49 Constant: 0:49 0 (const int) 0:49 Constant: 0:49 1.000000 0:49 1.000000 0:49 1.000000 0:49 1.000000 0:50 Branch: Return with expression 0:50 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:45 Function Definition: main( ( temp void) 0:45 Function Parameters: 0:? Sequence 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:45 color: direct index for structure ( temp 4-component vector of float) 0:45 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:45 Constant: 0:45 0 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.inoutquals.frag.out000066400000000000000000000424311360464450000235350ustar00rootroot00000000000000hlsl.inoutquals.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:8 Function Definition: MyFunc(f1;f1;f1;f1; ( temp void) 0:8 Function Parameters: 0:8 'x' ( in float) 0:8 'y' ( out float) 0:8 'z' ( inout float) 0:8 'w' ( inout float) 0:? Sequence 0:9 move second child to first child ( temp float) 0:9 'y' ( out float) 0:9 'x' ( in float) 0:10 move second child to first child ( temp float) 0:10 'z' ( inout float) 0:10 'y' ( out float) 0:11 move second child to first child ( temp float) 0:11 'x' ( in float) 0:11 Constant: 0:11 -1.000000 0:12 multiply second child into first child ( temp float) 0:12 'w' ( inout float) 0:12 Constant: 0:12 1.000000 0:16 Function Definition: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 Function Parameters: 0:16 'inpos' ( in 4-component vector of float) 0:16 'sampleMask' ( out int) 0:? Sequence 0:19 Sequence 0:19 move second child to first child ( temp float) 0:19 'x' ( temp float) 0:19 Constant: 0:19 7.000000 0:19 move second child to first child ( temp float) 0:19 'z' ( temp float) 0:19 Constant: 0:19 3.000000 0:20 Function Call: MyFunc(f1;f1;f1;f1; ( temp void) 0:20 'x' ( temp float) 0:20 'y' ( temp float) 0:20 'z' ( temp float) 0:20 direct index ( temp float) 0:20 'inpos' ( in 4-component vector of float) 0:20 Constant: 0:20 3 (const int) 0:22 move second child to first child ( temp 4-component vector of float) 0:22 Color: direct index for structure ( temp 4-component vector of float) 0:22 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:22 Constant: 0:22 0 (const int) 0:? Construct vec4 ( temp 4-component vector of float) 0:22 'x' ( temp float) 0:22 'y' ( temp float) 0:22 'z' ( temp float) 0:22 Constant: 0:22 1.000000 0:23 move second child to first child ( temp float) 0:23 Depth: direct index for structure ( temp float) 0:23 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:23 Constant: 0:23 1 (const int) 0:23 direct index ( temp float) 0:23 'inpos' ( in 4-component vector of float) 0:23 Constant: 0:23 3 (const int) 0:25 Branch: Return with expression 0:25 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 move second child to first child ( temp 4-component vector of float) 0:? 'inpos' ( temp 4-component vector of float) 0:? 'inpos' ( noperspective in 4-component vector of float FragCoord) 0:16 Sequence 0:16 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 Function Call: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:? 'inpos' ( temp 4-component vector of float) 0:? 'sampleMask' ( temp int) 0:16 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:16 Color: direct index for structure ( temp 4-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 Constant: 0:16 0 (const int) 0:16 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:16 Depth: direct index for structure ( temp float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 Constant: 0:16 1 (const int) 0:16 move second child to first child ( temp int) 0:16 direct index ( out int SampleMaskIn) 0:? 'sampleMask' ( out 1-element array of int SampleMaskIn) 0:16 Constant: 0:16 0 (const int) 0:? 'sampleMask' ( temp int) 0:? Linker Objects 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:? 'inpos' ( noperspective in 4-component vector of float FragCoord) 0:? 'sampleMask' ( out 1-element array of int SampleMaskIn) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:8 Function Definition: MyFunc(f1;f1;f1;f1; ( temp void) 0:8 Function Parameters: 0:8 'x' ( in float) 0:8 'y' ( out float) 0:8 'z' ( inout float) 0:8 'w' ( inout float) 0:? Sequence 0:9 move second child to first child ( temp float) 0:9 'y' ( out float) 0:9 'x' ( in float) 0:10 move second child to first child ( temp float) 0:10 'z' ( inout float) 0:10 'y' ( out float) 0:11 move second child to first child ( temp float) 0:11 'x' ( in float) 0:11 Constant: 0:11 -1.000000 0:12 multiply second child into first child ( temp float) 0:12 'w' ( inout float) 0:12 Constant: 0:12 1.000000 0:16 Function Definition: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 Function Parameters: 0:16 'inpos' ( in 4-component vector of float) 0:16 'sampleMask' ( out int) 0:? Sequence 0:19 Sequence 0:19 move second child to first child ( temp float) 0:19 'x' ( temp float) 0:19 Constant: 0:19 7.000000 0:19 move second child to first child ( temp float) 0:19 'z' ( temp float) 0:19 Constant: 0:19 3.000000 0:20 Function Call: MyFunc(f1;f1;f1;f1; ( temp void) 0:20 'x' ( temp float) 0:20 'y' ( temp float) 0:20 'z' ( temp float) 0:20 direct index ( temp float) 0:20 'inpos' ( in 4-component vector of float) 0:20 Constant: 0:20 3 (const int) 0:22 move second child to first child ( temp 4-component vector of float) 0:22 Color: direct index for structure ( temp 4-component vector of float) 0:22 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:22 Constant: 0:22 0 (const int) 0:? Construct vec4 ( temp 4-component vector of float) 0:22 'x' ( temp float) 0:22 'y' ( temp float) 0:22 'z' ( temp float) 0:22 Constant: 0:22 1.000000 0:23 move second child to first child ( temp float) 0:23 Depth: direct index for structure ( temp float) 0:23 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:23 Constant: 0:23 1 (const int) 0:23 direct index ( temp float) 0:23 'inpos' ( in 4-component vector of float) 0:23 Constant: 0:23 3 (const int) 0:25 Branch: Return with expression 0:25 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 move second child to first child ( temp 4-component vector of float) 0:? 'inpos' ( temp 4-component vector of float) 0:? 'inpos' ( noperspective in 4-component vector of float FragCoord) 0:16 Sequence 0:16 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 Function Call: @main(vf4;i1; ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:? 'inpos' ( temp 4-component vector of float) 0:? 'sampleMask' ( temp int) 0:16 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:16 Color: direct index for structure ( temp 4-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 Constant: 0:16 0 (const int) 0:16 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:16 Depth: direct index for structure ( temp float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:16 Constant: 0:16 1 (const int) 0:16 move second child to first child ( temp int) 0:16 direct index ( out int SampleMaskIn) 0:? 'sampleMask' ( out 1-element array of int SampleMaskIn) 0:16 Constant: 0:16 0 (const int) 0:? 'sampleMask' ( temp int) 0:? Linker Objects 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:? 'inpos' ( noperspective in 4-component vector of float FragCoord) 0:? 'sampleMask' ( out 1-element array of int SampleMaskIn) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.int.dot.frag.out000066400000000000000000000353171360464450000227150ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsic.frexp.frag.out000066400000000000000000000357101360464450000244600ustar00rootroot00000000000000hlsl.intrinsic.frexp.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: PixelShaderFunctionS(f1;f1; ( temp float) 0:3 Function Parameters: 0:3 'inF0' ( in float) 0:3 'inF1' ( in float) 0:? Sequence 0:4 Sequence 0:4 move second child to first child ( temp float) 0:4 'r000' ( temp float) 0:4 frexp ( temp float) 0:4 'inF0' ( in float) 0:4 'inF1' ( in float) 0:5 Branch: Return with expression 0:5 Constant: 0:5 0.000000 0:9 Function Definition: PixelShaderFunction2(vf2;vf2; ( temp 2-component vector of float) 0:9 Function Parameters: 0:9 'inF0' ( in 2-component vector of float) 0:9 'inF1' ( in 2-component vector of float) 0:? Sequence 0:10 Sequence 0:10 move second child to first child ( temp 2-component vector of float) 0:10 'r000' ( temp 2-component vector of float) 0:10 frexp ( temp 2-component vector of float) 0:10 'inF0' ( in 2-component vector of float) 0:10 'inF1' ( in 2-component vector of float) 0:11 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:15 Function Definition: PixelShaderFunction3(vf3;vf3; ( temp 3-component vector of float) 0:15 Function Parameters: 0:15 'inF0' ( in 3-component vector of float) 0:15 'inF1' ( in 3-component vector of float) 0:? Sequence 0:16 Sequence 0:16 move second child to first child ( temp 3-component vector of float) 0:16 'r000' ( temp 3-component vector of float) 0:16 frexp ( temp 3-component vector of float) 0:16 'inF0' ( in 3-component vector of float) 0:16 'inF1' ( in 3-component vector of float) 0:17 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:21 Function Definition: PixelShaderFunction(vf4;vf4; ( temp 4-component vector of float) 0:21 Function Parameters: 0:21 'inF0' ( in 4-component vector of float) 0:21 'inF1' ( in 4-component vector of float) 0:? Sequence 0:22 Sequence 0:22 move second child to first child ( temp 4-component vector of float) 0:22 'r000' ( temp 4-component vector of float) 0:22 frexp ( temp 4-component vector of float) 0:22 'inF0' ( in 4-component vector of float) 0:22 'inF1' ( in 4-component vector of float) 0:23 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:33 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:33 Function Parameters: 0:? Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 color: direct index for structure ( temp 4-component vector of float) 0:35 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:35 Constant: 0:35 0 (const int) 0:35 Constant: 0:35 1.000000 0:35 1.000000 0:35 1.000000 0:35 1.000000 0:36 Branch: Return with expression 0:36 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:33 Function Definition: main( ( temp void) 0:33 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:33 color: direct index for structure ( temp 4-component vector of float) 0:33 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:33 Constant: 0:33 0 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: PixelShaderFunctionS(f1;f1; ( temp float) 0:3 Function Parameters: 0:3 'inF0' ( in float) 0:3 'inF1' ( in float) 0:? Sequence 0:4 Sequence 0:4 move second child to first child ( temp float) 0:4 'r000' ( temp float) 0:4 frexp ( temp float) 0:4 'inF0' ( in float) 0:4 'inF1' ( in float) 0:5 Branch: Return with expression 0:5 Constant: 0:5 0.000000 0:9 Function Definition: PixelShaderFunction2(vf2;vf2; ( temp 2-component vector of float) 0:9 Function Parameters: 0:9 'inF0' ( in 2-component vector of float) 0:9 'inF1' ( in 2-component vector of float) 0:? Sequence 0:10 Sequence 0:10 move second child to first child ( temp 2-component vector of float) 0:10 'r000' ( temp 2-component vector of float) 0:10 frexp ( temp 2-component vector of float) 0:10 'inF0' ( in 2-component vector of float) 0:10 'inF1' ( in 2-component vector of float) 0:11 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:15 Function Definition: PixelShaderFunction3(vf3;vf3; ( temp 3-component vector of float) 0:15 Function Parameters: 0:15 'inF0' ( in 3-component vector of float) 0:15 'inF1' ( in 3-component vector of float) 0:? Sequence 0:16 Sequence 0:16 move second child to first child ( temp 3-component vector of float) 0:16 'r000' ( temp 3-component vector of float) 0:16 frexp ( temp 3-component vector of float) 0:16 'inF0' ( in 3-component vector of float) 0:16 'inF1' ( in 3-component vector of float) 0:17 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:21 Function Definition: PixelShaderFunction(vf4;vf4; ( temp 4-component vector of float) 0:21 Function Parameters: 0:21 'inF0' ( in 4-component vector of float) 0:21 'inF1' ( in 4-component vector of float) 0:? Sequence 0:22 Sequence 0:22 move second child to first child ( temp 4-component vector of float) 0:22 'r000' ( temp 4-component vector of float) 0:22 frexp ( temp 4-component vector of float) 0:22 'inF0' ( in 4-component vector of float) 0:22 'inF1' ( in 4-component vector of float) 0:23 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:33 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:33 Function Parameters: 0:? Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 color: direct index for structure ( temp 4-component vector of float) 0:35 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:35 Constant: 0:35 0 (const int) 0:35 Constant: 0:35 1.000000 0:35 1.000000 0:35 1.000000 0:35 1.000000 0:36 Branch: Return with expression 0:36 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:33 Function Definition: main( ( temp void) 0:33 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:33 color: direct index for structure ( temp 4-component vector of float) 0:33 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:33 Constant: 0:33 0 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsic.frexp.vert.out000066400000000000000000000225421360464450000245200ustar00rootroot00000000000000hlsl.intrinsic.frexp.vert Shader version: 500 0:? Sequence 0:2 Function Definition: VertexShaderFunctionS(f1;f1; ( temp float) 0:2 Function Parameters: 0:2 'inF0' ( in float) 0:2 'inF1' ( in float) 0:? Sequence 0:3 frexp ( temp float) 0:3 'inF0' ( in float) 0:3 'inF1' ( in float) 0:4 Branch: Return with expression 0:4 Constant: 0:4 0.000000 0:8 Function Definition: VertexShaderFunction2(vf2;vf2; ( temp 2-component vector of float) 0:8 Function Parameters: 0:8 'inF0' ( in 2-component vector of float) 0:8 'inF1' ( in 2-component vector of float) 0:? Sequence 0:9 frexp ( temp 2-component vector of float) 0:9 'inF0' ( in 2-component vector of float) 0:9 'inF1' ( in 2-component vector of float) 0:10 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:14 Function Definition: VertexShaderFunction3(vf3;vf3; ( temp 3-component vector of float) 0:14 Function Parameters: 0:14 'inF0' ( in 3-component vector of float) 0:14 'inF1' ( in 3-component vector of float) 0:? Sequence 0:15 frexp ( temp 3-component vector of float) 0:15 'inF0' ( in 3-component vector of float) 0:15 'inF1' ( in 3-component vector of float) 0:16 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:20 Function Definition: VertexShaderFunction4(vf4;vf4; ( temp 4-component vector of float) 0:20 Function Parameters: 0:20 'inF0' ( in 4-component vector of float) 0:20 'inF1' ( in 4-component vector of float) 0:? Sequence 0:21 frexp ( temp 4-component vector of float) 0:21 'inF0' ( in 4-component vector of float) 0:21 'inF1' ( in 4-component vector of float) 0:22 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? Linker Objects Linked vertex stage: WARNING: Linking vertex stage: Entry point not found Shader version: 500 0:? Sequence 0:2 Function Definition: VertexShaderFunctionS(f1;f1; ( temp float) 0:2 Function Parameters: 0:2 'inF0' ( in float) 0:2 'inF1' ( in float) 0:? Sequence 0:3 frexp ( temp float) 0:3 'inF0' ( in float) 0:3 'inF1' ( in float) 0:4 Branch: Return with expression 0:4 Constant: 0:4 0.000000 0:8 Function Definition: VertexShaderFunction2(vf2;vf2; ( temp 2-component vector of float) 0:8 Function Parameters: 0:8 'inF0' ( in 2-component vector of float) 0:8 'inF1' ( in 2-component vector of float) 0:? Sequence 0:9 frexp ( temp 2-component vector of float) 0:9 'inF0' ( in 2-component vector of float) 0:9 'inF1' ( in 2-component vector of float) 0:10 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:14 Function Definition: VertexShaderFunction3(vf3;vf3; ( temp 3-component vector of float) 0:14 Function Parameters: 0:14 'inF0' ( in 3-component vector of float) 0:14 'inF1' ( in 3-component vector of float) 0:? Sequence 0:15 frexp ( temp 3-component vector of float) 0:15 'inF0' ( in 3-component vector of float) 0:15 'inF1' ( in 3-component vector of float) 0:16 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:20 Function Definition: VertexShaderFunction4(vf4;vf4; ( temp 4-component vector of float) 0:20 Function Parameters: 0:20 'inF0' ( in 4-component vector of float) 0:20 'inF1' ( in 4-component vector of float) 0:? Sequence 0:21 frexp ( temp 4-component vector of float) 0:21 'inF0' ( in 4-component vector of float) 0:21 'inF1' ( in 4-component vector of float) 0:22 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.barriers.comp.out000066400000000000000000000075661360464450000253570ustar00rootroot00000000000000hlsl.intrinsics.barriers.comp Shader version: 500 local_size = (1, 1, 1) 0:? Sequence 0:3 Function Definition: @ComputeShaderFunction( ( temp float) 0:3 Function Parameters: 0:? Sequence 0:4 MemoryBarrier ( temp void) 0:5 AllMemoryBarrierWithGroupSync ( temp void) 0:6 DeviceMemoryBarrier ( temp void) 0:7 DeviceMemoryBarrierWithGroupSync ( temp void) 0:8 WorkgroupMemoryBarrier ( temp void) 0:9 WorkgroupMemoryBarrierWithGroupSync ( temp void) 0:11 Branch: Return with expression 0:11 Constant: 0:11 0.000000 0:3 Function Definition: ComputeShaderFunction( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:3 move second child to first child ( temp float) 0:? '@entryPointOutput' (layout( location=0) out float) 0:3 Function Call: @ComputeShaderFunction( ( temp float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out float) Linked compute stage: Shader version: 500 local_size = (1, 1, 1) 0:? Sequence 0:3 Function Definition: @ComputeShaderFunction( ( temp float) 0:3 Function Parameters: 0:? Sequence 0:4 MemoryBarrier ( temp void) 0:5 AllMemoryBarrierWithGroupSync ( temp void) 0:6 DeviceMemoryBarrier ( temp void) 0:7 DeviceMemoryBarrierWithGroupSync ( temp void) 0:8 WorkgroupMemoryBarrier ( temp void) 0:9 WorkgroupMemoryBarrierWithGroupSync ( temp void) 0:11 Branch: Return with expression 0:11 Constant: 0:11 0.000000 0:3 Function Definition: ComputeShaderFunction( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:3 move second child to first child ( temp float) 0:? '@entryPointOutput' (layout( location=0) out float) 0:3 Function Call: @ComputeShaderFunction( ( temp float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "ComputeShaderFunction" 20 ExecutionMode 4 LocalSize 1 1 1 Source HLSL 500 Name 4 "ComputeShaderFunction" Name 8 "@ComputeShaderFunction(" Name 20 "@entryPointOutput" Decorate 20(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeFunction 6(float) 10: TypeInt 32 0 11: 10(int) Constant 1 12: 10(int) Constant 3400 13: 10(int) Constant 2 14: 10(int) Constant 2120 15: 10(int) Constant 264 16: 6(float) Constant 0 19: TypePointer Output 6(float) 20(@entryPointOutput): 19(ptr) Variable Output 4(ComputeShaderFunction): 2 Function None 3 5: Label 21: 6(float) FunctionCall 8(@ComputeShaderFunction() Store 20(@entryPointOutput) 21 Return FunctionEnd 8(@ComputeShaderFunction(): 6(float) Function None 7 9: Label MemoryBarrier 11 12 ControlBarrier 13 11 12 MemoryBarrier 11 14 ControlBarrier 13 11 14 MemoryBarrier 13 15 ControlBarrier 13 13 15 ReturnValue 16 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.comp.out000066400000000000000000001605141360464450000235400ustar00rootroot00000000000000hlsl.intrinsics.comp Shader version: 500 local_size = (1, 1, 1) 0:? Sequence 0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; ( temp float) 0:17 Function Parameters: 0:17 'inF0' ( in float) 0:17 'inF1' ( in float) 0:17 'inF2' ( in float) 0:17 'inU0' ( in uint) 0:17 'inU1' ( in uint) 0:? Sequence 0:21 all ( temp bool) 0:21 Convert float to bool ( temp bool) 0:21 'inF0' ( in float) 0:24 AtomicAdd ( temp uint) 0:24 'gs_ua' ( shared uint) 0:24 'gs_ub' ( shared uint) 0:25 move second child to first child ( temp uint) 0:25 'out_u1' ( temp uint) 0:25 AtomicAdd ( temp uint) 0:25 'gs_ua' ( shared uint) 0:25 'gs_ub' ( shared uint) 0:26 AtomicAnd ( temp uint) 0:26 'gs_ua' ( shared uint) 0:26 'gs_ub' ( shared uint) 0:27 move second child to first child ( temp uint) 0:27 'out_u1' ( temp uint) 0:27 AtomicAnd ( temp uint) 0:27 'gs_ua' ( shared uint) 0:27 'gs_ub' ( shared uint) 0:28 move second child to first child ( temp uint) 0:28 'out_u1' ( temp uint) 0:28 AtomicCompSwap ( temp uint) 0:28 'gs_ua' ( shared uint) 0:28 'gs_ub' ( shared uint) 0:28 'gs_uc' ( shared uint) 0:29 move second child to first child ( temp uint) 0:29 'out_u1' ( temp uint) 0:29 AtomicExchange ( temp uint) 0:29 'gs_ua' ( shared uint) 0:29 'gs_ub' ( shared uint) 0:30 AtomicMax ( temp uint) 0:30 'gs_ua' ( shared uint) 0:30 'gs_ub' ( shared uint) 0:31 move second child to first child ( temp uint) 0:31 'out_u1' ( temp uint) 0:31 AtomicMax ( temp uint) 0:31 'gs_ua' ( shared uint) 0:31 'gs_ub' ( shared uint) 0:32 AtomicMin ( temp uint) 0:32 'gs_ua' ( shared uint) 0:32 'gs_ub' ( shared uint) 0:33 move second child to first child ( temp uint) 0:33 'out_u1' ( temp uint) 0:33 AtomicMin ( temp uint) 0:33 'gs_ua' ( shared uint) 0:33 'gs_ub' ( shared uint) 0:34 AtomicOr ( temp uint) 0:34 'gs_ua' ( shared uint) 0:34 'gs_ub' ( shared uint) 0:35 move second child to first child ( temp uint) 0:35 'out_u1' ( temp uint) 0:35 AtomicOr ( temp uint) 0:35 'gs_ua' ( shared uint) 0:35 'gs_ub' ( shared uint) 0:36 AtomicXor ( temp uint) 0:36 'gs_ua' ( shared uint) 0:36 'gs_ub' ( shared uint) 0:37 move second child to first child ( temp uint) 0:37 'out_u1' ( temp uint) 0:37 AtomicXor ( temp uint) 0:37 'gs_ua' ( shared uint) 0:37 'gs_ub' ( shared uint) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) 0:45 Function Parameters: 0:45 'inF0' ( in 1-component vector of float) 0:45 'inF1' ( in 1-component vector of float) 0:45 'inF2' ( in 1-component vector of float) 0:? Sequence 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) 0:51 Function Parameters: 0:51 'inF0' ( in 2-component vector of float) 0:51 'inF1' ( in 2-component vector of float) 0:51 'inF2' ( in 2-component vector of float) 0:51 'inU0' ( in 2-component vector of uint) 0:51 'inU1' ( in 2-component vector of uint) 0:? Sequence 0:55 all ( temp bool) 0:55 Convert float to bool ( temp 2-component vector of bool) 0:55 'inF0' ( in 2-component vector of float) 0:58 AtomicAdd ( temp 2-component vector of uint) 0:58 'gs_ua2' ( shared 2-component vector of uint) 0:58 'gs_ub2' ( shared 2-component vector of uint) 0:59 move second child to first child ( temp 2-component vector of uint) 0:59 'out_u2' ( temp 2-component vector of uint) 0:59 AtomicAdd ( temp 2-component vector of uint) 0:59 'gs_ua2' ( shared 2-component vector of uint) 0:59 'gs_ub2' ( shared 2-component vector of uint) 0:60 AtomicAnd ( temp 2-component vector of uint) 0:60 'gs_ua2' ( shared 2-component vector of uint) 0:60 'gs_ub2' ( shared 2-component vector of uint) 0:61 move second child to first child ( temp 2-component vector of uint) 0:61 'out_u2' ( temp 2-component vector of uint) 0:61 AtomicAnd ( temp 2-component vector of uint) 0:61 'gs_ua2' ( shared 2-component vector of uint) 0:61 'gs_ub2' ( shared 2-component vector of uint) 0:62 move second child to first child ( temp 2-component vector of uint) 0:62 'out_u2' ( temp 2-component vector of uint) 0:62 AtomicCompSwap ( temp 2-component vector of uint) 0:62 'gs_ua2' ( shared 2-component vector of uint) 0:62 'gs_ub2' ( shared 2-component vector of uint) 0:62 'gs_uc2' ( shared 2-component vector of uint) 0:63 move second child to first child ( temp 2-component vector of uint) 0:63 'out_u2' ( temp 2-component vector of uint) 0:63 AtomicExchange ( temp 2-component vector of uint) 0:63 'gs_ua2' ( shared 2-component vector of uint) 0:63 'gs_ub2' ( shared 2-component vector of uint) 0:64 AtomicMax ( temp 2-component vector of uint) 0:64 'gs_ua2' ( shared 2-component vector of uint) 0:64 'gs_ub2' ( shared 2-component vector of uint) 0:65 move second child to first child ( temp 2-component vector of uint) 0:65 'out_u2' ( temp 2-component vector of uint) 0:65 AtomicMax ( temp 2-component vector of uint) 0:65 'gs_ua2' ( shared 2-component vector of uint) 0:65 'gs_ub2' ( shared 2-component vector of uint) 0:66 AtomicMin ( temp 2-component vector of uint) 0:66 'gs_ua2' ( shared 2-component vector of uint) 0:66 'gs_ub2' ( shared 2-component vector of uint) 0:67 move second child to first child ( temp 2-component vector of uint) 0:67 'out_u2' ( temp 2-component vector of uint) 0:67 AtomicMin ( temp 2-component vector of uint) 0:67 'gs_ua2' ( shared 2-component vector of uint) 0:67 'gs_ub2' ( shared 2-component vector of uint) 0:68 AtomicOr ( temp 2-component vector of uint) 0:68 'gs_ua2' ( shared 2-component vector of uint) 0:68 'gs_ub2' ( shared 2-component vector of uint) 0:69 move second child to first child ( temp 2-component vector of uint) 0:69 'out_u2' ( temp 2-component vector of uint) 0:69 AtomicOr ( temp 2-component vector of uint) 0:69 'gs_ua2' ( shared 2-component vector of uint) 0:69 'gs_ub2' ( shared 2-component vector of uint) 0:70 AtomicXor ( temp 2-component vector of uint) 0:70 'gs_ua2' ( shared 2-component vector of uint) 0:70 'gs_ub2' ( shared 2-component vector of uint) 0:71 move second child to first child ( temp 2-component vector of uint) 0:71 'out_u2' ( temp 2-component vector of uint) 0:71 AtomicXor ( temp 2-component vector of uint) 0:71 'gs_ua2' ( shared 2-component vector of uint) 0:71 'gs_ub2' ( shared 2-component vector of uint) 0:74 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) 0:78 Function Parameters: 0:78 'inF0' ( in 3-component vector of float) 0:78 'inF1' ( in 3-component vector of float) 0:78 'inF2' ( in 3-component vector of float) 0:78 'inU0' ( in 3-component vector of uint) 0:78 'inU1' ( in 3-component vector of uint) 0:? Sequence 0:82 all ( temp bool) 0:82 Convert float to bool ( temp 3-component vector of bool) 0:82 'inF0' ( in 3-component vector of float) 0:85 AtomicAdd ( temp 3-component vector of uint) 0:85 'gs_ua3' ( shared 3-component vector of uint) 0:85 'gs_ub3' ( shared 3-component vector of uint) 0:86 move second child to first child ( temp 3-component vector of uint) 0:86 'out_u3' ( temp 3-component vector of uint) 0:86 AtomicAdd ( temp 3-component vector of uint) 0:86 'gs_ua3' ( shared 3-component vector of uint) 0:86 'gs_ub3' ( shared 3-component vector of uint) 0:87 AtomicAnd ( temp 3-component vector of uint) 0:87 'gs_ua3' ( shared 3-component vector of uint) 0:87 'gs_ub3' ( shared 3-component vector of uint) 0:88 move second child to first child ( temp 3-component vector of uint) 0:88 'out_u3' ( temp 3-component vector of uint) 0:88 AtomicAnd ( temp 3-component vector of uint) 0:88 'gs_ua3' ( shared 3-component vector of uint) 0:88 'gs_ub3' ( shared 3-component vector of uint) 0:89 move second child to first child ( temp 3-component vector of uint) 0:89 'out_u3' ( temp 3-component vector of uint) 0:89 AtomicCompSwap ( temp 3-component vector of uint) 0:89 'gs_ua3' ( shared 3-component vector of uint) 0:89 'gs_ub3' ( shared 3-component vector of uint) 0:89 'gs_uc3' ( shared 3-component vector of uint) 0:90 move second child to first child ( temp 3-component vector of uint) 0:90 'out_u3' ( temp 3-component vector of uint) 0:90 AtomicExchange ( temp 3-component vector of uint) 0:90 'gs_ua3' ( shared 3-component vector of uint) 0:90 'gs_ub3' ( shared 3-component vector of uint) 0:91 AtomicMax ( temp 3-component vector of uint) 0:91 'gs_ua3' ( shared 3-component vector of uint) 0:91 'gs_ub3' ( shared 3-component vector of uint) 0:92 move second child to first child ( temp 3-component vector of uint) 0:92 'out_u3' ( temp 3-component vector of uint) 0:92 AtomicMax ( temp 3-component vector of uint) 0:92 'gs_ua3' ( shared 3-component vector of uint) 0:92 'gs_ub3' ( shared 3-component vector of uint) 0:93 AtomicMin ( temp 3-component vector of uint) 0:93 'gs_ua3' ( shared 3-component vector of uint) 0:93 'gs_ub3' ( shared 3-component vector of uint) 0:94 move second child to first child ( temp 3-component vector of uint) 0:94 'out_u3' ( temp 3-component vector of uint) 0:94 AtomicMin ( temp 3-component vector of uint) 0:94 'gs_ua3' ( shared 3-component vector of uint) 0:94 'gs_ub3' ( shared 3-component vector of uint) 0:95 AtomicOr ( temp 3-component vector of uint) 0:95 'gs_ua3' ( shared 3-component vector of uint) 0:95 'gs_ub3' ( shared 3-component vector of uint) 0:96 move second child to first child ( temp 3-component vector of uint) 0:96 'out_u3' ( temp 3-component vector of uint) 0:96 AtomicOr ( temp 3-component vector of uint) 0:96 'gs_ua3' ( shared 3-component vector of uint) 0:96 'gs_ub3' ( shared 3-component vector of uint) 0:97 AtomicXor ( temp 3-component vector of uint) 0:97 'gs_ua3' ( shared 3-component vector of uint) 0:97 'gs_ub3' ( shared 3-component vector of uint) 0:98 move second child to first child ( temp 3-component vector of uint) 0:98 'out_u3' ( temp 3-component vector of uint) 0:98 AtomicXor ( temp 3-component vector of uint) 0:98 'gs_ua3' ( shared 3-component vector of uint) 0:98 'gs_ub3' ( shared 3-component vector of uint) 0:101 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:105 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) 0:105 Function Parameters: 0:105 'inF0' ( in 4-component vector of float) 0:105 'inF1' ( in 4-component vector of float) 0:105 'inF2' ( in 4-component vector of float) 0:105 'inU0' ( in 4-component vector of uint) 0:105 'inU1' ( in 4-component vector of uint) 0:? Sequence 0:109 all ( temp bool) 0:109 Convert float to bool ( temp 4-component vector of bool) 0:109 'inF0' ( in 4-component vector of float) 0:112 AtomicAdd ( temp 4-component vector of uint) 0:112 'gs_ua4' ( shared 4-component vector of uint) 0:112 'gs_ub4' ( shared 4-component vector of uint) 0:113 move second child to first child ( temp 4-component vector of uint) 0:113 'out_u4' ( temp 4-component vector of uint) 0:113 AtomicAdd ( temp 4-component vector of uint) 0:113 'gs_ua4' ( shared 4-component vector of uint) 0:113 'gs_ub4' ( shared 4-component vector of uint) 0:114 AtomicAnd ( temp 4-component vector of uint) 0:114 'gs_ua4' ( shared 4-component vector of uint) 0:114 'gs_ub4' ( shared 4-component vector of uint) 0:115 move second child to first child ( temp 4-component vector of uint) 0:115 'out_u4' ( temp 4-component vector of uint) 0:115 AtomicAnd ( temp 4-component vector of uint) 0:115 'gs_ua4' ( shared 4-component vector of uint) 0:115 'gs_ub4' ( shared 4-component vector of uint) 0:116 move second child to first child ( temp 4-component vector of uint) 0:116 'out_u4' ( temp 4-component vector of uint) 0:116 AtomicCompSwap ( temp 4-component vector of uint) 0:116 'gs_ua4' ( shared 4-component vector of uint) 0:116 'gs_ub4' ( shared 4-component vector of uint) 0:116 'gs_uc4' ( shared 4-component vector of uint) 0:117 move second child to first child ( temp 4-component vector of uint) 0:117 'out_u4' ( temp 4-component vector of uint) 0:117 AtomicExchange ( temp 4-component vector of uint) 0:117 'gs_ua4' ( shared 4-component vector of uint) 0:117 'gs_ub4' ( shared 4-component vector of uint) 0:118 AtomicMax ( temp 4-component vector of uint) 0:118 'gs_ua4' ( shared 4-component vector of uint) 0:118 'gs_ub4' ( shared 4-component vector of uint) 0:119 move second child to first child ( temp 4-component vector of uint) 0:119 'out_u4' ( temp 4-component vector of uint) 0:119 AtomicMax ( temp 4-component vector of uint) 0:119 'gs_ua4' ( shared 4-component vector of uint) 0:119 'gs_ub4' ( shared 4-component vector of uint) 0:120 AtomicMin ( temp 4-component vector of uint) 0:120 'gs_ua4' ( shared 4-component vector of uint) 0:120 'gs_ub4' ( shared 4-component vector of uint) 0:121 move second child to first child ( temp 4-component vector of uint) 0:121 'out_u4' ( temp 4-component vector of uint) 0:121 AtomicMin ( temp 4-component vector of uint) 0:121 'gs_ua4' ( shared 4-component vector of uint) 0:121 'gs_ub4' ( shared 4-component vector of uint) 0:122 AtomicOr ( temp 4-component vector of uint) 0:122 'gs_ua4' ( shared 4-component vector of uint) 0:122 'gs_ub4' ( shared 4-component vector of uint) 0:123 move second child to first child ( temp 4-component vector of uint) 0:123 'out_u4' ( temp 4-component vector of uint) 0:123 AtomicOr ( temp 4-component vector of uint) 0:123 'gs_ua4' ( shared 4-component vector of uint) 0:123 'gs_ub4' ( shared 4-component vector of uint) 0:124 AtomicXor ( temp 4-component vector of uint) 0:124 'gs_ua4' ( shared 4-component vector of uint) 0:124 'gs_ub4' ( shared 4-component vector of uint) 0:125 move second child to first child ( temp 4-component vector of uint) 0:125 'out_u4' ( temp 4-component vector of uint) 0:125 AtomicXor ( temp 4-component vector of uint) 0:125 'gs_ua4' ( shared 4-component vector of uint) 0:125 'gs_ub4' ( shared 4-component vector of uint) 0:128 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:105 Function Definition: ComputeShaderFunction( ( temp void) 0:105 Function Parameters: 0:? Sequence 0:105 move second child to first child ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:105 move second child to first child ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:105 move second child to first child ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:105 move second child to first child ( temp 4-component vector of uint) 0:? 'inU0' ( temp 4-component vector of uint) 0:? 'inU0' (layout( location=3) in 4-component vector of uint) 0:105 move second child to first child ( temp 4-component vector of uint) 0:? 'inU1' ( temp 4-component vector of uint) 0:? 'inU1' (layout( location=4) in 4-component vector of uint) 0:105 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:105 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inU0' ( temp 4-component vector of uint) 0:? 'inU1' ( temp 4-component vector of uint) 0:? Linker Objects 0:? 'gs_ua' ( shared uint) 0:? 'gs_ub' ( shared uint) 0:? 'gs_uc' ( shared uint) 0:? 'gs_ua2' ( shared 2-component vector of uint) 0:? 'gs_ub2' ( shared 2-component vector of uint) 0:? 'gs_uc2' ( shared 2-component vector of uint) 0:? 'gs_ua3' ( shared 3-component vector of uint) 0:? 'gs_ub3' ( shared 3-component vector of uint) 0:? 'gs_uc3' ( shared 3-component vector of uint) 0:? 'gs_ua4' ( shared 4-component vector of uint) 0:? 'gs_ub4' ( shared 4-component vector of uint) 0:? 'gs_uc4' ( shared 4-component vector of uint) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:? 'inU0' (layout( location=3) in 4-component vector of uint) 0:? 'inU1' (layout( location=4) in 4-component vector of uint) Linked compute stage: Shader version: 500 local_size = (1, 1, 1) 0:? Sequence 0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; ( temp float) 0:17 Function Parameters: 0:17 'inF0' ( in float) 0:17 'inF1' ( in float) 0:17 'inF2' ( in float) 0:17 'inU0' ( in uint) 0:17 'inU1' ( in uint) 0:? Sequence 0:21 all ( temp bool) 0:21 Convert float to bool ( temp bool) 0:21 'inF0' ( in float) 0:24 AtomicAdd ( temp uint) 0:24 'gs_ua' ( shared uint) 0:24 'gs_ub' ( shared uint) 0:25 move second child to first child ( temp uint) 0:25 'out_u1' ( temp uint) 0:25 AtomicAdd ( temp uint) 0:25 'gs_ua' ( shared uint) 0:25 'gs_ub' ( shared uint) 0:26 AtomicAnd ( temp uint) 0:26 'gs_ua' ( shared uint) 0:26 'gs_ub' ( shared uint) 0:27 move second child to first child ( temp uint) 0:27 'out_u1' ( temp uint) 0:27 AtomicAnd ( temp uint) 0:27 'gs_ua' ( shared uint) 0:27 'gs_ub' ( shared uint) 0:28 move second child to first child ( temp uint) 0:28 'out_u1' ( temp uint) 0:28 AtomicCompSwap ( temp uint) 0:28 'gs_ua' ( shared uint) 0:28 'gs_ub' ( shared uint) 0:28 'gs_uc' ( shared uint) 0:29 move second child to first child ( temp uint) 0:29 'out_u1' ( temp uint) 0:29 AtomicExchange ( temp uint) 0:29 'gs_ua' ( shared uint) 0:29 'gs_ub' ( shared uint) 0:30 AtomicMax ( temp uint) 0:30 'gs_ua' ( shared uint) 0:30 'gs_ub' ( shared uint) 0:31 move second child to first child ( temp uint) 0:31 'out_u1' ( temp uint) 0:31 AtomicMax ( temp uint) 0:31 'gs_ua' ( shared uint) 0:31 'gs_ub' ( shared uint) 0:32 AtomicMin ( temp uint) 0:32 'gs_ua' ( shared uint) 0:32 'gs_ub' ( shared uint) 0:33 move second child to first child ( temp uint) 0:33 'out_u1' ( temp uint) 0:33 AtomicMin ( temp uint) 0:33 'gs_ua' ( shared uint) 0:33 'gs_ub' ( shared uint) 0:34 AtomicOr ( temp uint) 0:34 'gs_ua' ( shared uint) 0:34 'gs_ub' ( shared uint) 0:35 move second child to first child ( temp uint) 0:35 'out_u1' ( temp uint) 0:35 AtomicOr ( temp uint) 0:35 'gs_ua' ( shared uint) 0:35 'gs_ub' ( shared uint) 0:36 AtomicXor ( temp uint) 0:36 'gs_ua' ( shared uint) 0:36 'gs_ub' ( shared uint) 0:37 move second child to first child ( temp uint) 0:37 'out_u1' ( temp uint) 0:37 AtomicXor ( temp uint) 0:37 'gs_ua' ( shared uint) 0:37 'gs_ub' ( shared uint) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) 0:45 Function Parameters: 0:45 'inF0' ( in 1-component vector of float) 0:45 'inF1' ( in 1-component vector of float) 0:45 'inF2' ( in 1-component vector of float) 0:? Sequence 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) 0:51 Function Parameters: 0:51 'inF0' ( in 2-component vector of float) 0:51 'inF1' ( in 2-component vector of float) 0:51 'inF2' ( in 2-component vector of float) 0:51 'inU0' ( in 2-component vector of uint) 0:51 'inU1' ( in 2-component vector of uint) 0:? Sequence 0:55 all ( temp bool) 0:55 Convert float to bool ( temp 2-component vector of bool) 0:55 'inF0' ( in 2-component vector of float) 0:58 AtomicAdd ( temp 2-component vector of uint) 0:58 'gs_ua2' ( shared 2-component vector of uint) 0:58 'gs_ub2' ( shared 2-component vector of uint) 0:59 move second child to first child ( temp 2-component vector of uint) 0:59 'out_u2' ( temp 2-component vector of uint) 0:59 AtomicAdd ( temp 2-component vector of uint) 0:59 'gs_ua2' ( shared 2-component vector of uint) 0:59 'gs_ub2' ( shared 2-component vector of uint) 0:60 AtomicAnd ( temp 2-component vector of uint) 0:60 'gs_ua2' ( shared 2-component vector of uint) 0:60 'gs_ub2' ( shared 2-component vector of uint) 0:61 move second child to first child ( temp 2-component vector of uint) 0:61 'out_u2' ( temp 2-component vector of uint) 0:61 AtomicAnd ( temp 2-component vector of uint) 0:61 'gs_ua2' ( shared 2-component vector of uint) 0:61 'gs_ub2' ( shared 2-component vector of uint) 0:62 move second child to first child ( temp 2-component vector of uint) 0:62 'out_u2' ( temp 2-component vector of uint) 0:62 AtomicCompSwap ( temp 2-component vector of uint) 0:62 'gs_ua2' ( shared 2-component vector of uint) 0:62 'gs_ub2' ( shared 2-component vector of uint) 0:62 'gs_uc2' ( shared 2-component vector of uint) 0:63 move second child to first child ( temp 2-component vector of uint) 0:63 'out_u2' ( temp 2-component vector of uint) 0:63 AtomicExchange ( temp 2-component vector of uint) 0:63 'gs_ua2' ( shared 2-component vector of uint) 0:63 'gs_ub2' ( shared 2-component vector of uint) 0:64 AtomicMax ( temp 2-component vector of uint) 0:64 'gs_ua2' ( shared 2-component vector of uint) 0:64 'gs_ub2' ( shared 2-component vector of uint) 0:65 move second child to first child ( temp 2-component vector of uint) 0:65 'out_u2' ( temp 2-component vector of uint) 0:65 AtomicMax ( temp 2-component vector of uint) 0:65 'gs_ua2' ( shared 2-component vector of uint) 0:65 'gs_ub2' ( shared 2-component vector of uint) 0:66 AtomicMin ( temp 2-component vector of uint) 0:66 'gs_ua2' ( shared 2-component vector of uint) 0:66 'gs_ub2' ( shared 2-component vector of uint) 0:67 move second child to first child ( temp 2-component vector of uint) 0:67 'out_u2' ( temp 2-component vector of uint) 0:67 AtomicMin ( temp 2-component vector of uint) 0:67 'gs_ua2' ( shared 2-component vector of uint) 0:67 'gs_ub2' ( shared 2-component vector of uint) 0:68 AtomicOr ( temp 2-component vector of uint) 0:68 'gs_ua2' ( shared 2-component vector of uint) 0:68 'gs_ub2' ( shared 2-component vector of uint) 0:69 move second child to first child ( temp 2-component vector of uint) 0:69 'out_u2' ( temp 2-component vector of uint) 0:69 AtomicOr ( temp 2-component vector of uint) 0:69 'gs_ua2' ( shared 2-component vector of uint) 0:69 'gs_ub2' ( shared 2-component vector of uint) 0:70 AtomicXor ( temp 2-component vector of uint) 0:70 'gs_ua2' ( shared 2-component vector of uint) 0:70 'gs_ub2' ( shared 2-component vector of uint) 0:71 move second child to first child ( temp 2-component vector of uint) 0:71 'out_u2' ( temp 2-component vector of uint) 0:71 AtomicXor ( temp 2-component vector of uint) 0:71 'gs_ua2' ( shared 2-component vector of uint) 0:71 'gs_ub2' ( shared 2-component vector of uint) 0:74 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) 0:78 Function Parameters: 0:78 'inF0' ( in 3-component vector of float) 0:78 'inF1' ( in 3-component vector of float) 0:78 'inF2' ( in 3-component vector of float) 0:78 'inU0' ( in 3-component vector of uint) 0:78 'inU1' ( in 3-component vector of uint) 0:? Sequence 0:82 all ( temp bool) 0:82 Convert float to bool ( temp 3-component vector of bool) 0:82 'inF0' ( in 3-component vector of float) 0:85 AtomicAdd ( temp 3-component vector of uint) 0:85 'gs_ua3' ( shared 3-component vector of uint) 0:85 'gs_ub3' ( shared 3-component vector of uint) 0:86 move second child to first child ( temp 3-component vector of uint) 0:86 'out_u3' ( temp 3-component vector of uint) 0:86 AtomicAdd ( temp 3-component vector of uint) 0:86 'gs_ua3' ( shared 3-component vector of uint) 0:86 'gs_ub3' ( shared 3-component vector of uint) 0:87 AtomicAnd ( temp 3-component vector of uint) 0:87 'gs_ua3' ( shared 3-component vector of uint) 0:87 'gs_ub3' ( shared 3-component vector of uint) 0:88 move second child to first child ( temp 3-component vector of uint) 0:88 'out_u3' ( temp 3-component vector of uint) 0:88 AtomicAnd ( temp 3-component vector of uint) 0:88 'gs_ua3' ( shared 3-component vector of uint) 0:88 'gs_ub3' ( shared 3-component vector of uint) 0:89 move second child to first child ( temp 3-component vector of uint) 0:89 'out_u3' ( temp 3-component vector of uint) 0:89 AtomicCompSwap ( temp 3-component vector of uint) 0:89 'gs_ua3' ( shared 3-component vector of uint) 0:89 'gs_ub3' ( shared 3-component vector of uint) 0:89 'gs_uc3' ( shared 3-component vector of uint) 0:90 move second child to first child ( temp 3-component vector of uint) 0:90 'out_u3' ( temp 3-component vector of uint) 0:90 AtomicExchange ( temp 3-component vector of uint) 0:90 'gs_ua3' ( shared 3-component vector of uint) 0:90 'gs_ub3' ( shared 3-component vector of uint) 0:91 AtomicMax ( temp 3-component vector of uint) 0:91 'gs_ua3' ( shared 3-component vector of uint) 0:91 'gs_ub3' ( shared 3-component vector of uint) 0:92 move second child to first child ( temp 3-component vector of uint) 0:92 'out_u3' ( temp 3-component vector of uint) 0:92 AtomicMax ( temp 3-component vector of uint) 0:92 'gs_ua3' ( shared 3-component vector of uint) 0:92 'gs_ub3' ( shared 3-component vector of uint) 0:93 AtomicMin ( temp 3-component vector of uint) 0:93 'gs_ua3' ( shared 3-component vector of uint) 0:93 'gs_ub3' ( shared 3-component vector of uint) 0:94 move second child to first child ( temp 3-component vector of uint) 0:94 'out_u3' ( temp 3-component vector of uint) 0:94 AtomicMin ( temp 3-component vector of uint) 0:94 'gs_ua3' ( shared 3-component vector of uint) 0:94 'gs_ub3' ( shared 3-component vector of uint) 0:95 AtomicOr ( temp 3-component vector of uint) 0:95 'gs_ua3' ( shared 3-component vector of uint) 0:95 'gs_ub3' ( shared 3-component vector of uint) 0:96 move second child to first child ( temp 3-component vector of uint) 0:96 'out_u3' ( temp 3-component vector of uint) 0:96 AtomicOr ( temp 3-component vector of uint) 0:96 'gs_ua3' ( shared 3-component vector of uint) 0:96 'gs_ub3' ( shared 3-component vector of uint) 0:97 AtomicXor ( temp 3-component vector of uint) 0:97 'gs_ua3' ( shared 3-component vector of uint) 0:97 'gs_ub3' ( shared 3-component vector of uint) 0:98 move second child to first child ( temp 3-component vector of uint) 0:98 'out_u3' ( temp 3-component vector of uint) 0:98 AtomicXor ( temp 3-component vector of uint) 0:98 'gs_ua3' ( shared 3-component vector of uint) 0:98 'gs_ub3' ( shared 3-component vector of uint) 0:101 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:105 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) 0:105 Function Parameters: 0:105 'inF0' ( in 4-component vector of float) 0:105 'inF1' ( in 4-component vector of float) 0:105 'inF2' ( in 4-component vector of float) 0:105 'inU0' ( in 4-component vector of uint) 0:105 'inU1' ( in 4-component vector of uint) 0:? Sequence 0:109 all ( temp bool) 0:109 Convert float to bool ( temp 4-component vector of bool) 0:109 'inF0' ( in 4-component vector of float) 0:112 AtomicAdd ( temp 4-component vector of uint) 0:112 'gs_ua4' ( shared 4-component vector of uint) 0:112 'gs_ub4' ( shared 4-component vector of uint) 0:113 move second child to first child ( temp 4-component vector of uint) 0:113 'out_u4' ( temp 4-component vector of uint) 0:113 AtomicAdd ( temp 4-component vector of uint) 0:113 'gs_ua4' ( shared 4-component vector of uint) 0:113 'gs_ub4' ( shared 4-component vector of uint) 0:114 AtomicAnd ( temp 4-component vector of uint) 0:114 'gs_ua4' ( shared 4-component vector of uint) 0:114 'gs_ub4' ( shared 4-component vector of uint) 0:115 move second child to first child ( temp 4-component vector of uint) 0:115 'out_u4' ( temp 4-component vector of uint) 0:115 AtomicAnd ( temp 4-component vector of uint) 0:115 'gs_ua4' ( shared 4-component vector of uint) 0:115 'gs_ub4' ( shared 4-component vector of uint) 0:116 move second child to first child ( temp 4-component vector of uint) 0:116 'out_u4' ( temp 4-component vector of uint) 0:116 AtomicCompSwap ( temp 4-component vector of uint) 0:116 'gs_ua4' ( shared 4-component vector of uint) 0:116 'gs_ub4' ( shared 4-component vector of uint) 0:116 'gs_uc4' ( shared 4-component vector of uint) 0:117 move second child to first child ( temp 4-component vector of uint) 0:117 'out_u4' ( temp 4-component vector of uint) 0:117 AtomicExchange ( temp 4-component vector of uint) 0:117 'gs_ua4' ( shared 4-component vector of uint) 0:117 'gs_ub4' ( shared 4-component vector of uint) 0:118 AtomicMax ( temp 4-component vector of uint) 0:118 'gs_ua4' ( shared 4-component vector of uint) 0:118 'gs_ub4' ( shared 4-component vector of uint) 0:119 move second child to first child ( temp 4-component vector of uint) 0:119 'out_u4' ( temp 4-component vector of uint) 0:119 AtomicMax ( temp 4-component vector of uint) 0:119 'gs_ua4' ( shared 4-component vector of uint) 0:119 'gs_ub4' ( shared 4-component vector of uint) 0:120 AtomicMin ( temp 4-component vector of uint) 0:120 'gs_ua4' ( shared 4-component vector of uint) 0:120 'gs_ub4' ( shared 4-component vector of uint) 0:121 move second child to first child ( temp 4-component vector of uint) 0:121 'out_u4' ( temp 4-component vector of uint) 0:121 AtomicMin ( temp 4-component vector of uint) 0:121 'gs_ua4' ( shared 4-component vector of uint) 0:121 'gs_ub4' ( shared 4-component vector of uint) 0:122 AtomicOr ( temp 4-component vector of uint) 0:122 'gs_ua4' ( shared 4-component vector of uint) 0:122 'gs_ub4' ( shared 4-component vector of uint) 0:123 move second child to first child ( temp 4-component vector of uint) 0:123 'out_u4' ( temp 4-component vector of uint) 0:123 AtomicOr ( temp 4-component vector of uint) 0:123 'gs_ua4' ( shared 4-component vector of uint) 0:123 'gs_ub4' ( shared 4-component vector of uint) 0:124 AtomicXor ( temp 4-component vector of uint) 0:124 'gs_ua4' ( shared 4-component vector of uint) 0:124 'gs_ub4' ( shared 4-component vector of uint) 0:125 move second child to first child ( temp 4-component vector of uint) 0:125 'out_u4' ( temp 4-component vector of uint) 0:125 AtomicXor ( temp 4-component vector of uint) 0:125 'gs_ua4' ( shared 4-component vector of uint) 0:125 'gs_ub4' ( shared 4-component vector of uint) 0:128 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:105 Function Definition: ComputeShaderFunction( ( temp void) 0:105 Function Parameters: 0:? Sequence 0:105 move second child to first child ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:105 move second child to first child ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:105 move second child to first child ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:105 move second child to first child ( temp 4-component vector of uint) 0:? 'inU0' ( temp 4-component vector of uint) 0:? 'inU0' (layout( location=3) in 4-component vector of uint) 0:105 move second child to first child ( temp 4-component vector of uint) 0:? 'inU1' ( temp 4-component vector of uint) 0:? 'inU1' (layout( location=4) in 4-component vector of uint) 0:105 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:105 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inU0' ( temp 4-component vector of uint) 0:? 'inU1' ( temp 4-component vector of uint) 0:? Linker Objects 0:? 'gs_ua' ( shared uint) 0:? 'gs_ub' ( shared uint) 0:? 'gs_uc' ( shared uint) 0:? 'gs_ua2' ( shared 2-component vector of uint) 0:? 'gs_ub2' ( shared 2-component vector of uint) 0:? 'gs_uc2' ( shared 2-component vector of uint) 0:? 'gs_ua3' ( shared 3-component vector of uint) 0:? 'gs_ub3' ( shared 3-component vector of uint) 0:? 'gs_uc3' ( shared 3-component vector of uint) 0:? 'gs_ua4' ( shared 4-component vector of uint) 0:? 'gs_ub4' ( shared 4-component vector of uint) 0:? 'gs_uc4' ( shared 4-component vector of uint) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:? 'inU0' (layout( location=3) in 4-component vector of uint) 0:? 'inU1' (layout( location=4) in 4-component vector of uint) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 265 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "ComputeShaderFunction" 237 240 243 247 250 253 ExecutionMode 4 LocalSize 1 1 1 Source HLSL 500 Name 4 "ComputeShaderFunction" Name 16 "ComputeShaderFunctionS(f1;f1;f1;u1;u1;" Name 11 "inF0" Name 12 "inF1" Name 13 "inF2" Name 14 "inU0" Name 15 "inU1" Name 22 "ComputeShaderFunction1(vf1;vf1;vf1;" Name 19 "inF0" Name 20 "inF1" Name 21 "inF2" Name 34 "ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2;" Name 29 "inF0" Name 30 "inF1" Name 31 "inF2" Name 32 "inU0" Name 33 "inU1" Name 46 "ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3;" Name 41 "inF0" Name 42 "inF1" Name 43 "inF2" Name 44 "inU0" Name 45 "inU1" Name 58 "@ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4;" Name 53 "inF0" Name 54 "inF1" Name 55 "inF2" Name 56 "inU0" Name 57 "inU1" Name 66 "gs_ua" Name 67 "gs_ub" Name 72 "out_u1" Name 80 "gs_uc" Name 111 "gs_ua2" Name 112 "gs_ub2" Name 115 "out_u2" Name 123 "gs_uc2" Name 155 "gs_ua3" Name 156 "gs_ub3" Name 159 "out_u3" Name 167 "gs_uc3" Name 198 "gs_ua4" Name 199 "gs_ub4" Name 202 "out_u4" Name 210 "gs_uc4" Name 235 "inF0" Name 237 "inF0" Name 239 "inF1" Name 240 "inF1" Name 242 "inF2" Name 243 "inF2" Name 245 "inU0" Name 247 "inU0" Name 249 "inU1" Name 250 "inU1" Name 253 "@entryPointOutput" Name 254 "param" Name 256 "param" Name 258 "param" Name 260 "param" Name 262 "param" Decorate 237(inF0) Location 0 Decorate 240(inF1) Location 1 Decorate 243(inF2) Location 2 Decorate 247(inU0) Location 3 Decorate 250(inU1) Location 4 Decorate 253(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeInt 32 0 9: TypePointer Function 8(int) 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) 9(ptr) 18: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 24: TypeVector 6(float) 2 25: TypePointer Function 24(fvec2) 26: TypeVector 8(int) 2 27: TypePointer Function 26(ivec2) 28: TypeFunction 24(fvec2) 25(ptr) 25(ptr) 25(ptr) 27(ptr) 27(ptr) 36: TypeVector 6(float) 3 37: TypePointer Function 36(fvec3) 38: TypeVector 8(int) 3 39: TypePointer Function 38(ivec3) 40: TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr) 48: TypeVector 6(float) 4 49: TypePointer Function 48(fvec4) 50: TypeVector 8(int) 4 51: TypePointer Function 50(ivec4) 52: TypeFunction 48(fvec4) 49(ptr) 49(ptr) 49(ptr) 51(ptr) 51(ptr) 61: TypeBool 62: 6(float) Constant 0 65: TypePointer Workgroup 8(int) 66(gs_ua): 65(ptr) Variable Workgroup 67(gs_ub): 65(ptr) Variable Workgroup 69: 8(int) Constant 1 70: 8(int) Constant 0 80(gs_uc): 65(ptr) Variable Workgroup 106: TypeVector 61(bool) 2 107: 24(fvec2) ConstantComposite 62 62 110: TypePointer Workgroup 26(ivec2) 111(gs_ua2): 110(ptr) Variable Workgroup 112(gs_ub2): 110(ptr) Variable Workgroup 123(gs_uc2): 110(ptr) Variable Workgroup 144: 6(float) Constant 1065353216 145: 6(float) Constant 1073741824 146: 24(fvec2) ConstantComposite 144 145 150: TypeVector 61(bool) 3 151: 36(fvec3) ConstantComposite 62 62 62 154: TypePointer Workgroup 38(ivec3) 155(gs_ua3): 154(ptr) Variable Workgroup 156(gs_ub3): 154(ptr) Variable Workgroup 167(gs_uc3): 154(ptr) Variable Workgroup 188: 6(float) Constant 1077936128 189: 36(fvec3) ConstantComposite 144 145 188 193: TypeVector 61(bool) 4 194: 48(fvec4) ConstantComposite 62 62 62 62 197: TypePointer Workgroup 50(ivec4) 198(gs_ua4): 197(ptr) Variable Workgroup 199(gs_ub4): 197(ptr) Variable Workgroup 210(gs_uc4): 197(ptr) Variable Workgroup 231: 6(float) Constant 1082130432 232: 48(fvec4) ConstantComposite 144 145 188 231 236: TypePointer Input 48(fvec4) 237(inF0): 236(ptr) Variable Input 240(inF1): 236(ptr) Variable Input 243(inF2): 236(ptr) Variable Input 246: TypePointer Input 50(ivec4) 247(inU0): 246(ptr) Variable Input 250(inU1): 246(ptr) Variable Input 252: TypePointer Output 48(fvec4) 253(@entryPointOutput): 252(ptr) Variable Output 4(ComputeShaderFunction): 2 Function None 3 5: Label 235(inF0): 49(ptr) Variable Function 239(inF1): 49(ptr) Variable Function 242(inF2): 49(ptr) Variable Function 245(inU0): 51(ptr) Variable Function 249(inU1): 51(ptr) Variable Function 254(param): 49(ptr) Variable Function 256(param): 49(ptr) Variable Function 258(param): 49(ptr) Variable Function 260(param): 51(ptr) Variable Function 262(param): 51(ptr) Variable Function 238: 48(fvec4) Load 237(inF0) Store 235(inF0) 238 241: 48(fvec4) Load 240(inF1) Store 239(inF1) 241 244: 48(fvec4) Load 243(inF2) Store 242(inF2) 244 248: 50(ivec4) Load 247(inU0) Store 245(inU0) 248 251: 50(ivec4) Load 250(inU1) Store 249(inU1) 251 255: 48(fvec4) Load 235(inF0) Store 254(param) 255 257: 48(fvec4) Load 239(inF1) Store 256(param) 257 259: 48(fvec4) Load 242(inF2) Store 258(param) 259 261: 50(ivec4) Load 245(inU0) Store 260(param) 261 263: 50(ivec4) Load 249(inU1) Store 262(param) 263 264: 48(fvec4) FunctionCall 58(@ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4;) 254(param) 256(param) 258(param) 260(param) 262(param) Store 253(@entryPointOutput) 264 Return FunctionEnd 16(ComputeShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter 12(inF1): 7(ptr) FunctionParameter 13(inF2): 7(ptr) FunctionParameter 14(inU0): 9(ptr) FunctionParameter 15(inU1): 9(ptr) FunctionParameter 17: Label 72(out_u1): 9(ptr) Variable Function 60: 6(float) Load 11(inF0) 63: 61(bool) FOrdNotEqual 60 62 64: 61(bool) All 63 68: 8(int) Load 67(gs_ub) 71: 8(int) AtomicIAdd 66(gs_ua) 69 70 68 73: 8(int) Load 67(gs_ub) 74: 8(int) AtomicIAdd 66(gs_ua) 69 70 73 Store 72(out_u1) 74 75: 8(int) Load 67(gs_ub) 76: 8(int) AtomicAnd 66(gs_ua) 69 70 75 77: 8(int) Load 67(gs_ub) 78: 8(int) AtomicAnd 66(gs_ua) 69 70 77 Store 72(out_u1) 78 79: 8(int) Load 67(gs_ub) 81: 8(int) Load 80(gs_uc) 82: 8(int) AtomicCompareExchange 66(gs_ua) 69 70 70 81 79 Store 72(out_u1) 82 83: 8(int) Load 67(gs_ub) 84: 8(int) AtomicExchange 66(gs_ua) 69 70 83 Store 72(out_u1) 84 85: 8(int) Load 67(gs_ub) 86: 8(int) AtomicUMax 66(gs_ua) 69 70 85 87: 8(int) Load 67(gs_ub) 88: 8(int) AtomicUMax 66(gs_ua) 69 70 87 Store 72(out_u1) 88 89: 8(int) Load 67(gs_ub) 90: 8(int) AtomicUMin 66(gs_ua) 69 70 89 91: 8(int) Load 67(gs_ub) 92: 8(int) AtomicUMin 66(gs_ua) 69 70 91 Store 72(out_u1) 92 93: 8(int) Load 67(gs_ub) 94: 8(int) AtomicOr 66(gs_ua) 69 70 93 95: 8(int) Load 67(gs_ub) 96: 8(int) AtomicOr 66(gs_ua) 69 70 95 Store 72(out_u1) 96 97: 8(int) Load 67(gs_ub) 98: 8(int) AtomicXor 66(gs_ua) 69 70 97 99: 8(int) Load 67(gs_ub) 100: 8(int) AtomicXor 66(gs_ua) 69 70 99 Store 72(out_u1) 100 ReturnValue 62 FunctionEnd 22(ComputeShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18 19(inF0): 7(ptr) FunctionParameter 20(inF1): 7(ptr) FunctionParameter 21(inF2): 7(ptr) FunctionParameter 23: Label ReturnValue 62 FunctionEnd 34(ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 29(inF0): 25(ptr) FunctionParameter 30(inF1): 25(ptr) FunctionParameter 31(inF2): 25(ptr) FunctionParameter 32(inU0): 27(ptr) FunctionParameter 33(inU1): 27(ptr) FunctionParameter 35: Label 115(out_u2): 27(ptr) Variable Function 105: 24(fvec2) Load 29(inF0) 108: 106(bvec2) FOrdNotEqual 105 107 109: 61(bool) All 108 113: 26(ivec2) Load 112(gs_ub2) 114: 26(ivec2) AtomicIAdd 111(gs_ua2) 69 70 113 116: 26(ivec2) Load 112(gs_ub2) 117: 26(ivec2) AtomicIAdd 111(gs_ua2) 69 70 116 Store 115(out_u2) 117 118: 26(ivec2) Load 112(gs_ub2) 119: 26(ivec2) AtomicAnd 111(gs_ua2) 69 70 118 120: 26(ivec2) Load 112(gs_ub2) 121: 26(ivec2) AtomicAnd 111(gs_ua2) 69 70 120 Store 115(out_u2) 121 122: 26(ivec2) Load 112(gs_ub2) 124: 26(ivec2) Load 123(gs_uc2) 125: 26(ivec2) AtomicCompareExchange 111(gs_ua2) 69 70 70 124 122 Store 115(out_u2) 125 126: 26(ivec2) Load 112(gs_ub2) 127: 26(ivec2) AtomicExchange 111(gs_ua2) 69 70 126 Store 115(out_u2) 127 128: 26(ivec2) Load 112(gs_ub2) 129: 26(ivec2) AtomicUMax 111(gs_ua2) 69 70 128 130: 26(ivec2) Load 112(gs_ub2) 131: 26(ivec2) AtomicUMax 111(gs_ua2) 69 70 130 Store 115(out_u2) 131 132: 26(ivec2) Load 112(gs_ub2) 133: 26(ivec2) AtomicUMin 111(gs_ua2) 69 70 132 134: 26(ivec2) Load 112(gs_ub2) 135: 26(ivec2) AtomicUMin 111(gs_ua2) 69 70 134 Store 115(out_u2) 135 136: 26(ivec2) Load 112(gs_ub2) 137: 26(ivec2) AtomicOr 111(gs_ua2) 69 70 136 138: 26(ivec2) Load 112(gs_ub2) 139: 26(ivec2) AtomicOr 111(gs_ua2) 69 70 138 Store 115(out_u2) 139 140: 26(ivec2) Load 112(gs_ub2) 141: 26(ivec2) AtomicXor 111(gs_ua2) 69 70 140 142: 26(ivec2) Load 112(gs_ub2) 143: 26(ivec2) AtomicXor 111(gs_ua2) 69 70 142 Store 115(out_u2) 143 ReturnValue 146 FunctionEnd 46(ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 41(inF0): 37(ptr) FunctionParameter 42(inF1): 37(ptr) FunctionParameter 43(inF2): 37(ptr) FunctionParameter 44(inU0): 39(ptr) FunctionParameter 45(inU1): 39(ptr) FunctionParameter 47: Label 159(out_u3): 39(ptr) Variable Function 149: 36(fvec3) Load 41(inF0) 152: 150(bvec3) FOrdNotEqual 149 151 153: 61(bool) All 152 157: 38(ivec3) Load 156(gs_ub3) 158: 38(ivec3) AtomicIAdd 155(gs_ua3) 69 70 157 160: 38(ivec3) Load 156(gs_ub3) 161: 38(ivec3) AtomicIAdd 155(gs_ua3) 69 70 160 Store 159(out_u3) 161 162: 38(ivec3) Load 156(gs_ub3) 163: 38(ivec3) AtomicAnd 155(gs_ua3) 69 70 162 164: 38(ivec3) Load 156(gs_ub3) 165: 38(ivec3) AtomicAnd 155(gs_ua3) 69 70 164 Store 159(out_u3) 165 166: 38(ivec3) Load 156(gs_ub3) 168: 38(ivec3) Load 167(gs_uc3) 169: 38(ivec3) AtomicCompareExchange 155(gs_ua3) 69 70 70 168 166 Store 159(out_u3) 169 170: 38(ivec3) Load 156(gs_ub3) 171: 38(ivec3) AtomicExchange 155(gs_ua3) 69 70 170 Store 159(out_u3) 171 172: 38(ivec3) Load 156(gs_ub3) 173: 38(ivec3) AtomicUMax 155(gs_ua3) 69 70 172 174: 38(ivec3) Load 156(gs_ub3) 175: 38(ivec3) AtomicUMax 155(gs_ua3) 69 70 174 Store 159(out_u3) 175 176: 38(ivec3) Load 156(gs_ub3) 177: 38(ivec3) AtomicUMin 155(gs_ua3) 69 70 176 178: 38(ivec3) Load 156(gs_ub3) 179: 38(ivec3) AtomicUMin 155(gs_ua3) 69 70 178 Store 159(out_u3) 179 180: 38(ivec3) Load 156(gs_ub3) 181: 38(ivec3) AtomicOr 155(gs_ua3) 69 70 180 182: 38(ivec3) Load 156(gs_ub3) 183: 38(ivec3) AtomicOr 155(gs_ua3) 69 70 182 Store 159(out_u3) 183 184: 38(ivec3) Load 156(gs_ub3) 185: 38(ivec3) AtomicXor 155(gs_ua3) 69 70 184 186: 38(ivec3) Load 156(gs_ub3) 187: 38(ivec3) AtomicXor 155(gs_ua3) 69 70 186 Store 159(out_u3) 187 ReturnValue 189 FunctionEnd 58(@ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 53(inF0): 49(ptr) FunctionParameter 54(inF1): 49(ptr) FunctionParameter 55(inF2): 49(ptr) FunctionParameter 56(inU0): 51(ptr) FunctionParameter 57(inU1): 51(ptr) FunctionParameter 59: Label 202(out_u4): 51(ptr) Variable Function 192: 48(fvec4) Load 53(inF0) 195: 193(bvec4) FOrdNotEqual 192 194 196: 61(bool) All 195 200: 50(ivec4) Load 199(gs_ub4) 201: 50(ivec4) AtomicIAdd 198(gs_ua4) 69 70 200 203: 50(ivec4) Load 199(gs_ub4) 204: 50(ivec4) AtomicIAdd 198(gs_ua4) 69 70 203 Store 202(out_u4) 204 205: 50(ivec4) Load 199(gs_ub4) 206: 50(ivec4) AtomicAnd 198(gs_ua4) 69 70 205 207: 50(ivec4) Load 199(gs_ub4) 208: 50(ivec4) AtomicAnd 198(gs_ua4) 69 70 207 Store 202(out_u4) 208 209: 50(ivec4) Load 199(gs_ub4) 211: 50(ivec4) Load 210(gs_uc4) 212: 50(ivec4) AtomicCompareExchange 198(gs_ua4) 69 70 70 211 209 Store 202(out_u4) 212 213: 50(ivec4) Load 199(gs_ub4) 214: 50(ivec4) AtomicExchange 198(gs_ua4) 69 70 213 Store 202(out_u4) 214 215: 50(ivec4) Load 199(gs_ub4) 216: 50(ivec4) AtomicUMax 198(gs_ua4) 69 70 215 217: 50(ivec4) Load 199(gs_ub4) 218: 50(ivec4) AtomicUMax 198(gs_ua4) 69 70 217 Store 202(out_u4) 218 219: 50(ivec4) Load 199(gs_ub4) 220: 50(ivec4) AtomicUMin 198(gs_ua4) 69 70 219 221: 50(ivec4) Load 199(gs_ub4) 222: 50(ivec4) AtomicUMin 198(gs_ua4) 69 70 221 Store 202(out_u4) 222 223: 50(ivec4) Load 199(gs_ub4) 224: 50(ivec4) AtomicOr 198(gs_ua4) 69 70 223 225: 50(ivec4) Load 199(gs_ub4) 226: 50(ivec4) AtomicOr 198(gs_ua4) 69 70 225 Store 202(out_u4) 226 227: 50(ivec4) Load 199(gs_ub4) 228: 50(ivec4) AtomicXor 198(gs_ua4) 69 70 227 229: 50(ivec4) Load 199(gs_ub4) 230: 50(ivec4) AtomicXor 198(gs_ua4) 69 70 229 Store 202(out_u4) 230 ReturnValue 232 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out000066400000000000000000000127501360464450000267270ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.double.frag.out000066400000000000000000000400611360464450000247640ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.evalfns.frag.out000066400000000000000000000322531360464450000251540ustar00rootroot00000000000000hlsl.intrinsics.evalfns.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: @main(f1;vf2;vf3;vf4;vi2; ( temp void) 0:3 Function Parameters: 0:3 'inF1' ( in float) 0:3 'inF2' ( in 2-component vector of float) 0:3 'inF3' ( in 3-component vector of float) 0:3 'inF4' ( in 4-component vector of float) 0:3 'inI2' ( in 2-component vector of int) 0:? Sequence 0:4 interpolateAtOffset ( temp float) 0:4 'inF1' ( in float) 0:? Constant: 0:? -0.500000 0:? -0.062500 0:5 interpolateAtOffset ( temp 2-component vector of float) 0:5 'inF2' ( in 2-component vector of float) 0:? Constant: 0:? 0.000000 0:? 0.062500 0:6 interpolateAtOffset ( temp 3-component vector of float) 0:6 'inF3' ( in 3-component vector of float) 0:? Constant: 0:? 0.187500 0:? -0.375000 0:7 interpolateAtOffset ( temp 4-component vector of float) 0:7 'inF4' ( in 4-component vector of float) 0:? Constant: 0:? 0.437500 0:? -0.500000 0:9 interpolateAtOffset ( temp float) 0:9 'inF1' ( in float) 0:9 vector-scale ( temp 2-component vector of float) 0:9 Convert int to float ( temp 2-component vector of float) 0:9 right-shift ( temp 2-component vector of int) 0:9 left-shift ( temp 2-component vector of int) 0:9 'inI2' ( in 2-component vector of int) 0:9 Constant: 0:9 28 (const int) 0:9 Constant: 0:9 28 (const int) 0:9 Constant: 0:9 0.062500 0:3 Function Definition: main( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:3 move second child to first child ( temp float) 0:? 'inF1' ( temp float) 0:? 'inF1' (layout( location=0) in float) 0:3 move second child to first child ( temp 2-component vector of float) 0:? 'inF2' ( temp 2-component vector of float) 0:? 'inF2' (layout( location=1) in 2-component vector of float) 0:3 move second child to first child ( temp 3-component vector of float) 0:? 'inF3' ( temp 3-component vector of float) 0:? 'inF3' (layout( location=2) in 3-component vector of float) 0:3 move second child to first child ( temp 4-component vector of float) 0:? 'inF4' ( temp 4-component vector of float) 0:? 'inF4' (layout( location=3) in 4-component vector of float) 0:3 move second child to first child ( temp 2-component vector of int) 0:? 'inI2' ( temp 2-component vector of int) 0:? 'inI2' (layout( location=4) flat in 2-component vector of int) 0:3 Function Call: @main(f1;vf2;vf3;vf4;vi2; ( temp void) 0:? 'inF1' ( temp float) 0:? 'inF2' ( temp 2-component vector of float) 0:? 'inF3' ( temp 3-component vector of float) 0:? 'inF4' ( temp 4-component vector of float) 0:? 'inI2' ( temp 2-component vector of int) 0:? Linker Objects 0:? 'inF1' (layout( location=0) in float) 0:? 'inF2' (layout( location=1) in 2-component vector of float) 0:? 'inF3' (layout( location=2) in 3-component vector of float) 0:? 'inF4' (layout( location=3) in 4-component vector of float) 0:? 'inI2' (layout( location=4) flat in 2-component vector of int) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: @main(f1;vf2;vf3;vf4;vi2; ( temp void) 0:3 Function Parameters: 0:3 'inF1' ( in float) 0:3 'inF2' ( in 2-component vector of float) 0:3 'inF3' ( in 3-component vector of float) 0:3 'inF4' ( in 4-component vector of float) 0:3 'inI2' ( in 2-component vector of int) 0:? Sequence 0:4 interpolateAtOffset ( temp float) 0:4 'inF1' ( in float) 0:? Constant: 0:? -0.500000 0:? -0.062500 0:5 interpolateAtOffset ( temp 2-component vector of float) 0:5 'inF2' ( in 2-component vector of float) 0:? Constant: 0:? 0.000000 0:? 0.062500 0:6 interpolateAtOffset ( temp 3-component vector of float) 0:6 'inF3' ( in 3-component vector of float) 0:? Constant: 0:? 0.187500 0:? -0.375000 0:7 interpolateAtOffset ( temp 4-component vector of float) 0:7 'inF4' ( in 4-component vector of float) 0:? Constant: 0:? 0.437500 0:? -0.500000 0:9 interpolateAtOffset ( temp float) 0:9 'inF1' ( in float) 0:9 vector-scale ( temp 2-component vector of float) 0:9 Convert int to float ( temp 2-component vector of float) 0:9 right-shift ( temp 2-component vector of int) 0:9 left-shift ( temp 2-component vector of int) 0:9 'inI2' ( in 2-component vector of int) 0:9 Constant: 0:9 28 (const int) 0:9 Constant: 0:9 28 (const int) 0:9 Constant: 0:9 0.062500 0:3 Function Definition: main( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:3 move second child to first child ( temp float) 0:? 'inF1' ( temp float) 0:? 'inF1' (layout( location=0) in float) 0:3 move second child to first child ( temp 2-component vector of float) 0:? 'inF2' ( temp 2-component vector of float) 0:? 'inF2' (layout( location=1) in 2-component vector of float) 0:3 move second child to first child ( temp 3-component vector of float) 0:? 'inF3' ( temp 3-component vector of float) 0:? 'inF3' (layout( location=2) in 3-component vector of float) 0:3 move second child to first child ( temp 4-component vector of float) 0:? 'inF4' ( temp 4-component vector of float) 0:? 'inF4' (layout( location=3) in 4-component vector of float) 0:3 move second child to first child ( temp 2-component vector of int) 0:? 'inI2' ( temp 2-component vector of int) 0:? 'inI2' (layout( location=4) flat in 2-component vector of int) 0:3 Function Call: @main(f1;vf2;vf3;vf4;vi2; ( temp void) 0:? 'inF1' ( temp float) 0:? 'inF2' ( temp 2-component vector of float) 0:? 'inF3' ( temp 3-component vector of float) 0:? 'inF4' ( temp 4-component vector of float) 0:? 'inI2' ( temp 2-component vector of int) 0:? Linker Objects 0:? 'inF1' (layout( location=0) in float) 0:? 'inF2' (layout( location=1) in 2-component vector of float) 0:? 'inF3' (layout( location=2) in 3-component vector of float) 0:? 'inF4' (layout( location=3) in 4-component vector of float) 0:? 'inI2' (layout( location=4) flat in 2-component vector of int) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 80 Capability Shader Capability InterpolationFunction 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 51 55 59 63 67 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 23 "@main(f1;vf2;vf3;vf4;vi2;" Name 18 "inF1" Name 19 "inF2" Name 20 "inF3" Name 21 "inF4" Name 22 "inI2" Name 49 "inF1" Name 51 "inF1" Name 53 "inF2" Name 55 "inF2" Name 57 "inF3" Name 59 "inF3" Name 61 "inF4" Name 63 "inF4" Name 65 "inI2" Name 67 "inI2" Name 69 "param" Name 71 "param" Name 73 "param" Name 75 "param" Name 77 "param" Decorate 51(inF1) Location 0 Decorate 55(inF2) Location 1 Decorate 59(inF3) Location 2 Decorate 63(inF4) Location 3 Decorate 67(inI2) Flat Decorate 67(inI2) Location 4 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeVector 6(float) 2 9: TypePointer Function 8(fvec2) 10: TypeVector 6(float) 3 11: TypePointer Function 10(fvec3) 12: TypeVector 6(float) 4 13: TypePointer Function 12(fvec4) 14: TypeInt 32 1 15: TypeVector 14(int) 2 16: TypePointer Function 15(ivec2) 17: TypeFunction 2 7(ptr) 9(ptr) 11(ptr) 13(ptr) 16(ptr) 25: 6(float) Constant 3204448256 26: 6(float) Constant 3179282432 27: 8(fvec2) ConstantComposite 25 26 29: 6(float) Constant 0 30: 6(float) Constant 1031798784 31: 8(fvec2) ConstantComposite 29 30 33: 6(float) Constant 1044381696 34: 6(float) Constant 3200253952 35: 8(fvec2) ConstantComposite 33 34 37: 6(float) Constant 1054867456 38: 8(fvec2) ConstantComposite 37 25 41: 14(int) Constant 28 50: TypePointer Input 6(float) 51(inF1): 50(ptr) Variable Input 54: TypePointer Input 8(fvec2) 55(inF2): 54(ptr) Variable Input 58: TypePointer Input 10(fvec3) 59(inF3): 58(ptr) Variable Input 62: TypePointer Input 12(fvec4) 63(inF4): 62(ptr) Variable Input 66: TypePointer Input 15(ivec2) 67(inI2): 66(ptr) Variable Input 4(main): 2 Function None 3 5: Label 49(inF1): 7(ptr) Variable Function 53(inF2): 9(ptr) Variable Function 57(inF3): 11(ptr) Variable Function 61(inF4): 13(ptr) Variable Function 65(inI2): 16(ptr) Variable Function 69(param): 7(ptr) Variable Function 71(param): 9(ptr) Variable Function 73(param): 11(ptr) Variable Function 75(param): 13(ptr) Variable Function 77(param): 16(ptr) Variable Function 52: 6(float) Load 51(inF1) Store 49(inF1) 52 56: 8(fvec2) Load 55(inF2) Store 53(inF2) 56 60: 10(fvec3) Load 59(inF3) Store 57(inF3) 60 64: 12(fvec4) Load 63(inF4) Store 61(inF4) 64 68: 15(ivec2) Load 67(inI2) Store 65(inI2) 68 70: 6(float) Load 49(inF1) Store 69(param) 70 72: 8(fvec2) Load 53(inF2) Store 71(param) 72 74: 10(fvec3) Load 57(inF3) Store 73(param) 74 76: 12(fvec4) Load 61(inF4) Store 75(param) 76 78: 15(ivec2) Load 65(inI2) Store 77(param) 78 79: 2 FunctionCall 23(@main(f1;vf2;vf3;vf4;vi2;) 69(param) 71(param) 73(param) 75(param) 77(param) Return FunctionEnd 23(@main(f1;vf2;vf3;vf4;vi2;): 2 Function None 17 18(inF1): 7(ptr) FunctionParameter 19(inF2): 9(ptr) FunctionParameter 20(inF3): 11(ptr) FunctionParameter 21(inF4): 13(ptr) FunctionParameter 22(inI2): 16(ptr) FunctionParameter 24: Label 28: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 18(inF1) 27 32: 8(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 19(inF2) 31 36: 10(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 20(inF3) 35 39: 12(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 21(inF4) 38 40: 15(ivec2) Load 22(inI2) 42: 15(ivec2) CompositeConstruct 41 41 43: 15(ivec2) ShiftLeftLogical 40 42 44: 15(ivec2) CompositeConstruct 41 41 45: 15(ivec2) ShiftRightArithmetic 43 44 46: 8(fvec2) ConvertSToF 45 47: 8(fvec2) VectorTimesScalar 46 30 48: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 18(inF1) 47 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.f1632.frag.out000066400000000000000000000414231360464450000242560ustar00rootroot00000000000000hlsl.intrinsics.f1632.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:2 Function Definition: PixelShaderFunctionS(u1; ( temp float) 0:2 Function Parameters: 0:2 'inF0' ( in uint) 0:? Sequence 0:3 Branch: Return with expression 0:3 direct index ( temp float) 0:3 unpackHalf2x16 ( temp 2-component vector of float) 0:3 'inF0' ( in uint) 0:3 Constant: 0:3 0 (const int) 0:7 Function Definition: PixelShaderFunction1(vu1; ( temp 1-component vector of float) 0:7 Function Parameters: 0:7 'inF0' ( in 1-component vector of uint) 0:? Sequence 0:8 Branch: Return with expression 0:8 Constant: 0:8 0.000000 0:12 Function Definition: PixelShaderFunction2(vu2; ( temp 2-component vector of float) 0:12 Function Parameters: 0:12 'inF0' ( in 2-component vector of uint) 0:? Sequence 0:13 Branch: Return with expression 0:13 Construct vec2 ( temp 2-component vector of float) 0:13 direct index ( temp float) 0:13 unpackHalf2x16 ( temp 2-component vector of float) 0:13 direct index ( temp uint) 0:13 'inF0' ( in 2-component vector of uint) 0:13 Constant: 0:13 0 (const int) 0:13 Constant: 0:13 0 (const int) 0:13 direct index ( temp float) 0:13 unpackHalf2x16 ( temp 2-component vector of float) 0:13 direct index ( temp uint) 0:13 'inF0' ( in 2-component vector of uint) 0:13 Constant: 0:13 1 (const int) 0:13 Constant: 0:13 0 (const int) 0:17 Function Definition: PixelShaderFunction3(vu3; ( temp 3-component vector of float) 0:17 Function Parameters: 0:17 'inF0' ( in 3-component vector of uint) 0:? Sequence 0:18 Branch: Return with expression 0:18 Construct vec3 ( temp 3-component vector of float) 0:18 direct index ( temp float) 0:18 unpackHalf2x16 ( temp 2-component vector of float) 0:18 direct index ( temp uint) 0:18 'inF0' ( in 3-component vector of uint) 0:18 Constant: 0:18 0 (const int) 0:18 Constant: 0:18 0 (const int) 0:18 direct index ( temp float) 0:18 unpackHalf2x16 ( temp 2-component vector of float) 0:18 direct index ( temp uint) 0:18 'inF0' ( in 3-component vector of uint) 0:18 Constant: 0:18 1 (const int) 0:18 Constant: 0:18 0 (const int) 0:18 direct index ( temp float) 0:18 unpackHalf2x16 ( temp 2-component vector of float) 0:18 direct index ( temp uint) 0:18 'inF0' ( in 3-component vector of uint) 0:18 Constant: 0:18 2 (const int) 0:18 Constant: 0:18 0 (const int) 0:22 Function Definition: PixelShaderFunction(vu4; ( temp 4-component vector of float) 0:22 Function Parameters: 0:22 'inF0' ( in 4-component vector of uint) 0:? Sequence 0:23 Branch: Return with expression 0:23 Construct vec4 ( temp 4-component vector of float) 0:23 direct index ( temp float) 0:23 unpackHalf2x16 ( temp 2-component vector of float) 0:23 direct index ( temp uint) 0:23 'inF0' ( in 4-component vector of uint) 0:23 Constant: 0:23 0 (const int) 0:23 Constant: 0:23 0 (const int) 0:23 direct index ( temp float) 0:23 unpackHalf2x16 ( temp 2-component vector of float) 0:23 direct index ( temp uint) 0:23 'inF0' ( in 4-component vector of uint) 0:23 Constant: 0:23 1 (const int) 0:23 Constant: 0:23 0 (const int) 0:23 direct index ( temp float) 0:23 unpackHalf2x16 ( temp 2-component vector of float) 0:23 direct index ( temp uint) 0:23 'inF0' ( in 4-component vector of uint) 0:23 Constant: 0:23 2 (const int) 0:23 Constant: 0:23 0 (const int) 0:23 direct index ( temp float) 0:23 unpackHalf2x16 ( temp 2-component vector of float) 0:23 direct index ( temp uint) 0:23 'inF0' ( in 4-component vector of uint) 0:23 Constant: 0:23 3 (const int) 0:23 Constant: 0:23 0 (const int) 0:27 Function Definition: @main( ( temp 4-component vector of float) 0:27 Function Parameters: 0:? Sequence 0:28 Branch: Return with expression 0:28 Constant: 0:28 0.000000 0:28 0.000000 0:28 0.000000 0:28 0.000000 0:27 Function Definition: main( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:27 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:2 Function Definition: PixelShaderFunctionS(u1; ( temp float) 0:2 Function Parameters: 0:2 'inF0' ( in uint) 0:? Sequence 0:3 Branch: Return with expression 0:3 direct index ( temp float) 0:3 unpackHalf2x16 ( temp 2-component vector of float) 0:3 'inF0' ( in uint) 0:3 Constant: 0:3 0 (const int) 0:7 Function Definition: PixelShaderFunction1(vu1; ( temp 1-component vector of float) 0:7 Function Parameters: 0:7 'inF0' ( in 1-component vector of uint) 0:? Sequence 0:8 Branch: Return with expression 0:8 Constant: 0:8 0.000000 0:12 Function Definition: PixelShaderFunction2(vu2; ( temp 2-component vector of float) 0:12 Function Parameters: 0:12 'inF0' ( in 2-component vector of uint) 0:? Sequence 0:13 Branch: Return with expression 0:13 Construct vec2 ( temp 2-component vector of float) 0:13 direct index ( temp float) 0:13 unpackHalf2x16 ( temp 2-component vector of float) 0:13 direct index ( temp uint) 0:13 'inF0' ( in 2-component vector of uint) 0:13 Constant: 0:13 0 (const int) 0:13 Constant: 0:13 0 (const int) 0:13 direct index ( temp float) 0:13 unpackHalf2x16 ( temp 2-component vector of float) 0:13 direct index ( temp uint) 0:13 'inF0' ( in 2-component vector of uint) 0:13 Constant: 0:13 1 (const int) 0:13 Constant: 0:13 0 (const int) 0:17 Function Definition: PixelShaderFunction3(vu3; ( temp 3-component vector of float) 0:17 Function Parameters: 0:17 'inF0' ( in 3-component vector of uint) 0:? Sequence 0:18 Branch: Return with expression 0:18 Construct vec3 ( temp 3-component vector of float) 0:18 direct index ( temp float) 0:18 unpackHalf2x16 ( temp 2-component vector of float) 0:18 direct index ( temp uint) 0:18 'inF0' ( in 3-component vector of uint) 0:18 Constant: 0:18 0 (const int) 0:18 Constant: 0:18 0 (const int) 0:18 direct index ( temp float) 0:18 unpackHalf2x16 ( temp 2-component vector of float) 0:18 direct index ( temp uint) 0:18 'inF0' ( in 3-component vector of uint) 0:18 Constant: 0:18 1 (const int) 0:18 Constant: 0:18 0 (const int) 0:18 direct index ( temp float) 0:18 unpackHalf2x16 ( temp 2-component vector of float) 0:18 direct index ( temp uint) 0:18 'inF0' ( in 3-component vector of uint) 0:18 Constant: 0:18 2 (const int) 0:18 Constant: 0:18 0 (const int) 0:22 Function Definition: PixelShaderFunction(vu4; ( temp 4-component vector of float) 0:22 Function Parameters: 0:22 'inF0' ( in 4-component vector of uint) 0:? Sequence 0:23 Branch: Return with expression 0:23 Construct vec4 ( temp 4-component vector of float) 0:23 direct index ( temp float) 0:23 unpackHalf2x16 ( temp 2-component vector of float) 0:23 direct index ( temp uint) 0:23 'inF0' ( in 4-component vector of uint) 0:23 Constant: 0:23 0 (const int) 0:23 Constant: 0:23 0 (const int) 0:23 direct index ( temp float) 0:23 unpackHalf2x16 ( temp 2-component vector of float) 0:23 direct index ( temp uint) 0:23 'inF0' ( in 4-component vector of uint) 0:23 Constant: 0:23 1 (const int) 0:23 Constant: 0:23 0 (const int) 0:23 direct index ( temp float) 0:23 unpackHalf2x16 ( temp 2-component vector of float) 0:23 direct index ( temp uint) 0:23 'inF0' ( in 4-component vector of uint) 0:23 Constant: 0:23 2 (const int) 0:23 Constant: 0:23 0 (const int) 0:23 direct index ( temp float) 0:23 unpackHalf2x16 ( temp 2-component vector of float) 0:23 direct index ( temp uint) 0:23 'inF0' ( in 4-component vector of uint) 0:23 Constant: 0:23 3 (const int) 0:23 Constant: 0:23 0 (const int) 0:27 Function Definition: @main( ( temp 4-component vector of float) 0:27 Function Parameters: 0:? Sequence 0:28 Branch: Return with expression 0:28 Constant: 0:28 0.000000 0:28 0.000000 0:28 0.000000 0:28 0.000000 0:27 Function Definition: main( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:27 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 103 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 101 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 11 "PixelShaderFunctionS(u1;" Name 10 "inF0" Name 14 "PixelShaderFunction1(vu1;" Name 13 "inF0" Name 21 "PixelShaderFunction2(vu2;" Name 20 "inF0" Name 28 "PixelShaderFunction3(vu3;" Name 27 "inF0" Name 35 "PixelShaderFunction(vu4;" Name 34 "inF0" Name 38 "@main(" Name 101 "@entryPointOutput" Decorate 101(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 8: TypeFloat 32 9: TypeFunction 8(float) 7(ptr) 16: TypeVector 6(int) 2 17: TypePointer Function 16(ivec2) 18: TypeVector 8(float) 2 19: TypeFunction 18(fvec2) 17(ptr) 23: TypeVector 6(int) 3 24: TypePointer Function 23(ivec3) 25: TypeVector 8(float) 3 26: TypeFunction 25(fvec3) 24(ptr) 30: TypeVector 6(int) 4 31: TypePointer Function 30(ivec4) 32: TypeVector 8(float) 4 33: TypeFunction 32(fvec4) 31(ptr) 37: TypeFunction 32(fvec4) 42: 6(int) Constant 0 46: 8(float) Constant 0 53: 6(int) Constant 1 69: 6(int) Constant 2 89: 6(int) Constant 3 97: 32(fvec4) ConstantComposite 46 46 46 46 100: TypePointer Output 32(fvec4) 101(@entryPointOutput): 100(ptr) Variable Output 4(main): 2 Function None 3 5: Label 102: 32(fvec4) FunctionCall 38(@main() Store 101(@entryPointOutput) 102 Return FunctionEnd 11(PixelShaderFunctionS(u1;): 8(float) Function None 9 10(inF0): 7(ptr) FunctionParameter 12: Label 40: 6(int) Load 10(inF0) 41: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 40 43: 8(float) CompositeExtract 41 0 ReturnValue 43 FunctionEnd 14(PixelShaderFunction1(vu1;): 8(float) Function None 9 13(inF0): 7(ptr) FunctionParameter 15: Label ReturnValue 46 FunctionEnd 21(PixelShaderFunction2(vu2;): 18(fvec2) Function None 19 20(inF0): 17(ptr) FunctionParameter 22: Label 49: 7(ptr) AccessChain 20(inF0) 42 50: 6(int) Load 49 51: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 50 52: 8(float) CompositeExtract 51 0 54: 7(ptr) AccessChain 20(inF0) 53 55: 6(int) Load 54 56: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 55 57: 8(float) CompositeExtract 56 0 58: 18(fvec2) CompositeConstruct 52 57 ReturnValue 58 FunctionEnd 28(PixelShaderFunction3(vu3;): 25(fvec3) Function None 26 27(inF0): 24(ptr) FunctionParameter 29: Label 61: 7(ptr) AccessChain 27(inF0) 42 62: 6(int) Load 61 63: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 62 64: 8(float) CompositeExtract 63 0 65: 7(ptr) AccessChain 27(inF0) 53 66: 6(int) Load 65 67: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 66 68: 8(float) CompositeExtract 67 0 70: 7(ptr) AccessChain 27(inF0) 69 71: 6(int) Load 70 72: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 71 73: 8(float) CompositeExtract 72 0 74: 25(fvec3) CompositeConstruct 64 68 73 ReturnValue 74 FunctionEnd 35(PixelShaderFunction(vu4;): 32(fvec4) Function None 33 34(inF0): 31(ptr) FunctionParameter 36: Label 77: 7(ptr) AccessChain 34(inF0) 42 78: 6(int) Load 77 79: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 78 80: 8(float) CompositeExtract 79 0 81: 7(ptr) AccessChain 34(inF0) 53 82: 6(int) Load 81 83: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 82 84: 8(float) CompositeExtract 83 0 85: 7(ptr) AccessChain 34(inF0) 69 86: 6(int) Load 85 87: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 86 88: 8(float) CompositeExtract 87 0 90: 7(ptr) AccessChain 34(inF0) 89 91: 6(int) Load 90 92: 18(fvec2) ExtInst 1(GLSL.std.450) 62(UnpackHalf2x16) 91 93: 8(float) CompositeExtract 92 0 94: 32(fvec4) CompositeConstruct 80 84 88 93 ReturnValue 94 FunctionEnd 38(@main(): 32(fvec4) Function None 37 39: Label ReturnValue 97 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.f3216.frag.out000066400000000000000000000427771360464450000242730ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.frag.out000066400000000000000000014442151360464450000235250ustar00rootroot00000000000000hlsl.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:? bitCount ( temp 2-component vector of int) 0:? Constant: 0:? 7 (const int) 0:? 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:? findMSB ( temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 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:? findLSB ( temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 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:? bitFieldReverse ( temp 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 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:? Constant: 0:? 1.000000 0:? 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:? bitCount ( temp 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 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:? findMSB ( temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) 0:? 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:? findLSB ( temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) 0:? 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:? bitFieldReverse ( temp 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 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:? Constant: 0:? 1.000000 0:? 2.000000 0:? 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:? bitCount ( temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) 0: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:? findMSB ( temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:? 9 (const uint) 0:? 10 (const uint) 0: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:? findLSB ( temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:? 9 (const uint) 0:? 10 (const uint) 0: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:? bitFieldReverse ( temp 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) 0: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:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 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:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 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:? Constant: 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0: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:? Constant: 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0: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:? bitCount ( temp 2-component vector of int) 0:? Constant: 0:? 7 (const int) 0:? 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:? findMSB ( temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 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:? findLSB ( temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 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:? bitFieldReverse ( temp 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 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:? Constant: 0:? 1.000000 0:? 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:? bitCount ( temp 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 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:? findMSB ( temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) 0:? 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:? findLSB ( temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) 0:? 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:? bitFieldReverse ( temp 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 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:? Constant: 0:? 1.000000 0:? 2.000000 0:? 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:? bitCount ( temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) 0: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:? findMSB ( temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:? 9 (const uint) 0:? 10 (const uint) 0: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:? findLSB ( temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:? 9 (const uint) 0:? 10 (const uint) 0: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:? bitFieldReverse ( temp 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) 0: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:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 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:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 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:? Constant: 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0: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:? Constant: 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0: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): 80008 // 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) FOrdNotEqual 140 141 143: 137(bool) All 142 Store 139(r000) 143 145: 6(float) Load 13(inF0) 146: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 145 Store 144(r001) 146 148: 6(float) Load 13(inF0) 149: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 148 Store 147(r002) 149 151: 6(float) Load 13(inF0) 152: 137(bool) FOrdNotEqual 151 141 153: 137(bool) Any 152 Store 150(r003) 153 155: 6(float) Load 13(inF0) 156: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 155 Store 154(r004) 156 158: 6(float) Load 13(inF0) 159: 10(int) Bitcast 158 Store 157(r005) 159 161: 10(int) Load 17(inU1) 162: 8(int) Bitcast 161 Store 160(r006) 162 164: 8(int) Load 16(inU0) 165: 6(float) Bitcast 164 Store 163(r007) 165 167: 6(float) Load 13(inF0) 168: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 167 Store 166(r009) 168 170: 6(float) Load 13(inF0) 171: 6(float) Load 14(inF1) 172: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 170 171 Store 169(r010) 172 174: 6(float) Load 13(inF0) 175: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 174 Store 173(r011) 175 177: 6(float) Load 13(inF0) 178: 6(float) Load 14(inF1) 179: 6(float) Load 15(inF2) 180: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 177 178 179 Store 176(r012) 180 181: 6(float) Load 13(inF0) 182: 137(bool) FOrdLessThan 181 141 SelectionMerge 184 None BranchConditional 182 183 184 183: Label Kill 184: Label 186: 10(int) Load 157(r005) 188: 137(bool) SLessThan 186 187 SelectionMerge 190 None BranchConditional 188 189 190 189: Label Kill 190: Label 193: 6(float) Load 13(inF0) 194: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 193 Store 192(r014) 194 196: 6(float) Load 13(inF0) 197: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 196 Store 195(r015) 197 200: 10(int) BitCount 199 Store 198(r016) 200 202: 6(float) Load 13(inF0) 203: 6(float) DPdx 202 Store 201(r017) 203 205: 6(float) Load 13(inF0) 206: 6(float) DPdxCoarse 205 Store 204(r018) 206 208: 6(float) Load 13(inF0) 209: 6(float) DPdxFine 208 Store 207(r019) 209 211: 6(float) Load 13(inF0) 212: 6(float) DPdy 211 Store 210(r020) 212 214: 6(float) Load 13(inF0) 215: 6(float) DPdyCoarse 214 Store 213(r021) 215 217: 6(float) Load 13(inF0) 218: 6(float) DPdyFine 217 Store 216(r022) 218 220: 6(float) Load 13(inF0) 221: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 220 Store 219(r023) 221 223: 6(float) Load 13(inF0) 224: 6(float) 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) FOrdNotEqual 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) FOrdNotEqual 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) FOrdNotEqual 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) FOrdNotEqual 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) FOrdNotEqual 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) FOrdNotEqual 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 FOrdNotEqual 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 FOrdNotEqual 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 FOrdNotEqual 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 FOrdNotEqual 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 FOrdNotEqual 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 FOrdNotEqual 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.lit.frag.out000066400000000000000000000204671360464450000243120ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.negative.comp.out000066400000000000000000000402041360464450000253320ustar00rootroot00000000000000hlsl.intrinsics.negative.comp Shader version: 500 local_size = (1, 1, 1) 0:? Sequence 0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp float) 0:2 Function Parameters: 0:2 'inF0' ( in float) 0:2 'inF1' ( in float) 0:2 'inF2' ( in float) 0:2 'inI0' ( in int) 0:? Sequence 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) 0:57 Function Parameters: 0:57 'inF0' ( in 1-component vector of float) 0:57 'inF1' ( in 1-component vector of float) 0:57 'inF2' ( in 1-component vector of float) 0:57 'inI0' ( in 1-component vector of int) 0:? Sequence 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) 0:66 Function Parameters: 0:66 'inF0' ( in 2-component vector of float) 0:66 'inF1' ( in 2-component vector of float) 0:66 'inF2' ( in 2-component vector of float) 0:66 'inI0' ( in 2-component vector of int) 0:? Sequence 0:109 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) 0:113 Function Parameters: 0:113 'inF0' ( in 3-component vector of float) 0:113 'inF1' ( in 3-component vector of float) 0:113 'inF2' ( in 3-component vector of float) 0:113 'inI0' ( in 3-component vector of int) 0:? Sequence 0:154 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:158 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:158 Function Parameters: 0:158 'inF0' ( in 4-component vector of float) 0:158 'inF1' ( in 4-component vector of float) 0:158 'inF2' ( in 4-component vector of float) 0:158 'inI0' ( in 4-component vector of int) 0:? Sequence 0:199 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:158 Function Definition: ComputeShaderFunction( ( temp void) 0:158 Function Parameters: 0:? Sequence 0:158 move second child to first child ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:158 move second child to first child ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:158 move second child to first child ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:158 move second child to first child ( temp 4-component vector of int) 0:? 'inI0' ( temp 4-component vector of int) 0:? 'inI0' (layout( location=3) in 4-component vector of int) 0:158 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:158 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inI0' ( temp 4-component vector of int) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:? 'inI0' (layout( location=3) in 4-component vector of int) Linked compute stage: Shader version: 500 local_size = (1, 1, 1) 0:? Sequence 0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp float) 0:2 Function Parameters: 0:2 'inF0' ( in float) 0:2 'inF1' ( in float) 0:2 'inF2' ( in float) 0:2 'inI0' ( in int) 0:? Sequence 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) 0:57 Function Parameters: 0:57 'inF0' ( in 1-component vector of float) 0:57 'inF1' ( in 1-component vector of float) 0:57 'inF2' ( in 1-component vector of float) 0:57 'inI0' ( in 1-component vector of int) 0:? Sequence 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) 0:66 Function Parameters: 0:66 'inF0' ( in 2-component vector of float) 0:66 'inF1' ( in 2-component vector of float) 0:66 'inF2' ( in 2-component vector of float) 0:66 'inI0' ( in 2-component vector of int) 0:? Sequence 0:109 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) 0:113 Function Parameters: 0:113 'inF0' ( in 3-component vector of float) 0:113 'inF1' ( in 3-component vector of float) 0:113 'inF2' ( in 3-component vector of float) 0:113 'inI0' ( in 3-component vector of int) 0:? Sequence 0:154 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:158 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:158 Function Parameters: 0:158 'inF0' ( in 4-component vector of float) 0:158 'inF1' ( in 4-component vector of float) 0:158 'inF2' ( in 4-component vector of float) 0:158 'inI0' ( in 4-component vector of int) 0:? Sequence 0:199 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:158 Function Definition: ComputeShaderFunction( ( temp void) 0:158 Function Parameters: 0:? Sequence 0:158 move second child to first child ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:158 move second child to first child ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:158 move second child to first child ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:158 move second child to first child ( temp 4-component vector of int) 0:? 'inI0' ( temp 4-component vector of int) 0:? 'inI0' (layout( location=3) in 4-component vector of int) 0:158 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:158 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inI0' ( temp 4-component vector of int) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:? 'inI0' (layout( location=3) in 4-component vector of int) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 99 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "ComputeShaderFunction" 76 79 82 86 89 ExecutionMode 4 LocalSize 1 1 1 Source HLSL 500 Name 4 "ComputeShaderFunction" Name 15 "ComputeShaderFunctionS(f1;f1;f1;i1;" Name 11 "inF0" Name 12 "inF1" Name 13 "inF2" Name 14 "inI0" Name 21 "ComputeShaderFunction1(vf1;vf1;vf1;vi1;" Name 17 "inF0" Name 18 "inF1" Name 19 "inF2" Name 20 "inI0" Name 32 "ComputeShaderFunction2(vf2;vf2;vf2;vi2;" Name 28 "inF0" Name 29 "inF1" Name 30 "inF2" Name 31 "inI0" Name 43 "ComputeShaderFunction3(vf3;vf3;vf3;vi3;" Name 39 "inF0" Name 40 "inF1" Name 41 "inF2" Name 42 "inI0" Name 54 "@ComputeShaderFunction(vf4;vf4;vf4;vi4;" Name 50 "inF0" Name 51 "inF1" Name 52 "inF2" Name 53 "inI0" Name 74 "inF0" Name 76 "inF0" Name 78 "inF1" Name 79 "inF1" Name 81 "inF2" Name 82 "inF2" Name 84 "inI0" Name 86 "inI0" Name 89 "@entryPointOutput" Name 90 "param" Name 92 "param" Name 94 "param" Name 96 "param" Decorate 76(inF0) Location 0 Decorate 79(inF1) Location 1 Decorate 82(inF2) Location 2 Decorate 86(inI0) Location 3 Decorate 89(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeInt 32 1 9: TypePointer Function 8(int) 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) 23: TypeVector 6(float) 2 24: TypePointer Function 23(fvec2) 25: TypeVector 8(int) 2 26: TypePointer Function 25(ivec2) 27: TypeFunction 23(fvec2) 24(ptr) 24(ptr) 24(ptr) 26(ptr) 34: TypeVector 6(float) 3 35: TypePointer Function 34(fvec3) 36: TypeVector 8(int) 3 37: TypePointer Function 36(ivec3) 38: TypeFunction 34(fvec3) 35(ptr) 35(ptr) 35(ptr) 37(ptr) 45: TypeVector 6(float) 4 46: TypePointer Function 45(fvec4) 47: TypeVector 8(int) 4 48: TypePointer Function 47(ivec4) 49: TypeFunction 45(fvec4) 46(ptr) 46(ptr) 46(ptr) 48(ptr) 56: 6(float) Constant 0 61: 6(float) Constant 1065353216 62: 6(float) Constant 1073741824 63: 23(fvec2) ConstantComposite 61 62 66: 6(float) Constant 1077936128 67: 34(fvec3) ConstantComposite 61 62 66 70: 6(float) Constant 1082130432 71: 45(fvec4) ConstantComposite 61 62 66 70 75: TypePointer Input 45(fvec4) 76(inF0): 75(ptr) Variable Input 79(inF1): 75(ptr) Variable Input 82(inF2): 75(ptr) Variable Input 85: TypePointer Input 47(ivec4) 86(inI0): 85(ptr) Variable Input 88: TypePointer Output 45(fvec4) 89(@entryPointOutput): 88(ptr) Variable Output 4(ComputeShaderFunction): 2 Function None 3 5: Label 74(inF0): 46(ptr) Variable Function 78(inF1): 46(ptr) Variable Function 81(inF2): 46(ptr) Variable Function 84(inI0): 48(ptr) Variable Function 90(param): 46(ptr) Variable Function 92(param): 46(ptr) Variable Function 94(param): 46(ptr) Variable Function 96(param): 48(ptr) Variable Function 77: 45(fvec4) Load 76(inF0) Store 74(inF0) 77 80: 45(fvec4) Load 79(inF1) Store 78(inF1) 80 83: 45(fvec4) Load 82(inF2) Store 81(inF2) 83 87: 47(ivec4) Load 86(inI0) Store 84(inI0) 87 91: 45(fvec4) Load 74(inF0) Store 90(param) 91 93: 45(fvec4) Load 78(inF1) Store 92(param) 93 95: 45(fvec4) Load 81(inF2) Store 94(param) 95 97: 47(ivec4) Load 84(inI0) Store 96(param) 97 98: 45(fvec4) FunctionCall 54(@ComputeShaderFunction(vf4;vf4;vf4;vi4;) 90(param) 92(param) 94(param) 96(param) Store 89(@entryPointOutput) 98 Return FunctionEnd 15(ComputeShaderFunctionS(f1;f1;f1;i1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter 12(inF1): 7(ptr) FunctionParameter 13(inF2): 7(ptr) FunctionParameter 14(inI0): 9(ptr) FunctionParameter 16: Label ReturnValue 56 FunctionEnd 21(ComputeShaderFunction1(vf1;vf1;vf1;vi1;): 6(float) Function None 10 17(inF0): 7(ptr) FunctionParameter 18(inF1): 7(ptr) FunctionParameter 19(inF2): 7(ptr) FunctionParameter 20(inI0): 9(ptr) FunctionParameter 22: Label ReturnValue 56 FunctionEnd 32(ComputeShaderFunction2(vf2;vf2;vf2;vi2;): 23(fvec2) Function None 27 28(inF0): 24(ptr) FunctionParameter 29(inF1): 24(ptr) FunctionParameter 30(inF2): 24(ptr) FunctionParameter 31(inI0): 26(ptr) FunctionParameter 33: Label ReturnValue 63 FunctionEnd 43(ComputeShaderFunction3(vf3;vf3;vf3;vi3;): 34(fvec3) Function None 38 39(inF0): 35(ptr) FunctionParameter 40(inF1): 35(ptr) FunctionParameter 41(inF2): 35(ptr) FunctionParameter 42(inI0): 37(ptr) FunctionParameter 44: Label ReturnValue 67 FunctionEnd 54(@ComputeShaderFunction(vf4;vf4;vf4;vi4;): 45(fvec4) Function None 49 50(inF0): 46(ptr) FunctionParameter 51(inF1): 46(ptr) FunctionParameter 52(inF2): 46(ptr) FunctionParameter 53(inI0): 48(ptr) FunctionParameter 55: Label ReturnValue 71 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.negative.frag.out000066400000000000000000001155541360464450000253260ustar00rootroot00000000000000hlsl.intrinsics.negative.frag ERROR: 0:10: 'determinant' : ambiguous best function under implicit type conversion ERROR: 0:25: 'normalize' : ambiguous best function under implicit type conversion ERROR: 0:26: 'reflect' : ambiguous best function under implicit type conversion ERROR: 0:27: 'refract' : ambiguous best function under implicit type conversion ERROR: 0:28: 'refract' : no matching overloaded function found ERROR: 0:30: 'transpose' : ambiguous best function under implicit type conversion ERROR: 0:39: 'GetRenderTargetSamplePosition' : no matching overloaded function found ERROR: 0:46: 'asdouble' : double2 conversion not implemented ERROR: 0:47: 'CheckAccessFullyMapped' : no matching overloaded function found ERROR: 0:49: 'cross' : no matching overloaded function found ERROR: 0:50: 'D3DCOLORtoUBYTE4' : no matching overloaded function found ERROR: 0:51: 'determinant' : no matching overloaded function found ERROR: 0:57: 'transpose' : no matching overloaded function found ERROR: 0:64: 'CheckAccessFullyMapped' : no matching overloaded function found ERROR: 0:66: 'D3DCOLORtoUBYTE4' : no matching overloaded function found ERROR: 0:67: 'determinant' : no matching overloaded function found ERROR: 0:73: 'transpose' : no matching overloaded function found ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found ERROR: 0:84: 'determinant' : no matching overloaded function found ERROR: 0:90: 'transpose' : no matching overloaded function found ERROR: 0:117: 'countbits' : no matching overloaded function found ERROR: 0:117: 'D3DCOLORtoUBYTE4' : no matching overloaded function found ERROR: 0:117: 'cross' : no matching overloaded function found ERROR: 0:117: 'f16tof32' : no matching overloaded function found ERROR: 0:117: 'firstbithigh' : no matching overloaded function found ERROR: 0:117: 'firstbitlow' : no matching overloaded function found ERROR: 0:117: 'reversebits' : no matching overloaded function found ERROR: 0:117: 'length' : no matching overloaded function found ERROR: 0:117: 'noise' : no matching overloaded function found ERROR: 0:117: 'normalize' : no matching overloaded function found ERROR: 0:117: 'reflect' : no matching overloaded function found ERROR: 0:117: 'refract' : no matching overloaded function found ERROR: 0:117: 'reversebits' : no matching overloaded function found ERROR: 0:125: 'countbits' : no matching overloaded function found ERROR: 0:125: 'D3DCOLORtoUBYTE4' : no matching overloaded function found ERROR: 0:125: 'cross' : no matching overloaded function found ERROR: 0:125: 'f16tof32' : no matching overloaded function found ERROR: 0:125: 'firstbithigh' : no matching overloaded function found ERROR: 0:125: 'firstbitlow' : no matching overloaded function found ERROR: 0:125: 'reversebits' : no matching overloaded function found ERROR: 0:125: 'length' : no matching overloaded function found ERROR: 0:125: 'noise' : no matching overloaded function found ERROR: 0:125: 'normalize' : no matching overloaded function found ERROR: 0:125: 'reflect' : no matching overloaded function found ERROR: 0:125: 'refract' : no matching overloaded function found ERROR: 0:125: 'reversebits' : no matching overloaded function found ERROR: 0:133: 'countbits' : no matching overloaded function found ERROR: 0:133: 'D3DCOLORtoUBYTE4' : no matching overloaded function found ERROR: 0:133: 'cross' : no matching overloaded function found ERROR: 0:133: 'f16tof32' : no matching overloaded function found ERROR: 0:133: 'firstbithigh' : no matching overloaded function found ERROR: 0:133: 'firstbitlow' : no matching overloaded function found ERROR: 0:133: 'reversebits' : no matching overloaded function found ERROR: 0:133: 'length' : no matching overloaded function found ERROR: 0:133: 'noise' : no matching overloaded function found ERROR: 0:133: 'normalize' : no matching overloaded function found ERROR: 0:133: 'reflect' : no matching overloaded function found ERROR: 0:133: 'refract' : no matching overloaded function found ERROR: 0:133: 'reversebits' : no matching overloaded function found ERROR: 59 compilation errors. No code generated. Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; ( temp float) 0:2 Function Parameters: 0:2 'inF0' ( in float) 0:2 'inF1' ( in float) 0:2 'inF2' ( in float) 0:2 'inI0' ( in int) 0:? Sequence 0:5 uint64BitsToDouble ( temp double) 0:5 Construct uvec2 ( temp 2-component vector of uint) 0:5 Convert float to uint ( temp uint) 0:5 'inF0' ( in float) 0:5 Convert float to uint ( temp uint) 0:5 'inF1' ( in float) 0:6 Function Call: CheckAccessFullyMapped(u1; ( temp bool) 0:6 Constant: 0:6 3 (const uint) 0:7 bitCount ( temp uint) 0:7 Convert float to uint ( temp uint) 0:7 'inF0' ( in float) 0:8 cross-product ( temp 3-component vector of float) 0:8 Construct vec3 ( in 3-component vector of float) 0:8 'inF0' ( in float) 0:8 Construct vec3 ( in 3-component vector of float) 0:8 'inF1' ( in float) 0:9 Convert float to int ( temp 4-component vector of int) 0:9 vector-scale ( temp 4-component vector of float) 0:9 Constant: 0:9 255.001953 0:9 vector swizzle ( temp 4-component vector of float) 0:9 Construct vec4 ( in 4-component vector of float) 0:9 'inF0' ( in float) 0:9 Sequence 0:9 Constant: 0:9 2 (const int) 0:9 Constant: 0:9 1 (const int) 0:9 Constant: 0:9 0 (const int) 0:9 Constant: 0:9 3 (const int) 0:10 determinant ( temp float) ERROR: node is still EOpNull! 0:10 'inF0' ( in float) 0:12 direct index ( temp float) 0:12 unpackHalf2x16 ( temp 2-component vector of float) 0:12 Convert float to uint ( temp uint) 0:12 'inF0' ( in float) 0:12 Constant: 0:12 0 (const int) 0:13 findMSB ( temp uint) 0:13 Convert float to uint ( temp uint) 0:13 'inF0' ( in float) 0:14 findLSB ( temp uint) 0:14 Convert float to uint ( temp uint) 0:14 'inF0' ( in float) 0:23 length ( temp float) 0:23 'inF0' ( in float) 0:24 Function Call: msad4(u1;vu2;vu4; ( temp 4-component vector of uint) 0:24 Convert float to uint ( temp uint) 0:24 'inF0' ( in float) 0:24 Constant: 0:24 0 (const uint) 0:24 0 (const uint) 0:24 Constant: 0:24 0 (const uint) 0:24 0 (const uint) 0:24 0 (const uint) 0:24 0 (const uint) 0:25 normalize ( temp 2-component vector of float) 0:25 Construct vec2 ( in 2-component vector of float) 0:25 'inF0' ( in float) 0:26 reflect ( temp 2-component vector of float) 0:26 Construct vec2 ( in 2-component vector of float) 0:26 'inF0' ( in float) 0:26 Construct vec2 ( in 2-component vector of float) 0:26 'inF1' ( in float) 0:27 refract ( temp 2-component vector of float) 0:27 Construct vec2 ( in 2-component vector of float) 0:27 'inF0' ( in float) 0:27 Construct vec2 ( in 2-component vector of float) 0:27 'inF1' ( in float) 0:27 'inF2' ( in float) 0:28 Constant: 0:28 0.000000 0:29 bitFieldReverse ( temp uint) 0:29 Convert float to uint ( temp uint) 0:29 'inF0' ( in float) 0:30 transpose ( temp 1X1 matrix of float) ERROR: node is still EOpNull! 0:30 'inF0' ( in float) 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) 0:36 Function Parameters: 0:36 'inF0' ( in 1-component vector of float) 0:36 'inF1' ( in 1-component vector of float) 0:36 'inF2' ( in 1-component vector of float) 0:36 'inI0' ( in 1-component vector of int) 0:? Sequence 0:39 Constant: 0:39 0.000000 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) 0:45 Function Parameters: 0:45 'inF0' ( in 2-component vector of float) 0:45 'inF1' ( in 2-component vector of float) 0:45 'inF2' ( in 2-component vector of float) 0:45 'inI0' ( in 2-component vector of int) 0:? Sequence 0:46 ERROR: Bad aggregation op ( temp 2-component vector of double) 0:46 Convert float to uint ( temp 2-component vector of uint) 0:46 'inF0' ( in 2-component vector of float) 0:46 Convert float to uint ( temp 2-component vector of uint) 0:46 'inF1' ( in 2-component vector of float) 0:47 Constant: 0:47 0.000000 0:48 bitCount ( temp 2-component vector of uint) 0:48 Convert float to uint ( temp 2-component vector of uint) 0:48 'inF0' ( in 2-component vector of float) 0:49 Constant: 0:49 0.000000 0:50 Constant: 0:50 0.000000 0:51 Constant: 0:51 0.000000 0:52 Construct vec2 ( temp 2-component vector of float) 0:52 direct index ( temp float) 0:52 unpackHalf2x16 ( temp 2-component vector of float) 0:52 direct index ( temp uint) 0:52 Convert float to uint ( temp 2-component vector of uint) 0:52 'inF0' ( in 2-component vector of float) 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 0 (const int) 0:52 direct index ( temp float) 0:52 unpackHalf2x16 ( temp 2-component vector of float) 0:52 direct index ( temp uint) 0:52 Convert float to uint ( temp 2-component vector of uint) 0:52 'inF0' ( in 2-component vector of float) 0:52 Constant: 0:52 1 (const int) 0:52 Constant: 0:52 0 (const int) 0:53 findMSB ( temp 2-component vector of uint) 0:53 Convert float to uint ( temp 2-component vector of uint) 0:53 'inF0' ( in 2-component vector of float) 0:54 findLSB ( temp 2-component vector of uint) 0:54 Convert float to uint ( temp 2-component vector of uint) 0:54 'inF0' ( in 2-component vector of float) 0:56 bitFieldReverse ( temp 2-component vector of uint) 0:56 Convert float to uint ( temp 2-component vector of uint) 0:56 'inF0' ( in 2-component vector of float) 0:57 Constant: 0:57 0.000000 0:59 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) 0:63 Function Parameters: 0:63 'inF0' ( in 3-component vector of float) 0:63 'inF1' ( in 3-component vector of float) 0:63 'inF2' ( in 3-component vector of float) 0:63 'inI0' ( in 3-component vector of int) 0:? Sequence 0:64 Constant: 0:64 0.000000 0:65 bitCount ( temp 3-component vector of uint) 0:65 Convert float to uint ( temp 3-component vector of uint) 0:65 'inF0' ( in 3-component vector of float) 0:66 Constant: 0:66 0.000000 0:67 Constant: 0:67 0.000000 0:68 Construct vec3 ( temp 3-component vector of float) 0:68 direct index ( temp float) 0:68 unpackHalf2x16 ( temp 2-component vector of float) 0:68 direct index ( temp uint) 0:68 Convert float to uint ( temp 3-component vector of uint) 0:68 'inF0' ( in 3-component vector of float) 0:68 Constant: 0:68 0 (const int) 0:68 Constant: 0:68 0 (const int) 0:68 direct index ( temp float) 0:68 unpackHalf2x16 ( temp 2-component vector of float) 0:68 direct index ( temp uint) 0:68 Convert float to uint ( temp 3-component vector of uint) 0:68 'inF0' ( in 3-component vector of float) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: 0:68 0 (const int) 0:68 direct index ( temp float) 0:68 unpackHalf2x16 ( temp 2-component vector of float) 0:68 direct index ( temp uint) 0:68 Convert float to uint ( temp 3-component vector of uint) 0:68 'inF0' ( in 3-component vector of float) 0:68 Constant: 0:68 2 (const int) 0:68 Constant: 0:68 0 (const int) 0:69 findMSB ( temp 3-component vector of uint) 0:69 Convert float to uint ( temp 3-component vector of uint) 0:69 'inF0' ( in 3-component vector of float) 0:70 findLSB ( temp 3-component vector of uint) 0:70 Convert float to uint ( temp 3-component vector of uint) 0:70 'inF0' ( in 3-component vector of float) 0:72 bitFieldReverse ( temp 3-component vector of uint) 0:72 Convert float to uint ( temp 3-component vector of uint) 0:72 'inF0' ( in 3-component vector of float) 0:73 Constant: 0:73 0.000000 0:76 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:80 Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:80 Function Parameters: 0:80 'inF0' ( in 4-component vector of float) 0:80 'inF1' ( in 4-component vector of float) 0:80 'inF2' ( in 4-component vector of float) 0:80 'inI0' ( in 4-component vector of int) 0:? Sequence 0:81 Constant: 0:81 0.000000 0:82 bitCount ( temp 4-component vector of uint) 0:82 Convert float to uint ( temp 4-component vector of uint) 0:82 'inF0' ( in 4-component vector of float) 0:83 cross-product ( temp 3-component vector of float) 0:83 Construct vec3 ( in 3-component vector of float) 0:83 'inF0' ( in 4-component vector of float) 0:83 Construct vec3 ( in 3-component vector of float) 0:83 'inF1' ( in 4-component vector of float) 0:84 Constant: 0:84 0.000000 0:85 Construct vec4 ( temp 4-component vector of float) 0:85 direct index ( temp float) 0:85 unpackHalf2x16 ( temp 2-component vector of float) 0:85 direct index ( temp uint) 0:85 Convert float to uint ( temp 4-component vector of uint) 0:85 'inF0' ( in 4-component vector of float) 0:85 Constant: 0:85 0 (const int) 0:85 Constant: 0:85 0 (const int) 0:85 direct index ( temp float) 0:85 unpackHalf2x16 ( temp 2-component vector of float) 0:85 direct index ( temp uint) 0:85 Convert float to uint ( temp 4-component vector of uint) 0:85 'inF0' ( in 4-component vector of float) 0:85 Constant: 0:85 1 (const int) 0:85 Constant: 0:85 0 (const int) 0:85 direct index ( temp float) 0:85 unpackHalf2x16 ( temp 2-component vector of float) 0:85 direct index ( temp uint) 0:85 Convert float to uint ( temp 4-component vector of uint) 0:85 'inF0' ( in 4-component vector of float) 0:85 Constant: 0:85 2 (const int) 0:85 Constant: 0:85 0 (const int) 0:85 direct index ( temp float) 0:85 unpackHalf2x16 ( temp 2-component vector of float) 0:85 direct index ( temp uint) 0:85 Convert float to uint ( temp 4-component vector of uint) 0:85 'inF0' ( in 4-component vector of float) 0:85 Constant: 0:85 3 (const int) 0:85 Constant: 0:85 0 (const int) 0:86 findMSB ( temp 4-component vector of uint) 0:86 Convert float to uint ( temp 4-component vector of uint) 0:86 'inF0' ( in 4-component vector of float) 0:87 findLSB ( temp 4-component vector of uint) 0:87 Convert float to uint ( temp 4-component vector of uint) 0:87 'inF0' ( in 4-component vector of float) 0:89 bitFieldReverse ( temp 4-component vector of uint) 0:89 Convert float to uint ( temp 4-component vector of uint) 0:89 'inF0' ( in 4-component vector of float) 0:90 Constant: 0:90 0.000000 0:92 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:80 Function Definition: PixelShaderFunction( ( temp void) 0:80 Function Parameters: 0:? Sequence 0:80 move second child to first child ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:80 move second child to first child ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:80 move second child to first child ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:80 move second child to first child ( temp 4-component vector of int) 0:? 'inI0' ( temp 4-component vector of int) 0:? 'inI0' (layout( location=3) flat in 4-component vector of int) 0:80 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:80 Function Call: @PixelShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inI0' ( temp 4-component vector of int) 0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' ( in 2X2 matrix of float) 0:115 'inF1' ( in 2X2 matrix of float) 0:115 'inF2' ( in 2X2 matrix of float) 0:? Sequence 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:119 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) 0:123 Function Parameters: 0:123 'inF0' ( in 3X3 matrix of float) 0:123 'inF1' ( in 3X3 matrix of float) 0:123 'inF2' ( in 3X3 matrix of float) 0:? Sequence 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:127 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) 0:131 Function Parameters: 0:131 'inF0' ( in 4X4 matrix of float) 0:131 'inF1' ( in 4X4 matrix of float) 0:131 'inF2' ( in 4X4 matrix of float) 0:? Sequence 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:135 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:? 'inI0' (layout( location=3) flat in 4-component vector of int) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; ( temp float) 0:2 Function Parameters: 0:2 'inF0' ( in float) 0:2 'inF1' ( in float) 0:2 'inF2' ( in float) 0:2 'inI0' ( in int) 0:? Sequence 0:5 uint64BitsToDouble ( temp double) 0:5 Construct uvec2 ( temp 2-component vector of uint) 0:5 Convert float to uint ( temp uint) 0:5 'inF0' ( in float) 0:5 Convert float to uint ( temp uint) 0:5 'inF1' ( in float) 0:6 Function Call: CheckAccessFullyMapped(u1; ( temp bool) 0:6 Constant: 0:6 3 (const uint) 0:7 bitCount ( temp uint) 0:7 Convert float to uint ( temp uint) 0:7 'inF0' ( in float) 0:8 cross-product ( temp 3-component vector of float) 0:8 Construct vec3 ( in 3-component vector of float) 0:8 'inF0' ( in float) 0:8 Construct vec3 ( in 3-component vector of float) 0:8 'inF1' ( in float) 0:9 Convert float to int ( temp 4-component vector of int) 0:9 vector-scale ( temp 4-component vector of float) 0:9 Constant: 0:9 255.001953 0:9 vector swizzle ( temp 4-component vector of float) 0:9 Construct vec4 ( in 4-component vector of float) 0:9 'inF0' ( in float) 0:9 Sequence 0:9 Constant: 0:9 2 (const int) 0:9 Constant: 0:9 1 (const int) 0:9 Constant: 0:9 0 (const int) 0:9 Constant: 0:9 3 (const int) 0:10 determinant ( temp float) ERROR: node is still EOpNull! 0:10 'inF0' ( in float) 0:12 direct index ( temp float) 0:12 unpackHalf2x16 ( temp 2-component vector of float) 0:12 Convert float to uint ( temp uint) 0:12 'inF0' ( in float) 0:12 Constant: 0:12 0 (const int) 0:13 findMSB ( temp uint) 0:13 Convert float to uint ( temp uint) 0:13 'inF0' ( in float) 0:14 findLSB ( temp uint) 0:14 Convert float to uint ( temp uint) 0:14 'inF0' ( in float) 0:23 length ( temp float) 0:23 'inF0' ( in float) 0:24 Function Call: msad4(u1;vu2;vu4; ( temp 4-component vector of uint) 0:24 Convert float to uint ( temp uint) 0:24 'inF0' ( in float) 0:24 Constant: 0:24 0 (const uint) 0:24 0 (const uint) 0:24 Constant: 0:24 0 (const uint) 0:24 0 (const uint) 0:24 0 (const uint) 0:24 0 (const uint) 0:25 normalize ( temp 2-component vector of float) 0:25 Construct vec2 ( in 2-component vector of float) 0:25 'inF0' ( in float) 0:26 reflect ( temp 2-component vector of float) 0:26 Construct vec2 ( in 2-component vector of float) 0:26 'inF0' ( in float) 0:26 Construct vec2 ( in 2-component vector of float) 0:26 'inF1' ( in float) 0:27 refract ( temp 2-component vector of float) 0:27 Construct vec2 ( in 2-component vector of float) 0:27 'inF0' ( in float) 0:27 Construct vec2 ( in 2-component vector of float) 0:27 'inF1' ( in float) 0:27 'inF2' ( in float) 0:28 Constant: 0:28 0.000000 0:29 bitFieldReverse ( temp uint) 0:29 Convert float to uint ( temp uint) 0:29 'inF0' ( in float) 0:30 transpose ( temp 1X1 matrix of float) ERROR: node is still EOpNull! 0:30 'inF0' ( in float) 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) 0:36 Function Parameters: 0:36 'inF0' ( in 1-component vector of float) 0:36 'inF1' ( in 1-component vector of float) 0:36 'inF2' ( in 1-component vector of float) 0:36 'inI0' ( in 1-component vector of int) 0:? Sequence 0:39 Constant: 0:39 0.000000 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) 0:45 Function Parameters: 0:45 'inF0' ( in 2-component vector of float) 0:45 'inF1' ( in 2-component vector of float) 0:45 'inF2' ( in 2-component vector of float) 0:45 'inI0' ( in 2-component vector of int) 0:? Sequence 0:46 ERROR: Bad aggregation op ( temp 2-component vector of double) 0:46 Convert float to uint ( temp 2-component vector of uint) 0:46 'inF0' ( in 2-component vector of float) 0:46 Convert float to uint ( temp 2-component vector of uint) 0:46 'inF1' ( in 2-component vector of float) 0:47 Constant: 0:47 0.000000 0:48 bitCount ( temp 2-component vector of uint) 0:48 Convert float to uint ( temp 2-component vector of uint) 0:48 'inF0' ( in 2-component vector of float) 0:49 Constant: 0:49 0.000000 0:50 Constant: 0:50 0.000000 0:51 Constant: 0:51 0.000000 0:52 Construct vec2 ( temp 2-component vector of float) 0:52 direct index ( temp float) 0:52 unpackHalf2x16 ( temp 2-component vector of float) 0:52 direct index ( temp uint) 0:52 Convert float to uint ( temp 2-component vector of uint) 0:52 'inF0' ( in 2-component vector of float) 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 0 (const int) 0:52 direct index ( temp float) 0:52 unpackHalf2x16 ( temp 2-component vector of float) 0:52 direct index ( temp uint) 0:52 Convert float to uint ( temp 2-component vector of uint) 0:52 'inF0' ( in 2-component vector of float) 0:52 Constant: 0:52 1 (const int) 0:52 Constant: 0:52 0 (const int) 0:53 findMSB ( temp 2-component vector of uint) 0:53 Convert float to uint ( temp 2-component vector of uint) 0:53 'inF0' ( in 2-component vector of float) 0:54 findLSB ( temp 2-component vector of uint) 0:54 Convert float to uint ( temp 2-component vector of uint) 0:54 'inF0' ( in 2-component vector of float) 0:56 bitFieldReverse ( temp 2-component vector of uint) 0:56 Convert float to uint ( temp 2-component vector of uint) 0:56 'inF0' ( in 2-component vector of float) 0:57 Constant: 0:57 0.000000 0:59 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) 0:63 Function Parameters: 0:63 'inF0' ( in 3-component vector of float) 0:63 'inF1' ( in 3-component vector of float) 0:63 'inF2' ( in 3-component vector of float) 0:63 'inI0' ( in 3-component vector of int) 0:? Sequence 0:64 Constant: 0:64 0.000000 0:65 bitCount ( temp 3-component vector of uint) 0:65 Convert float to uint ( temp 3-component vector of uint) 0:65 'inF0' ( in 3-component vector of float) 0:66 Constant: 0:66 0.000000 0:67 Constant: 0:67 0.000000 0:68 Construct vec3 ( temp 3-component vector of float) 0:68 direct index ( temp float) 0:68 unpackHalf2x16 ( temp 2-component vector of float) 0:68 direct index ( temp uint) 0:68 Convert float to uint ( temp 3-component vector of uint) 0:68 'inF0' ( in 3-component vector of float) 0:68 Constant: 0:68 0 (const int) 0:68 Constant: 0:68 0 (const int) 0:68 direct index ( temp float) 0:68 unpackHalf2x16 ( temp 2-component vector of float) 0:68 direct index ( temp uint) 0:68 Convert float to uint ( temp 3-component vector of uint) 0:68 'inF0' ( in 3-component vector of float) 0:68 Constant: 0:68 1 (const int) 0:68 Constant: 0:68 0 (const int) 0:68 direct index ( temp float) 0:68 unpackHalf2x16 ( temp 2-component vector of float) 0:68 direct index ( temp uint) 0:68 Convert float to uint ( temp 3-component vector of uint) 0:68 'inF0' ( in 3-component vector of float) 0:68 Constant: 0:68 2 (const int) 0:68 Constant: 0:68 0 (const int) 0:69 findMSB ( temp 3-component vector of uint) 0:69 Convert float to uint ( temp 3-component vector of uint) 0:69 'inF0' ( in 3-component vector of float) 0:70 findLSB ( temp 3-component vector of uint) 0:70 Convert float to uint ( temp 3-component vector of uint) 0:70 'inF0' ( in 3-component vector of float) 0:72 bitFieldReverse ( temp 3-component vector of uint) 0:72 Convert float to uint ( temp 3-component vector of uint) 0:72 'inF0' ( in 3-component vector of float) 0:73 Constant: 0:73 0.000000 0:76 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:80 Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:80 Function Parameters: 0:80 'inF0' ( in 4-component vector of float) 0:80 'inF1' ( in 4-component vector of float) 0:80 'inF2' ( in 4-component vector of float) 0:80 'inI0' ( in 4-component vector of int) 0:? Sequence 0:81 Constant: 0:81 0.000000 0:82 bitCount ( temp 4-component vector of uint) 0:82 Convert float to uint ( temp 4-component vector of uint) 0:82 'inF0' ( in 4-component vector of float) 0:83 cross-product ( temp 3-component vector of float) 0:83 Construct vec3 ( in 3-component vector of float) 0:83 'inF0' ( in 4-component vector of float) 0:83 Construct vec3 ( in 3-component vector of float) 0:83 'inF1' ( in 4-component vector of float) 0:84 Constant: 0:84 0.000000 0:85 Construct vec4 ( temp 4-component vector of float) 0:85 direct index ( temp float) 0:85 unpackHalf2x16 ( temp 2-component vector of float) 0:85 direct index ( temp uint) 0:85 Convert float to uint ( temp 4-component vector of uint) 0:85 'inF0' ( in 4-component vector of float) 0:85 Constant: 0:85 0 (const int) 0:85 Constant: 0:85 0 (const int) 0:85 direct index ( temp float) 0:85 unpackHalf2x16 ( temp 2-component vector of float) 0:85 direct index ( temp uint) 0:85 Convert float to uint ( temp 4-component vector of uint) 0:85 'inF0' ( in 4-component vector of float) 0:85 Constant: 0:85 1 (const int) 0:85 Constant: 0:85 0 (const int) 0:85 direct index ( temp float) 0:85 unpackHalf2x16 ( temp 2-component vector of float) 0:85 direct index ( temp uint) 0:85 Convert float to uint ( temp 4-component vector of uint) 0:85 'inF0' ( in 4-component vector of float) 0:85 Constant: 0:85 2 (const int) 0:85 Constant: 0:85 0 (const int) 0:85 direct index ( temp float) 0:85 unpackHalf2x16 ( temp 2-component vector of float) 0:85 direct index ( temp uint) 0:85 Convert float to uint ( temp 4-component vector of uint) 0:85 'inF0' ( in 4-component vector of float) 0:85 Constant: 0:85 3 (const int) 0:85 Constant: 0:85 0 (const int) 0:86 findMSB ( temp 4-component vector of uint) 0:86 Convert float to uint ( temp 4-component vector of uint) 0:86 'inF0' ( in 4-component vector of float) 0:87 findLSB ( temp 4-component vector of uint) 0:87 Convert float to uint ( temp 4-component vector of uint) 0:87 'inF0' ( in 4-component vector of float) 0:89 bitFieldReverse ( temp 4-component vector of uint) 0:89 Convert float to uint ( temp 4-component vector of uint) 0:89 'inF0' ( in 4-component vector of float) 0:90 Constant: 0:90 0.000000 0:92 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:80 Function Definition: PixelShaderFunction( ( temp void) 0:80 Function Parameters: 0:? Sequence 0:80 move second child to first child ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:80 move second child to first child ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:80 move second child to first child ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:80 move second child to first child ( temp 4-component vector of int) 0:? 'inI0' ( temp 4-component vector of int) 0:? 'inI0' (layout( location=3) flat in 4-component vector of int) 0:80 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:80 Function Call: @PixelShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inI0' ( temp 4-component vector of int) 0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' ( in 2X2 matrix of float) 0:115 'inF1' ( in 2X2 matrix of float) 0:115 'inF2' ( in 2X2 matrix of float) 0:? Sequence 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:117 Constant: 0:117 0.000000 0:119 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) 0:123 Function Parameters: 0:123 'inF0' ( in 3X3 matrix of float) 0:123 'inF1' ( in 3X3 matrix of float) 0:123 'inF2' ( in 3X3 matrix of float) 0:? Sequence 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:125 Constant: 0:125 0.000000 0:127 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) 0:131 Function Parameters: 0:131 'inF0' ( in 4X4 matrix of float) 0:131 'inF1' ( in 4X4 matrix of float) 0:131 'inF2' ( in 4X4 matrix of float) 0:? Sequence 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:133 Constant: 0:133 0.000000 0:135 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:? 'inI0' (layout( location=3) flat in 4-component vector of int) SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.negative.vert.out000066400000000000000000000610471360464450000253640ustar00rootroot00000000000000hlsl.intrinsics.negative.vert Shader version: 500 0:? Sequence 0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; ( temp float) 0:15 Function Parameters: 0:15 'inF0' ( in float) 0:15 'inF1' ( in float) 0:15 'inF2' ( in float) 0:15 'inI0' ( in int) 0:? Sequence 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) 0:75 Function Parameters: 0:75 'inF0' ( in 1-component vector of float) 0:75 'inF1' ( in 1-component vector of float) 0:75 'inF2' ( in 1-component vector of float) 0:75 'inI0' ( in 1-component vector of int) 0:? Sequence 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) 0:84 Function Parameters: 0:84 'inF0' ( in 2-component vector of float) 0:84 'inF1' ( in 2-component vector of float) 0:84 'inF2' ( in 2-component vector of float) 0:84 'inI0' ( in 2-component vector of int) 0:? Sequence 0:127 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) 0:131 Function Parameters: 0:131 'inF0' ( in 3-component vector of float) 0:131 'inF1' ( in 3-component vector of float) 0:131 'inF2' ( in 3-component vector of float) 0:131 'inI0' ( in 3-component vector of int) 0:? Sequence 0:172 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:176 Function Definition: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' ( in 4-component vector of float) 0:176 'inF1' ( in 4-component vector of float) 0:176 'inF2' ( in 4-component vector of float) 0:176 'inI0' ( in 4-component vector of int) 0:? Sequence 0:217 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:176 Function Definition: VertexShaderFunction( ( temp void) 0:176 Function Parameters: 0:? Sequence 0:176 move second child to first child ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:176 move second child to first child ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:176 move second child to first child ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:176 move second child to first child ( temp 4-component vector of int) 0:? 'inI0' ( temp 4-component vector of int) 0:? 'inI0' (layout( location=3) in 4-component vector of int) 0:176 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:176 Function Call: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inI0' ( temp 4-component vector of int) 0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' ( in 2X2 matrix of float) 0:226 'inF1' ( in 2X2 matrix of float) 0:226 'inF2' ( in 2X2 matrix of float) 0:? Sequence 0:230 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) 0:234 Function Parameters: 0:234 'inF0' ( in 3X3 matrix of float) 0:234 'inF1' ( in 3X3 matrix of float) 0:234 'inF2' ( in 3X3 matrix of float) 0:? Sequence 0:238 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) 0:242 Function Parameters: 0:242 'inF0' ( in 4X4 matrix of float) 0:242 'inF1' ( in 4X4 matrix of float) 0:242 'inF2' ( in 4X4 matrix of float) 0:? Sequence 0:246 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? Linker Objects 0:? 'gs_ua' ( global uint) 0:? 'gs_ub' ( global uint) 0:? 'gs_uc' ( global uint) 0:? 'gs_ua2' ( global 2-component vector of uint) 0:? 'gs_ub2' ( global 2-component vector of uint) 0:? 'gs_uc2' ( global 2-component vector of uint) 0:? 'gs_ua3' ( global 3-component vector of uint) 0:? 'gs_ub3' ( global 3-component vector of uint) 0:? 'gs_uc3' ( global 3-component vector of uint) 0:? 'gs_ua4' ( global 4-component vector of uint) 0:? 'gs_ub4' ( global 4-component vector of uint) 0:? 'gs_uc4' ( global 4-component vector of uint) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:? 'inI0' (layout( location=3) in 4-component vector of int) Linked vertex stage: Shader version: 500 0:? Sequence 0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; ( temp float) 0:15 Function Parameters: 0:15 'inF0' ( in float) 0:15 'inF1' ( in float) 0:15 'inF2' ( in float) 0:15 'inI0' ( in int) 0:? Sequence 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float) 0:75 Function Parameters: 0:75 'inF0' ( in 1-component vector of float) 0:75 'inF1' ( in 1-component vector of float) 0:75 'inF2' ( in 1-component vector of float) 0:75 'inI0' ( in 1-component vector of int) 0:? Sequence 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float) 0:84 Function Parameters: 0:84 'inF0' ( in 2-component vector of float) 0:84 'inF1' ( in 2-component vector of float) 0:84 'inF2' ( in 2-component vector of float) 0:84 'inI0' ( in 2-component vector of int) 0:? Sequence 0:127 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float) 0:131 Function Parameters: 0:131 'inF0' ( in 3-component vector of float) 0:131 'inF1' ( in 3-component vector of float) 0:131 'inF2' ( in 3-component vector of float) 0:131 'inI0' ( in 3-component vector of int) 0:? Sequence 0:172 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:176 Function Definition: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' ( in 4-component vector of float) 0:176 'inF1' ( in 4-component vector of float) 0:176 'inF2' ( in 4-component vector of float) 0:176 'inI0' ( in 4-component vector of int) 0:? Sequence 0:217 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:176 Function Definition: VertexShaderFunction( ( temp void) 0:176 Function Parameters: 0:? Sequence 0:176 move second child to first child ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:176 move second child to first child ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:176 move second child to first child ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:176 move second child to first child ( temp 4-component vector of int) 0:? 'inI0' ( temp 4-component vector of int) 0:? 'inI0' (layout( location=3) in 4-component vector of int) 0:176 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:176 Function Call: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float) 0:? 'inF0' ( temp 4-component vector of float) 0:? 'inF1' ( temp 4-component vector of float) 0:? 'inF2' ( temp 4-component vector of float) 0:? 'inI0' ( temp 4-component vector of int) 0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' ( in 2X2 matrix of float) 0:226 'inF1' ( in 2X2 matrix of float) 0:226 'inF2' ( in 2X2 matrix of float) 0:? Sequence 0:230 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) 0:234 Function Parameters: 0:234 'inF0' ( in 3X3 matrix of float) 0:234 'inF1' ( in 3X3 matrix of float) 0:234 'inF2' ( in 3X3 matrix of float) 0:? Sequence 0:238 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) 0:242 Function Parameters: 0:242 'inF0' ( in 4X4 matrix of float) 0:242 'inF1' ( in 4X4 matrix of float) 0:242 'inF2' ( in 4X4 matrix of float) 0:? Sequence 0:246 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? Linker Objects 0:? 'gs_ua' ( global uint) 0:? 'gs_ub' ( global uint) 0:? 'gs_uc' ( global uint) 0:? 'gs_ua2' ( global 2-component vector of uint) 0:? 'gs_ub2' ( global 2-component vector of uint) 0:? 'gs_uc2' ( global 2-component vector of uint) 0:? 'gs_ua3' ( global 3-component vector of uint) 0:? 'gs_ub3' ( global 3-component vector of uint) 0:? 'gs_uc3' ( global 3-component vector of uint) 0:? 'gs_ua4' ( global 4-component vector of uint) 0:? 'gs_ub4' ( global 4-component vector of uint) 0:? 'gs_uc4' ( global 4-component vector of uint) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'inF0' (layout( location=0) in 4-component vector of float) 0:? 'inF1' (layout( location=1) in 4-component vector of float) 0:? 'inF2' (layout( location=2) in 4-component vector of float) 0:? 'inI0' (layout( location=3) in 4-component vector of int) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.promote.down.frag.out000066400000000000000000000254401360464450000261510ustar00rootroot00000000000000hlsl.intrinsics.promote.down.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:15 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:15 Function Parameters: 0:? Sequence 0:16 Sequence 0:16 move second child to first child ( temp uint) 0:16 'r00' ( temp uint) 0:16 bitCount ( temp uint) 0:16 Convert float to uint ( temp uint) 0:16 f: direct index for structure ( uniform float) 0:16 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) 0:16 Constant: 0:16 2 (const uint) 0:17 Sequence 0:17 move second child to first child ( temp 2-component vector of uint) 0:17 'r01' ( temp 2-component vector of uint) 0:17 bitFieldReverse ( temp 2-component vector of uint) 0:17 Convert float to uint ( temp 2-component vector of uint) 0:17 f2: direct index for structure ( uniform 2-component vector of float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) 0:17 Constant: 0:17 6 (const uint) 0:20 move second child to first child ( temp 4-component vector of float) 0:20 color: direct index for structure ( temp 4-component vector of float) 0:20 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:20 Constant: 0:20 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:21 Branch: Return with expression 0:21 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:15 Function Definition: main( ( temp void) 0:15 Function Parameters: 0:? Sequence 0:15 Sequence 0:15 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:15 color: direct index for structure ( temp 4-component vector of float) 0:15 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:15 Constant: 0:15 0 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:15 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:15 Function Parameters: 0:? Sequence 0:16 Sequence 0:16 move second child to first child ( temp uint) 0:16 'r00' ( temp uint) 0:16 bitCount ( temp uint) 0:16 Convert float to uint ( temp uint) 0:16 f: direct index for structure ( uniform float) 0:16 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) 0:16 Constant: 0:16 2 (const uint) 0:17 Sequence 0:17 move second child to first child ( temp 2-component vector of uint) 0:17 'r01' ( temp 2-component vector of uint) 0:17 bitFieldReverse ( temp 2-component vector of uint) 0:17 Convert float to uint ( temp 2-component vector of uint) 0:17 f2: direct index for structure ( uniform 2-component vector of float) 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) 0:17 Constant: 0:17 6 (const uint) 0:20 move second child to first child ( temp 4-component vector of float) 0:20 color: direct index for structure ( temp 4-component vector of float) 0:20 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:20 Constant: 0:20 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:21 Branch: Return with expression 0:21 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:15 Function Definition: main( ( temp void) 0:15 Function Parameters: 0:? Sequence 0:15 Sequence 0:15 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:15 color: direct index for structure ( temp 4-component vector of float) 0:15 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:15 Constant: 0:15 0 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int i, uniform uint u, uniform float f, uniform bool b, uniform 2-component vector of int i2, uniform 2-component vector of uint u2, uniform 2-component vector of float f2, uniform 2-component vector of bool b2}) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.promote.frag.out000066400000000000000000002754501360464450000252130ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 277(g_tTex1df4) DescriptorSet 0 Decorate 277(g_tTex1df4) Binding 0 Decorate 319(@entryPointOutput.color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 6(float) 14: TypeInt 32 1 15: TypeInt 32 0 16: TypeVector 14(int) 2 17: TypeVector 15(int) 2 18: TypeVector 6(float) 2 19($Global): TypeStruct 14(int) 15(int) 6(float) 15(int) 16(ivec2) 17(ivec2) 18(fvec2) 17(ivec2) 15(int) 6(float) 20: TypePointer Uniform 19($Global) 21: 20(ptr) Variable Uniform 22: 14(int) Constant 3 23: TypePointer Uniform 15(int) 26: TypeBool 27: 15(int) Constant 0 29: 6(float) Constant 0 30: 6(float) Constant 1065353216 32: 14(int) Constant 2 33: TypePointer Uniform 6(float) 37: TypePointer Function 15(int) 42: 15(int) Constant 1 44: 14(int) Constant 1 48: TypePointer Function 14(int) 53: 14(int) Constant 0 55: TypePointer Uniform 14(int) 73: TypePointer Function 18(fvec2) 75: 14(int) Constant 7 76: TypePointer Uniform 17(ivec2) 79: TypeVector 26(bool) 2 80: 17(ivec2) ConstantComposite 27 27 82: 18(fvec2) ConstantComposite 29 29 83: 18(fvec2) ConstantComposite 30 30 85: 14(int) Constant 6 86: TypePointer Uniform 18(fvec2) 90: TypePointer Function 17(ivec2) 95: 17(ivec2) ConstantComposite 42 42 97: 14(int) Constant 5 101: TypePointer Function 16(ivec2) 106: 16(ivec2) ConstantComposite 53 53 107: 16(ivec2) ConstantComposite 44 44 109: 14(int) Constant 4 110: TypePointer Uniform 16(ivec2) 256: TypeImage 6(float) Buffer sampled format:R32f 257: TypePointer UniformConstant 256 258(g_tTexbfs): 257(ptr) Variable UniformConstant 260: 14(int) Constant 8 268: 14(int) Constant 9 275: TypeImage 6(float) 1D sampled format:Unknown 276: TypePointer UniformConstant 275 277(g_tTex1df4): 276(ptr) Variable UniformConstant 285: 15(int) Constant 6 309: TypePointer Function 8(PS_OUTPUT) 313: TypePointer Function 7(fvec4) 318: TypePointer Output 7(fvec4) 319(@entryPointOutput.color): 318(ptr) Variable Output 4(main): 2 Function None 3 5: Label 320:8(PS_OUTPUT) FunctionCall 10(@main() 321: 7(fvec4) CompositeExtract 320 0 Store 319(@entryPointOutput.color) 321 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function 38(r01): 37(ptr) Variable Function 49(r02): 48(ptr) Variable Function 59(r03): 12(ptr) Variable Function 66(r04): 12(ptr) Variable Function 74(r10): 73(ptr) Variable Function 91(r11): 90(ptr) Variable Function 102(r12): 101(ptr) Variable Function 114(r13): 73(ptr) Variable Function 121(r14): 73(ptr) Variable Function 128(r20): 73(ptr) Variable Function 138(r21): 90(ptr) Variable Function 150(r22): 73(ptr) Variable Function 162(r30): 73(ptr) Variable Function 171(r31): 90(ptr) Variable Function 180(r32): 101(ptr) Variable Function 189(r33): 73(ptr) Variable Function 197(r34): 73(ptr) Variable Function 205(r40): 73(ptr) Variable Function 216(r41): 90(ptr) Variable Function 229(r42): 73(ptr) Variable Function 243(r43): 101(ptr) Variable Function 255(r50): 12(ptr) Variable Function 266(r51): 12(ptr) Variable Function 274(sizeQueryTemp): 37(ptr) Variable Function 280(WidthI): 48(ptr) Variable Function 283(sizeQueryTemp): 37(ptr) Variable Function 289(NumberOfLevelsU): 37(ptr) Variable Function 292(sizeQueryTemp): 37(ptr) Variable Function 295(WidthU): 37(ptr) Variable Function 297(NumberOfLevelsI): 48(ptr) Variable Function 301(sizeQueryTemp): 37(ptr) Variable Function 310(ps_output): 309(ptr) Variable Function 24: 23(ptr) AccessChain 21 22 25: 15(int) Load 24 28: 26(bool) INotEqual 25 27 31: 6(float) Select 28 30 29 34: 33(ptr) AccessChain 21 32 35: 6(float) Load 34 36: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 31 35 Store 13(r00) 36 39: 23(ptr) AccessChain 21 22 40: 15(int) Load 39 41: 26(bool) INotEqual 40 27 43: 15(int) Select 41 42 27 45: 23(ptr) AccessChain 21 44 46: 15(int) Load 45 47: 15(int) ExtInst 1(GLSL.std.450) 41(UMax) 43 46 Store 38(r01) 47 50: 23(ptr) AccessChain 21 22 51: 15(int) Load 50 52: 26(bool) INotEqual 51 27 54: 14(int) Select 52 44 53 56: 55(ptr) AccessChain 21 53 57: 14(int) Load 56 58: 14(int) ExtInst 1(GLSL.std.450) 42(SMax) 54 57 Store 49(r02) 58 60: 55(ptr) AccessChain 21 53 61: 14(int) Load 60 62: 6(float) ConvertSToF 61 63: 33(ptr) AccessChain 21 32 64: 6(float) Load 63 65: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 62 64 Store 59(r03) 65 67: 23(ptr) AccessChain 21 44 68: 15(int) Load 67 69: 6(float) ConvertUToF 68 70: 33(ptr) AccessChain 21 32 71: 6(float) Load 70 72: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 69 71 Store 66(r04) 72 77: 76(ptr) AccessChain 21 75 78: 17(ivec2) Load 77 81: 79(bvec2) INotEqual 78 80 84: 18(fvec2) Select 81 83 82 87: 86(ptr) AccessChain 21 85 88: 18(fvec2) Load 87 89: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 84 88 Store 74(r10) 89 92: 76(ptr) AccessChain 21 75 93: 17(ivec2) Load 92 94: 79(bvec2) INotEqual 93 80 96: 17(ivec2) Select 94 95 80 98: 76(ptr) AccessChain 21 97 99: 17(ivec2) Load 98 100: 17(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 96 99 Store 91(r11) 100 103: 76(ptr) AccessChain 21 75 104: 17(ivec2) Load 103 105: 79(bvec2) INotEqual 104 80 108: 16(ivec2) Select 105 107 106 111: 110(ptr) AccessChain 21 109 112: 16(ivec2) Load 111 113: 16(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 108 112 Store 102(r12) 113 115: 110(ptr) AccessChain 21 109 116: 16(ivec2) Load 115 117: 18(fvec2) ConvertSToF 116 118: 86(ptr) AccessChain 21 85 119: 18(fvec2) Load 118 120: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 117 119 Store 114(r13) 120 122: 76(ptr) AccessChain 21 97 123: 17(ivec2) Load 122 124: 18(fvec2) ConvertUToF 123 125: 86(ptr) AccessChain 21 85 126: 18(fvec2) Load 125 127: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 124 126 Store 121(r14) 127 129: 110(ptr) AccessChain 21 109 130: 16(ivec2) Load 129 131: 18(fvec2) ConvertSToF 130 132: 76(ptr) AccessChain 21 97 133: 17(ivec2) Load 132 134: 18(fvec2) ConvertUToF 133 135: 86(ptr) AccessChain 21 85 136: 18(fvec2) Load 135 137: 18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 131 134 136 Store 128(r20) 137 139: 76(ptr) AccessChain 21 75 140: 17(ivec2) Load 139 141: 79(bvec2) INotEqual 140 80 142: 17(ivec2) Select 141 95 80 143: 76(ptr) AccessChain 21 97 144: 17(ivec2) Load 143 145: 76(ptr) AccessChain 21 75 146: 17(ivec2) Load 145 147: 79(bvec2) INotEqual 146 80 148: 17(ivec2) Select 147 95 80 149: 17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 142 144 148 Store 138(r21) 149 151: 76(ptr) AccessChain 21 75 152: 17(ivec2) Load 151 153: 79(bvec2) INotEqual 152 80 154: 18(fvec2) Select 153 83 82 155: 86(ptr) AccessChain 21 85 156: 18(fvec2) Load 155 157: 76(ptr) AccessChain 21 75 158: 17(ivec2) Load 157 159: 79(bvec2) INotEqual 158 80 160: 18(fvec2) Select 159 83 82 161: 18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 154 156 160 Store 150(r22) 161 163: 23(ptr) AccessChain 21 22 164: 15(int) Load 163 165: 26(bool) INotEqual 164 27 166: 6(float) Select 165 30 29 167: 18(fvec2) CompositeConstruct 166 166 168: 86(ptr) AccessChain 21 85 169: 18(fvec2) Load 168 170: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 167 169 Store 162(r30) 170 172: 23(ptr) AccessChain 21 22 173: 15(int) Load 172 174: 26(bool) INotEqual 173 27 175: 15(int) Select 174 42 27 176: 17(ivec2) CompositeConstruct 175 175 177: 76(ptr) AccessChain 21 97 178: 17(ivec2) Load 177 179: 17(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 176 178 Store 171(r31) 179 181: 23(ptr) AccessChain 21 22 182: 15(int) Load 181 183: 26(bool) INotEqual 182 27 184: 14(int) Select 183 44 53 185: 16(ivec2) CompositeConstruct 184 184 186: 110(ptr) AccessChain 21 109 187: 16(ivec2) Load 186 188: 16(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 185 187 Store 180(r32) 188 190: 55(ptr) AccessChain 21 53 191: 14(int) Load 190 192: 6(float) ConvertSToF 191 193: 18(fvec2) CompositeConstruct 192 192 194: 86(ptr) AccessChain 21 85 195: 18(fvec2) Load 194 196: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 193 195 Store 189(r33) 196 198: 23(ptr) AccessChain 21 44 199: 15(int) Load 198 200: 6(float) ConvertUToF 199 201: 18(fvec2) CompositeConstruct 200 200 202: 86(ptr) AccessChain 21 85 203: 18(fvec2) Load 202 204: 18(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 201 203 Store 197(r34) 204 206: 55(ptr) AccessChain 21 53 207: 14(int) Load 206 208: 6(float) ConvertSToF 207 209: 18(fvec2) CompositeConstruct 208 208 210: 76(ptr) AccessChain 21 97 211: 17(ivec2) Load 210 212: 18(fvec2) ConvertUToF 211 213: 86(ptr) AccessChain 21 85 214: 18(fvec2) Load 213 215: 18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 209 212 214 Store 205(r40) 215 217: 76(ptr) AccessChain 21 75 218: 17(ivec2) Load 217 219: 79(bvec2) INotEqual 218 80 220: 17(ivec2) Select 219 95 80 221: 23(ptr) AccessChain 21 44 222: 15(int) Load 221 223: 17(ivec2) CompositeConstruct 222 222 224: 76(ptr) AccessChain 21 75 225: 17(ivec2) Load 224 226: 79(bvec2) INotEqual 225 80 227: 17(ivec2) Select 226 95 80 228: 17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 220 223 227 Store 216(r41) 228 230: 76(ptr) AccessChain 21 75 231: 17(ivec2) Load 230 232: 79(bvec2) INotEqual 231 80 233: 18(fvec2) Select 232 83 82 234: 33(ptr) AccessChain 21 32 235: 6(float) Load 234 236: 18(fvec2) CompositeConstruct 235 235 237: 23(ptr) AccessChain 21 22 238: 15(int) Load 237 239: 26(bool) INotEqual 238 27 240: 6(float) Select 239 30 29 241: 18(fvec2) CompositeConstruct 240 240 242: 18(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 233 236 241 Store 229(r42) 242 244: 55(ptr) AccessChain 21 53 245: 14(int) Load 244 246: 15(int) Bitcast 245 247: 17(ivec2) CompositeConstruct 246 246 248: 110(ptr) AccessChain 21 109 249: 16(ivec2) Load 248 250: 17(ivec2) Bitcast 249 251: 76(ptr) AccessChain 21 97 252: 17(ivec2) Load 251 253: 17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 247 250 252 254: 16(ivec2) Bitcast 253 Store 243(r43) 254 259: 256 Load 258(g_tTexbfs) 261: 23(ptr) AccessChain 21 260 262: 15(int) Load 261 263: 14(int) Bitcast 262 264: 7(fvec4) ImageFetch 259 263 265: 6(float) CompositeExtract 264 0 Store 255(r50) 265 267: 256 Load 258(g_tTexbfs) 269: 33(ptr) AccessChain 21 268 270: 6(float) Load 269 271: 14(int) ConvertFToS 270 272: 7(fvec4) ImageFetch 267 271 273: 6(float) CompositeExtract 272 0 Store 266(r51) 273 278: 275 Load 277(g_tTex1df4) 279: 15(int) ImageQuerySizeLod 278 53 Store 274(sizeQueryTemp) 279 281: 15(int) Load 274(sizeQueryTemp) 282: 14(int) Bitcast 281 Store 280(WidthI) 282 284: 275 Load 277(g_tTex1df4) 286: 15(int) ImageQuerySizeLod 284 285 Store 283(sizeQueryTemp) 286 287: 15(int) Load 283(sizeQueryTemp) 288: 14(int) Bitcast 287 Store 280(WidthI) 288 290: 275 Load 277(g_tTex1df4) 291: 15(int) ImageQueryLevels 290 Store 289(NumberOfLevelsU) 291 293: 275 Load 277(g_tTex1df4) 294: 15(int) ImageQuerySizeLod 293 285 Store 292(sizeQueryTemp) 294 296: 15(int) Load 292(sizeQueryTemp) Store 295(WidthU) 296 298: 275 Load 277(g_tTex1df4) 299: 15(int) ImageQueryLevels 298 300: 14(int) Bitcast 299 Store 297(NumberOfLevelsI) 300 302: 275 Load 277(g_tTex1df4) 303: 15(int) ImageQuerySizeLod 302 285 Store 301(sizeQueryTemp) 303 304: 15(int) Load 301(sizeQueryTemp) 305: 14(int) Bitcast 304 Store 280(WidthI) 305 306: 275 Load 277(g_tTex1df4) 307: 15(int) ImageQueryLevels 306 308: 14(int) Bitcast 307 Store 297(NumberOfLevelsI) 308 311: 6(float) Load 13(r00) 312: 7(fvec4) CompositeConstruct 311 311 311 311 314: 313(ptr) AccessChain 310(ps_output) 53 Store 314 312 315:8(PS_OUTPUT) Load 310(ps_output) ReturnValue 315 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out000066400000000000000000000427441360464450000267330ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 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 glslang-8.13.3559/Test/baseResults/hlsl.intrinsics.vert.out000066400000000000000000006064401360464450000235650ustar00rootroot00000000000000hlsl.intrinsics.vert Shader version: 500 0:? Sequence 0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; ( temp float) 0:2 Function Parameters: 0:2 'inF0' ( in float) 0:2 'inF1' ( in float) 0:2 'inF2' ( in float) 0:2 'inU0' ( in uint) 0:2 'inU1' ( in uint) 0:? Sequence 0:3 all ( temp bool) 0:3 Convert float to bool ( temp bool) 0:3 'inF0' ( in float) 0:4 Absolute value ( temp float) 0:4 'inF0' ( in float) 0:5 arc cosine ( temp float) 0:5 'inF0' ( in float) 0:6 any ( temp bool) 0:6 Convert float to bool ( temp bool) 0:6 'inF0' ( in float) 0:7 arc sine ( temp float) 0:7 'inF0' ( in float) 0:8 floatBitsToInt ( temp int) 0:8 'inF0' ( in float) 0:9 floatBitsToUint ( temp uint) 0:9 'inF0' ( in float) 0:10 intBitsToFloat ( temp float) 0:10 'inU0' ( in uint) 0:12 arc tangent ( temp float) 0:12 'inF0' ( in float) 0:13 arc tangent ( temp float) 0:13 'inF0' ( in float) 0:13 'inF1' ( in float) 0:14 Ceiling ( temp float) 0:14 'inF0' ( in float) 0:15 clamp ( temp float) 0:15 'inF0' ( in float) 0:15 'inF1' ( in float) 0:15 'inF2' ( in float) 0:16 cosine ( temp float) 0:16 'inF0' ( in float) 0:17 hyp. cosine ( temp float) 0:17 'inF0' ( in float) 0:18 bitCount ( temp int) 0:18 Constant: 0:18 7 (const int) 0:19 degrees ( temp float) 0:19 'inF0' ( in float) 0:23 exp ( temp float) 0:23 'inF0' ( in float) 0:24 exp2 ( temp float) 0:24 'inF0' ( in float) 0:25 findMSB ( temp int) 0:25 Constant: 0:25 7 (const int) 0:26 findLSB ( temp int) 0:26 Constant: 0:26 7 (const int) 0:27 Floor ( temp float) 0:27 'inF0' ( in float) 0:29 mod ( temp float) 0:29 'inF0' ( in float) 0:29 'inF1' ( in float) 0:30 Fraction ( temp float) 0:30 'inF0' ( in float) 0:31 isinf ( temp bool) 0:31 'inF0' ( in float) 0:32 isnan ( temp bool) 0:32 'inF0' ( in float) 0:33 ldexp ( temp float) 0:33 'inF0' ( in float) 0:33 'inF1' ( in float) 0:34 mix ( temp float) 0:34 'inF0' ( in float) 0:34 'inF1' ( in float) 0:34 'inF2' ( in float) 0:35 log ( temp float) 0:35 'inF0' ( in float) 0:36 component-wise multiply ( temp float) 0:36 log2 ( temp float) 0:36 'inF0' ( in float) 0:36 Constant: 0:36 0.301030 0:37 log2 ( temp float) 0:37 'inF0' ( in float) 0:38 max ( temp float) 0:38 'inF0' ( in float) 0:38 'inF1' ( in float) 0:39 min ( temp float) 0:39 'inF0' ( in float) 0:39 'inF1' ( in float) 0:41 pow ( temp float) 0:41 'inF0' ( in float) 0:41 'inF1' ( in float) 0:42 radians ( temp float) 0:42 'inF0' ( in float) 0:43 bitFieldReverse ( temp int) 0:43 Constant: 0:43 2 (const int) 0:44 roundEven ( temp float) 0:44 'inF0' ( in float) 0:45 inverse sqrt ( temp float) 0:45 'inF0' ( in float) 0:46 clamp ( temp float) 0:46 'inF0' ( in float) 0:46 Constant: 0:46 0.000000 0:46 Constant: 0:46 1.000000 0:47 Sign ( temp float) 0:47 'inF0' ( in float) 0:48 sine ( temp float) 0:48 'inF0' ( in float) 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'inF1' ( in float) 0:49 sine ( temp float) 0:49 'inF0' ( in float) 0:49 move second child to first child ( temp float) 0:49 'inF2' ( in float) 0:49 cosine ( temp float) 0:49 'inF0' ( in float) 0:50 hyp. sine ( temp float) 0:50 'inF0' ( in float) 0:51 smoothstep ( temp float) 0:51 'inF0' ( in float) 0:51 'inF1' ( in float) 0:51 'inF2' ( in float) 0:52 sqrt ( temp float) 0:52 'inF0' ( in float) 0:53 step ( temp float) 0:53 'inF0' ( in float) 0:53 'inF1' ( in float) 0:54 tangent ( temp float) 0:54 'inF0' ( in float) 0:55 hyp. tangent ( temp float) 0:55 'inF0' ( in float) 0:57 trunc ( temp float) 0:57 'inF0' ( in float) 0:59 Branch: Return with expression 0:59 Constant: 0:59 0.000000 0:63 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) 0:63 Function Parameters: 0:63 'inF0' ( in 1-component vector of float) 0:63 'inF1' ( in 1-component vector of float) 0:63 'inF2' ( in 1-component vector of float) 0:? Sequence 0:65 Branch: Return with expression 0:65 Constant: 0:65 0.000000 0:69 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) 0:69 Function Parameters: 0:69 'inF0' ( in 2-component vector of float) 0:69 'inF1' ( in 2-component vector of float) 0:69 'inF2' ( in 2-component vector of float) 0:69 'inU0' ( in 2-component vector of uint) 0:69 'inU1' ( in 2-component vector of uint) 0:? Sequence 0:70 all ( temp bool) 0:70 Convert float to bool ( temp 2-component vector of bool) 0:70 'inF0' ( in 2-component vector of float) 0:71 Absolute value ( temp 2-component vector of float) 0:71 'inF0' ( in 2-component vector of float) 0:72 arc cosine ( temp 2-component vector of float) 0:72 'inF0' ( in 2-component vector of float) 0:73 any ( temp bool) 0:73 Convert float to bool ( temp 2-component vector of bool) 0:73 'inF0' ( in 2-component vector of float) 0:74 arc sine ( temp 2-component vector of float) 0:74 'inF0' ( in 2-component vector of float) 0:75 floatBitsToInt ( temp 2-component vector of int) 0:75 'inF0' ( in 2-component vector of float) 0:76 floatBitsToUint ( temp 2-component vector of uint) 0:76 'inF0' ( in 2-component vector of float) 0:77 intBitsToFloat ( temp 2-component vector of float) 0:77 'inU0' ( in 2-component vector of uint) 0:79 arc tangent ( temp 2-component vector of float) 0:79 'inF0' ( in 2-component vector of float) 0:80 arc tangent ( temp 2-component vector of float) 0:80 'inF0' ( in 2-component vector of float) 0:80 'inF1' ( in 2-component vector of float) 0:81 Ceiling ( temp 2-component vector of float) 0:81 'inF0' ( in 2-component vector of float) 0:82 clamp ( temp 2-component vector of float) 0:82 'inF0' ( in 2-component vector of float) 0:82 'inF1' ( in 2-component vector of float) 0:82 'inF2' ( in 2-component vector of float) 0:83 cosine ( temp 2-component vector of float) 0:83 'inF0' ( in 2-component vector of float) 0:84 hyp. cosine ( temp 2-component vector of float) 0:84 'inF0' ( in 2-component vector of float) 0:? bitCount ( temp 2-component vector of int) 0:? Constant: 0:? 7 (const int) 0:? 3 (const int) 0:86 degrees ( temp 2-component vector of float) 0:86 'inF0' ( in 2-component vector of float) 0:87 distance ( temp float) 0:87 'inF0' ( in 2-component vector of float) 0:87 'inF1' ( in 2-component vector of float) 0:88 dot-product ( temp float) 0:88 'inF0' ( in 2-component vector of float) 0:88 'inF1' ( in 2-component vector of float) 0:92 exp ( temp 2-component vector of float) 0:92 'inF0' ( in 2-component vector of float) 0:93 exp2 ( temp 2-component vector of float) 0:93 'inF0' ( in 2-component vector of float) 0:94 face-forward ( temp 2-component vector of float) 0:94 'inF0' ( in 2-component vector of float) 0:94 'inF1' ( in 2-component vector of float) 0:94 'inF2' ( in 2-component vector of float) 0:95 findMSB ( temp int) 0:95 Constant: 0:95 7 (const int) 0:96 findLSB ( temp int) 0:96 Constant: 0:96 7 (const int) 0:97 Floor ( temp 2-component vector of float) 0:97 'inF0' ( in 2-component vector of float) 0:99 mod ( temp 2-component vector of float) 0:99 'inF0' ( in 2-component vector of float) 0:99 'inF1' ( in 2-component vector of float) 0:100 Fraction ( temp 2-component vector of float) 0:100 'inF0' ( in 2-component vector of float) 0:101 isinf ( temp 2-component vector of bool) 0:101 'inF0' ( in 2-component vector of float) 0:102 isnan ( temp 2-component vector of bool) 0:102 'inF0' ( in 2-component vector of float) 0:103 ldexp ( temp 2-component vector of float) 0:103 'inF0' ( in 2-component vector of float) 0:103 'inF1' ( in 2-component vector of float) 0:104 mix ( temp 2-component vector of float) 0:104 'inF0' ( in 2-component vector of float) 0:104 'inF1' ( in 2-component vector of float) 0:104 'inF2' ( in 2-component vector of float) 0:105 length ( temp float) 0:105 'inF0' ( in 2-component vector of float) 0:106 log ( temp 2-component vector of float) 0:106 'inF0' ( in 2-component vector of float) 0:107 vector-scale ( temp 2-component vector of float) 0:107 log2 ( temp 2-component vector of float) 0:107 'inF0' ( in 2-component vector of float) 0:107 Constant: 0:107 0.301030 0:108 log2 ( temp 2-component vector of float) 0:108 'inF0' ( in 2-component vector of float) 0:109 max ( temp 2-component vector of float) 0:109 'inF0' ( in 2-component vector of float) 0:109 'inF1' ( in 2-component vector of float) 0:110 min ( temp 2-component vector of float) 0:110 'inF0' ( in 2-component vector of float) 0:110 'inF1' ( in 2-component vector of float) 0:112 normalize ( temp 2-component vector of float) 0:112 'inF0' ( in 2-component vector of float) 0:113 pow ( temp 2-component vector of float) 0:113 'inF0' ( in 2-component vector of float) 0:113 'inF1' ( in 2-component vector of float) 0:114 radians ( temp 2-component vector of float) 0:114 'inF0' ( in 2-component vector of float) 0:115 reflect ( temp 2-component vector of float) 0:115 'inF0' ( in 2-component vector of float) 0:115 'inF1' ( in 2-component vector of float) 0:116 refract ( temp 2-component vector of float) 0:116 'inF0' ( in 2-component vector of float) 0:116 'inF1' ( in 2-component vector of float) 0:116 Constant: 0:116 2.000000 0:? bitFieldReverse ( temp 2-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:118 roundEven ( temp 2-component vector of float) 0:118 'inF0' ( in 2-component vector of float) 0:119 inverse sqrt ( temp 2-component vector of float) 0:119 'inF0' ( in 2-component vector of float) 0:120 clamp ( temp 2-component vector of float) 0:120 'inF0' ( in 2-component vector of float) 0:120 Constant: 0:120 0.000000 0:120 Constant: 0:120 1.000000 0:121 Sign ( temp 2-component vector of float) 0:121 'inF0' ( in 2-component vector of float) 0:122 sine ( temp 2-component vector of float) 0:122 'inF0' ( in 2-component vector of float) 0:123 Sequence 0:123 move second child to first child ( temp 2-component vector of float) 0:123 'inF1' ( in 2-component vector of float) 0:123 sine ( temp 2-component vector of float) 0:123 'inF0' ( in 2-component vector of float) 0:123 move second child to first child ( temp 2-component vector of float) 0:123 'inF2' ( in 2-component vector of float) 0:123 cosine ( temp 2-component vector of float) 0:123 'inF0' ( in 2-component vector of float) 0:124 hyp. sine ( temp 2-component vector of float) 0:124 'inF0' ( in 2-component vector of float) 0:125 smoothstep ( temp 2-component vector of float) 0:125 'inF0' ( in 2-component vector of float) 0:125 'inF1' ( in 2-component vector of float) 0:125 'inF2' ( in 2-component vector of float) 0:126 sqrt ( temp 2-component vector of float) 0:126 'inF0' ( in 2-component vector of float) 0:127 step ( temp 2-component vector of float) 0:127 'inF0' ( in 2-component vector of float) 0:127 'inF1' ( in 2-component vector of float) 0:128 tangent ( temp 2-component vector of float) 0:128 'inF0' ( in 2-component vector of float) 0:129 hyp. tangent ( temp 2-component vector of float) 0:129 'inF0' ( in 2-component vector of float) 0:131 trunc ( temp 2-component vector of float) 0:131 'inF0' ( in 2-component vector of float) 0:134 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:138 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) 0:138 Function Parameters: 0:138 'inF0' ( in 3-component vector of float) 0:138 'inF1' ( in 3-component vector of float) 0:138 'inF2' ( in 3-component vector of float) 0:138 'inU0' ( in 3-component vector of uint) 0:138 'inU1' ( in 3-component vector of uint) 0:? Sequence 0:139 all ( temp bool) 0:139 Convert float to bool ( temp 3-component vector of bool) 0:139 'inF0' ( in 3-component vector of float) 0:140 Absolute value ( temp 3-component vector of float) 0:140 'inF0' ( in 3-component vector of float) 0:141 arc cosine ( temp 3-component vector of float) 0:141 'inF0' ( in 3-component vector of float) 0:142 any ( temp bool) 0:142 Convert float to bool ( temp 3-component vector of bool) 0:142 'inF0' ( in 3-component vector of float) 0:143 arc sine ( temp 3-component vector of float) 0:143 'inF0' ( in 3-component vector of float) 0:144 floatBitsToInt ( temp 3-component vector of int) 0:144 'inF0' ( in 3-component vector of float) 0:145 floatBitsToUint ( temp 3-component vector of uint) 0:145 'inF0' ( in 3-component vector of float) 0:146 intBitsToFloat ( temp 3-component vector of float) 0:146 'inU0' ( in 3-component vector of uint) 0:148 arc tangent ( temp 3-component vector of float) 0:148 'inF0' ( in 3-component vector of float) 0:149 arc tangent ( temp 3-component vector of float) 0:149 'inF0' ( in 3-component vector of float) 0:149 'inF1' ( in 3-component vector of float) 0:150 Ceiling ( temp 3-component vector of float) 0:150 'inF0' ( in 3-component vector of float) 0:151 clamp ( temp 3-component vector of float) 0:151 'inF0' ( in 3-component vector of float) 0:151 'inF1' ( in 3-component vector of float) 0:151 'inF2' ( in 3-component vector of float) 0:152 cosine ( temp 3-component vector of float) 0:152 'inF0' ( in 3-component vector of float) 0:153 hyp. cosine ( temp 3-component vector of float) 0:153 'inF0' ( in 3-component vector of float) 0:? bitCount ( temp 3-component vector of int) 0:? Constant: 0:? 7 (const int) 0:? 3 (const int) 0:? 5 (const int) 0:155 cross-product ( temp 3-component vector of float) 0:155 'inF0' ( in 3-component vector of float) 0:155 'inF1' ( in 3-component vector of float) 0:156 degrees ( temp 3-component vector of float) 0:156 'inF0' ( in 3-component vector of float) 0:157 distance ( temp float) 0:157 'inF0' ( in 3-component vector of float) 0:157 'inF1' ( in 3-component vector of float) 0:158 dot-product ( temp float) 0:158 'inF0' ( in 3-component vector of float) 0:158 'inF1' ( in 3-component vector of float) 0:162 exp ( temp 3-component vector of float) 0:162 'inF0' ( in 3-component vector of float) 0:163 exp2 ( temp 3-component vector of float) 0:163 'inF0' ( in 3-component vector of float) 0:164 face-forward ( temp 3-component vector of float) 0:164 'inF0' ( in 3-component vector of float) 0:164 'inF1' ( in 3-component vector of float) 0:164 'inF2' ( in 3-component vector of float) 0:165 findMSB ( temp int) 0:165 Constant: 0:165 7 (const int) 0:166 findLSB ( temp int) 0:166 Constant: 0:166 7 (const int) 0:167 Floor ( temp 3-component vector of float) 0:167 'inF0' ( in 3-component vector of float) 0:169 mod ( temp 3-component vector of float) 0:169 'inF0' ( in 3-component vector of float) 0:169 'inF1' ( in 3-component vector of float) 0:170 Fraction ( temp 3-component vector of float) 0:170 'inF0' ( in 3-component vector of float) 0:171 isinf ( temp 3-component vector of bool) 0:171 'inF0' ( in 3-component vector of float) 0:172 isnan ( temp 3-component vector of bool) 0:172 'inF0' ( in 3-component vector of float) 0:173 ldexp ( temp 3-component vector of float) 0:173 'inF0' ( in 3-component vector of float) 0:173 'inF1' ( in 3-component vector of float) 0:174 mix ( temp 3-component vector of float) 0:174 'inF0' ( in 3-component vector of float) 0:174 'inF1' ( in 3-component vector of float) 0:174 'inF2' ( in 3-component vector of float) 0:175 length ( temp float) 0:175 'inF0' ( in 3-component vector of float) 0:176 log ( temp 3-component vector of float) 0:176 'inF0' ( in 3-component vector of float) 0:177 vector-scale ( temp 3-component vector of float) 0:177 log2 ( temp 3-component vector of float) 0:177 'inF0' ( in 3-component vector of float) 0:177 Constant: 0:177 0.301030 0:178 log2 ( temp 3-component vector of float) 0:178 'inF0' ( in 3-component vector of float) 0:179 max ( temp 3-component vector of float) 0:179 'inF0' ( in 3-component vector of float) 0:179 'inF1' ( in 3-component vector of float) 0:180 min ( temp 3-component vector of float) 0:180 'inF0' ( in 3-component vector of float) 0:180 'inF1' ( in 3-component vector of float) 0:182 normalize ( temp 3-component vector of float) 0:182 'inF0' ( in 3-component vector of float) 0:183 pow ( temp 3-component vector of float) 0:183 'inF0' ( in 3-component vector of float) 0:183 'inF1' ( in 3-component vector of float) 0:184 radians ( temp 3-component vector of float) 0:184 'inF0' ( in 3-component vector of float) 0:185 reflect ( temp 3-component vector of float) 0:185 'inF0' ( in 3-component vector of float) 0:185 'inF1' ( in 3-component vector of float) 0:186 refract ( temp 3-component vector of float) 0:186 'inF0' ( in 3-component vector of float) 0:186 'inF1' ( in 3-component vector of float) 0:186 Constant: 0:186 2.000000 0:? bitFieldReverse ( temp 3-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:188 roundEven ( temp 3-component vector of float) 0:188 'inF0' ( in 3-component vector of float) 0:189 inverse sqrt ( temp 3-component vector of float) 0:189 'inF0' ( in 3-component vector of float) 0:190 clamp ( temp 3-component vector of float) 0:190 'inF0' ( in 3-component vector of float) 0:190 Constant: 0:190 0.000000 0:190 Constant: 0:190 1.000000 0:191 Sign ( temp 3-component vector of float) 0:191 'inF0' ( in 3-component vector of float) 0:192 sine ( temp 3-component vector of float) 0:192 'inF0' ( in 3-component vector of float) 0:193 Sequence 0:193 move second child to first child ( temp 3-component vector of float) 0:193 'inF1' ( in 3-component vector of float) 0:193 sine ( temp 3-component vector of float) 0:193 'inF0' ( in 3-component vector of float) 0:193 move second child to first child ( temp 3-component vector of float) 0:193 'inF2' ( in 3-component vector of float) 0:193 cosine ( temp 3-component vector of float) 0:193 'inF0' ( in 3-component vector of float) 0:194 hyp. sine ( temp 3-component vector of float) 0:194 'inF0' ( in 3-component vector of float) 0:195 smoothstep ( temp 3-component vector of float) 0:195 'inF0' ( in 3-component vector of float) 0:195 'inF1' ( in 3-component vector of float) 0:195 'inF2' ( in 3-component vector of float) 0:196 sqrt ( temp 3-component vector of float) 0:196 'inF0' ( in 3-component vector of float) 0:197 step ( temp 3-component vector of float) 0:197 'inF0' ( in 3-component vector of float) 0:197 'inF1' ( in 3-component vector of float) 0:198 tangent ( temp 3-component vector of float) 0:198 'inF0' ( in 3-component vector of float) 0:199 hyp. tangent ( temp 3-component vector of float) 0:199 'inF0' ( in 3-component vector of float) 0:201 trunc ( temp 3-component vector of float) 0:201 'inF0' ( in 3-component vector of float) 0:204 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:208 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) 0:208 Function Parameters: 0:208 'inF0' ( in 4-component vector of float) 0:208 'inF1' ( in 4-component vector of float) 0:208 'inF2' ( in 4-component vector of float) 0:208 'inU0' ( in 4-component vector of uint) 0:208 'inU1' ( in 4-component vector of uint) 0:? Sequence 0:209 all ( temp bool) 0:209 Convert float to bool ( temp 4-component vector of bool) 0:209 'inF0' ( in 4-component vector of float) 0:210 Absolute value ( temp 4-component vector of float) 0:210 'inF0' ( in 4-component vector of float) 0:211 arc cosine ( temp 4-component vector of float) 0:211 'inF0' ( in 4-component vector of float) 0:212 any ( temp bool) 0:212 Convert float to bool ( temp 4-component vector of bool) 0:212 'inF0' ( in 4-component vector of float) 0:213 arc sine ( temp 4-component vector of float) 0:213 'inF0' ( in 4-component vector of float) 0:214 floatBitsToInt ( temp 4-component vector of int) 0:214 'inF0' ( in 4-component vector of float) 0:215 floatBitsToUint ( temp 4-component vector of uint) 0:215 'inF0' ( in 4-component vector of float) 0:216 intBitsToFloat ( temp 4-component vector of float) 0:216 'inU0' ( in 4-component vector of uint) 0:218 arc tangent ( temp 4-component vector of float) 0:218 'inF0' ( in 4-component vector of float) 0:219 arc tangent ( temp 4-component vector of float) 0:219 'inF0' ( in 4-component vector of float) 0:219 'inF1' ( in 4-component vector of float) 0:220 Ceiling ( temp 4-component vector of float) 0:220 'inF0' ( in 4-component vector of float) 0:221 clamp ( temp 4-component vector of float) 0:221 'inF0' ( in 4-component vector of float) 0:221 'inF1' ( in 4-component vector of float) 0:221 'inF2' ( in 4-component vector of float) 0:222 cosine ( temp 4-component vector of float) 0:222 'inF0' ( in 4-component vector of float) 0:223 hyp. cosine ( temp 4-component vector of float) 0:223 'inF0' ( in 4-component vector of float) 0:? bitCount ( temp 4-component vector of int) 0:? Constant: 0:? 7 (const int) 0:? 3 (const int) 0:? 5 (const int) 0:? 2 (const int) 0:225 degrees ( temp 4-component vector of float) 0:225 'inF0' ( in 4-component vector of float) 0:226 distance ( temp float) 0:226 'inF0' ( in 4-component vector of float) 0:226 'inF1' ( in 4-component vector of float) 0:227 dot-product ( temp float) 0:227 'inF0' ( in 4-component vector of float) 0:227 'inF1' ( in 4-component vector of float) 0:228 Construct vec4 ( temp 4-component vector of float) 0:228 Constant: 0:228 1.000000 0:228 component-wise multiply ( temp float) 0:228 direct index ( temp float) 0:228 'inF0' ( in 4-component vector of float) 0:228 Constant: 0:228 1 (const int) 0:228 direct index ( temp float) 0:228 'inF1' ( in 4-component vector of float) 0:228 Constant: 0:228 1 (const int) 0:228 direct index ( temp float) 0:228 'inF0' ( in 4-component vector of float) 0:228 Constant: 0:228 2 (const int) 0:228 direct index ( temp float) 0:228 'inF1' ( in 4-component vector of float) 0:228 Constant: 0:228 3 (const int) 0:232 exp ( temp 4-component vector of float) 0:232 'inF0' ( in 4-component vector of float) 0:233 exp2 ( temp 4-component vector of float) 0:233 'inF0' ( in 4-component vector of float) 0:234 face-forward ( temp 4-component vector of float) 0:234 'inF0' ( in 4-component vector of float) 0:234 'inF1' ( in 4-component vector of float) 0:234 'inF2' ( in 4-component vector of float) 0:235 findMSB ( temp int) 0:235 Constant: 0:235 7 (const int) 0:236 findLSB ( temp int) 0:236 Constant: 0:236 7 (const int) 0:237 Floor ( temp 4-component vector of float) 0:237 'inF0' ( in 4-component vector of float) 0:239 mod ( temp 4-component vector of float) 0:239 'inF0' ( in 4-component vector of float) 0:239 'inF1' ( in 4-component vector of float) 0:240 Fraction ( temp 4-component vector of float) 0:240 'inF0' ( in 4-component vector of float) 0:241 isinf ( temp 4-component vector of bool) 0:241 'inF0' ( in 4-component vector of float) 0:242 isnan ( temp 4-component vector of bool) 0:242 'inF0' ( in 4-component vector of float) 0:243 ldexp ( temp 4-component vector of float) 0:243 'inF0' ( in 4-component vector of float) 0:243 'inF1' ( in 4-component vector of float) 0:244 mix ( temp 4-component vector of float) 0:244 'inF0' ( in 4-component vector of float) 0:244 'inF1' ( in 4-component vector of float) 0:244 'inF2' ( in 4-component vector of float) 0:245 length ( temp float) 0:245 'inF0' ( in 4-component vector of float) 0:246 log ( temp 4-component vector of float) 0:246 'inF0' ( in 4-component vector of float) 0:247 vector-scale ( temp 4-component vector of float) 0:247 log2 ( temp 4-component vector of float) 0:247 'inF0' ( in 4-component vector of float) 0:247 Constant: 0:247 0.301030 0:248 log2 ( temp 4-component vector of float) 0:248 'inF0' ( in 4-component vector of float) 0:249 max ( temp 4-component vector of float) 0:249 'inF0' ( in 4-component vector of float) 0:249 'inF1' ( in 4-component vector of float) 0:250 min ( temp 4-component vector of float) 0:250 'inF0' ( in 4-component vector of float) 0:250 'inF1' ( in 4-component vector of float) 0:252 normalize ( temp 4-component vector of float) 0:252 'inF0' ( in 4-component vector of float) 0:253 pow ( temp 4-component vector of float) 0:253 'inF0' ( in 4-component vector of float) 0:253 'inF1' ( in 4-component vector of float) 0:254 radians ( temp 4-component vector of float) 0:254 'inF0' ( in 4-component vector of float) 0:255 reflect ( temp 4-component vector of float) 0:255 'inF0' ( in 4-component vector of float) 0:255 'inF1' ( in 4-component vector of float) 0:256 refract ( temp 4-component vector of float) 0:256 'inF0' ( in 4-component vector of float) 0:256 'inF1' ( in 4-component vector of float) 0:256 Constant: 0:256 2.000000 0:? bitFieldReverse ( temp 4-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) 0:258 roundEven ( temp 4-component vector of float) 0:258 'inF0' ( in 4-component vector of float) 0:259 inverse sqrt ( temp 4-component vector of float) 0:259 'inF0' ( in 4-component vector of float) 0:260 clamp ( temp 4-component vector of float) 0:260 'inF0' ( in 4-component vector of float) 0:260 Constant: 0:260 0.000000 0:260 Constant: 0:260 1.000000 0:261 Sign ( temp 4-component vector of float) 0:261 'inF0' ( in 4-component vector of float) 0:262 sine ( temp 4-component vector of float) 0:262 'inF0' ( in 4-component vector of float) 0:263 Sequence 0:263 move second child to first child ( temp 4-component vector of float) 0:263 'inF1' ( in 4-component vector of float) 0:263 sine ( temp 4-component vector of float) 0:263 'inF0' ( in 4-component vector of float) 0:263 move second child to first child ( temp 4-component vector of float) 0:263 'inF2' ( in 4-component vector of float) 0:263 cosine ( temp 4-component vector of float) 0:263 'inF0' ( in 4-component vector of float) 0:264 hyp. sine ( temp 4-component vector of float) 0:264 'inF0' ( in 4-component vector of float) 0:265 smoothstep ( temp 4-component vector of float) 0:265 'inF0' ( in 4-component vector of float) 0:265 'inF1' ( in 4-component vector of float) 0:265 'inF2' ( in 4-component vector of float) 0:266 sqrt ( temp 4-component vector of float) 0:266 'inF0' ( in 4-component vector of float) 0:267 step ( temp 4-component vector of float) 0:267 'inF0' ( in 4-component vector of float) 0:267 'inF1' ( in 4-component vector of float) 0:268 tangent ( temp 4-component vector of float) 0:268 'inF0' ( in 4-component vector of float) 0:269 hyp. tangent ( temp 4-component vector of float) 0:269 'inF0' ( in 4-component vector of float) 0:271 trunc ( temp 4-component vector of float) 0:271 'inF0' ( in 4-component vector of float) 0:274 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:331 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) 0:331 Function Parameters: 0:331 'inF0' ( in 2X2 matrix of float) 0:331 'inF1' ( in 2X2 matrix of float) 0:331 'inF2' ( in 2X2 matrix of float) 0:? Sequence 0:333 all ( temp bool) 0:333 Convert float to bool ( temp 2X2 matrix of bool) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 Absolute value ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 arc cosine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 any ( temp bool) 0:333 Convert float to bool ( temp 2X2 matrix of bool) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 arc sine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 arc tangent ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 arc tangent ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 Ceiling ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 clamp ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 'inF2' ( in 2X2 matrix of float) 0:333 cosine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 hyp. cosine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 degrees ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 determinant ( temp float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 exp ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 exp2 ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 findMSB ( temp int) 0:333 Constant: 0:333 7 (const int) 0:333 findLSB ( temp int) 0:333 Constant: 0:333 7 (const int) 0:333 Floor ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 mod ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 Fraction ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 ldexp ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 mix ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 'inF2' ( in 2X2 matrix of float) 0:333 log ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 matrix-scale ( temp 2X2 matrix of float) 0:333 log2 ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 Constant: 0:333 0.301030 0:333 log2 ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 max ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 min ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 pow ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 radians ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 roundEven ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 inverse sqrt ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 clamp ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 Constant: 0:333 0.000000 0:333 Constant: 0:333 1.000000 0:333 Sign ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 sine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 Sequence 0:333 move second child to first child ( temp 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 sine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 move second child to first child ( temp 2X2 matrix of float) 0:333 'inF2' ( in 2X2 matrix of float) 0:333 cosine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 hyp. sine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 smoothstep ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 'inF2' ( in 2X2 matrix of float) 0:333 sqrt ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 step ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 tangent ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 hyp. tangent ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 transpose ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 trunc ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:336 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:340 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) 0:340 Function Parameters: 0:340 'inF0' ( in 3X3 matrix of float) 0:340 'inF1' ( in 3X3 matrix of float) 0:340 'inF2' ( in 3X3 matrix of float) 0:? Sequence 0:342 all ( temp bool) 0:342 Convert float to bool ( temp 3X3 matrix of bool) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 Absolute value ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 arc cosine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 any ( temp bool) 0:342 Convert float to bool ( temp 3X3 matrix of bool) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 arc sine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 arc tangent ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 arc tangent ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 Ceiling ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 clamp ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 'inF2' ( in 3X3 matrix of float) 0:342 cosine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 hyp. cosine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 degrees ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 determinant ( temp float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 exp ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 exp2 ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 findMSB ( temp int) 0:342 Constant: 0:342 7 (const int) 0:342 findLSB ( temp int) 0:342 Constant: 0:342 7 (const int) 0:342 Floor ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 mod ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 Fraction ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 ldexp ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 mix ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 'inF2' ( in 3X3 matrix of float) 0:342 log ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 matrix-scale ( temp 3X3 matrix of float) 0:342 log2 ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 Constant: 0:342 0.301030 0:342 log2 ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 max ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 min ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 pow ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 radians ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 roundEven ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 inverse sqrt ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 clamp ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 Constant: 0:342 0.000000 0:342 Constant: 0:342 1.000000 0:342 Sign ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 sine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 Sequence 0:342 move second child to first child ( temp 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 sine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 move second child to first child ( temp 3X3 matrix of float) 0:342 'inF2' ( in 3X3 matrix of float) 0:342 cosine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 hyp. sine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 smoothstep ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 'inF2' ( in 3X3 matrix of float) 0:342 sqrt ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 step ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 tangent ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 hyp. tangent ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 transpose ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 trunc ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:345 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:349 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) 0:349 Function Parameters: 0:349 'inF0' ( in 4X4 matrix of float) 0:349 'inF1' ( in 4X4 matrix of float) 0:349 'inF2' ( in 4X4 matrix of float) 0:? Sequence 0:351 all ( temp bool) 0:351 Convert float to bool ( temp 4X4 matrix of bool) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 Absolute value ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 arc cosine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 any ( temp bool) 0:351 Convert float to bool ( temp 4X4 matrix of bool) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 arc sine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 arc tangent ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 arc tangent ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 Ceiling ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 clamp ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 'inF2' ( in 4X4 matrix of float) 0:351 cosine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 hyp. cosine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 degrees ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 determinant ( temp float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 exp ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 exp2 ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 findMSB ( temp int) 0:351 Constant: 0:351 7 (const int) 0:351 findLSB ( temp int) 0:351 Constant: 0:351 7 (const int) 0:351 Floor ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 mod ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 Fraction ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 ldexp ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 mix ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 'inF2' ( in 4X4 matrix of float) 0:351 log ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 matrix-scale ( temp 4X4 matrix of float) 0:351 log2 ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 Constant: 0:351 0.301030 0:351 log2 ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 max ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 min ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 pow ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 radians ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 roundEven ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 inverse sqrt ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 clamp ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 Constant: 0:351 0.000000 0:351 Constant: 0:351 1.000000 0:351 Sign ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 sine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 Sequence 0:351 move second child to first child ( temp 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 sine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 move second child to first child ( temp 4X4 matrix of float) 0:351 'inF2' ( in 4X4 matrix of float) 0:351 cosine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 hyp. sine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 smoothstep ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 'inF2' ( in 4X4 matrix of float) 0:351 sqrt ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 step ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 tangent ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 hyp. tangent ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 transpose ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 trunc ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:354 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:372 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; ( temp void) 0:372 Function Parameters: 0:372 'inF0' ( in float) 0:372 'inF1' ( in float) 0:372 'inFV0' ( in 2-component vector of float) 0:372 'inFV1' ( in 2-component vector of float) 0:372 'inFM0' ( in 2X2 matrix of float) 0:372 'inFM1' ( in 2X2 matrix of float) 0:? Sequence 0:373 Sequence 0:373 move second child to first child ( temp float) 0:373 'r0' ( temp float) 0:373 component-wise multiply ( temp float) 0:373 'inF1' ( in float) 0:373 'inF0' ( in float) 0:373 Sequence 0:373 move second child to first child ( temp 2-component vector of float) 0:373 'r1' ( temp 2-component vector of float) 0:373 vector-scale ( temp 2-component vector of float) 0:373 'inF0' ( in float) 0:373 'inFV0' ( in 2-component vector of float) 0:373 Sequence 0:373 move second child to first child ( temp 2-component vector of float) 0:373 'r2' ( temp 2-component vector of float) 0:373 vector-scale ( temp 2-component vector of float) 0:373 'inFV0' ( in 2-component vector of float) 0:373 'inF0' ( in float) 0:373 Sequence 0:373 move second child to first child ( temp float) 0:373 'r3' ( temp float) 0:373 dot-product ( temp float) 0:373 'inFV0' ( in 2-component vector of float) 0:373 'inFV1' ( in 2-component vector of float) 0:373 Sequence 0:373 move second child to first child ( temp 2-component vector of float) 0:373 'r4' ( temp 2-component vector of float) 0:373 vector-times-matrix ( temp 2-component vector of float) 0:373 'inFV0' ( in 2-component vector of float) 0:373 'inFM0' ( in 2X2 matrix of float) 0:373 Sequence 0:373 move second child to first child ( temp 2-component vector of float) 0:373 'r5' ( temp 2-component vector of float) 0:373 matrix-times-vector ( temp 2-component vector of float) 0:373 'inFM0' ( in 2X2 matrix of float) 0:373 'inFV0' ( in 2-component vector of float) 0:373 Sequence 0:373 move second child to first child ( temp 2X2 matrix of float) 0:373 'r6' ( temp 2X2 matrix of float) 0:373 matrix-scale ( temp 2X2 matrix of float) 0:373 'inF0' ( in float) 0:373 'inFM0' ( in 2X2 matrix of float) 0:373 Sequence 0:373 move second child to first child ( temp 2X2 matrix of float) 0:373 'r7' ( temp 2X2 matrix of float) 0:373 matrix-scale ( temp 2X2 matrix of float) 0:373 'inFM0' ( in 2X2 matrix of float) 0:373 'inF0' ( in float) 0:373 Sequence 0:373 move second child to first child ( temp 2X2 matrix of float) 0:373 'r8' ( temp 2X2 matrix of float) 0:373 matrix-multiply ( temp 2X2 matrix of float) 0:373 'inFM1' ( in 2X2 matrix of float) 0:373 'inFM0' ( in 2X2 matrix of float) 0:379 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; ( temp void) 0:379 Function Parameters: 0:379 'inF0' ( in float) 0:379 'inF1' ( in float) 0:379 'inFV0' ( in 3-component vector of float) 0:379 'inFV1' ( in 3-component vector of float) 0:379 'inFM0' ( in 3X3 matrix of float) 0:379 'inFM1' ( in 3X3 matrix of float) 0:? Sequence 0:380 Sequence 0:380 move second child to first child ( temp float) 0:380 'r0' ( temp float) 0:380 component-wise multiply ( temp float) 0:380 'inF1' ( in float) 0:380 'inF0' ( in float) 0:380 Sequence 0:380 move second child to first child ( temp 3-component vector of float) 0:380 'r1' ( temp 3-component vector of float) 0:380 vector-scale ( temp 3-component vector of float) 0:380 'inF0' ( in float) 0:380 'inFV0' ( in 3-component vector of float) 0:380 Sequence 0:380 move second child to first child ( temp 3-component vector of float) 0:380 'r2' ( temp 3-component vector of float) 0:380 vector-scale ( temp 3-component vector of float) 0:380 'inFV0' ( in 3-component vector of float) 0:380 'inF0' ( in float) 0:380 Sequence 0:380 move second child to first child ( temp float) 0:380 'r3' ( temp float) 0:380 dot-product ( temp float) 0:380 'inFV0' ( in 3-component vector of float) 0:380 'inFV1' ( in 3-component vector of float) 0:380 Sequence 0:380 move second child to first child ( temp 3-component vector of float) 0:380 'r4' ( temp 3-component vector of float) 0:380 vector-times-matrix ( temp 3-component vector of float) 0:380 'inFV0' ( in 3-component vector of float) 0:380 'inFM0' ( in 3X3 matrix of float) 0:380 Sequence 0:380 move second child to first child ( temp 3-component vector of float) 0:380 'r5' ( temp 3-component vector of float) 0:380 matrix-times-vector ( temp 3-component vector of float) 0:380 'inFM0' ( in 3X3 matrix of float) 0:380 'inFV0' ( in 3-component vector of float) 0:380 Sequence 0:380 move second child to first child ( temp 3X3 matrix of float) 0:380 'r6' ( temp 3X3 matrix of float) 0:380 matrix-scale ( temp 3X3 matrix of float) 0:380 'inF0' ( in float) 0:380 'inFM0' ( in 3X3 matrix of float) 0:380 Sequence 0:380 move second child to first child ( temp 3X3 matrix of float) 0:380 'r7' ( temp 3X3 matrix of float) 0:380 matrix-scale ( temp 3X3 matrix of float) 0:380 'inFM0' ( in 3X3 matrix of float) 0:380 'inF0' ( in float) 0:380 Sequence 0:380 move second child to first child ( temp 3X3 matrix of float) 0:380 'r8' ( temp 3X3 matrix of float) 0:380 matrix-multiply ( temp 3X3 matrix of float) 0:380 'inFM1' ( in 3X3 matrix of float) 0:380 'inFM0' ( in 3X3 matrix of float) 0:386 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; ( temp void) 0:386 Function Parameters: 0:386 'inF0' ( in float) 0:386 'inF1' ( in float) 0:386 'inFV0' ( in 4-component vector of float) 0:386 'inFV1' ( in 4-component vector of float) 0:386 'inFM0' ( in 4X4 matrix of float) 0:386 'inFM1' ( in 4X4 matrix of float) 0:? Sequence 0:387 Sequence 0:387 move second child to first child ( temp float) 0:387 'r0' ( temp float) 0:387 component-wise multiply ( temp float) 0:387 'inF1' ( in float) 0:387 'inF0' ( in float) 0:387 Sequence 0:387 move second child to first child ( temp 4-component vector of float) 0:387 'r1' ( temp 4-component vector of float) 0:387 vector-scale ( temp 4-component vector of float) 0:387 'inF0' ( in float) 0:387 'inFV0' ( in 4-component vector of float) 0:387 Sequence 0:387 move second child to first child ( temp 4-component vector of float) 0:387 'r2' ( temp 4-component vector of float) 0:387 vector-scale ( temp 4-component vector of float) 0:387 'inFV0' ( in 4-component vector of float) 0:387 'inF0' ( in float) 0:387 Sequence 0:387 move second child to first child ( temp float) 0:387 'r3' ( temp float) 0:387 dot-product ( temp float) 0:387 'inFV0' ( in 4-component vector of float) 0:387 'inFV1' ( in 4-component vector of float) 0:387 Sequence 0:387 move second child to first child ( temp 4-component vector of float) 0:387 'r4' ( temp 4-component vector of float) 0:387 vector-times-matrix ( temp 4-component vector of float) 0:387 'inFV0' ( in 4-component vector of float) 0:387 'inFM0' ( in 4X4 matrix of float) 0:387 Sequence 0:387 move second child to first child ( temp 4-component vector of float) 0:387 'r5' ( temp 4-component vector of float) 0:387 matrix-times-vector ( temp 4-component vector of float) 0:387 'inFM0' ( in 4X4 matrix of float) 0:387 'inFV0' ( in 4-component vector of float) 0:387 Sequence 0:387 move second child to first child ( temp 4X4 matrix of float) 0:387 'r6' ( temp 4X4 matrix of float) 0:387 matrix-scale ( temp 4X4 matrix of float) 0:387 'inF0' ( in float) 0:387 'inFM0' ( in 4X4 matrix of float) 0:387 Sequence 0:387 move second child to first child ( temp 4X4 matrix of float) 0:387 'r7' ( temp 4X4 matrix of float) 0:387 matrix-scale ( temp 4X4 matrix of float) 0:387 'inFM0' ( in 4X4 matrix of float) 0:387 'inF0' ( in float) 0:387 Sequence 0:387 move second child to first child ( temp 4X4 matrix of float) 0:387 'r8' ( temp 4X4 matrix of float) 0:387 matrix-multiply ( temp 4X4 matrix of float) 0:387 'inFM1' ( in 4X4 matrix of float) 0:387 'inFM0' ( in 4X4 matrix of float) 0:396 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; ( temp void) 0:396 Function Parameters: 0:396 'inF0' ( in float) 0:396 'inF1' ( in float) 0:396 'inFV2' ( in 2-component vector of float) 0:396 'inFV3' ( in 3-component vector of float) 0:396 'inFM2x3' ( in 2X3 matrix of float) 0:396 'inFM3x2' ( in 3X2 matrix of float) 0:396 'inFM3x3' ( in 3X3 matrix of float) 0:396 'inFM3x4' ( in 3X4 matrix of float) 0:396 'inFM2x4' ( in 2X4 matrix of float) 0:? Sequence 0:397 Sequence 0:397 move second child to first child ( temp float) 0:397 'r00' ( temp float) 0:397 component-wise multiply ( temp float) 0:397 'inF1' ( in float) 0:397 'inF0' ( in float) 0:398 Sequence 0:398 move second child to first child ( temp 2-component vector of float) 0:398 'r01' ( temp 2-component vector of float) 0:398 vector-scale ( temp 2-component vector of float) 0:398 'inF0' ( in float) 0:398 'inFV2' ( in 2-component vector of float) 0:399 Sequence 0:399 move second child to first child ( temp 3-component vector of float) 0:399 'r02' ( temp 3-component vector of float) 0:399 vector-scale ( temp 3-component vector of float) 0:399 'inF0' ( in float) 0:399 'inFV3' ( in 3-component vector of float) 0:400 Sequence 0:400 move second child to first child ( temp 2-component vector of float) 0:400 'r03' ( temp 2-component vector of float) 0:400 vector-scale ( temp 2-component vector of float) 0:400 'inFV2' ( in 2-component vector of float) 0:400 'inF0' ( in float) 0:401 Sequence 0:401 move second child to first child ( temp 3-component vector of float) 0:401 'r04' ( temp 3-component vector of float) 0:401 vector-scale ( temp 3-component vector of float) 0:401 'inFV3' ( in 3-component vector of float) 0:401 'inF0' ( in float) 0:402 Sequence 0:402 move second child to first child ( temp float) 0:402 'r05' ( temp float) 0:402 dot-product ( temp float) 0:402 'inFV2' ( in 2-component vector of float) 0:402 'inFV2' ( in 2-component vector of float) 0:403 Sequence 0:403 move second child to first child ( temp float) 0:403 'r06' ( temp float) 0:403 dot-product ( temp float) 0:403 'inFV3' ( in 3-component vector of float) 0:403 'inFV3' ( in 3-component vector of float) 0:404 Sequence 0:404 move second child to first child ( temp 3-component vector of float) 0:404 'r07' ( temp 3-component vector of float) 0:404 matrix-times-vector ( temp 3-component vector of float) 0:404 'inFM2x3' ( in 2X3 matrix of float) 0:404 'inFV2' ( in 2-component vector of float) 0:405 Sequence 0:405 move second child to first child ( temp 2-component vector of float) 0:405 'r08' ( temp 2-component vector of float) 0:405 matrix-times-vector ( temp 2-component vector of float) 0:405 'inFM3x2' ( in 3X2 matrix of float) 0:405 'inFV3' ( in 3-component vector of float) 0:406 Sequence 0:406 move second child to first child ( temp 2-component vector of float) 0:406 'r09' ( temp 2-component vector of float) 0:406 vector-times-matrix ( temp 2-component vector of float) 0:406 'inFV3' ( in 3-component vector of float) 0:406 'inFM2x3' ( in 2X3 matrix of float) 0:407 Sequence 0:407 move second child to first child ( temp 3-component vector of float) 0:407 'r10' ( temp 3-component vector of float) 0:407 vector-times-matrix ( temp 3-component vector of float) 0:407 'inFV2' ( in 2-component vector of float) 0:407 'inFM3x2' ( in 3X2 matrix of float) 0:408 Sequence 0:408 move second child to first child ( temp 2X3 matrix of float) 0:408 'r11' ( temp 2X3 matrix of float) 0:408 matrix-scale ( temp 2X3 matrix of float) 0:408 'inF0' ( in float) 0:408 'inFM2x3' ( in 2X3 matrix of float) 0:409 Sequence 0:409 move second child to first child ( temp 3X2 matrix of float) 0:409 'r12' ( temp 3X2 matrix of float) 0:409 matrix-scale ( temp 3X2 matrix of float) 0:409 'inF0' ( in float) 0:409 'inFM3x2' ( in 3X2 matrix of float) 0:410 Sequence 0:410 move second child to first child ( temp 2X2 matrix of float) 0:410 'r13' ( temp 2X2 matrix of float) 0:410 matrix-multiply ( temp 2X2 matrix of float) 0:410 'inFM3x2' ( in 3X2 matrix of float) 0:410 'inFM2x3' ( in 2X3 matrix of float) 0:411 Sequence 0:411 move second child to first child ( temp 2X3 matrix of float) 0:411 'r14' ( temp 2X3 matrix of float) 0:411 matrix-multiply ( temp 2X3 matrix of float) 0:411 'inFM3x3' ( in 3X3 matrix of float) 0:411 'inFM2x3' ( in 2X3 matrix of float) 0:412 Sequence 0:412 move second child to first child ( temp 2X4 matrix of float) 0:412 'r15' ( temp 2X4 matrix of float) 0:412 matrix-multiply ( temp 2X4 matrix of float) 0:412 'inFM3x4' ( in 3X4 matrix of float) 0:412 'inFM2x3' ( in 2X3 matrix of float) 0:413 Sequence 0:413 move second child to first child ( temp 3X4 matrix of float) 0:413 'r16' ( temp 3X4 matrix of float) 0:413 matrix-multiply ( temp 3X4 matrix of float) 0:413 'inFM2x4' ( in 2X4 matrix of float) 0:413 'inFM3x2' ( in 3X2 matrix of float) 0:? Linker Objects Linked vertex stage: WARNING: Linking vertex stage: Entry point not found Shader version: 500 0:? Sequence 0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; ( temp float) 0:2 Function Parameters: 0:2 'inF0' ( in float) 0:2 'inF1' ( in float) 0:2 'inF2' ( in float) 0:2 'inU0' ( in uint) 0:2 'inU1' ( in uint) 0:? Sequence 0:3 all ( temp bool) 0:3 Convert float to bool ( temp bool) 0:3 'inF0' ( in float) 0:4 Absolute value ( temp float) 0:4 'inF0' ( in float) 0:5 arc cosine ( temp float) 0:5 'inF0' ( in float) 0:6 any ( temp bool) 0:6 Convert float to bool ( temp bool) 0:6 'inF0' ( in float) 0:7 arc sine ( temp float) 0:7 'inF0' ( in float) 0:8 floatBitsToInt ( temp int) 0:8 'inF0' ( in float) 0:9 floatBitsToUint ( temp uint) 0:9 'inF0' ( in float) 0:10 intBitsToFloat ( temp float) 0:10 'inU0' ( in uint) 0:12 arc tangent ( temp float) 0:12 'inF0' ( in float) 0:13 arc tangent ( temp float) 0:13 'inF0' ( in float) 0:13 'inF1' ( in float) 0:14 Ceiling ( temp float) 0:14 'inF0' ( in float) 0:15 clamp ( temp float) 0:15 'inF0' ( in float) 0:15 'inF1' ( in float) 0:15 'inF2' ( in float) 0:16 cosine ( temp float) 0:16 'inF0' ( in float) 0:17 hyp. cosine ( temp float) 0:17 'inF0' ( in float) 0:18 bitCount ( temp int) 0:18 Constant: 0:18 7 (const int) 0:19 degrees ( temp float) 0:19 'inF0' ( in float) 0:23 exp ( temp float) 0:23 'inF0' ( in float) 0:24 exp2 ( temp float) 0:24 'inF0' ( in float) 0:25 findMSB ( temp int) 0:25 Constant: 0:25 7 (const int) 0:26 findLSB ( temp int) 0:26 Constant: 0:26 7 (const int) 0:27 Floor ( temp float) 0:27 'inF0' ( in float) 0:29 mod ( temp float) 0:29 'inF0' ( in float) 0:29 'inF1' ( in float) 0:30 Fraction ( temp float) 0:30 'inF0' ( in float) 0:31 isinf ( temp bool) 0:31 'inF0' ( in float) 0:32 isnan ( temp bool) 0:32 'inF0' ( in float) 0:33 ldexp ( temp float) 0:33 'inF0' ( in float) 0:33 'inF1' ( in float) 0:34 mix ( temp float) 0:34 'inF0' ( in float) 0:34 'inF1' ( in float) 0:34 'inF2' ( in float) 0:35 log ( temp float) 0:35 'inF0' ( in float) 0:36 component-wise multiply ( temp float) 0:36 log2 ( temp float) 0:36 'inF0' ( in float) 0:36 Constant: 0:36 0.301030 0:37 log2 ( temp float) 0:37 'inF0' ( in float) 0:38 max ( temp float) 0:38 'inF0' ( in float) 0:38 'inF1' ( in float) 0:39 min ( temp float) 0:39 'inF0' ( in float) 0:39 'inF1' ( in float) 0:41 pow ( temp float) 0:41 'inF0' ( in float) 0:41 'inF1' ( in float) 0:42 radians ( temp float) 0:42 'inF0' ( in float) 0:43 bitFieldReverse ( temp int) 0:43 Constant: 0:43 2 (const int) 0:44 roundEven ( temp float) 0:44 'inF0' ( in float) 0:45 inverse sqrt ( temp float) 0:45 'inF0' ( in float) 0:46 clamp ( temp float) 0:46 'inF0' ( in float) 0:46 Constant: 0:46 0.000000 0:46 Constant: 0:46 1.000000 0:47 Sign ( temp float) 0:47 'inF0' ( in float) 0:48 sine ( temp float) 0:48 'inF0' ( in float) 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'inF1' ( in float) 0:49 sine ( temp float) 0:49 'inF0' ( in float) 0:49 move second child to first child ( temp float) 0:49 'inF2' ( in float) 0:49 cosine ( temp float) 0:49 'inF0' ( in float) 0:50 hyp. sine ( temp float) 0:50 'inF0' ( in float) 0:51 smoothstep ( temp float) 0:51 'inF0' ( in float) 0:51 'inF1' ( in float) 0:51 'inF2' ( in float) 0:52 sqrt ( temp float) 0:52 'inF0' ( in float) 0:53 step ( temp float) 0:53 'inF0' ( in float) 0:53 'inF1' ( in float) 0:54 tangent ( temp float) 0:54 'inF0' ( in float) 0:55 hyp. tangent ( temp float) 0:55 'inF0' ( in float) 0:57 trunc ( temp float) 0:57 'inF0' ( in float) 0:59 Branch: Return with expression 0:59 Constant: 0:59 0.000000 0:63 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; ( temp 1-component vector of float) 0:63 Function Parameters: 0:63 'inF0' ( in 1-component vector of float) 0:63 'inF1' ( in 1-component vector of float) 0:63 'inF2' ( in 1-component vector of float) 0:? Sequence 0:65 Branch: Return with expression 0:65 Constant: 0:65 0.000000 0:69 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; ( temp 2-component vector of float) 0:69 Function Parameters: 0:69 'inF0' ( in 2-component vector of float) 0:69 'inF1' ( in 2-component vector of float) 0:69 'inF2' ( in 2-component vector of float) 0:69 'inU0' ( in 2-component vector of uint) 0:69 'inU1' ( in 2-component vector of uint) 0:? Sequence 0:70 all ( temp bool) 0:70 Convert float to bool ( temp 2-component vector of bool) 0:70 'inF0' ( in 2-component vector of float) 0:71 Absolute value ( temp 2-component vector of float) 0:71 'inF0' ( in 2-component vector of float) 0:72 arc cosine ( temp 2-component vector of float) 0:72 'inF0' ( in 2-component vector of float) 0:73 any ( temp bool) 0:73 Convert float to bool ( temp 2-component vector of bool) 0:73 'inF0' ( in 2-component vector of float) 0:74 arc sine ( temp 2-component vector of float) 0:74 'inF0' ( in 2-component vector of float) 0:75 floatBitsToInt ( temp 2-component vector of int) 0:75 'inF0' ( in 2-component vector of float) 0:76 floatBitsToUint ( temp 2-component vector of uint) 0:76 'inF0' ( in 2-component vector of float) 0:77 intBitsToFloat ( temp 2-component vector of float) 0:77 'inU0' ( in 2-component vector of uint) 0:79 arc tangent ( temp 2-component vector of float) 0:79 'inF0' ( in 2-component vector of float) 0:80 arc tangent ( temp 2-component vector of float) 0:80 'inF0' ( in 2-component vector of float) 0:80 'inF1' ( in 2-component vector of float) 0:81 Ceiling ( temp 2-component vector of float) 0:81 'inF0' ( in 2-component vector of float) 0:82 clamp ( temp 2-component vector of float) 0:82 'inF0' ( in 2-component vector of float) 0:82 'inF1' ( in 2-component vector of float) 0:82 'inF2' ( in 2-component vector of float) 0:83 cosine ( temp 2-component vector of float) 0:83 'inF0' ( in 2-component vector of float) 0:84 hyp. cosine ( temp 2-component vector of float) 0:84 'inF0' ( in 2-component vector of float) 0:? bitCount ( temp 2-component vector of int) 0:? Constant: 0:? 7 (const int) 0:? 3 (const int) 0:86 degrees ( temp 2-component vector of float) 0:86 'inF0' ( in 2-component vector of float) 0:87 distance ( temp float) 0:87 'inF0' ( in 2-component vector of float) 0:87 'inF1' ( in 2-component vector of float) 0:88 dot-product ( temp float) 0:88 'inF0' ( in 2-component vector of float) 0:88 'inF1' ( in 2-component vector of float) 0:92 exp ( temp 2-component vector of float) 0:92 'inF0' ( in 2-component vector of float) 0:93 exp2 ( temp 2-component vector of float) 0:93 'inF0' ( in 2-component vector of float) 0:94 face-forward ( temp 2-component vector of float) 0:94 'inF0' ( in 2-component vector of float) 0:94 'inF1' ( in 2-component vector of float) 0:94 'inF2' ( in 2-component vector of float) 0:95 findMSB ( temp int) 0:95 Constant: 0:95 7 (const int) 0:96 findLSB ( temp int) 0:96 Constant: 0:96 7 (const int) 0:97 Floor ( temp 2-component vector of float) 0:97 'inF0' ( in 2-component vector of float) 0:99 mod ( temp 2-component vector of float) 0:99 'inF0' ( in 2-component vector of float) 0:99 'inF1' ( in 2-component vector of float) 0:100 Fraction ( temp 2-component vector of float) 0:100 'inF0' ( in 2-component vector of float) 0:101 isinf ( temp 2-component vector of bool) 0:101 'inF0' ( in 2-component vector of float) 0:102 isnan ( temp 2-component vector of bool) 0:102 'inF0' ( in 2-component vector of float) 0:103 ldexp ( temp 2-component vector of float) 0:103 'inF0' ( in 2-component vector of float) 0:103 'inF1' ( in 2-component vector of float) 0:104 mix ( temp 2-component vector of float) 0:104 'inF0' ( in 2-component vector of float) 0:104 'inF1' ( in 2-component vector of float) 0:104 'inF2' ( in 2-component vector of float) 0:105 length ( temp float) 0:105 'inF0' ( in 2-component vector of float) 0:106 log ( temp 2-component vector of float) 0:106 'inF0' ( in 2-component vector of float) 0:107 vector-scale ( temp 2-component vector of float) 0:107 log2 ( temp 2-component vector of float) 0:107 'inF0' ( in 2-component vector of float) 0:107 Constant: 0:107 0.301030 0:108 log2 ( temp 2-component vector of float) 0:108 'inF0' ( in 2-component vector of float) 0:109 max ( temp 2-component vector of float) 0:109 'inF0' ( in 2-component vector of float) 0:109 'inF1' ( in 2-component vector of float) 0:110 min ( temp 2-component vector of float) 0:110 'inF0' ( in 2-component vector of float) 0:110 'inF1' ( in 2-component vector of float) 0:112 normalize ( temp 2-component vector of float) 0:112 'inF0' ( in 2-component vector of float) 0:113 pow ( temp 2-component vector of float) 0:113 'inF0' ( in 2-component vector of float) 0:113 'inF1' ( in 2-component vector of float) 0:114 radians ( temp 2-component vector of float) 0:114 'inF0' ( in 2-component vector of float) 0:115 reflect ( temp 2-component vector of float) 0:115 'inF0' ( in 2-component vector of float) 0:115 'inF1' ( in 2-component vector of float) 0:116 refract ( temp 2-component vector of float) 0:116 'inF0' ( in 2-component vector of float) 0:116 'inF1' ( in 2-component vector of float) 0:116 Constant: 0:116 2.000000 0:? bitFieldReverse ( temp 2-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:118 roundEven ( temp 2-component vector of float) 0:118 'inF0' ( in 2-component vector of float) 0:119 inverse sqrt ( temp 2-component vector of float) 0:119 'inF0' ( in 2-component vector of float) 0:120 clamp ( temp 2-component vector of float) 0:120 'inF0' ( in 2-component vector of float) 0:120 Constant: 0:120 0.000000 0:120 Constant: 0:120 1.000000 0:121 Sign ( temp 2-component vector of float) 0:121 'inF0' ( in 2-component vector of float) 0:122 sine ( temp 2-component vector of float) 0:122 'inF0' ( in 2-component vector of float) 0:123 Sequence 0:123 move second child to first child ( temp 2-component vector of float) 0:123 'inF1' ( in 2-component vector of float) 0:123 sine ( temp 2-component vector of float) 0:123 'inF0' ( in 2-component vector of float) 0:123 move second child to first child ( temp 2-component vector of float) 0:123 'inF2' ( in 2-component vector of float) 0:123 cosine ( temp 2-component vector of float) 0:123 'inF0' ( in 2-component vector of float) 0:124 hyp. sine ( temp 2-component vector of float) 0:124 'inF0' ( in 2-component vector of float) 0:125 smoothstep ( temp 2-component vector of float) 0:125 'inF0' ( in 2-component vector of float) 0:125 'inF1' ( in 2-component vector of float) 0:125 'inF2' ( in 2-component vector of float) 0:126 sqrt ( temp 2-component vector of float) 0:126 'inF0' ( in 2-component vector of float) 0:127 step ( temp 2-component vector of float) 0:127 'inF0' ( in 2-component vector of float) 0:127 'inF1' ( in 2-component vector of float) 0:128 tangent ( temp 2-component vector of float) 0:128 'inF0' ( in 2-component vector of float) 0:129 hyp. tangent ( temp 2-component vector of float) 0:129 'inF0' ( in 2-component vector of float) 0:131 trunc ( temp 2-component vector of float) 0:131 'inF0' ( in 2-component vector of float) 0:134 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:138 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; ( temp 3-component vector of float) 0:138 Function Parameters: 0:138 'inF0' ( in 3-component vector of float) 0:138 'inF1' ( in 3-component vector of float) 0:138 'inF2' ( in 3-component vector of float) 0:138 'inU0' ( in 3-component vector of uint) 0:138 'inU1' ( in 3-component vector of uint) 0:? Sequence 0:139 all ( temp bool) 0:139 Convert float to bool ( temp 3-component vector of bool) 0:139 'inF0' ( in 3-component vector of float) 0:140 Absolute value ( temp 3-component vector of float) 0:140 'inF0' ( in 3-component vector of float) 0:141 arc cosine ( temp 3-component vector of float) 0:141 'inF0' ( in 3-component vector of float) 0:142 any ( temp bool) 0:142 Convert float to bool ( temp 3-component vector of bool) 0:142 'inF0' ( in 3-component vector of float) 0:143 arc sine ( temp 3-component vector of float) 0:143 'inF0' ( in 3-component vector of float) 0:144 floatBitsToInt ( temp 3-component vector of int) 0:144 'inF0' ( in 3-component vector of float) 0:145 floatBitsToUint ( temp 3-component vector of uint) 0:145 'inF0' ( in 3-component vector of float) 0:146 intBitsToFloat ( temp 3-component vector of float) 0:146 'inU0' ( in 3-component vector of uint) 0:148 arc tangent ( temp 3-component vector of float) 0:148 'inF0' ( in 3-component vector of float) 0:149 arc tangent ( temp 3-component vector of float) 0:149 'inF0' ( in 3-component vector of float) 0:149 'inF1' ( in 3-component vector of float) 0:150 Ceiling ( temp 3-component vector of float) 0:150 'inF0' ( in 3-component vector of float) 0:151 clamp ( temp 3-component vector of float) 0:151 'inF0' ( in 3-component vector of float) 0:151 'inF1' ( in 3-component vector of float) 0:151 'inF2' ( in 3-component vector of float) 0:152 cosine ( temp 3-component vector of float) 0:152 'inF0' ( in 3-component vector of float) 0:153 hyp. cosine ( temp 3-component vector of float) 0:153 'inF0' ( in 3-component vector of float) 0:? bitCount ( temp 3-component vector of int) 0:? Constant: 0:? 7 (const int) 0:? 3 (const int) 0:? 5 (const int) 0:155 cross-product ( temp 3-component vector of float) 0:155 'inF0' ( in 3-component vector of float) 0:155 'inF1' ( in 3-component vector of float) 0:156 degrees ( temp 3-component vector of float) 0:156 'inF0' ( in 3-component vector of float) 0:157 distance ( temp float) 0:157 'inF0' ( in 3-component vector of float) 0:157 'inF1' ( in 3-component vector of float) 0:158 dot-product ( temp float) 0:158 'inF0' ( in 3-component vector of float) 0:158 'inF1' ( in 3-component vector of float) 0:162 exp ( temp 3-component vector of float) 0:162 'inF0' ( in 3-component vector of float) 0:163 exp2 ( temp 3-component vector of float) 0:163 'inF0' ( in 3-component vector of float) 0:164 face-forward ( temp 3-component vector of float) 0:164 'inF0' ( in 3-component vector of float) 0:164 'inF1' ( in 3-component vector of float) 0:164 'inF2' ( in 3-component vector of float) 0:165 findMSB ( temp int) 0:165 Constant: 0:165 7 (const int) 0:166 findLSB ( temp int) 0:166 Constant: 0:166 7 (const int) 0:167 Floor ( temp 3-component vector of float) 0:167 'inF0' ( in 3-component vector of float) 0:169 mod ( temp 3-component vector of float) 0:169 'inF0' ( in 3-component vector of float) 0:169 'inF1' ( in 3-component vector of float) 0:170 Fraction ( temp 3-component vector of float) 0:170 'inF0' ( in 3-component vector of float) 0:171 isinf ( temp 3-component vector of bool) 0:171 'inF0' ( in 3-component vector of float) 0:172 isnan ( temp 3-component vector of bool) 0:172 'inF0' ( in 3-component vector of float) 0:173 ldexp ( temp 3-component vector of float) 0:173 'inF0' ( in 3-component vector of float) 0:173 'inF1' ( in 3-component vector of float) 0:174 mix ( temp 3-component vector of float) 0:174 'inF0' ( in 3-component vector of float) 0:174 'inF1' ( in 3-component vector of float) 0:174 'inF2' ( in 3-component vector of float) 0:175 length ( temp float) 0:175 'inF0' ( in 3-component vector of float) 0:176 log ( temp 3-component vector of float) 0:176 'inF0' ( in 3-component vector of float) 0:177 vector-scale ( temp 3-component vector of float) 0:177 log2 ( temp 3-component vector of float) 0:177 'inF0' ( in 3-component vector of float) 0:177 Constant: 0:177 0.301030 0:178 log2 ( temp 3-component vector of float) 0:178 'inF0' ( in 3-component vector of float) 0:179 max ( temp 3-component vector of float) 0:179 'inF0' ( in 3-component vector of float) 0:179 'inF1' ( in 3-component vector of float) 0:180 min ( temp 3-component vector of float) 0:180 'inF0' ( in 3-component vector of float) 0:180 'inF1' ( in 3-component vector of float) 0:182 normalize ( temp 3-component vector of float) 0:182 'inF0' ( in 3-component vector of float) 0:183 pow ( temp 3-component vector of float) 0:183 'inF0' ( in 3-component vector of float) 0:183 'inF1' ( in 3-component vector of float) 0:184 radians ( temp 3-component vector of float) 0:184 'inF0' ( in 3-component vector of float) 0:185 reflect ( temp 3-component vector of float) 0:185 'inF0' ( in 3-component vector of float) 0:185 'inF1' ( in 3-component vector of float) 0:186 refract ( temp 3-component vector of float) 0:186 'inF0' ( in 3-component vector of float) 0:186 'inF1' ( in 3-component vector of float) 0:186 Constant: 0:186 2.000000 0:? bitFieldReverse ( temp 3-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:188 roundEven ( temp 3-component vector of float) 0:188 'inF0' ( in 3-component vector of float) 0:189 inverse sqrt ( temp 3-component vector of float) 0:189 'inF0' ( in 3-component vector of float) 0:190 clamp ( temp 3-component vector of float) 0:190 'inF0' ( in 3-component vector of float) 0:190 Constant: 0:190 0.000000 0:190 Constant: 0:190 1.000000 0:191 Sign ( temp 3-component vector of float) 0:191 'inF0' ( in 3-component vector of float) 0:192 sine ( temp 3-component vector of float) 0:192 'inF0' ( in 3-component vector of float) 0:193 Sequence 0:193 move second child to first child ( temp 3-component vector of float) 0:193 'inF1' ( in 3-component vector of float) 0:193 sine ( temp 3-component vector of float) 0:193 'inF0' ( in 3-component vector of float) 0:193 move second child to first child ( temp 3-component vector of float) 0:193 'inF2' ( in 3-component vector of float) 0:193 cosine ( temp 3-component vector of float) 0:193 'inF0' ( in 3-component vector of float) 0:194 hyp. sine ( temp 3-component vector of float) 0:194 'inF0' ( in 3-component vector of float) 0:195 smoothstep ( temp 3-component vector of float) 0:195 'inF0' ( in 3-component vector of float) 0:195 'inF1' ( in 3-component vector of float) 0:195 'inF2' ( in 3-component vector of float) 0:196 sqrt ( temp 3-component vector of float) 0:196 'inF0' ( in 3-component vector of float) 0:197 step ( temp 3-component vector of float) 0:197 'inF0' ( in 3-component vector of float) 0:197 'inF1' ( in 3-component vector of float) 0:198 tangent ( temp 3-component vector of float) 0:198 'inF0' ( in 3-component vector of float) 0:199 hyp. tangent ( temp 3-component vector of float) 0:199 'inF0' ( in 3-component vector of float) 0:201 trunc ( temp 3-component vector of float) 0:201 'inF0' ( in 3-component vector of float) 0:204 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:208 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; ( temp 4-component vector of float) 0:208 Function Parameters: 0:208 'inF0' ( in 4-component vector of float) 0:208 'inF1' ( in 4-component vector of float) 0:208 'inF2' ( in 4-component vector of float) 0:208 'inU0' ( in 4-component vector of uint) 0:208 'inU1' ( in 4-component vector of uint) 0:? Sequence 0:209 all ( temp bool) 0:209 Convert float to bool ( temp 4-component vector of bool) 0:209 'inF0' ( in 4-component vector of float) 0:210 Absolute value ( temp 4-component vector of float) 0:210 'inF0' ( in 4-component vector of float) 0:211 arc cosine ( temp 4-component vector of float) 0:211 'inF0' ( in 4-component vector of float) 0:212 any ( temp bool) 0:212 Convert float to bool ( temp 4-component vector of bool) 0:212 'inF0' ( in 4-component vector of float) 0:213 arc sine ( temp 4-component vector of float) 0:213 'inF0' ( in 4-component vector of float) 0:214 floatBitsToInt ( temp 4-component vector of int) 0:214 'inF0' ( in 4-component vector of float) 0:215 floatBitsToUint ( temp 4-component vector of uint) 0:215 'inF0' ( in 4-component vector of float) 0:216 intBitsToFloat ( temp 4-component vector of float) 0:216 'inU0' ( in 4-component vector of uint) 0:218 arc tangent ( temp 4-component vector of float) 0:218 'inF0' ( in 4-component vector of float) 0:219 arc tangent ( temp 4-component vector of float) 0:219 'inF0' ( in 4-component vector of float) 0:219 'inF1' ( in 4-component vector of float) 0:220 Ceiling ( temp 4-component vector of float) 0:220 'inF0' ( in 4-component vector of float) 0:221 clamp ( temp 4-component vector of float) 0:221 'inF0' ( in 4-component vector of float) 0:221 'inF1' ( in 4-component vector of float) 0:221 'inF2' ( in 4-component vector of float) 0:222 cosine ( temp 4-component vector of float) 0:222 'inF0' ( in 4-component vector of float) 0:223 hyp. cosine ( temp 4-component vector of float) 0:223 'inF0' ( in 4-component vector of float) 0:? bitCount ( temp 4-component vector of int) 0:? Constant: 0:? 7 (const int) 0:? 3 (const int) 0:? 5 (const int) 0:? 2 (const int) 0:225 degrees ( temp 4-component vector of float) 0:225 'inF0' ( in 4-component vector of float) 0:226 distance ( temp float) 0:226 'inF0' ( in 4-component vector of float) 0:226 'inF1' ( in 4-component vector of float) 0:227 dot-product ( temp float) 0:227 'inF0' ( in 4-component vector of float) 0:227 'inF1' ( in 4-component vector of float) 0:228 Construct vec4 ( temp 4-component vector of float) 0:228 Constant: 0:228 1.000000 0:228 component-wise multiply ( temp float) 0:228 direct index ( temp float) 0:228 'inF0' ( in 4-component vector of float) 0:228 Constant: 0:228 1 (const int) 0:228 direct index ( temp float) 0:228 'inF1' ( in 4-component vector of float) 0:228 Constant: 0:228 1 (const int) 0:228 direct index ( temp float) 0:228 'inF0' ( in 4-component vector of float) 0:228 Constant: 0:228 2 (const int) 0:228 direct index ( temp float) 0:228 'inF1' ( in 4-component vector of float) 0:228 Constant: 0:228 3 (const int) 0:232 exp ( temp 4-component vector of float) 0:232 'inF0' ( in 4-component vector of float) 0:233 exp2 ( temp 4-component vector of float) 0:233 'inF0' ( in 4-component vector of float) 0:234 face-forward ( temp 4-component vector of float) 0:234 'inF0' ( in 4-component vector of float) 0:234 'inF1' ( in 4-component vector of float) 0:234 'inF2' ( in 4-component vector of float) 0:235 findMSB ( temp int) 0:235 Constant: 0:235 7 (const int) 0:236 findLSB ( temp int) 0:236 Constant: 0:236 7 (const int) 0:237 Floor ( temp 4-component vector of float) 0:237 'inF0' ( in 4-component vector of float) 0:239 mod ( temp 4-component vector of float) 0:239 'inF0' ( in 4-component vector of float) 0:239 'inF1' ( in 4-component vector of float) 0:240 Fraction ( temp 4-component vector of float) 0:240 'inF0' ( in 4-component vector of float) 0:241 isinf ( temp 4-component vector of bool) 0:241 'inF0' ( in 4-component vector of float) 0:242 isnan ( temp 4-component vector of bool) 0:242 'inF0' ( in 4-component vector of float) 0:243 ldexp ( temp 4-component vector of float) 0:243 'inF0' ( in 4-component vector of float) 0:243 'inF1' ( in 4-component vector of float) 0:244 mix ( temp 4-component vector of float) 0:244 'inF0' ( in 4-component vector of float) 0:244 'inF1' ( in 4-component vector of float) 0:244 'inF2' ( in 4-component vector of float) 0:245 length ( temp float) 0:245 'inF0' ( in 4-component vector of float) 0:246 log ( temp 4-component vector of float) 0:246 'inF0' ( in 4-component vector of float) 0:247 vector-scale ( temp 4-component vector of float) 0:247 log2 ( temp 4-component vector of float) 0:247 'inF0' ( in 4-component vector of float) 0:247 Constant: 0:247 0.301030 0:248 log2 ( temp 4-component vector of float) 0:248 'inF0' ( in 4-component vector of float) 0:249 max ( temp 4-component vector of float) 0:249 'inF0' ( in 4-component vector of float) 0:249 'inF1' ( in 4-component vector of float) 0:250 min ( temp 4-component vector of float) 0:250 'inF0' ( in 4-component vector of float) 0:250 'inF1' ( in 4-component vector of float) 0:252 normalize ( temp 4-component vector of float) 0:252 'inF0' ( in 4-component vector of float) 0:253 pow ( temp 4-component vector of float) 0:253 'inF0' ( in 4-component vector of float) 0:253 'inF1' ( in 4-component vector of float) 0:254 radians ( temp 4-component vector of float) 0:254 'inF0' ( in 4-component vector of float) 0:255 reflect ( temp 4-component vector of float) 0:255 'inF0' ( in 4-component vector of float) 0:255 'inF1' ( in 4-component vector of float) 0:256 refract ( temp 4-component vector of float) 0:256 'inF0' ( in 4-component vector of float) 0:256 'inF1' ( in 4-component vector of float) 0:256 Constant: 0:256 2.000000 0:? bitFieldReverse ( temp 4-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) 0:258 roundEven ( temp 4-component vector of float) 0:258 'inF0' ( in 4-component vector of float) 0:259 inverse sqrt ( temp 4-component vector of float) 0:259 'inF0' ( in 4-component vector of float) 0:260 clamp ( temp 4-component vector of float) 0:260 'inF0' ( in 4-component vector of float) 0:260 Constant: 0:260 0.000000 0:260 Constant: 0:260 1.000000 0:261 Sign ( temp 4-component vector of float) 0:261 'inF0' ( in 4-component vector of float) 0:262 sine ( temp 4-component vector of float) 0:262 'inF0' ( in 4-component vector of float) 0:263 Sequence 0:263 move second child to first child ( temp 4-component vector of float) 0:263 'inF1' ( in 4-component vector of float) 0:263 sine ( temp 4-component vector of float) 0:263 'inF0' ( in 4-component vector of float) 0:263 move second child to first child ( temp 4-component vector of float) 0:263 'inF2' ( in 4-component vector of float) 0:263 cosine ( temp 4-component vector of float) 0:263 'inF0' ( in 4-component vector of float) 0:264 hyp. sine ( temp 4-component vector of float) 0:264 'inF0' ( in 4-component vector of float) 0:265 smoothstep ( temp 4-component vector of float) 0:265 'inF0' ( in 4-component vector of float) 0:265 'inF1' ( in 4-component vector of float) 0:265 'inF2' ( in 4-component vector of float) 0:266 sqrt ( temp 4-component vector of float) 0:266 'inF0' ( in 4-component vector of float) 0:267 step ( temp 4-component vector of float) 0:267 'inF0' ( in 4-component vector of float) 0:267 'inF1' ( in 4-component vector of float) 0:268 tangent ( temp 4-component vector of float) 0:268 'inF0' ( in 4-component vector of float) 0:269 hyp. tangent ( temp 4-component vector of float) 0:269 'inF0' ( in 4-component vector of float) 0:271 trunc ( temp 4-component vector of float) 0:271 'inF0' ( in 4-component vector of float) 0:274 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:331 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float) 0:331 Function Parameters: 0:331 'inF0' ( in 2X2 matrix of float) 0:331 'inF1' ( in 2X2 matrix of float) 0:331 'inF2' ( in 2X2 matrix of float) 0:? Sequence 0:333 all ( temp bool) 0:333 Convert float to bool ( temp 2X2 matrix of bool) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 Absolute value ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 arc cosine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 any ( temp bool) 0:333 Convert float to bool ( temp 2X2 matrix of bool) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 arc sine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 arc tangent ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 arc tangent ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 Ceiling ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 clamp ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 'inF2' ( in 2X2 matrix of float) 0:333 cosine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 hyp. cosine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 degrees ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 determinant ( temp float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 exp ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 exp2 ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 findMSB ( temp int) 0:333 Constant: 0:333 7 (const int) 0:333 findLSB ( temp int) 0:333 Constant: 0:333 7 (const int) 0:333 Floor ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 mod ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 Fraction ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 ldexp ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 mix ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 'inF2' ( in 2X2 matrix of float) 0:333 log ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 matrix-scale ( temp 2X2 matrix of float) 0:333 log2 ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 Constant: 0:333 0.301030 0:333 log2 ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 max ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 min ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 pow ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 radians ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 roundEven ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 inverse sqrt ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 clamp ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 Constant: 0:333 0.000000 0:333 Constant: 0:333 1.000000 0:333 Sign ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 sine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 Sequence 0:333 move second child to first child ( temp 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 sine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 move second child to first child ( temp 2X2 matrix of float) 0:333 'inF2' ( in 2X2 matrix of float) 0:333 cosine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 hyp. sine ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 smoothstep ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 'inF2' ( in 2X2 matrix of float) 0:333 sqrt ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 step ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 'inF1' ( in 2X2 matrix of float) 0:333 tangent ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 hyp. tangent ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 transpose ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:333 trunc ( temp 2X2 matrix of float) 0:333 'inF0' ( in 2X2 matrix of float) 0:336 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:340 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float) 0:340 Function Parameters: 0:340 'inF0' ( in 3X3 matrix of float) 0:340 'inF1' ( in 3X3 matrix of float) 0:340 'inF2' ( in 3X3 matrix of float) 0:? Sequence 0:342 all ( temp bool) 0:342 Convert float to bool ( temp 3X3 matrix of bool) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 Absolute value ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 arc cosine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 any ( temp bool) 0:342 Convert float to bool ( temp 3X3 matrix of bool) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 arc sine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 arc tangent ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 arc tangent ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 Ceiling ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 clamp ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 'inF2' ( in 3X3 matrix of float) 0:342 cosine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 hyp. cosine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 degrees ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 determinant ( temp float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 exp ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 exp2 ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 findMSB ( temp int) 0:342 Constant: 0:342 7 (const int) 0:342 findLSB ( temp int) 0:342 Constant: 0:342 7 (const int) 0:342 Floor ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 mod ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 Fraction ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 ldexp ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 mix ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 'inF2' ( in 3X3 matrix of float) 0:342 log ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 matrix-scale ( temp 3X3 matrix of float) 0:342 log2 ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 Constant: 0:342 0.301030 0:342 log2 ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 max ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 min ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 pow ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 radians ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 roundEven ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 inverse sqrt ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 clamp ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 Constant: 0:342 0.000000 0:342 Constant: 0:342 1.000000 0:342 Sign ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 sine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 Sequence 0:342 move second child to first child ( temp 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 sine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 move second child to first child ( temp 3X3 matrix of float) 0:342 'inF2' ( in 3X3 matrix of float) 0:342 cosine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 hyp. sine ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 smoothstep ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 'inF2' ( in 3X3 matrix of float) 0:342 sqrt ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 step ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 'inF1' ( in 3X3 matrix of float) 0:342 tangent ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 hyp. tangent ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 transpose ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:342 trunc ( temp 3X3 matrix of float) 0:342 'inF0' ( in 3X3 matrix of float) 0:345 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:? 3.000000 0:349 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float) 0:349 Function Parameters: 0:349 'inF0' ( in 4X4 matrix of float) 0:349 'inF1' ( in 4X4 matrix of float) 0:349 'inF2' ( in 4X4 matrix of float) 0:? Sequence 0:351 all ( temp bool) 0:351 Convert float to bool ( temp 4X4 matrix of bool) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 Absolute value ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 arc cosine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 any ( temp bool) 0:351 Convert float to bool ( temp 4X4 matrix of bool) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 arc sine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 arc tangent ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 arc tangent ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 Ceiling ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 clamp ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 'inF2' ( in 4X4 matrix of float) 0:351 cosine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 hyp. cosine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 degrees ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 determinant ( temp float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 exp ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 exp2 ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 findMSB ( temp int) 0:351 Constant: 0:351 7 (const int) 0:351 findLSB ( temp int) 0:351 Constant: 0:351 7 (const int) 0:351 Floor ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 mod ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 Fraction ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 ldexp ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 mix ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 'inF2' ( in 4X4 matrix of float) 0:351 log ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 matrix-scale ( temp 4X4 matrix of float) 0:351 log2 ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 Constant: 0:351 0.301030 0:351 log2 ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 max ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 min ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 pow ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 radians ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 roundEven ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 inverse sqrt ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 clamp ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 Constant: 0:351 0.000000 0:351 Constant: 0:351 1.000000 0:351 Sign ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 sine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 Sequence 0:351 move second child to first child ( temp 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 sine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 move second child to first child ( temp 4X4 matrix of float) 0:351 'inF2' ( in 4X4 matrix of float) 0:351 cosine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 hyp. sine ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 smoothstep ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 'inF2' ( in 4X4 matrix of float) 0:351 sqrt ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 step ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 'inF1' ( in 4X4 matrix of float) 0:351 tangent ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 hyp. tangent ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 transpose ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:351 trunc ( temp 4X4 matrix of float) 0:351 'inF0' ( in 4X4 matrix of float) 0:354 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:? 4.000000 0:372 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; ( temp void) 0:372 Function Parameters: 0:372 'inF0' ( in float) 0:372 'inF1' ( in float) 0:372 'inFV0' ( in 2-component vector of float) 0:372 'inFV1' ( in 2-component vector of float) 0:372 'inFM0' ( in 2X2 matrix of float) 0:372 'inFM1' ( in 2X2 matrix of float) 0:? Sequence 0:373 Sequence 0:373 move second child to first child ( temp float) 0:373 'r0' ( temp float) 0:373 component-wise multiply ( temp float) 0:373 'inF1' ( in float) 0:373 'inF0' ( in float) 0:373 Sequence 0:373 move second child to first child ( temp 2-component vector of float) 0:373 'r1' ( temp 2-component vector of float) 0:373 vector-scale ( temp 2-component vector of float) 0:373 'inF0' ( in float) 0:373 'inFV0' ( in 2-component vector of float) 0:373 Sequence 0:373 move second child to first child ( temp 2-component vector of float) 0:373 'r2' ( temp 2-component vector of float) 0:373 vector-scale ( temp 2-component vector of float) 0:373 'inFV0' ( in 2-component vector of float) 0:373 'inF0' ( in float) 0:373 Sequence 0:373 move second child to first child ( temp float) 0:373 'r3' ( temp float) 0:373 dot-product ( temp float) 0:373 'inFV0' ( in 2-component vector of float) 0:373 'inFV1' ( in 2-component vector of float) 0:373 Sequence 0:373 move second child to first child ( temp 2-component vector of float) 0:373 'r4' ( temp 2-component vector of float) 0:373 vector-times-matrix ( temp 2-component vector of float) 0:373 'inFV0' ( in 2-component vector of float) 0:373 'inFM0' ( in 2X2 matrix of float) 0:373 Sequence 0:373 move second child to first child ( temp 2-component vector of float) 0:373 'r5' ( temp 2-component vector of float) 0:373 matrix-times-vector ( temp 2-component vector of float) 0:373 'inFM0' ( in 2X2 matrix of float) 0:373 'inFV0' ( in 2-component vector of float) 0:373 Sequence 0:373 move second child to first child ( temp 2X2 matrix of float) 0:373 'r6' ( temp 2X2 matrix of float) 0:373 matrix-scale ( temp 2X2 matrix of float) 0:373 'inF0' ( in float) 0:373 'inFM0' ( in 2X2 matrix of float) 0:373 Sequence 0:373 move second child to first child ( temp 2X2 matrix of float) 0:373 'r7' ( temp 2X2 matrix of float) 0:373 matrix-scale ( temp 2X2 matrix of float) 0:373 'inFM0' ( in 2X2 matrix of float) 0:373 'inF0' ( in float) 0:373 Sequence 0:373 move second child to first child ( temp 2X2 matrix of float) 0:373 'r8' ( temp 2X2 matrix of float) 0:373 matrix-multiply ( temp 2X2 matrix of float) 0:373 'inFM1' ( in 2X2 matrix of float) 0:373 'inFM0' ( in 2X2 matrix of float) 0:379 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; ( temp void) 0:379 Function Parameters: 0:379 'inF0' ( in float) 0:379 'inF1' ( in float) 0:379 'inFV0' ( in 3-component vector of float) 0:379 'inFV1' ( in 3-component vector of float) 0:379 'inFM0' ( in 3X3 matrix of float) 0:379 'inFM1' ( in 3X3 matrix of float) 0:? Sequence 0:380 Sequence 0:380 move second child to first child ( temp float) 0:380 'r0' ( temp float) 0:380 component-wise multiply ( temp float) 0:380 'inF1' ( in float) 0:380 'inF0' ( in float) 0:380 Sequence 0:380 move second child to first child ( temp 3-component vector of float) 0:380 'r1' ( temp 3-component vector of float) 0:380 vector-scale ( temp 3-component vector of float) 0:380 'inF0' ( in float) 0:380 'inFV0' ( in 3-component vector of float) 0:380 Sequence 0:380 move second child to first child ( temp 3-component vector of float) 0:380 'r2' ( temp 3-component vector of float) 0:380 vector-scale ( temp 3-component vector of float) 0:380 'inFV0' ( in 3-component vector of float) 0:380 'inF0' ( in float) 0:380 Sequence 0:380 move second child to first child ( temp float) 0:380 'r3' ( temp float) 0:380 dot-product ( temp float) 0:380 'inFV0' ( in 3-component vector of float) 0:380 'inFV1' ( in 3-component vector of float) 0:380 Sequence 0:380 move second child to first child ( temp 3-component vector of float) 0:380 'r4' ( temp 3-component vector of float) 0:380 vector-times-matrix ( temp 3-component vector of float) 0:380 'inFV0' ( in 3-component vector of float) 0:380 'inFM0' ( in 3X3 matrix of float) 0:380 Sequence 0:380 move second child to first child ( temp 3-component vector of float) 0:380 'r5' ( temp 3-component vector of float) 0:380 matrix-times-vector ( temp 3-component vector of float) 0:380 'inFM0' ( in 3X3 matrix of float) 0:380 'inFV0' ( in 3-component vector of float) 0:380 Sequence 0:380 move second child to first child ( temp 3X3 matrix of float) 0:380 'r6' ( temp 3X3 matrix of float) 0:380 matrix-scale ( temp 3X3 matrix of float) 0:380 'inF0' ( in float) 0:380 'inFM0' ( in 3X3 matrix of float) 0:380 Sequence 0:380 move second child to first child ( temp 3X3 matrix of float) 0:380 'r7' ( temp 3X3 matrix of float) 0:380 matrix-scale ( temp 3X3 matrix of float) 0:380 'inFM0' ( in 3X3 matrix of float) 0:380 'inF0' ( in float) 0:380 Sequence 0:380 move second child to first child ( temp 3X3 matrix of float) 0:380 'r8' ( temp 3X3 matrix of float) 0:380 matrix-multiply ( temp 3X3 matrix of float) 0:380 'inFM1' ( in 3X3 matrix of float) 0:380 'inFM0' ( in 3X3 matrix of float) 0:386 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; ( temp void) 0:386 Function Parameters: 0:386 'inF0' ( in float) 0:386 'inF1' ( in float) 0:386 'inFV0' ( in 4-component vector of float) 0:386 'inFV1' ( in 4-component vector of float) 0:386 'inFM0' ( in 4X4 matrix of float) 0:386 'inFM1' ( in 4X4 matrix of float) 0:? Sequence 0:387 Sequence 0:387 move second child to first child ( temp float) 0:387 'r0' ( temp float) 0:387 component-wise multiply ( temp float) 0:387 'inF1' ( in float) 0:387 'inF0' ( in float) 0:387 Sequence 0:387 move second child to first child ( temp 4-component vector of float) 0:387 'r1' ( temp 4-component vector of float) 0:387 vector-scale ( temp 4-component vector of float) 0:387 'inF0' ( in float) 0:387 'inFV0' ( in 4-component vector of float) 0:387 Sequence 0:387 move second child to first child ( temp 4-component vector of float) 0:387 'r2' ( temp 4-component vector of float) 0:387 vector-scale ( temp 4-component vector of float) 0:387 'inFV0' ( in 4-component vector of float) 0:387 'inF0' ( in float) 0:387 Sequence 0:387 move second child to first child ( temp float) 0:387 'r3' ( temp float) 0:387 dot-product ( temp float) 0:387 'inFV0' ( in 4-component vector of float) 0:387 'inFV1' ( in 4-component vector of float) 0:387 Sequence 0:387 move second child to first child ( temp 4-component vector of float) 0:387 'r4' ( temp 4-component vector of float) 0:387 vector-times-matrix ( temp 4-component vector of float) 0:387 'inFV0' ( in 4-component vector of float) 0:387 'inFM0' ( in 4X4 matrix of float) 0:387 Sequence 0:387 move second child to first child ( temp 4-component vector of float) 0:387 'r5' ( temp 4-component vector of float) 0:387 matrix-times-vector ( temp 4-component vector of float) 0:387 'inFM0' ( in 4X4 matrix of float) 0:387 'inFV0' ( in 4-component vector of float) 0:387 Sequence 0:387 move second child to first child ( temp 4X4 matrix of float) 0:387 'r6' ( temp 4X4 matrix of float) 0:387 matrix-scale ( temp 4X4 matrix of float) 0:387 'inF0' ( in float) 0:387 'inFM0' ( in 4X4 matrix of float) 0:387 Sequence 0:387 move second child to first child ( temp 4X4 matrix of float) 0:387 'r7' ( temp 4X4 matrix of float) 0:387 matrix-scale ( temp 4X4 matrix of float) 0:387 'inFM0' ( in 4X4 matrix of float) 0:387 'inF0' ( in float) 0:387 Sequence 0:387 move second child to first child ( temp 4X4 matrix of float) 0:387 'r8' ( temp 4X4 matrix of float) 0:387 matrix-multiply ( temp 4X4 matrix of float) 0:387 'inFM1' ( in 4X4 matrix of float) 0:387 'inFM0' ( in 4X4 matrix of float) 0:396 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; ( temp void) 0:396 Function Parameters: 0:396 'inF0' ( in float) 0:396 'inF1' ( in float) 0:396 'inFV2' ( in 2-component vector of float) 0:396 'inFV3' ( in 3-component vector of float) 0:396 'inFM2x3' ( in 2X3 matrix of float) 0:396 'inFM3x2' ( in 3X2 matrix of float) 0:396 'inFM3x3' ( in 3X3 matrix of float) 0:396 'inFM3x4' ( in 3X4 matrix of float) 0:396 'inFM2x4' ( in 2X4 matrix of float) 0:? Sequence 0:397 Sequence 0:397 move second child to first child ( temp float) 0:397 'r00' ( temp float) 0:397 component-wise multiply ( temp float) 0:397 'inF1' ( in float) 0:397 'inF0' ( in float) 0:398 Sequence 0:398 move second child to first child ( temp 2-component vector of float) 0:398 'r01' ( temp 2-component vector of float) 0:398 vector-scale ( temp 2-component vector of float) 0:398 'inF0' ( in float) 0:398 'inFV2' ( in 2-component vector of float) 0:399 Sequence 0:399 move second child to first child ( temp 3-component vector of float) 0:399 'r02' ( temp 3-component vector of float) 0:399 vector-scale ( temp 3-component vector of float) 0:399 'inF0' ( in float) 0:399 'inFV3' ( in 3-component vector of float) 0:400 Sequence 0:400 move second child to first child ( temp 2-component vector of float) 0:400 'r03' ( temp 2-component vector of float) 0:400 vector-scale ( temp 2-component vector of float) 0:400 'inFV2' ( in 2-component vector of float) 0:400 'inF0' ( in float) 0:401 Sequence 0:401 move second child to first child ( temp 3-component vector of float) 0:401 'r04' ( temp 3-component vector of float) 0:401 vector-scale ( temp 3-component vector of float) 0:401 'inFV3' ( in 3-component vector of float) 0:401 'inF0' ( in float) 0:402 Sequence 0:402 move second child to first child ( temp float) 0:402 'r05' ( temp float) 0:402 dot-product ( temp float) 0:402 'inFV2' ( in 2-component vector of float) 0:402 'inFV2' ( in 2-component vector of float) 0:403 Sequence 0:403 move second child to first child ( temp float) 0:403 'r06' ( temp float) 0:403 dot-product ( temp float) 0:403 'inFV3' ( in 3-component vector of float) 0:403 'inFV3' ( in 3-component vector of float) 0:404 Sequence 0:404 move second child to first child ( temp 3-component vector of float) 0:404 'r07' ( temp 3-component vector of float) 0:404 matrix-times-vector ( temp 3-component vector of float) 0:404 'inFM2x3' ( in 2X3 matrix of float) 0:404 'inFV2' ( in 2-component vector of float) 0:405 Sequence 0:405 move second child to first child ( temp 2-component vector of float) 0:405 'r08' ( temp 2-component vector of float) 0:405 matrix-times-vector ( temp 2-component vector of float) 0:405 'inFM3x2' ( in 3X2 matrix of float) 0:405 'inFV3' ( in 3-component vector of float) 0:406 Sequence 0:406 move second child to first child ( temp 2-component vector of float) 0:406 'r09' ( temp 2-component vector of float) 0:406 vector-times-matrix ( temp 2-component vector of float) 0:406 'inFV3' ( in 3-component vector of float) 0:406 'inFM2x3' ( in 2X3 matrix of float) 0:407 Sequence 0:407 move second child to first child ( temp 3-component vector of float) 0:407 'r10' ( temp 3-component vector of float) 0:407 vector-times-matrix ( temp 3-component vector of float) 0:407 'inFV2' ( in 2-component vector of float) 0:407 'inFM3x2' ( in 3X2 matrix of float) 0:408 Sequence 0:408 move second child to first child ( temp 2X3 matrix of float) 0:408 'r11' ( temp 2X3 matrix of float) 0:408 matrix-scale ( temp 2X3 matrix of float) 0:408 'inF0' ( in float) 0:408 'inFM2x3' ( in 2X3 matrix of float) 0:409 Sequence 0:409 move second child to first child ( temp 3X2 matrix of float) 0:409 'r12' ( temp 3X2 matrix of float) 0:409 matrix-scale ( temp 3X2 matrix of float) 0:409 'inF0' ( in float) 0:409 'inFM3x2' ( in 3X2 matrix of float) 0:410 Sequence 0:410 move second child to first child ( temp 2X2 matrix of float) 0:410 'r13' ( temp 2X2 matrix of float) 0:410 matrix-multiply ( temp 2X2 matrix of float) 0:410 'inFM3x2' ( in 3X2 matrix of float) 0:410 'inFM2x3' ( in 2X3 matrix of float) 0:411 Sequence 0:411 move second child to first child ( temp 2X3 matrix of float) 0:411 'r14' ( temp 2X3 matrix of float) 0:411 matrix-multiply ( temp 2X3 matrix of float) 0:411 'inFM3x3' ( in 3X3 matrix of float) 0:411 'inFM2x3' ( in 2X3 matrix of float) 0:412 Sequence 0:412 move second child to first child ( temp 2X4 matrix of float) 0:412 'r15' ( temp 2X4 matrix of float) 0:412 matrix-multiply ( temp 2X4 matrix of float) 0:412 'inFM3x4' ( in 3X4 matrix of float) 0:412 'inFM2x3' ( in 2X3 matrix of float) 0:413 Sequence 0:413 move second child to first child ( temp 3X4 matrix of float) 0:413 'r16' ( temp 3X4 matrix of float) 0:413 matrix-multiply ( temp 3X4 matrix of float) 0:413 'inFM2x4' ( in 2X4 matrix of float) 0:413 'inFM3x2' ( in 3X2 matrix of float) 0:? Linker Objects Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 1225 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "VertexShaderFunction" Source HLSL 500 Name 4 "VertexShaderFunction" Name 16 "VertexShaderFunctionS(f1;f1;f1;u1;u1;" Name 11 "inF0" Name 12 "inF1" Name 13 "inF2" Name 14 "inU0" Name 15 "inU1" Name 22 "VertexShaderFunction1(vf1;vf1;vf1;" Name 19 "inF0" Name 20 "inF1" Name 21 "inF2" Name 34 "VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2;" Name 29 "inF0" Name 30 "inF1" Name 31 "inF2" Name 32 "inU0" Name 33 "inU1" Name 46 "VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3;" Name 41 "inF0" Name 42 "inF1" Name 43 "inF2" Name 44 "inU0" Name 45 "inU1" Name 58 "VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4;" Name 53 "inF0" Name 54 "inF1" Name 55 "inF2" Name 56 "inU0" Name 57 "inU1" Name 66 "VertexShaderFunction2x2(mf22;mf22;mf22;" Name 63 "inF0" Name 64 "inF1" Name 65 "inF2" Name 74 "VertexShaderFunction3x3(mf33;mf33;mf33;" Name 71 "inF0" Name 72 "inF1" Name 73 "inF2" Name 82 "VertexShaderFunction4x4(mf44;mf44;mf44;" Name 79 "inF0" Name 80 "inF1" Name 81 "inF2" Name 91 "TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;" Name 85 "inF0" Name 86 "inF1" Name 87 "inFV0" Name 88 "inFV1" Name 89 "inFM0" Name 90 "inFM1" Name 100 "TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;" Name 94 "inF0" Name 95 "inF1" Name 96 "inFV0" Name 97 "inFV1" Name 98 "inFM0" Name 99 "inFM1" Name 109 "TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;" Name 103 "inF0" Name 104 "inF1" Name 105 "inFV0" Name 106 "inFV1" Name 107 "inFM0" Name 108 "inFM1" Name 129 "TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;" Name 120 "inF0" Name 121 "inF1" Name 122 "inFV2" Name 123 "inFV3" Name 124 "inFM2x3" Name 125 "inFM3x2" Name 126 "inFM3x3" Name 127 "inFM3x4" Name 128 "inFM2x4" Name 1049 "r0" Name 1053 "r1" Name 1057 "r2" Name 1061 "r3" Name 1065 "r4" Name 1069 "r5" Name 1073 "r6" Name 1077 "r7" Name 1081 "r8" Name 1085 "r0" Name 1089 "r1" Name 1093 "r2" Name 1097 "r3" Name 1101 "r4" Name 1105 "r5" Name 1109 "r6" Name 1113 "r7" Name 1117 "r8" Name 1121 "r0" Name 1125 "r1" Name 1129 "r2" Name 1133 "r3" Name 1137 "r4" Name 1141 "r5" Name 1145 "r6" Name 1149 "r7" Name 1153 "r8" Name 1157 "r00" Name 1161 "r01" Name 1165 "r02" Name 1169 "r03" Name 1173 "r04" Name 1177 "r05" Name 1181 "r06" Name 1185 "r07" Name 1189 "r08" Name 1193 "r09" Name 1197 "r10" Name 1201 "r11" Name 1205 "r12" Name 1209 "r13" Name 1213 "r14" Name 1217 "r15" Name 1221 "r16" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeInt 32 0 9: TypePointer Function 8(int) 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) 9(ptr) 18: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 24: TypeVector 6(float) 2 25: TypePointer Function 24(fvec2) 26: TypeVector 8(int) 2 27: TypePointer Function 26(ivec2) 28: TypeFunction 24(fvec2) 25(ptr) 25(ptr) 25(ptr) 27(ptr) 27(ptr) 36: TypeVector 6(float) 3 37: TypePointer Function 36(fvec3) 38: TypeVector 8(int) 3 39: TypePointer Function 38(ivec3) 40: TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr) 48: TypeVector 6(float) 4 49: TypePointer Function 48(fvec4) 50: TypeVector 8(int) 4 51: TypePointer Function 50(ivec4) 52: TypeFunction 48(fvec4) 49(ptr) 49(ptr) 49(ptr) 51(ptr) 51(ptr) 60: TypeMatrix 24(fvec2) 2 61: TypePointer Function 60 62: TypeFunction 60 61(ptr) 61(ptr) 61(ptr) 68: TypeMatrix 36(fvec3) 3 69: TypePointer Function 68 70: TypeFunction 68 69(ptr) 69(ptr) 69(ptr) 76: TypeMatrix 48(fvec4) 4 77: TypePointer Function 76 78: TypeFunction 76 77(ptr) 77(ptr) 77(ptr) 84: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 25(ptr) 61(ptr) 61(ptr) 93: TypeFunction 2 7(ptr) 7(ptr) 37(ptr) 37(ptr) 69(ptr) 69(ptr) 102: TypeFunction 2 7(ptr) 7(ptr) 49(ptr) 49(ptr) 77(ptr) 77(ptr) 111: TypeMatrix 36(fvec3) 2 112: TypePointer Function 111 113: TypeMatrix 24(fvec2) 3 114: TypePointer Function 113 115: TypeMatrix 48(fvec4) 3 116: TypePointer Function 115 117: TypeMatrix 48(fvec4) 2 118: TypePointer Function 117 119: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 37(ptr) 112(ptr) 114(ptr) 69(ptr) 116(ptr) 118(ptr) 132: TypeBool 133: 6(float) Constant 0 146: TypeInt 32 1 167: 146(int) Constant 7 199: 6(float) Constant 1050288283 214: 146(int) Constant 2 221: 6(float) Constant 1065353216 253: TypeVector 132(bool) 2 254: 24(fvec2) ConstantComposite 133 133 267: TypeVector 146(int) 2 288: 146(int) Constant 3 289: 267(ivec2) ConstantComposite 167 288 354: 6(float) Constant 1073741824 356: 146(int) Constant 1 357: 267(ivec2) ConstantComposite 356 214 392: 24(fvec2) ConstantComposite 221 354 396: TypeVector 132(bool) 3 397: 36(fvec3) ConstantComposite 133 133 133 410: TypeVector 146(int) 3 431: 146(int) Constant 5 432: 410(ivec3) ConstantComposite 167 288 431 501: 410(ivec3) ConstantComposite 356 214 288 536: 6(float) Constant 1077936128 537: 36(fvec3) ConstantComposite 221 354 536 541: TypeVector 132(bool) 4 542: 48(fvec4) ConstantComposite 133 133 133 133 555: TypeVector 146(int) 4 576: 555(ivec4) ConstantComposite 167 288 431 214 586: 8(int) Constant 1 592: 8(int) Constant 2 595: 8(int) Constant 3 655: 146(int) Constant 4 656: 555(ivec4) ConstantComposite 356 214 288 655 691: 6(float) Constant 1082130432 692: 48(fvec4) ConstantComposite 221 354 536 691 696: TypeMatrix 253(bvec2) 2 806: 24(fvec2) ConstantComposite 354 354 807: 60 ConstantComposite 806 806 811: TypeMatrix 396(bvec3) 3 924: 36(fvec3) ConstantComposite 536 536 536 925: 68 ConstantComposite 924 924 924 929: TypeMatrix 541(bvec4) 4 1045: 48(fvec4) ConstantComposite 691 691 691 691 1046: 76 ConstantComposite 1045 1045 1045 1045 4(VertexShaderFunction): 2 Function None 3 5: Label Return FunctionEnd 16(VertexShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter 12(inF1): 7(ptr) FunctionParameter 13(inF2): 7(ptr) FunctionParameter 14(inU0): 9(ptr) FunctionParameter 15(inU1): 9(ptr) FunctionParameter 17: Label 131: 6(float) Load 11(inF0) 134: 132(bool) FOrdNotEqual 131 133 135: 132(bool) All 134 136: 6(float) Load 11(inF0) 137: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 136 138: 6(float) Load 11(inF0) 139: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 138 140: 6(float) Load 11(inF0) 141: 132(bool) FOrdNotEqual 140 133 142: 132(bool) Any 141 143: 6(float) Load 11(inF0) 144: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 143 145: 6(float) Load 11(inF0) 147: 146(int) Bitcast 145 148: 6(float) Load 11(inF0) 149: 8(int) Bitcast 148 150: 8(int) Load 14(inU0) 151: 6(float) Bitcast 150 152: 6(float) Load 11(inF0) 153: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 152 154: 6(float) Load 11(inF0) 155: 6(float) Load 12(inF1) 156: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 154 155 157: 6(float) Load 11(inF0) 158: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 157 159: 6(float) Load 11(inF0) 160: 6(float) Load 12(inF1) 161: 6(float) Load 13(inF2) 162: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 159 160 161 163: 6(float) Load 11(inF0) 164: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 163 165: 6(float) Load 11(inF0) 166: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 165 168: 146(int) BitCount 167 169: 6(float) Load 11(inF0) 170: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 169 171: 6(float) Load 11(inF0) 172: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 171 173: 6(float) Load 11(inF0) 174: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 173 175: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 176: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 177: 6(float) Load 11(inF0) 178: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 177 179: 6(float) Load 11(inF0) 180: 6(float) Load 12(inF1) 181: 6(float) FMod 179 180 182: 6(float) Load 11(inF0) 183: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 182 184: 6(float) Load 11(inF0) 185: 132(bool) IsInf 184 186: 6(float) Load 11(inF0) 187: 132(bool) IsNan 186 188: 6(float) Load 11(inF0) 189: 6(float) Load 12(inF1) 190: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 188 189 191: 6(float) Load 11(inF0) 192: 6(float) Load 12(inF1) 193: 6(float) Load 13(inF2) 194: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 191 192 193 195: 6(float) Load 11(inF0) 196: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 195 197: 6(float) Load 11(inF0) 198: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 197 200: 6(float) FMul 198 199 201: 6(float) Load 11(inF0) 202: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 201 203: 6(float) Load 11(inF0) 204: 6(float) Load 12(inF1) 205: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 203 204 206: 6(float) Load 11(inF0) 207: 6(float) Load 12(inF1) 208: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 206 207 209: 6(float) Load 11(inF0) 210: 6(float) Load 12(inF1) 211: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 209 210 212: 6(float) Load 11(inF0) 213: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 212 215: 146(int) BitReverse 214 216: 6(float) Load 11(inF0) 217: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 216 218: 6(float) Load 11(inF0) 219: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 218 220: 6(float) Load 11(inF0) 222: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 220 133 221 223: 6(float) Load 11(inF0) 224: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 223 225: 6(float) Load 11(inF0) 226: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 225 227: 6(float) Load 11(inF0) 228: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 227 Store 12(inF1) 228 229: 6(float) Load 11(inF0) 230: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 229 Store 13(inF2) 230 231: 6(float) Load 11(inF0) 232: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 231 233: 6(float) Load 11(inF0) 234: 6(float) Load 12(inF1) 235: 6(float) Load 13(inF2) 236: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 233 234 235 237: 6(float) Load 11(inF0) 238: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 237 239: 6(float) Load 11(inF0) 240: 6(float) Load 12(inF1) 241: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 239 240 242: 6(float) Load 11(inF0) 243: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 242 244: 6(float) Load 11(inF0) 245: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 244 246: 6(float) Load 11(inF0) 247: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 246 ReturnValue 133 FunctionEnd 22(VertexShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18 19(inF0): 7(ptr) FunctionParameter 20(inF1): 7(ptr) FunctionParameter 21(inF2): 7(ptr) FunctionParameter 23: Label ReturnValue 133 FunctionEnd 34(VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 29(inF0): 25(ptr) FunctionParameter 30(inF1): 25(ptr) FunctionParameter 31(inF2): 25(ptr) FunctionParameter 32(inU0): 27(ptr) FunctionParameter 33(inU1): 27(ptr) FunctionParameter 35: Label 252: 24(fvec2) Load 29(inF0) 255: 253(bvec2) FOrdNotEqual 252 254 256: 132(bool) All 255 257: 24(fvec2) Load 29(inF0) 258: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 257 259: 24(fvec2) Load 29(inF0) 260: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 259 261: 24(fvec2) Load 29(inF0) 262: 253(bvec2) FOrdNotEqual 261 254 263: 132(bool) Any 262 264: 24(fvec2) Load 29(inF0) 265: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 264 266: 24(fvec2) Load 29(inF0) 268: 267(ivec2) Bitcast 266 269: 24(fvec2) Load 29(inF0) 270: 26(ivec2) Bitcast 269 271: 26(ivec2) Load 32(inU0) 272: 24(fvec2) Bitcast 271 273: 24(fvec2) Load 29(inF0) 274: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 273 275: 24(fvec2) Load 29(inF0) 276: 24(fvec2) Load 30(inF1) 277: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 275 276 278: 24(fvec2) Load 29(inF0) 279: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 278 280: 24(fvec2) Load 29(inF0) 281: 24(fvec2) Load 30(inF1) 282: 24(fvec2) Load 31(inF2) 283: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 280 281 282 284: 24(fvec2) Load 29(inF0) 285: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 284 286: 24(fvec2) Load 29(inF0) 287: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 286 290: 267(ivec2) BitCount 289 291: 24(fvec2) Load 29(inF0) 292: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 291 293: 24(fvec2) Load 29(inF0) 294: 24(fvec2) Load 30(inF1) 295: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 293 294 296: 24(fvec2) Load 29(inF0) 297: 24(fvec2) Load 30(inF1) 298: 6(float) Dot 296 297 299: 24(fvec2) Load 29(inF0) 300: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 299 301: 24(fvec2) Load 29(inF0) 302: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 301 303: 24(fvec2) Load 29(inF0) 304: 24(fvec2) Load 30(inF1) 305: 24(fvec2) Load 31(inF2) 306: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 303 304 305 307: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 308: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 309: 24(fvec2) Load 29(inF0) 310: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 309 311: 24(fvec2) Load 29(inF0) 312: 24(fvec2) Load 30(inF1) 313: 24(fvec2) FMod 311 312 314: 24(fvec2) Load 29(inF0) 315: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 314 316: 24(fvec2) Load 29(inF0) 317: 253(bvec2) IsInf 316 318: 24(fvec2) Load 29(inF0) 319: 253(bvec2) IsNan 318 320: 24(fvec2) Load 29(inF0) 321: 24(fvec2) Load 30(inF1) 322: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 320 321 323: 24(fvec2) Load 29(inF0) 324: 24(fvec2) Load 30(inF1) 325: 24(fvec2) Load 31(inF2) 326: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 323 324 325 327: 24(fvec2) Load 29(inF0) 328: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 327 329: 24(fvec2) Load 29(inF0) 330: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 329 331: 24(fvec2) Load 29(inF0) 332: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 331 333: 24(fvec2) VectorTimesScalar 332 199 334: 24(fvec2) Load 29(inF0) 335: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 334 336: 24(fvec2) Load 29(inF0) 337: 24(fvec2) Load 30(inF1) 338: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 336 337 339: 24(fvec2) Load 29(inF0) 340: 24(fvec2) Load 30(inF1) 341: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 339 340 342: 24(fvec2) Load 29(inF0) 343: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 342 344: 24(fvec2) Load 29(inF0) 345: 24(fvec2) Load 30(inF1) 346: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 344 345 347: 24(fvec2) Load 29(inF0) 348: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 347 349: 24(fvec2) Load 29(inF0) 350: 24(fvec2) Load 30(inF1) 351: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 349 350 352: 24(fvec2) Load 29(inF0) 353: 24(fvec2) Load 30(inF1) 355: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 352 353 354 358: 267(ivec2) BitReverse 357 359: 24(fvec2) Load 29(inF0) 360: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 359 361: 24(fvec2) Load 29(inF0) 362: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 361 363: 24(fvec2) Load 29(inF0) 364: 24(fvec2) CompositeConstruct 133 133 365: 24(fvec2) CompositeConstruct 221 221 366: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 363 364 365 367: 24(fvec2) Load 29(inF0) 368: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 367 369: 24(fvec2) Load 29(inF0) 370: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 369 371: 24(fvec2) Load 29(inF0) 372: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 371 Store 30(inF1) 372 373: 24(fvec2) Load 29(inF0) 374: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 373 Store 31(inF2) 374 375: 24(fvec2) Load 29(inF0) 376: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 375 377: 24(fvec2) Load 29(inF0) 378: 24(fvec2) Load 30(inF1) 379: 24(fvec2) Load 31(inF2) 380: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 377 378 379 381: 24(fvec2) Load 29(inF0) 382: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 381 383: 24(fvec2) Load 29(inF0) 384: 24(fvec2) Load 30(inF1) 385: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 383 384 386: 24(fvec2) Load 29(inF0) 387: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 386 388: 24(fvec2) Load 29(inF0) 389: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 388 390: 24(fvec2) Load 29(inF0) 391: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 390 ReturnValue 392 FunctionEnd 46(VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 41(inF0): 37(ptr) FunctionParameter 42(inF1): 37(ptr) FunctionParameter 43(inF2): 37(ptr) FunctionParameter 44(inU0): 39(ptr) FunctionParameter 45(inU1): 39(ptr) FunctionParameter 47: Label 395: 36(fvec3) Load 41(inF0) 398: 396(bvec3) FOrdNotEqual 395 397 399: 132(bool) All 398 400: 36(fvec3) Load 41(inF0) 401: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 400 402: 36(fvec3) Load 41(inF0) 403: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 402 404: 36(fvec3) Load 41(inF0) 405: 396(bvec3) FOrdNotEqual 404 397 406: 132(bool) Any 405 407: 36(fvec3) Load 41(inF0) 408: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 407 409: 36(fvec3) Load 41(inF0) 411: 410(ivec3) Bitcast 409 412: 36(fvec3) Load 41(inF0) 413: 38(ivec3) Bitcast 412 414: 38(ivec3) Load 44(inU0) 415: 36(fvec3) Bitcast 414 416: 36(fvec3) Load 41(inF0) 417: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 416 418: 36(fvec3) Load 41(inF0) 419: 36(fvec3) Load 42(inF1) 420: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 418 419 421: 36(fvec3) Load 41(inF0) 422: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 421 423: 36(fvec3) Load 41(inF0) 424: 36(fvec3) Load 42(inF1) 425: 36(fvec3) Load 43(inF2) 426: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 423 424 425 427: 36(fvec3) Load 41(inF0) 428: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 427 429: 36(fvec3) Load 41(inF0) 430: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 429 433: 410(ivec3) BitCount 432 434: 36(fvec3) Load 41(inF0) 435: 36(fvec3) Load 42(inF1) 436: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 434 435 437: 36(fvec3) Load 41(inF0) 438: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 437 439: 36(fvec3) Load 41(inF0) 440: 36(fvec3) Load 42(inF1) 441: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 439 440 442: 36(fvec3) Load 41(inF0) 443: 36(fvec3) Load 42(inF1) 444: 6(float) Dot 442 443 445: 36(fvec3) Load 41(inF0) 446: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 445 447: 36(fvec3) Load 41(inF0) 448: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 447 449: 36(fvec3) Load 41(inF0) 450: 36(fvec3) Load 42(inF1) 451: 36(fvec3) Load 43(inF2) 452: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 449 450 451 453: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 454: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 455: 36(fvec3) Load 41(inF0) 456: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 455 457: 36(fvec3) Load 41(inF0) 458: 36(fvec3) Load 42(inF1) 459: 36(fvec3) FMod 457 458 460: 36(fvec3) Load 41(inF0) 461: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 460 462: 36(fvec3) Load 41(inF0) 463: 396(bvec3) IsInf 462 464: 36(fvec3) Load 41(inF0) 465: 396(bvec3) IsNan 464 466: 36(fvec3) Load 41(inF0) 467: 36(fvec3) Load 42(inF1) 468: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 466 467 469: 36(fvec3) Load 41(inF0) 470: 36(fvec3) Load 42(inF1) 471: 36(fvec3) Load 43(inF2) 472: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 469 470 471 473: 36(fvec3) Load 41(inF0) 474: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 473 475: 36(fvec3) Load 41(inF0) 476: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 475 477: 36(fvec3) Load 41(inF0) 478: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 477 479: 36(fvec3) VectorTimesScalar 478 199 480: 36(fvec3) Load 41(inF0) 481: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 480 482: 36(fvec3) Load 41(inF0) 483: 36(fvec3) Load 42(inF1) 484: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 482 483 485: 36(fvec3) Load 41(inF0) 486: 36(fvec3) Load 42(inF1) 487: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 485 486 488: 36(fvec3) Load 41(inF0) 489: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 488 490: 36(fvec3) Load 41(inF0) 491: 36(fvec3) Load 42(inF1) 492: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 490 491 493: 36(fvec3) Load 41(inF0) 494: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 493 495: 36(fvec3) Load 41(inF0) 496: 36(fvec3) Load 42(inF1) 497: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 495 496 498: 36(fvec3) Load 41(inF0) 499: 36(fvec3) Load 42(inF1) 500: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 498 499 354 502: 410(ivec3) BitReverse 501 503: 36(fvec3) Load 41(inF0) 504: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 503 505: 36(fvec3) Load 41(inF0) 506: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 505 507: 36(fvec3) Load 41(inF0) 508: 36(fvec3) CompositeConstruct 133 133 133 509: 36(fvec3) CompositeConstruct 221 221 221 510: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 507 508 509 511: 36(fvec3) Load 41(inF0) 512: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 511 513: 36(fvec3) Load 41(inF0) 514: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 513 515: 36(fvec3) Load 41(inF0) 516: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 515 Store 42(inF1) 516 517: 36(fvec3) Load 41(inF0) 518: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 517 Store 43(inF2) 518 519: 36(fvec3) Load 41(inF0) 520: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 519 521: 36(fvec3) Load 41(inF0) 522: 36(fvec3) Load 42(inF1) 523: 36(fvec3) Load 43(inF2) 524: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 521 522 523 525: 36(fvec3) Load 41(inF0) 526: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 525 527: 36(fvec3) Load 41(inF0) 528: 36(fvec3) Load 42(inF1) 529: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 527 528 530: 36(fvec3) Load 41(inF0) 531: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 530 532: 36(fvec3) Load 41(inF0) 533: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 532 534: 36(fvec3) Load 41(inF0) 535: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 534 ReturnValue 537 FunctionEnd 58(VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 53(inF0): 49(ptr) FunctionParameter 54(inF1): 49(ptr) FunctionParameter 55(inF2): 49(ptr) FunctionParameter 56(inU0): 51(ptr) FunctionParameter 57(inU1): 51(ptr) FunctionParameter 59: Label 540: 48(fvec4) Load 53(inF0) 543: 541(bvec4) FOrdNotEqual 540 542 544: 132(bool) All 543 545: 48(fvec4) Load 53(inF0) 546: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 545 547: 48(fvec4) Load 53(inF0) 548: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 547 549: 48(fvec4) Load 53(inF0) 550: 541(bvec4) FOrdNotEqual 549 542 551: 132(bool) Any 550 552: 48(fvec4) Load 53(inF0) 553: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 552 554: 48(fvec4) Load 53(inF0) 556: 555(ivec4) Bitcast 554 557: 48(fvec4) Load 53(inF0) 558: 50(ivec4) Bitcast 557 559: 50(ivec4) Load 56(inU0) 560: 48(fvec4) Bitcast 559 561: 48(fvec4) Load 53(inF0) 562: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 561 563: 48(fvec4) Load 53(inF0) 564: 48(fvec4) Load 54(inF1) 565: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 563 564 566: 48(fvec4) Load 53(inF0) 567: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 566 568: 48(fvec4) Load 53(inF0) 569: 48(fvec4) Load 54(inF1) 570: 48(fvec4) Load 55(inF2) 571: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 568 569 570 572: 48(fvec4) Load 53(inF0) 573: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 572 574: 48(fvec4) Load 53(inF0) 575: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 574 577: 555(ivec4) BitCount 576 578: 48(fvec4) Load 53(inF0) 579: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 578 580: 48(fvec4) Load 53(inF0) 581: 48(fvec4) Load 54(inF1) 582: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 580 581 583: 48(fvec4) Load 53(inF0) 584: 48(fvec4) Load 54(inF1) 585: 6(float) Dot 583 584 587: 7(ptr) AccessChain 53(inF0) 586 588: 6(float) Load 587 589: 7(ptr) AccessChain 54(inF1) 586 590: 6(float) Load 589 591: 6(float) FMul 588 590 593: 7(ptr) AccessChain 53(inF0) 592 594: 6(float) Load 593 596: 7(ptr) AccessChain 54(inF1) 595 597: 6(float) Load 596 598: 48(fvec4) CompositeConstruct 221 591 594 597 599: 48(fvec4) Load 53(inF0) 600: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 599 601: 48(fvec4) Load 53(inF0) 602: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 601 603: 48(fvec4) Load 53(inF0) 604: 48(fvec4) Load 54(inF1) 605: 48(fvec4) Load 55(inF2) 606: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 603 604 605 607: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 608: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 609: 48(fvec4) Load 53(inF0) 610: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 609 611: 48(fvec4) Load 53(inF0) 612: 48(fvec4) Load 54(inF1) 613: 48(fvec4) FMod 611 612 614: 48(fvec4) Load 53(inF0) 615: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 614 616: 48(fvec4) Load 53(inF0) 617: 541(bvec4) IsInf 616 618: 48(fvec4) Load 53(inF0) 619: 541(bvec4) IsNan 618 620: 48(fvec4) Load 53(inF0) 621: 48(fvec4) Load 54(inF1) 622: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 620 621 623: 48(fvec4) Load 53(inF0) 624: 48(fvec4) Load 54(inF1) 625: 48(fvec4) Load 55(inF2) 626: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 623 624 625 627: 48(fvec4) Load 53(inF0) 628: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 627 629: 48(fvec4) Load 53(inF0) 630: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 629 631: 48(fvec4) Load 53(inF0) 632: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 631 633: 48(fvec4) VectorTimesScalar 632 199 634: 48(fvec4) Load 53(inF0) 635: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 634 636: 48(fvec4) Load 53(inF0) 637: 48(fvec4) Load 54(inF1) 638: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 636 637 639: 48(fvec4) Load 53(inF0) 640: 48(fvec4) Load 54(inF1) 641: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 639 640 642: 48(fvec4) Load 53(inF0) 643: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 642 644: 48(fvec4) Load 53(inF0) 645: 48(fvec4) Load 54(inF1) 646: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 644 645 647: 48(fvec4) Load 53(inF0) 648: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 647 649: 48(fvec4) Load 53(inF0) 650: 48(fvec4) Load 54(inF1) 651: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 649 650 652: 48(fvec4) Load 53(inF0) 653: 48(fvec4) Load 54(inF1) 654: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 652 653 354 657: 555(ivec4) BitReverse 656 658: 48(fvec4) Load 53(inF0) 659: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 658 660: 48(fvec4) Load 53(inF0) 661: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 660 662: 48(fvec4) Load 53(inF0) 663: 48(fvec4) CompositeConstruct 133 133 133 133 664: 48(fvec4) CompositeConstruct 221 221 221 221 665: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 662 663 664 666: 48(fvec4) Load 53(inF0) 667: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 666 668: 48(fvec4) Load 53(inF0) 669: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 668 670: 48(fvec4) Load 53(inF0) 671: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 670 Store 54(inF1) 671 672: 48(fvec4) Load 53(inF0) 673: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 672 Store 55(inF2) 673 674: 48(fvec4) Load 53(inF0) 675: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 674 676: 48(fvec4) Load 53(inF0) 677: 48(fvec4) Load 54(inF1) 678: 48(fvec4) Load 55(inF2) 679: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 676 677 678 680: 48(fvec4) Load 53(inF0) 681: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 680 682: 48(fvec4) Load 53(inF0) 683: 48(fvec4) Load 54(inF1) 684: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 682 683 685: 48(fvec4) Load 53(inF0) 686: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 685 687: 48(fvec4) Load 53(inF0) 688: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 687 689: 48(fvec4) Load 53(inF0) 690: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 689 ReturnValue 692 FunctionEnd 66(VertexShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62 63(inF0): 61(ptr) FunctionParameter 64(inF1): 61(ptr) FunctionParameter 65(inF2): 61(ptr) FunctionParameter 67: Label 695: 60 Load 63(inF0) 697: 696 FOrdNotEqual 695 133 698: 132(bool) All 697 699: 60 Load 63(inF0) 700: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 699 701: 60 Load 63(inF0) 702: 60 ExtInst 1(GLSL.std.450) 17(Acos) 701 703: 60 Load 63(inF0) 704: 696 FOrdNotEqual 703 133 705: 132(bool) Any 704 706: 60 Load 63(inF0) 707: 60 ExtInst 1(GLSL.std.450) 16(Asin) 706 708: 60 Load 63(inF0) 709: 60 ExtInst 1(GLSL.std.450) 18(Atan) 708 710: 60 Load 63(inF0) 711: 60 Load 64(inF1) 712: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 710 711 713: 60 Load 63(inF0) 714: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 713 715: 60 Load 63(inF0) 716: 60 Load 64(inF1) 717: 60 Load 65(inF2) 718: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 715 716 717 719: 60 Load 63(inF0) 720: 60 ExtInst 1(GLSL.std.450) 14(Cos) 719 721: 60 Load 63(inF0) 722: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 721 723: 60 Load 63(inF0) 724: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 723 725: 60 Load 63(inF0) 726: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 725 727: 60 Load 63(inF0) 728: 60 ExtInst 1(GLSL.std.450) 27(Exp) 727 729: 60 Load 63(inF0) 730: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 729 731: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 732: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 733: 60 Load 63(inF0) 734: 60 ExtInst 1(GLSL.std.450) 8(Floor) 733 735: 60 Load 63(inF0) 736: 60 Load 64(inF1) 737: 24(fvec2) CompositeExtract 735 0 738: 24(fvec2) CompositeExtract 736 0 739: 24(fvec2) FMod 737 738 740: 24(fvec2) CompositeExtract 735 1 741: 24(fvec2) CompositeExtract 736 1 742: 24(fvec2) FMod 740 741 743: 60 CompositeConstruct 739 742 744: 60 Load 63(inF0) 745: 60 ExtInst 1(GLSL.std.450) 10(Fract) 744 746: 60 Load 63(inF0) 747: 60 Load 64(inF1) 748: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 746 747 749: 60 Load 63(inF0) 750: 60 Load 64(inF1) 751: 60 Load 65(inF2) 752: 60 ExtInst 1(GLSL.std.450) 46(FMix) 749 750 751 753: 60 Load 63(inF0) 754: 60 ExtInst 1(GLSL.std.450) 28(Log) 753 755: 60 Load 63(inF0) 756: 60 ExtInst 1(GLSL.std.450) 30(Log2) 755 757: 60 MatrixTimesScalar 756 199 758: 60 Load 63(inF0) 759: 60 ExtInst 1(GLSL.std.450) 30(Log2) 758 760: 60 Load 63(inF0) 761: 60 Load 64(inF1) 762: 60 ExtInst 1(GLSL.std.450) 40(FMax) 760 761 763: 60 Load 63(inF0) 764: 60 Load 64(inF1) 765: 60 ExtInst 1(GLSL.std.450) 37(FMin) 763 764 766: 60 Load 63(inF0) 767: 60 Load 64(inF1) 768: 60 ExtInst 1(GLSL.std.450) 26(Pow) 766 767 769: 60 Load 63(inF0) 770: 60 ExtInst 1(GLSL.std.450) 11(Radians) 769 771: 60 Load 63(inF0) 772: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 771 773: 60 Load 63(inF0) 774: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 773 775: 60 Load 63(inF0) 776: 24(fvec2) CompositeConstruct 133 133 777: 24(fvec2) CompositeConstruct 221 221 778: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 775 776 777 779: 60 Load 63(inF0) 780: 60 ExtInst 1(GLSL.std.450) 6(FSign) 779 781: 60 Load 63(inF0) 782: 60 ExtInst 1(GLSL.std.450) 13(Sin) 781 783: 60 Load 63(inF0) 784: 60 ExtInst 1(GLSL.std.450) 13(Sin) 783 Store 64(inF1) 784 785: 60 Load 63(inF0) 786: 60 ExtInst 1(GLSL.std.450) 14(Cos) 785 Store 65(inF2) 786 787: 60 Load 63(inF0) 788: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 787 789: 60 Load 63(inF0) 790: 60 Load 64(inF1) 791: 60 Load 65(inF2) 792: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 789 790 791 793: 60 Load 63(inF0) 794: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 793 795: 60 Load 63(inF0) 796: 60 Load 64(inF1) 797: 60 ExtInst 1(GLSL.std.450) 48(Step) 795 796 798: 60 Load 63(inF0) 799: 60 ExtInst 1(GLSL.std.450) 15(Tan) 798 800: 60 Load 63(inF0) 801: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 800 802: 60 Load 63(inF0) 803: 60 Transpose 802 804: 60 Load 63(inF0) 805: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 804 ReturnValue 807 FunctionEnd 74(VertexShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70 71(inF0): 69(ptr) FunctionParameter 72(inF1): 69(ptr) FunctionParameter 73(inF2): 69(ptr) FunctionParameter 75: Label 810: 68 Load 71(inF0) 812: 811 FOrdNotEqual 810 133 813: 132(bool) All 812 814: 68 Load 71(inF0) 815: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 814 816: 68 Load 71(inF0) 817: 68 ExtInst 1(GLSL.std.450) 17(Acos) 816 818: 68 Load 71(inF0) 819: 811 FOrdNotEqual 818 133 820: 132(bool) Any 819 821: 68 Load 71(inF0) 822: 68 ExtInst 1(GLSL.std.450) 16(Asin) 821 823: 68 Load 71(inF0) 824: 68 ExtInst 1(GLSL.std.450) 18(Atan) 823 825: 68 Load 71(inF0) 826: 68 Load 72(inF1) 827: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 825 826 828: 68 Load 71(inF0) 829: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 828 830: 68 Load 71(inF0) 831: 68 Load 72(inF1) 832: 68 Load 73(inF2) 833: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 830 831 832 834: 68 Load 71(inF0) 835: 68 ExtInst 1(GLSL.std.450) 14(Cos) 834 836: 68 Load 71(inF0) 837: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 836 838: 68 Load 71(inF0) 839: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 838 840: 68 Load 71(inF0) 841: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 840 842: 68 Load 71(inF0) 843: 68 ExtInst 1(GLSL.std.450) 27(Exp) 842 844: 68 Load 71(inF0) 845: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 844 846: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 847: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 848: 68 Load 71(inF0) 849: 68 ExtInst 1(GLSL.std.450) 8(Floor) 848 850: 68 Load 71(inF0) 851: 68 Load 72(inF1) 852: 36(fvec3) CompositeExtract 850 0 853: 36(fvec3) CompositeExtract 851 0 854: 36(fvec3) FMod 852 853 855: 36(fvec3) CompositeExtract 850 1 856: 36(fvec3) CompositeExtract 851 1 857: 36(fvec3) FMod 855 856 858: 36(fvec3) CompositeExtract 850 2 859: 36(fvec3) CompositeExtract 851 2 860: 36(fvec3) FMod 858 859 861: 68 CompositeConstruct 854 857 860 862: 68 Load 71(inF0) 863: 68 ExtInst 1(GLSL.std.450) 10(Fract) 862 864: 68 Load 71(inF0) 865: 68 Load 72(inF1) 866: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 864 865 867: 68 Load 71(inF0) 868: 68 Load 72(inF1) 869: 68 Load 73(inF2) 870: 68 ExtInst 1(GLSL.std.450) 46(FMix) 867 868 869 871: 68 Load 71(inF0) 872: 68 ExtInst 1(GLSL.std.450) 28(Log) 871 873: 68 Load 71(inF0) 874: 68 ExtInst 1(GLSL.std.450) 30(Log2) 873 875: 68 MatrixTimesScalar 874 199 876: 68 Load 71(inF0) 877: 68 ExtInst 1(GLSL.std.450) 30(Log2) 876 878: 68 Load 71(inF0) 879: 68 Load 72(inF1) 880: 68 ExtInst 1(GLSL.std.450) 40(FMax) 878 879 881: 68 Load 71(inF0) 882: 68 Load 72(inF1) 883: 68 ExtInst 1(GLSL.std.450) 37(FMin) 881 882 884: 68 Load 71(inF0) 885: 68 Load 72(inF1) 886: 68 ExtInst 1(GLSL.std.450) 26(Pow) 884 885 887: 68 Load 71(inF0) 888: 68 ExtInst 1(GLSL.std.450) 11(Radians) 887 889: 68 Load 71(inF0) 890: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 889 891: 68 Load 71(inF0) 892: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 891 893: 68 Load 71(inF0) 894: 36(fvec3) CompositeConstruct 133 133 133 895: 36(fvec3) CompositeConstruct 221 221 221 896: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 893 894 895 897: 68 Load 71(inF0) 898: 68 ExtInst 1(GLSL.std.450) 6(FSign) 897 899: 68 Load 71(inF0) 900: 68 ExtInst 1(GLSL.std.450) 13(Sin) 899 901: 68 Load 71(inF0) 902: 68 ExtInst 1(GLSL.std.450) 13(Sin) 901 Store 72(inF1) 902 903: 68 Load 71(inF0) 904: 68 ExtInst 1(GLSL.std.450) 14(Cos) 903 Store 73(inF2) 904 905: 68 Load 71(inF0) 906: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 905 907: 68 Load 71(inF0) 908: 68 Load 72(inF1) 909: 68 Load 73(inF2) 910: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 907 908 909 911: 68 Load 71(inF0) 912: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 911 913: 68 Load 71(inF0) 914: 68 Load 72(inF1) 915: 68 ExtInst 1(GLSL.std.450) 48(Step) 913 914 916: 68 Load 71(inF0) 917: 68 ExtInst 1(GLSL.std.450) 15(Tan) 916 918: 68 Load 71(inF0) 919: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 918 920: 68 Load 71(inF0) 921: 68 Transpose 920 922: 68 Load 71(inF0) 923: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 922 ReturnValue 925 FunctionEnd 82(VertexShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78 79(inF0): 77(ptr) FunctionParameter 80(inF1): 77(ptr) FunctionParameter 81(inF2): 77(ptr) FunctionParameter 83: Label 928: 76 Load 79(inF0) 930: 929 FOrdNotEqual 928 133 931: 132(bool) All 930 932: 76 Load 79(inF0) 933: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 932 934: 76 Load 79(inF0) 935: 76 ExtInst 1(GLSL.std.450) 17(Acos) 934 936: 76 Load 79(inF0) 937: 929 FOrdNotEqual 936 133 938: 132(bool) Any 937 939: 76 Load 79(inF0) 940: 76 ExtInst 1(GLSL.std.450) 16(Asin) 939 941: 76 Load 79(inF0) 942: 76 ExtInst 1(GLSL.std.450) 18(Atan) 941 943: 76 Load 79(inF0) 944: 76 Load 80(inF1) 945: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 943 944 946: 76 Load 79(inF0) 947: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 946 948: 76 Load 79(inF0) 949: 76 Load 80(inF1) 950: 76 Load 81(inF2) 951: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 948 949 950 952: 76 Load 79(inF0) 953: 76 ExtInst 1(GLSL.std.450) 14(Cos) 952 954: 76 Load 79(inF0) 955: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 954 956: 76 Load 79(inF0) 957: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 956 958: 76 Load 79(inF0) 959: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 958 960: 76 Load 79(inF0) 961: 76 ExtInst 1(GLSL.std.450) 27(Exp) 960 962: 76 Load 79(inF0) 963: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 962 964: 146(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 167 965: 146(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 167 966: 76 Load 79(inF0) 967: 76 ExtInst 1(GLSL.std.450) 8(Floor) 966 968: 76 Load 79(inF0) 969: 76 Load 80(inF1) 970: 48(fvec4) CompositeExtract 968 0 971: 48(fvec4) CompositeExtract 969 0 972: 48(fvec4) FMod 970 971 973: 48(fvec4) CompositeExtract 968 1 974: 48(fvec4) CompositeExtract 969 1 975: 48(fvec4) FMod 973 974 976: 48(fvec4) CompositeExtract 968 2 977: 48(fvec4) CompositeExtract 969 2 978: 48(fvec4) FMod 976 977 979: 48(fvec4) CompositeExtract 968 3 980: 48(fvec4) CompositeExtract 969 3 981: 48(fvec4) FMod 979 980 982: 76 CompositeConstruct 972 975 978 981 983: 76 Load 79(inF0) 984: 76 ExtInst 1(GLSL.std.450) 10(Fract) 983 985: 76 Load 79(inF0) 986: 76 Load 80(inF1) 987: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 985 986 988: 76 Load 79(inF0) 989: 76 Load 80(inF1) 990: 76 Load 81(inF2) 991: 76 ExtInst 1(GLSL.std.450) 46(FMix) 988 989 990 992: 76 Load 79(inF0) 993: 76 ExtInst 1(GLSL.std.450) 28(Log) 992 994: 76 Load 79(inF0) 995: 76 ExtInst 1(GLSL.std.450) 30(Log2) 994 996: 76 MatrixTimesScalar 995 199 997: 76 Load 79(inF0) 998: 76 ExtInst 1(GLSL.std.450) 30(Log2) 997 999: 76 Load 79(inF0) 1000: 76 Load 80(inF1) 1001: 76 ExtInst 1(GLSL.std.450) 40(FMax) 999 1000 1002: 76 Load 79(inF0) 1003: 76 Load 80(inF1) 1004: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1002 1003 1005: 76 Load 79(inF0) 1006: 76 Load 80(inF1) 1007: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1005 1006 1008: 76 Load 79(inF0) 1009: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1008 1010: 76 Load 79(inF0) 1011: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1010 1012: 76 Load 79(inF0) 1013: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1012 1014: 76 Load 79(inF0) 1015: 48(fvec4) CompositeConstruct 133 133 133 133 1016: 48(fvec4) CompositeConstruct 221 221 221 221 1017: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1014 1015 1016 1018: 76 Load 79(inF0) 1019: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1018 1020: 76 Load 79(inF0) 1021: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1020 1022: 76 Load 79(inF0) 1023: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1022 Store 80(inF1) 1023 1024: 76 Load 79(inF0) 1025: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1024 Store 81(inF2) 1025 1026: 76 Load 79(inF0) 1027: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1026 1028: 76 Load 79(inF0) 1029: 76 Load 80(inF1) 1030: 76 Load 81(inF2) 1031: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1028 1029 1030 1032: 76 Load 79(inF0) 1033: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1032 1034: 76 Load 79(inF0) 1035: 76 Load 80(inF1) 1036: 76 ExtInst 1(GLSL.std.450) 48(Step) 1034 1035 1037: 76 Load 79(inF0) 1038: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1037 1039: 76 Load 79(inF0) 1040: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1039 1041: 76 Load 79(inF0) 1042: 76 Transpose 1041 1043: 76 Load 79(inF0) 1044: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1043 ReturnValue 1046 FunctionEnd 91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84 85(inF0): 7(ptr) FunctionParameter 86(inF1): 7(ptr) FunctionParameter 87(inFV0): 25(ptr) FunctionParameter 88(inFV1): 25(ptr) FunctionParameter 89(inFM0): 61(ptr) FunctionParameter 90(inFM1): 61(ptr) FunctionParameter 92: Label 1049(r0): 7(ptr) Variable Function 1053(r1): 25(ptr) Variable Function 1057(r2): 25(ptr) Variable Function 1061(r3): 7(ptr) Variable Function 1065(r4): 25(ptr) Variable Function 1069(r5): 25(ptr) Variable Function 1073(r6): 61(ptr) Variable Function 1077(r7): 61(ptr) Variable Function 1081(r8): 61(ptr) Variable Function 1050: 6(float) Load 86(inF1) 1051: 6(float) Load 85(inF0) 1052: 6(float) FMul 1050 1051 Store 1049(r0) 1052 1054: 6(float) Load 85(inF0) 1055: 24(fvec2) Load 87(inFV0) 1056: 24(fvec2) VectorTimesScalar 1055 1054 Store 1053(r1) 1056 1058: 24(fvec2) Load 87(inFV0) 1059: 6(float) Load 85(inF0) 1060: 24(fvec2) VectorTimesScalar 1058 1059 Store 1057(r2) 1060 1062: 24(fvec2) Load 87(inFV0) 1063: 24(fvec2) Load 88(inFV1) 1064: 6(float) Dot 1062 1063 Store 1061(r3) 1064 1066: 24(fvec2) Load 87(inFV0) 1067: 60 Load 89(inFM0) 1068: 24(fvec2) VectorTimesMatrix 1066 1067 Store 1065(r4) 1068 1070: 60 Load 89(inFM0) 1071: 24(fvec2) Load 87(inFV0) 1072: 24(fvec2) MatrixTimesVector 1070 1071 Store 1069(r5) 1072 1074: 6(float) Load 85(inF0) 1075: 60 Load 89(inFM0) 1076: 60 MatrixTimesScalar 1075 1074 Store 1073(r6) 1076 1078: 60 Load 89(inFM0) 1079: 6(float) Load 85(inF0) 1080: 60 MatrixTimesScalar 1078 1079 Store 1077(r7) 1080 1082: 60 Load 90(inFM1) 1083: 60 Load 89(inFM0) 1084: 60 MatrixTimesMatrix 1082 1083 Store 1081(r8) 1084 Return FunctionEnd 100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93 94(inF0): 7(ptr) FunctionParameter 95(inF1): 7(ptr) FunctionParameter 96(inFV0): 37(ptr) FunctionParameter 97(inFV1): 37(ptr) FunctionParameter 98(inFM0): 69(ptr) FunctionParameter 99(inFM1): 69(ptr) FunctionParameter 101: Label 1085(r0): 7(ptr) Variable Function 1089(r1): 37(ptr) Variable Function 1093(r2): 37(ptr) Variable Function 1097(r3): 7(ptr) Variable Function 1101(r4): 37(ptr) Variable Function 1105(r5): 37(ptr) Variable Function 1109(r6): 69(ptr) Variable Function 1113(r7): 69(ptr) Variable Function 1117(r8): 69(ptr) Variable Function 1086: 6(float) Load 95(inF1) 1087: 6(float) Load 94(inF0) 1088: 6(float) FMul 1086 1087 Store 1085(r0) 1088 1090: 6(float) Load 94(inF0) 1091: 36(fvec3) Load 96(inFV0) 1092: 36(fvec3) VectorTimesScalar 1091 1090 Store 1089(r1) 1092 1094: 36(fvec3) Load 96(inFV0) 1095: 6(float) Load 94(inF0) 1096: 36(fvec3) VectorTimesScalar 1094 1095 Store 1093(r2) 1096 1098: 36(fvec3) Load 96(inFV0) 1099: 36(fvec3) Load 97(inFV1) 1100: 6(float) Dot 1098 1099 Store 1097(r3) 1100 1102: 36(fvec3) Load 96(inFV0) 1103: 68 Load 98(inFM0) 1104: 36(fvec3) VectorTimesMatrix 1102 1103 Store 1101(r4) 1104 1106: 68 Load 98(inFM0) 1107: 36(fvec3) Load 96(inFV0) 1108: 36(fvec3) MatrixTimesVector 1106 1107 Store 1105(r5) 1108 1110: 6(float) Load 94(inF0) 1111: 68 Load 98(inFM0) 1112: 68 MatrixTimesScalar 1111 1110 Store 1109(r6) 1112 1114: 68 Load 98(inFM0) 1115: 6(float) Load 94(inF0) 1116: 68 MatrixTimesScalar 1114 1115 Store 1113(r7) 1116 1118: 68 Load 99(inFM1) 1119: 68 Load 98(inFM0) 1120: 68 MatrixTimesMatrix 1118 1119 Store 1117(r8) 1120 Return FunctionEnd 109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102 103(inF0): 7(ptr) FunctionParameter 104(inF1): 7(ptr) FunctionParameter 105(inFV0): 49(ptr) FunctionParameter 106(inFV1): 49(ptr) FunctionParameter 107(inFM0): 77(ptr) FunctionParameter 108(inFM1): 77(ptr) FunctionParameter 110: Label 1121(r0): 7(ptr) Variable Function 1125(r1): 49(ptr) Variable Function 1129(r2): 49(ptr) Variable Function 1133(r3): 7(ptr) Variable Function 1137(r4): 49(ptr) Variable Function 1141(r5): 49(ptr) Variable Function 1145(r6): 77(ptr) Variable Function 1149(r7): 77(ptr) Variable Function 1153(r8): 77(ptr) Variable Function 1122: 6(float) Load 104(inF1) 1123: 6(float) Load 103(inF0) 1124: 6(float) FMul 1122 1123 Store 1121(r0) 1124 1126: 6(float) Load 103(inF0) 1127: 48(fvec4) Load 105(inFV0) 1128: 48(fvec4) VectorTimesScalar 1127 1126 Store 1125(r1) 1128 1130: 48(fvec4) Load 105(inFV0) 1131: 6(float) Load 103(inF0) 1132: 48(fvec4) VectorTimesScalar 1130 1131 Store 1129(r2) 1132 1134: 48(fvec4) Load 105(inFV0) 1135: 48(fvec4) Load 106(inFV1) 1136: 6(float) Dot 1134 1135 Store 1133(r3) 1136 1138: 48(fvec4) Load 105(inFV0) 1139: 76 Load 107(inFM0) 1140: 48(fvec4) VectorTimesMatrix 1138 1139 Store 1137(r4) 1140 1142: 76 Load 107(inFM0) 1143: 48(fvec4) Load 105(inFV0) 1144: 48(fvec4) MatrixTimesVector 1142 1143 Store 1141(r5) 1144 1146: 6(float) Load 103(inF0) 1147: 76 Load 107(inFM0) 1148: 76 MatrixTimesScalar 1147 1146 Store 1145(r6) 1148 1150: 76 Load 107(inFM0) 1151: 6(float) Load 103(inF0) 1152: 76 MatrixTimesScalar 1150 1151 Store 1149(r7) 1152 1154: 76 Load 108(inFM1) 1155: 76 Load 107(inFM0) 1156: 76 MatrixTimesMatrix 1154 1155 Store 1153(r8) 1156 Return FunctionEnd 129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119 120(inF0): 7(ptr) FunctionParameter 121(inF1): 7(ptr) FunctionParameter 122(inFV2): 25(ptr) FunctionParameter 123(inFV3): 37(ptr) FunctionParameter 124(inFM2x3): 112(ptr) FunctionParameter 125(inFM3x2): 114(ptr) FunctionParameter 126(inFM3x3): 69(ptr) FunctionParameter 127(inFM3x4): 116(ptr) FunctionParameter 128(inFM2x4): 118(ptr) FunctionParameter 130: Label 1157(r00): 7(ptr) Variable Function 1161(r01): 25(ptr) Variable Function 1165(r02): 37(ptr) Variable Function 1169(r03): 25(ptr) Variable Function 1173(r04): 37(ptr) Variable Function 1177(r05): 7(ptr) Variable Function 1181(r06): 7(ptr) Variable Function 1185(r07): 37(ptr) Variable Function 1189(r08): 25(ptr) Variable Function 1193(r09): 25(ptr) Variable Function 1197(r10): 37(ptr) Variable Function 1201(r11): 112(ptr) Variable Function 1205(r12): 114(ptr) Variable Function 1209(r13): 61(ptr) Variable Function 1213(r14): 112(ptr) Variable Function 1217(r15): 118(ptr) Variable Function 1221(r16): 116(ptr) Variable Function 1158: 6(float) Load 121(inF1) 1159: 6(float) Load 120(inF0) 1160: 6(float) FMul 1158 1159 Store 1157(r00) 1160 1162: 6(float) Load 120(inF0) 1163: 24(fvec2) Load 122(inFV2) 1164: 24(fvec2) VectorTimesScalar 1163 1162 Store 1161(r01) 1164 1166: 6(float) Load 120(inF0) 1167: 36(fvec3) Load 123(inFV3) 1168: 36(fvec3) VectorTimesScalar 1167 1166 Store 1165(r02) 1168 1170: 24(fvec2) Load 122(inFV2) 1171: 6(float) Load 120(inF0) 1172: 24(fvec2) VectorTimesScalar 1170 1171 Store 1169(r03) 1172 1174: 36(fvec3) Load 123(inFV3) 1175: 6(float) Load 120(inF0) 1176: 36(fvec3) VectorTimesScalar 1174 1175 Store 1173(r04) 1176 1178: 24(fvec2) Load 122(inFV2) 1179: 24(fvec2) Load 122(inFV2) 1180: 6(float) Dot 1178 1179 Store 1177(r05) 1180 1182: 36(fvec3) Load 123(inFV3) 1183: 36(fvec3) Load 123(inFV3) 1184: 6(float) Dot 1182 1183 Store 1181(r06) 1184 1186: 111 Load 124(inFM2x3) 1187: 24(fvec2) Load 122(inFV2) 1188: 36(fvec3) MatrixTimesVector 1186 1187 Store 1185(r07) 1188 1190: 113 Load 125(inFM3x2) 1191: 36(fvec3) Load 123(inFV3) 1192: 24(fvec2) MatrixTimesVector 1190 1191 Store 1189(r08) 1192 1194: 36(fvec3) Load 123(inFV3) 1195: 111 Load 124(inFM2x3) 1196: 24(fvec2) VectorTimesMatrix 1194 1195 Store 1193(r09) 1196 1198: 24(fvec2) Load 122(inFV2) 1199: 113 Load 125(inFM3x2) 1200: 36(fvec3) VectorTimesMatrix 1198 1199 Store 1197(r10) 1200 1202: 6(float) Load 120(inF0) 1203: 111 Load 124(inFM2x3) 1204: 111 MatrixTimesScalar 1203 1202 Store 1201(r11) 1204 1206: 6(float) Load 120(inF0) 1207: 113 Load 125(inFM3x2) 1208: 113 MatrixTimesScalar 1207 1206 Store 1205(r12) 1208 1210: 113 Load 125(inFM3x2) 1211: 111 Load 124(inFM2x3) 1212: 60 MatrixTimesMatrix 1210 1211 Store 1209(r13) 1212 1214: 68 Load 126(inFM3x3) 1215: 111 Load 124(inFM2x3) 1216: 111 MatrixTimesMatrix 1214 1215 Store 1213(r14) 1216 1218: 115 Load 127(inFM3x4) 1219: 111 Load 124(inFM2x3) 1220: 117 MatrixTimesMatrix 1218 1219 Store 1217(r15) 1220 1222: 117 Load 128(inFM2x4) 1223: 113 Load 125(inFM3x2) 1224: 115 MatrixTimesMatrix 1222 1223 Store 1221(r16) 1224 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.isfinite.frag.out000066400000000000000000000340251360464450000231430ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.layout.frag.out000066400000000000000000000224641360464450000226520ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.layoutOverride.vert.out000066400000000000000000000107511360464450000244070ustar00rootroot00000000000000hlsl.layoutOverride.vert Shader version: 500 0:? Sequence 0:5 Function Definition: @main( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence 0:6 Branch: Return with expression 0:6 texture ( temp 4-component vector of float) 0:6 Construct combined texture-sampler ( temp sampler2D) 0:6 'tex' (layout( set=2 binding=0) uniform texture2D) 0:6 'samp' ( uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:5 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'tex' (layout( set=2 binding=0) uniform texture2D) 0:? 'samp' ( uniform sampler) 0:? '@entryPointOutput' ( out 4-component vector of float Position) Linked vertex stage: Shader version: 500 0:? Sequence 0:5 Function Definition: @main( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence 0:6 Branch: Return with expression 0:6 texture ( temp 4-component vector of float) 0:6 Construct combined texture-sampler ( temp sampler2D) 0:6 'tex' (layout( set=2 binding=0) uniform texture2D) 0:6 'samp' ( uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:5 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'tex' (layout( set=2 binding=0) uniform texture2D) 0:? 'samp' ( uniform sampler) 0:? '@entryPointOutput' ( out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.load.2dms.dx10.frag.out000066400000000000000000001125411360464450000236670ustar00rootroot00000000000000hlsl.load.2dms.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch ( temp 4-component vector of float) 0:32 'g_tTex2dmsf4' ( uniform texture2DMS) 0:32 c2: direct index for structure ( uniform 2-component vector of int) 0:32 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:32 Constant: 0:32 1 (const uint) 0:32 Constant: 0:32 3 (const int) 0:33 textureFetch ( temp 4-component vector of int) 0:33 'g_tTex2dmsi4' ( uniform itexture2DMS) 0:33 c2: direct index for structure ( uniform 2-component vector of int) 0:33 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:33 Constant: 0:33 1 (const uint) 0:33 Constant: 0:33 3 (const int) 0:34 textureFetch ( temp 4-component vector of uint) 0:34 'g_tTex2dmsu4' ( uniform utexture2DMS) 0:34 c2: direct index for structure ( uniform 2-component vector of int) 0:34 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:34 Constant: 0:34 1 (const uint) 0:34 Constant: 0:34 3 (const int) 0:37 textureFetchOffset ( temp 4-component vector of float) 0:37 'g_tTex2dmsf4' ( uniform texture2DMS) 0:37 c2: direct index for structure ( uniform 2-component vector of int) 0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:37 Constant: 0:37 1 (const uint) 0:37 Constant: 0:37 3 (const int) 0:37 o2: direct index for structure ( uniform 2-component vector of int) 0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:37 Constant: 0:37 5 (const uint) 0:38 textureFetchOffset ( temp 4-component vector of int) 0:38 'g_tTex2dmsi4' ( uniform itexture2DMS) 0:38 c2: direct index for structure ( uniform 2-component vector of int) 0:38 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:38 Constant: 0:38 1 (const uint) 0:38 Constant: 0:38 3 (const int) 0:38 o2: direct index for structure ( uniform 2-component vector of int) 0:38 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:38 Constant: 0:38 5 (const uint) 0:39 textureFetchOffset ( temp 4-component vector of uint) 0:39 'g_tTex2dmsu4' ( uniform utexture2DMS) 0:39 c2: direct index for structure ( uniform 2-component vector of int) 0:39 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:39 Constant: 0:39 1 (const uint) 0:39 Constant: 0:39 3 (const int) 0:39 o2: direct index for structure ( uniform 2-component vector of int) 0:39 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:39 Constant: 0:39 5 (const uint) 0:42 textureFetch ( temp 4-component vector of float) 0:42 'g_tTex2dmsf4a' ( uniform texture2DMSArray) 0:42 c3: direct index for structure ( uniform 3-component vector of int) 0:42 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:42 Constant: 0:42 2 (const uint) 0:42 Constant: 0:42 3 (const int) 0:43 textureFetch ( temp 4-component vector of int) 0:43 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) 0:43 c3: direct index for structure ( uniform 3-component vector of int) 0:43 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:43 Constant: 0:43 2 (const uint) 0:43 Constant: 0:43 3 (const int) 0:44 textureFetch ( temp 4-component vector of uint) 0:44 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) 0:44 c3: direct index for structure ( uniform 3-component vector of int) 0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:44 Constant: 0:44 2 (const uint) 0:44 Constant: 0:44 3 (const int) 0:47 textureFetchOffset ( temp 4-component vector of float) 0:47 'g_tTex2dmsf4a' ( uniform texture2DMSArray) 0:47 c3: direct index for structure ( uniform 3-component vector of int) 0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:47 Constant: 0:47 2 (const uint) 0:47 Constant: 0:47 3 (const int) 0:47 o2: direct index for structure ( uniform 2-component vector of int) 0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:47 Constant: 0:47 5 (const uint) 0:48 textureFetchOffset ( temp 4-component vector of int) 0:48 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) 0:48 c3: direct index for structure ( uniform 3-component vector of int) 0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:48 Constant: 0:48 2 (const uint) 0:48 Constant: 0:48 3 (const int) 0:48 o2: direct index for structure ( uniform 2-component vector of int) 0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:48 Constant: 0:48 5 (const uint) 0:49 textureFetchOffset ( temp 4-component vector of uint) 0:49 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) 0:49 c3: direct index for structure ( uniform 3-component vector of int) 0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:49 Constant: 0:49 2 (const uint) 0:49 Constant: 0:49 3 (const int) 0:49 o2: direct index for structure ( uniform 2-component vector of int) 0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:49 Constant: 0:49 5 (const uint) 0:51 move second child to first child ( temp 4-component vector of float) 0:51 Color: direct index for structure ( temp 4-component vector of float) 0:51 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:51 Constant: 0:51 0 (const int) 0:51 Constant: 0:51 1.000000 0:51 1.000000 0:51 1.000000 0:51 1.000000 0:52 move second child to first child ( temp float) 0:52 Depth: direct index for structure ( temp float) 0:52 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:52 Constant: 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 0:54 Branch: Return with expression 0:54 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex2dmsf4' ( uniform texture2DMS) 0:? 'g_tTex2dmsi4' ( uniform itexture2DMS) 0:? 'g_tTex2dmsu4' ( uniform utexture2DMS) 0:? 'g_tTex2dmsf4a' ( uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:32 textureFetch ( temp 4-component vector of float) 0:32 'g_tTex2dmsf4' ( uniform texture2DMS) 0:32 c2: direct index for structure ( uniform 2-component vector of int) 0:32 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:32 Constant: 0:32 1 (const uint) 0:32 Constant: 0:32 3 (const int) 0:33 textureFetch ( temp 4-component vector of int) 0:33 'g_tTex2dmsi4' ( uniform itexture2DMS) 0:33 c2: direct index for structure ( uniform 2-component vector of int) 0:33 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:33 Constant: 0:33 1 (const uint) 0:33 Constant: 0:33 3 (const int) 0:34 textureFetch ( temp 4-component vector of uint) 0:34 'g_tTex2dmsu4' ( uniform utexture2DMS) 0:34 c2: direct index for structure ( uniform 2-component vector of int) 0:34 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:34 Constant: 0:34 1 (const uint) 0:34 Constant: 0:34 3 (const int) 0:37 textureFetchOffset ( temp 4-component vector of float) 0:37 'g_tTex2dmsf4' ( uniform texture2DMS) 0:37 c2: direct index for structure ( uniform 2-component vector of int) 0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:37 Constant: 0:37 1 (const uint) 0:37 Constant: 0:37 3 (const int) 0:37 o2: direct index for structure ( uniform 2-component vector of int) 0:37 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:37 Constant: 0:37 5 (const uint) 0:38 textureFetchOffset ( temp 4-component vector of int) 0:38 'g_tTex2dmsi4' ( uniform itexture2DMS) 0:38 c2: direct index for structure ( uniform 2-component vector of int) 0:38 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:38 Constant: 0:38 1 (const uint) 0:38 Constant: 0:38 3 (const int) 0:38 o2: direct index for structure ( uniform 2-component vector of int) 0:38 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:38 Constant: 0:38 5 (const uint) 0:39 textureFetchOffset ( temp 4-component vector of uint) 0:39 'g_tTex2dmsu4' ( uniform utexture2DMS) 0:39 c2: direct index for structure ( uniform 2-component vector of int) 0:39 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:39 Constant: 0:39 1 (const uint) 0:39 Constant: 0:39 3 (const int) 0:39 o2: direct index for structure ( uniform 2-component vector of int) 0:39 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:39 Constant: 0:39 5 (const uint) 0:42 textureFetch ( temp 4-component vector of float) 0:42 'g_tTex2dmsf4a' ( uniform texture2DMSArray) 0:42 c3: direct index for structure ( uniform 3-component vector of int) 0:42 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:42 Constant: 0:42 2 (const uint) 0:42 Constant: 0:42 3 (const int) 0:43 textureFetch ( temp 4-component vector of int) 0:43 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) 0:43 c3: direct index for structure ( uniform 3-component vector of int) 0:43 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:43 Constant: 0:43 2 (const uint) 0:43 Constant: 0:43 3 (const int) 0:44 textureFetch ( temp 4-component vector of uint) 0:44 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) 0:44 c3: direct index for structure ( uniform 3-component vector of int) 0:44 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:44 Constant: 0:44 2 (const uint) 0:44 Constant: 0:44 3 (const int) 0:47 textureFetchOffset ( temp 4-component vector of float) 0:47 'g_tTex2dmsf4a' ( uniform texture2DMSArray) 0:47 c3: direct index for structure ( uniform 3-component vector of int) 0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:47 Constant: 0:47 2 (const uint) 0:47 Constant: 0:47 3 (const int) 0:47 o2: direct index for structure ( uniform 2-component vector of int) 0:47 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:47 Constant: 0:47 5 (const uint) 0:48 textureFetchOffset ( temp 4-component vector of int) 0:48 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) 0:48 c3: direct index for structure ( uniform 3-component vector of int) 0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:48 Constant: 0:48 2 (const uint) 0:48 Constant: 0:48 3 (const int) 0:48 o2: direct index for structure ( uniform 2-component vector of int) 0:48 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:48 Constant: 0:48 5 (const uint) 0:49 textureFetchOffset ( temp 4-component vector of uint) 0:49 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) 0:49 c3: direct index for structure ( uniform 3-component vector of int) 0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:49 Constant: 0:49 2 (const uint) 0:49 Constant: 0:49 3 (const int) 0:49 o2: direct index for structure ( uniform 2-component vector of int) 0:49 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:49 Constant: 0:49 5 (const uint) 0:51 move second child to first child ( temp 4-component vector of float) 0:51 Color: direct index for structure ( temp 4-component vector of float) 0:51 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:51 Constant: 0:51 0 (const int) 0:51 Constant: 0:51 1.000000 0:51 1.000000 0:51 1.000000 0:51 1.000000 0:52 move second child to first child ( temp float) 0:52 Depth: direct index for structure ( temp float) 0:52 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:52 Constant: 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 0:54 Branch: Return with expression 0:54 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex2dmsf4' ( uniform texture2DMS) 0:? 'g_tTex2dmsi4' ( uniform itexture2DMS) 0:? 'g_tTex2dmsu4' ( uniform utexture2DMS) 0:? 'g_tTex2dmsf4a' ( uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' ( uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' ( uniform utexture2DMSArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 130 Capability Shader Capability ImageGatherExtended 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 120 124 ExecutionMode 4 OriginUpperLeft ExecutionMode 4 DepthReplacing Source HLSL 500 Name 4 "main" Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" MemberName 8(PS_OUTPUT) 1 "Depth" Name 10 "@main(" Name 14 "g_tTex2dmsf4" Name 20 "$Global" MemberName 20($Global) 0 "c1" MemberName 20($Global) 1 "c2" MemberName 20($Global) 2 "c3" MemberName 20($Global) 3 "c4" MemberName 20($Global) 4 "o1" MemberName 20($Global) 5 "o2" MemberName 20($Global) 6 "o3" MemberName 20($Global) 7 "o4" Name 22 "" Name 31 "g_tTex2dmsi4" Name 39 "g_tTex2dmsu4" Name 66 "g_tTex2dmsf4a" Name 75 "g_tTex2dmsi4a" Name 82 "g_tTex2dmsu4a" Name 106 "psout" Name 117 "flattenTemp" Name 120 "@entryPointOutput.Color" Name 124 "@entryPointOutput.Depth" Name 129 "g_sSamp" Decorate 14(g_tTex2dmsf4) DescriptorSet 0 Decorate 14(g_tTex2dmsf4) 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 0 Decorate 31(g_tTex2dmsi4) DescriptorSet 0 Decorate 31(g_tTex2dmsi4) Binding 0 Decorate 39(g_tTex2dmsu4) DescriptorSet 0 Decorate 39(g_tTex2dmsu4) Binding 0 Decorate 66(g_tTex2dmsf4a) DescriptorSet 0 Decorate 66(g_tTex2dmsf4a) Binding 0 Decorate 75(g_tTex2dmsi4a) DescriptorSet 0 Decorate 75(g_tTex2dmsi4a) Binding 0 Decorate 82(g_tTex2dmsu4a) DescriptorSet 0 Decorate 82(g_tTex2dmsu4a) Binding 0 Decorate 120(@entryPointOutput.Color) Location 0 Decorate 124(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 129(g_sSamp) DescriptorSet 0 Decorate 129(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypeImage 6(float) 2D multi-sampled sampled format:Unknown 13: TypePointer UniformConstant 12 14(g_tTex2dmsf4): 13(ptr) Variable UniformConstant 16: TypeInt 32 1 17: TypeVector 16(int) 2 18: TypeVector 16(int) 3 19: TypeVector 16(int) 4 20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 21: TypePointer Uniform 20($Global) 22: 21(ptr) Variable Uniform 23: 16(int) Constant 1 24: TypePointer Uniform 17(ivec2) 27: 16(int) Constant 3 29: TypeImage 16(int) 2D multi-sampled sampled format:Unknown 30: TypePointer UniformConstant 29 31(g_tTex2dmsi4): 30(ptr) Variable UniformConstant 36: TypeInt 32 0 37: TypeImage 36(int) 2D multi-sampled sampled format:Unknown 38: TypePointer UniformConstant 37 39(g_tTex2dmsu4): 38(ptr) Variable UniformConstant 43: TypeVector 36(int) 4 48: 16(int) Constant 5 64: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown 65: TypePointer UniformConstant 64 66(g_tTex2dmsf4a): 65(ptr) Variable UniformConstant 68: 16(int) Constant 2 69: TypePointer Uniform 18(ivec3) 73: TypeImage 16(int) 2D array multi-sampled sampled format:Unknown 74: TypePointer UniformConstant 73 75(g_tTex2dmsi4a): 74(ptr) Variable UniformConstant 80: TypeImage 36(int) 2D array multi-sampled sampled format:Unknown 81: TypePointer UniformConstant 80 82(g_tTex2dmsu4a): 81(ptr) Variable UniformConstant 105: TypePointer Function 8(PS_OUTPUT) 107: 16(int) Constant 0 108: 6(float) Constant 1065353216 109: 7(fvec4) ConstantComposite 108 108 108 108 110: TypePointer Function 7(fvec4) 112: TypePointer Function 6(float) 119: TypePointer Output 7(fvec4) 120(@entryPointOutput.Color): 119(ptr) Variable Output 123: TypePointer Output 6(float) 124(@entryPointOutput.Depth): 123(ptr) Variable Output 127: TypeSampler 128: TypePointer UniformConstant 127 129(g_sSamp): 128(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 117(flattenTemp): 105(ptr) Variable Function 118:8(PS_OUTPUT) FunctionCall 10(@main() Store 117(flattenTemp) 118 121: 110(ptr) AccessChain 117(flattenTemp) 107 122: 7(fvec4) Load 121 Store 120(@entryPointOutput.Color) 122 125: 112(ptr) AccessChain 117(flattenTemp) 23 126: 6(float) Load 125 Store 124(@entryPointOutput.Depth) 126 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 106(psout): 105(ptr) Variable Function 15: 12 Load 14(g_tTex2dmsf4) 25: 24(ptr) AccessChain 22 23 26: 17(ivec2) Load 25 28: 7(fvec4) ImageFetch 15 26 Sample 27 32: 29 Load 31(g_tTex2dmsi4) 33: 24(ptr) AccessChain 22 23 34: 17(ivec2) Load 33 35: 19(ivec4) ImageFetch 32 34 Sample 27 40: 37 Load 39(g_tTex2dmsu4) 41: 24(ptr) AccessChain 22 23 42: 17(ivec2) Load 41 44: 43(ivec4) ImageFetch 40 42 Sample 27 45: 12 Load 14(g_tTex2dmsf4) 46: 24(ptr) AccessChain 22 23 47: 17(ivec2) Load 46 49: 24(ptr) AccessChain 22 48 50: 17(ivec2) Load 49 51: 7(fvec4) ImageFetch 45 47 Offset Sample 50 27 52: 29 Load 31(g_tTex2dmsi4) 53: 24(ptr) AccessChain 22 23 54: 17(ivec2) Load 53 55: 24(ptr) AccessChain 22 48 56: 17(ivec2) Load 55 57: 19(ivec4) ImageFetch 52 54 Offset Sample 56 27 58: 37 Load 39(g_tTex2dmsu4) 59: 24(ptr) AccessChain 22 23 60: 17(ivec2) Load 59 61: 24(ptr) AccessChain 22 48 62: 17(ivec2) Load 61 63: 43(ivec4) ImageFetch 58 60 Offset Sample 62 27 67: 64 Load 66(g_tTex2dmsf4a) 70: 69(ptr) AccessChain 22 68 71: 18(ivec3) Load 70 72: 7(fvec4) ImageFetch 67 71 Sample 27 76: 73 Load 75(g_tTex2dmsi4a) 77: 69(ptr) AccessChain 22 68 78: 18(ivec3) Load 77 79: 19(ivec4) ImageFetch 76 78 Sample 27 83: 80 Load 82(g_tTex2dmsu4a) 84: 69(ptr) AccessChain 22 68 85: 18(ivec3) Load 84 86: 43(ivec4) ImageFetch 83 85 Sample 27 87: 64 Load 66(g_tTex2dmsf4a) 88: 69(ptr) AccessChain 22 68 89: 18(ivec3) Load 88 90: 24(ptr) AccessChain 22 48 91: 17(ivec2) Load 90 92: 7(fvec4) ImageFetch 87 89 Offset Sample 91 27 93: 73 Load 75(g_tTex2dmsi4a) 94: 69(ptr) AccessChain 22 68 95: 18(ivec3) Load 94 96: 24(ptr) AccessChain 22 48 97: 17(ivec2) Load 96 98: 19(ivec4) ImageFetch 93 95 Offset Sample 97 27 99: 80 Load 82(g_tTex2dmsu4a) 100: 69(ptr) AccessChain 22 68 101: 18(ivec3) Load 100 102: 24(ptr) AccessChain 22 48 103: 17(ivec2) Load 102 104: 43(ivec4) ImageFetch 99 101 Offset Sample 103 27 111: 110(ptr) AccessChain 106(psout) 107 Store 111 109 113: 112(ptr) AccessChain 106(psout) 23 Store 113 108 114:8(PS_OUTPUT) Load 106(psout) ReturnValue 114 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.load.array.dx10.frag.out000066400000000000000000001165061360464450000241450ustar00rootroot00000000000000hlsl.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): 80008 // 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 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 0 Decorate 36(g_tTex1di4a) DescriptorSet 0 Decorate 36(g_tTex1di4a) Binding 0 Decorate 46(g_tTex1du4a) DescriptorSet 0 Decorate 46(g_tTex1du4a) Binding 0 Decorate 57(g_tTex2df4a) DescriptorSet 0 Decorate 57(g_tTex2df4a) Binding 0 Decorate 70(g_tTex2di4a) DescriptorSet 0 Decorate 70(g_tTex2di4a) Binding 0 Decorate 80(g_tTex2du4a) DescriptorSet 0 Decorate 80(g_tTex2du4a) Binding 0 Decorate 104(@entryPointOutput.Color) Location 0 Decorate 108(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 113(g_sSamp) DescriptorSet 0 Decorate 113(g_sSamp) Binding 0 Decorate 116(g_tTex1df4) DescriptorSet 0 Decorate 116(g_tTex1df4) Binding 0 Decorate 119(g_tTex1di4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.load.basic.dx10.frag.out000066400000000000000000001372141360464450000241070ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 35(g_tTex1di4) DescriptorSet 0 Decorate 35(g_tTex1di4) Binding 0 Decorate 44(g_tTex1du4) DescriptorSet 0 Decorate 44(g_tTex1du4) Binding 0 Decorate 54(g_tTex2df4) DescriptorSet 0 Decorate 54(g_tTex2df4) Binding 0 Decorate 67(g_tTex2di4) DescriptorSet 0 Decorate 67(g_tTex2di4) Binding 0 Decorate 77(g_tTex2du4) DescriptorSet 0 Decorate 77(g_tTex2du4) Binding 0 Decorate 87(g_tTex3df4) DescriptorSet 0 Decorate 87(g_tTex3df4) Binding 0 Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 100(g_tTex3di4) Binding 0 Decorate 110(g_tTex3du4) DescriptorSet 0 Decorate 110(g_tTex3du4) Binding 0 Decorate 133(@entryPointOutput.Color) Location 0 Decorate 137(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 142(g_sSamp) DescriptorSet 0 Decorate 142(g_sSamp) Binding 0 Decorate 145(g_tTexcdf4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.load.basic.dx10.vert.out000066400000000000000000001304041360464450000241420ustar00rootroot00000000000000hlsl.load.basic.dx10.vert Shader version: 500 0:? Sequence 0:47 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch ( temp 4-component vector of float) 0:51 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:51 vector swizzle ( temp int) 0:51 c2: direct index for structure ( uniform 2-component vector of int) 0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:51 Constant: 0:51 1 (const uint) 0:51 Sequence 0:51 Constant: 0:51 0 (const int) 0:51 direct index ( temp int) 0:51 c2: direct index for structure ( uniform 2-component vector of int) 0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:51 Constant: 0:51 1 (const uint) 0:51 Constant: 0:51 1 (const int) 0:52 textureFetch ( temp 4-component vector of int) 0:52 'g_tTex1di4' ( uniform itexture1D) 0:52 vector swizzle ( temp int) 0:52 c2: direct index for structure ( uniform 2-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index ( temp int) 0:52 c2: direct index for structure ( uniform 2-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) 0:53 textureFetch ( temp 4-component vector of uint) 0:53 'g_tTex1du4' ( uniform utexture1D) 0:53 vector swizzle ( temp int) 0:53 c2: direct index for structure ( uniform 2-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index ( temp int) 0:53 c2: direct index for structure ( uniform 2-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) 0:56 textureFetch ( temp 4-component vector of float) 0:56 'g_tTex2df4' ( uniform texture2D) 0:56 vector swizzle ( temp 2-component vector of int) 0:56 c3: direct index for structure ( uniform 3-component vector of int) 0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:56 Constant: 0:56 2 (const uint) 0:56 Sequence 0:56 Constant: 0:56 0 (const int) 0:56 Constant: 0:56 1 (const int) 0:56 direct index ( temp int) 0:56 c3: direct index for structure ( uniform 3-component vector of int) 0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:56 Constant: 0:56 2 (const uint) 0:56 Constant: 0:56 2 (const int) 0:57 textureFetch ( temp 4-component vector of int) 0:57 'g_tTex2di4' ( uniform itexture2D) 0:57 vector swizzle ( temp 2-component vector of int) 0:57 c3: direct index for structure ( uniform 3-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index ( temp int) 0:57 c3: direct index for structure ( uniform 3-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) 0:58 textureFetch ( temp 4-component vector of uint) 0:58 'g_tTex2du4' ( uniform utexture2D) 0:58 vector swizzle ( temp 2-component vector of int) 0:58 c3: direct index for structure ( uniform 3-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index ( temp int) 0:58 c3: direct index for structure ( uniform 3-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) 0:61 textureFetch ( temp 4-component vector of float) 0:61 'g_tTex3df4' ( uniform texture3D) 0:61 vector swizzle ( temp 3-component vector of int) 0:61 c4: direct index for structure ( uniform 4-component vector of int) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:61 Constant: 0:61 3 (const uint) 0:61 Sequence 0:61 Constant: 0:61 0 (const int) 0:61 Constant: 0:61 1 (const int) 0:61 Constant: 0:61 2 (const int) 0:61 direct index ( temp int) 0:61 c4: direct index for structure ( uniform 4-component vector of int) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:61 Constant: 0:61 3 (const uint) 0:61 Constant: 0:61 3 (const int) 0:62 textureFetch ( temp 4-component vector of int) 0:62 'g_tTex3di4' ( uniform itexture3D) 0:62 vector swizzle ( temp 3-component vector of int) 0:62 c4: direct index for structure ( uniform 4-component vector of int) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:62 Constant: 0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) 0:62 Constant: 0:62 1 (const int) 0:62 Constant: 0:62 2 (const int) 0:62 direct index ( temp int) 0:62 c4: direct index for structure ( uniform 4-component vector of int) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:62 Constant: 0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) 0:63 textureFetch ( temp 4-component vector of uint) 0:63 'g_tTex3du4' ( uniform utexture3D) 0:63 vector swizzle ( temp 3-component vector of int) 0:63 c4: direct index for structure ( uniform 4-component vector of int) 0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:63 Constant: 0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 2 (const int) 0:63 direct index ( temp int) 0:63 c4: direct index for structure ( uniform 4-component vector of int) 0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:63 Constant: 0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:67 move second child to first child ( temp 4-component vector of float) 0:67 Pos: direct index for structure ( temp 4-component vector of float) 0:67 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:67 Constant: 0:67 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:69 Branch: Return with expression 0:69 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:47 Function Definition: main( ( temp void) 0:47 Function Parameters: 0:? Sequence 0:47 Sequence 0:47 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) 0:47 Pos: direct index for structure ( temp 4-component vector of float) 0:47 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:47 Constant: 0:47 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) Linked vertex stage: Shader version: 500 0:? Sequence 0:47 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence 0:51 textureFetch ( temp 4-component vector of float) 0:51 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:51 vector swizzle ( temp int) 0:51 c2: direct index for structure ( uniform 2-component vector of int) 0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:51 Constant: 0:51 1 (const uint) 0:51 Sequence 0:51 Constant: 0:51 0 (const int) 0:51 direct index ( temp int) 0:51 c2: direct index for structure ( uniform 2-component vector of int) 0:51 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:51 Constant: 0:51 1 (const uint) 0:51 Constant: 0:51 1 (const int) 0:52 textureFetch ( temp 4-component vector of int) 0:52 'g_tTex1di4' ( uniform itexture1D) 0:52 vector swizzle ( temp int) 0:52 c2: direct index for structure ( uniform 2-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index ( temp int) 0:52 c2: direct index for structure ( uniform 2-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) 0:53 textureFetch ( temp 4-component vector of uint) 0:53 'g_tTex1du4' ( uniform utexture1D) 0:53 vector swizzle ( temp int) 0:53 c2: direct index for structure ( uniform 2-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index ( temp int) 0:53 c2: direct index for structure ( uniform 2-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) 0:56 textureFetch ( temp 4-component vector of float) 0:56 'g_tTex2df4' ( uniform texture2D) 0:56 vector swizzle ( temp 2-component vector of int) 0:56 c3: direct index for structure ( uniform 3-component vector of int) 0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:56 Constant: 0:56 2 (const uint) 0:56 Sequence 0:56 Constant: 0:56 0 (const int) 0:56 Constant: 0:56 1 (const int) 0:56 direct index ( temp int) 0:56 c3: direct index for structure ( uniform 3-component vector of int) 0:56 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:56 Constant: 0:56 2 (const uint) 0:56 Constant: 0:56 2 (const int) 0:57 textureFetch ( temp 4-component vector of int) 0:57 'g_tTex2di4' ( uniform itexture2D) 0:57 vector swizzle ( temp 2-component vector of int) 0:57 c3: direct index for structure ( uniform 3-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index ( temp int) 0:57 c3: direct index for structure ( uniform 3-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) 0:58 textureFetch ( temp 4-component vector of uint) 0:58 'g_tTex2du4' ( uniform utexture2D) 0:58 vector swizzle ( temp 2-component vector of int) 0:58 c3: direct index for structure ( uniform 3-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index ( temp int) 0:58 c3: direct index for structure ( uniform 3-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) 0:61 textureFetch ( temp 4-component vector of float) 0:61 'g_tTex3df4' ( uniform texture3D) 0:61 vector swizzle ( temp 3-component vector of int) 0:61 c4: direct index for structure ( uniform 4-component vector of int) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:61 Constant: 0:61 3 (const uint) 0:61 Sequence 0:61 Constant: 0:61 0 (const int) 0:61 Constant: 0:61 1 (const int) 0:61 Constant: 0:61 2 (const int) 0:61 direct index ( temp int) 0:61 c4: direct index for structure ( uniform 4-component vector of int) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:61 Constant: 0:61 3 (const uint) 0:61 Constant: 0:61 3 (const int) 0:62 textureFetch ( temp 4-component vector of int) 0:62 'g_tTex3di4' ( uniform itexture3D) 0:62 vector swizzle ( temp 3-component vector of int) 0:62 c4: direct index for structure ( uniform 4-component vector of int) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:62 Constant: 0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) 0:62 Constant: 0:62 1 (const int) 0:62 Constant: 0:62 2 (const int) 0:62 direct index ( temp int) 0:62 c4: direct index for structure ( uniform 4-component vector of int) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:62 Constant: 0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) 0:63 textureFetch ( temp 4-component vector of uint) 0:63 'g_tTex3du4' ( uniform utexture3D) 0:63 vector swizzle ( temp 3-component vector of int) 0:63 c4: direct index for structure ( uniform 4-component vector of int) 0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:63 Constant: 0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 2 (const int) 0:63 direct index ( temp int) 0:63 c4: direct index for structure ( uniform 4-component vector of int) 0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:63 Constant: 0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:67 move second child to first child ( temp 4-component vector of float) 0:67 Pos: direct index for structure ( temp 4-component vector of float) 0:67 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:67 Constant: 0:67 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:69 Branch: Return with expression 0:69 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:47 Function Definition: main( ( temp void) 0:47 Function Parameters: 0:? Sequence 0:47 Sequence 0:47 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) 0:47 Pos: direct index for structure ( temp 4-component vector of float) 0:47 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:47 Constant: 0:47 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 35(g_tTex1di4) DescriptorSet 0 Decorate 35(g_tTex1di4) Binding 0 Decorate 44(g_tTex1du4) DescriptorSet 0 Decorate 44(g_tTex1du4) Binding 0 Decorate 54(g_tTex2df4) DescriptorSet 0 Decorate 54(g_tTex2df4) Binding 0 Decorate 67(g_tTex2di4) DescriptorSet 0 Decorate 67(g_tTex2di4) Binding 0 Decorate 77(g_tTex2du4) DescriptorSet 0 Decorate 77(g_tTex2du4) Binding 0 Decorate 87(g_tTex3df4) DescriptorSet 0 Decorate 87(g_tTex3df4) Binding 0 Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 100(g_tTex3di4) Binding 0 Decorate 110(g_tTex3du4) DescriptorSet 0 Decorate 110(g_tTex3du4) Binding 0 Decorate 129(@entryPointOutput.Pos) BuiltIn Position Decorate 134(g_sSamp) DescriptorSet 0 Decorate 134(g_sSamp) Binding 0 Decorate 137(g_tTexcdf4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.load.buffer.dx10.frag.out000066400000000000000000000436261360464450000243020ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 MemberDecorate 22($Global) 0 Offset 0 MemberDecorate 22($Global) 1 Offset 8 MemberDecorate 22($Global) 2 Offset 16 MemberDecorate 22($Global) 3 Offset 32 MemberDecorate 22($Global) 4 Offset 48 MemberDecorate 22($Global) 5 Offset 56 MemberDecorate 22($Global) 6 Offset 64 MemberDecorate 22($Global) 7 Offset 80 Decorate 22($Global) Block Decorate 24 DescriptorSet 0 Decorate 24 Binding 0 Decorate 34(g_tTexbi4) DescriptorSet 0 Decorate 34(g_tTexbi4) Binding 0 Decorate 45(g_tTexbu4) DescriptorSet 0 Decorate 45(g_tTexbu4) Binding 0 Decorate 64(@entryPointOutput.Color) Location 0 Decorate 68(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 71(g_tTexbf4_test) DescriptorSet 0 Decorate 71(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) Buffer sampled format:Rgba32f 15: TypePointer UniformConstant 14 16(g_tTexbf4): 15(ptr) Variable UniformConstant 18: TypeInt 32 1 19: TypeVector 18(int) 2 20: TypeVector 18(int) 3 21: TypeVector 18(int) 4 22($Global): TypeStruct 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 23: TypePointer Uniform 22($Global) 24: 23(ptr) Variable Uniform 25: 18(int) Constant 0 26: TypePointer Uniform 18(int) 30: TypePointer Function 21(ivec4) 32: TypeImage 18(int) Buffer sampled format:Rgba32i 33: TypePointer UniformConstant 32 34(g_tTexbi4): 33(ptr) Variable UniformConstant 39: TypeInt 32 0 40: TypeVector 39(int) 4 41: TypePointer Function 40(ivec4) 43: TypeImage 39(int) Buffer sampled format:Rgba32ui 44: TypePointer UniformConstant 43 45(g_tTexbu4): 44(ptr) Variable UniformConstant 50: TypePointer Function 8(PS_OUTPUT) 52: 6(float) Constant 1065353216 53: 7(fvec4) ConstantComposite 52 52 52 52 55: 18(int) Constant 1 56: TypePointer Function 6(float) 63: TypePointer Output 7(fvec4) 64(@entryPointOutput.Color): 63(ptr) Variable Output 67: TypePointer Output 6(float) 68(@entryPointOutput.Depth): 67(ptr) Variable Output 71(g_tTexbf4_test): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 61(flattenTemp): 50(ptr) Variable Function 62:8(PS_OUTPUT) FunctionCall 10(@main() Store 61(flattenTemp) 62 65: 12(ptr) AccessChain 61(flattenTemp) 25 66: 7(fvec4) Load 65 Store 64(@entryPointOutput.Color) 66 69: 56(ptr) AccessChain 61(flattenTemp) 55 70: 6(float) Load 69 Store 68(@entryPointOutput.Depth) 70 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function 31(r01): 30(ptr) Variable Function 42(r02): 41(ptr) Variable Function 51(psout): 50(ptr) Variable Function 17: 14 Load 16(g_tTexbf4) 27: 26(ptr) AccessChain 24 25 28: 18(int) Load 27 29: 7(fvec4) ImageFetch 17 28 Store 13(r00) 29 35: 32 Load 34(g_tTexbi4) 36: 26(ptr) AccessChain 24 25 37: 18(int) Load 36 38: 21(ivec4) ImageFetch 35 37 Store 31(r01) 38 46: 43 Load 45(g_tTexbu4) 47: 26(ptr) AccessChain 24 25 48: 18(int) Load 47 49: 40(ivec4) ImageFetch 46 48 Store 42(r02) 49 54: 12(ptr) AccessChain 51(psout) 25 Store 54 53 57: 56(ptr) AccessChain 51(psout) 55 Store 57 52 58:8(PS_OUTPUT) Load 51(psout) ReturnValue 58 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out000066400000000000000000000440751360464450000254050ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 MemberDecorate 22($Global) 0 Offset 0 MemberDecorate 22($Global) 1 Offset 8 MemberDecorate 22($Global) 2 Offset 16 MemberDecorate 22($Global) 3 Offset 32 MemberDecorate 22($Global) 4 Offset 48 MemberDecorate 22($Global) 5 Offset 56 MemberDecorate 22($Global) 6 Offset 64 MemberDecorate 22($Global) 7 Offset 80 Decorate 22($Global) Block Decorate 24 DescriptorSet 0 Decorate 24 Binding 0 Decorate 35(g_tTexbis) DescriptorSet 0 Decorate 35(g_tTexbis) Binding 0 Decorate 46(g_tTexbus) DescriptorSet 0 Decorate 46(g_tTexbus) Binding 0 Decorate 67(@entryPointOutput.Color) Location 0 Decorate 71(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 74(g_tTexbfs_test) DescriptorSet 0 Decorate 74(g_tTexbfs_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 6(float) 14: TypeImage 6(float) Buffer sampled format:R32f 15: TypePointer UniformConstant 14 16(g_tTexbfs): 15(ptr) Variable UniformConstant 18: TypeInt 32 1 19: TypeVector 18(int) 2 20: TypeVector 18(int) 3 21: TypeVector 18(int) 4 22($Global): TypeStruct 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 23: TypePointer Uniform 22($Global) 24: 23(ptr) Variable Uniform 25: 18(int) Constant 0 26: TypePointer Uniform 18(int) 31: TypePointer Function 18(int) 33: TypeImage 18(int) Buffer sampled format:R32i 34: TypePointer UniformConstant 33 35(g_tTexbis): 34(ptr) Variable UniformConstant 41: TypeInt 32 0 42: TypePointer Function 41(int) 44: TypeImage 41(int) Buffer sampled format:R32ui 45: TypePointer UniformConstant 44 46(g_tTexbus): 45(ptr) Variable UniformConstant 50: TypeVector 41(int) 4 53: TypePointer Function 8(PS_OUTPUT) 55: 6(float) Constant 1065353216 56: 7(fvec4) ConstantComposite 55 55 55 55 57: TypePointer Function 7(fvec4) 59: 18(int) Constant 1 66: TypePointer Output 7(fvec4) 67(@entryPointOutput.Color): 66(ptr) Variable Output 70: TypePointer Output 6(float) 71(@entryPointOutput.Depth): 70(ptr) Variable Output 74(g_tTexbfs_test): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 64(flattenTemp): 53(ptr) Variable Function 65:8(PS_OUTPUT) FunctionCall 10(@main() Store 64(flattenTemp) 65 68: 57(ptr) AccessChain 64(flattenTemp) 25 69: 7(fvec4) Load 68 Store 67(@entryPointOutput.Color) 69 72: 12(ptr) AccessChain 64(flattenTemp) 59 73: 6(float) Load 72 Store 71(@entryPointOutput.Depth) 73 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function 32(r01): 31(ptr) Variable Function 43(r02): 42(ptr) Variable Function 54(psout): 53(ptr) Variable Function 17: 14 Load 16(g_tTexbfs) 27: 26(ptr) AccessChain 24 25 28: 18(int) Load 27 29: 7(fvec4) ImageFetch 17 28 30: 6(float) CompositeExtract 29 0 Store 13(r00) 30 36: 33 Load 35(g_tTexbis) 37: 26(ptr) AccessChain 24 25 38: 18(int) Load 37 39: 21(ivec4) ImageFetch 36 38 40: 18(int) CompositeExtract 39 0 Store 32(r01) 40 47: 44 Load 46(g_tTexbus) 48: 26(ptr) AccessChain 24 25 49: 18(int) Load 48 51: 50(ivec4) ImageFetch 47 49 52: 41(int) CompositeExtract 51 0 Store 43(r02) 52 58: 57(ptr) AccessChain 54(psout) 25 Store 58 56 60: 12(ptr) AccessChain 54(psout) 59 Store 60 55 61:8(PS_OUTPUT) Load 54(psout) ReturnValue 61 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.load.offset.dx10.frag.out000066400000000000000000001617201360464450000243130ustar00rootroot00000000000000hlsl.load.offset.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset ( temp 4-component vector of float) 0:52 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:52 vector swizzle ( temp int) 0:52 c2: direct index for structure ( uniform 2-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index ( temp int) 0:52 c2: direct index for structure ( uniform 2-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) 0:52 o1: direct index for structure ( uniform int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 4 (const uint) 0:53 textureFetchOffset ( temp 4-component vector of int) 0:53 'g_tTex1di4' ( uniform itexture1D) 0:53 vector swizzle ( temp int) 0:53 c2: direct index for structure ( uniform 2-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index ( temp int) 0:53 c2: direct index for structure ( uniform 2-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) 0:53 o1: direct index for structure ( uniform int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 4 (const uint) 0:54 textureFetchOffset ( temp 4-component vector of uint) 0:54 'g_tTex1du4' ( uniform utexture1D) 0:54 vector swizzle ( temp int) 0:54 c2: direct index for structure ( uniform 2-component vector of int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 1 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 direct index ( temp int) 0:54 c2: direct index for structure ( uniform 2-component vector of int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) 0:54 o1: direct index for structure ( uniform int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 4 (const uint) 0:57 textureFetchOffset ( temp 4-component vector of float) 0:57 'g_tTex2df4' ( uniform texture2D) 0:57 vector swizzle ( temp 2-component vector of int) 0:57 c3: direct index for structure ( uniform 3-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index ( temp int) 0:57 c3: direct index for structure ( uniform 3-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) 0:57 o2: direct index for structure ( uniform 2-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 5 (const uint) 0:58 textureFetchOffset ( temp 4-component vector of int) 0:58 'g_tTex2di4' ( uniform itexture2D) 0:58 vector swizzle ( temp 2-component vector of int) 0:58 c3: direct index for structure ( uniform 3-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index ( temp int) 0:58 c3: direct index for structure ( uniform 3-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) 0:58 o2: direct index for structure ( uniform 2-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 5 (const uint) 0:59 textureFetchOffset ( temp 4-component vector of uint) 0:59 'g_tTex2du4' ( uniform utexture2D) 0:59 vector swizzle ( temp 2-component vector of int) 0:59 c3: direct index for structure ( uniform 3-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 2 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 direct index ( temp int) 0:59 c3: direct index for structure ( uniform 3-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) 0:59 o2: direct index for structure ( uniform 2-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 5 (const uint) 0:62 textureFetchOffset ( temp 4-component vector of float) 0:62 'g_tTex3df4' ( uniform texture3D) 0:62 vector swizzle ( temp 3-component vector of int) 0:62 c4: direct index for structure ( uniform 4-component vector of int) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:62 Constant: 0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) 0:62 Constant: 0:62 1 (const int) 0:62 Constant: 0:62 2 (const int) 0:62 direct index ( temp int) 0:62 c4: direct index for structure ( uniform 4-component vector of int) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:62 Constant: 0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) 0:62 o3: direct index for structure ( uniform 3-component vector of int) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:62 Constant: 0:62 6 (const uint) 0:63 textureFetchOffset ( temp 4-component vector of int) 0:63 'g_tTex3di4' ( uniform itexture3D) 0:63 vector swizzle ( temp 3-component vector of int) 0:63 c4: direct index for structure ( uniform 4-component vector of int) 0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:63 Constant: 0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 2 (const int) 0:63 direct index ( temp int) 0:63 c4: direct index for structure ( uniform 4-component vector of int) 0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:63 Constant: 0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:63 o3: direct index for structure ( uniform 3-component vector of int) 0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:63 Constant: 0:63 6 (const uint) 0:64 textureFetchOffset ( temp 4-component vector of uint) 0:64 'g_tTex3du4' ( uniform utexture3D) 0:64 vector swizzle ( temp 3-component vector of int) 0:64 c4: direct index for structure ( uniform 4-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:64 Constant: 0:64 3 (const uint) 0:64 Sequence 0:64 Constant: 0:64 0 (const int) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 2 (const int) 0:64 direct index ( temp int) 0:64 c4: direct index for structure ( uniform 4-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:64 Constant: 0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) 0:64 o3: direct index for structure ( uniform 3-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:64 Constant: 0:64 6 (const uint) 0:72 move second child to first child ( temp 4-component vector of float) 0:72 Color: direct index for structure ( temp 4-component vector of float) 0:72 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: 0:72 1.000000 0:72 1.000000 0:72 1.000000 0:72 1.000000 0:73 move second child to first child ( temp float) 0:73 Depth: direct index for structure ( temp float) 0:73 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 0:75 Branch: Return with expression 0:75 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Definition: main( ( temp void) 0:48 Function Parameters: 0:? Sequence 0:48 Sequence 0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:48 Color: direct index for structure ( temp 4-component vector of float) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:48 Depth: direct index for structure ( temp float) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset ( temp 4-component vector of float) 0:52 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:52 vector swizzle ( temp int) 0:52 c2: direct index for structure ( uniform 2-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index ( temp int) 0:52 c2: direct index for structure ( uniform 2-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) 0:52 o1: direct index for structure ( uniform int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 4 (const uint) 0:53 textureFetchOffset ( temp 4-component vector of int) 0:53 'g_tTex1di4' ( uniform itexture1D) 0:53 vector swizzle ( temp int) 0:53 c2: direct index for structure ( uniform 2-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index ( temp int) 0:53 c2: direct index for structure ( uniform 2-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) 0:53 o1: direct index for structure ( uniform int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 4 (const uint) 0:54 textureFetchOffset ( temp 4-component vector of uint) 0:54 'g_tTex1du4' ( uniform utexture1D) 0:54 vector swizzle ( temp int) 0:54 c2: direct index for structure ( uniform 2-component vector of int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 1 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 direct index ( temp int) 0:54 c2: direct index for structure ( uniform 2-component vector of int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) 0:54 o1: direct index for structure ( uniform int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 4 (const uint) 0:57 textureFetchOffset ( temp 4-component vector of float) 0:57 'g_tTex2df4' ( uniform texture2D) 0:57 vector swizzle ( temp 2-component vector of int) 0:57 c3: direct index for structure ( uniform 3-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index ( temp int) 0:57 c3: direct index for structure ( uniform 3-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) 0:57 o2: direct index for structure ( uniform 2-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 5 (const uint) 0:58 textureFetchOffset ( temp 4-component vector of int) 0:58 'g_tTex2di4' ( uniform itexture2D) 0:58 vector swizzle ( temp 2-component vector of int) 0:58 c3: direct index for structure ( uniform 3-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index ( temp int) 0:58 c3: direct index for structure ( uniform 3-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) 0:58 o2: direct index for structure ( uniform 2-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 5 (const uint) 0:59 textureFetchOffset ( temp 4-component vector of uint) 0:59 'g_tTex2du4' ( uniform utexture2D) 0:59 vector swizzle ( temp 2-component vector of int) 0:59 c3: direct index for structure ( uniform 3-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 2 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 direct index ( temp int) 0:59 c3: direct index for structure ( uniform 3-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) 0:59 o2: direct index for structure ( uniform 2-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 5 (const uint) 0:62 textureFetchOffset ( temp 4-component vector of float) 0:62 'g_tTex3df4' ( uniform texture3D) 0:62 vector swizzle ( temp 3-component vector of int) 0:62 c4: direct index for structure ( uniform 4-component vector of int) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:62 Constant: 0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) 0:62 Constant: 0:62 1 (const int) 0:62 Constant: 0:62 2 (const int) 0:62 direct index ( temp int) 0:62 c4: direct index for structure ( uniform 4-component vector of int) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:62 Constant: 0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) 0:62 o3: direct index for structure ( uniform 3-component vector of int) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:62 Constant: 0:62 6 (const uint) 0:63 textureFetchOffset ( temp 4-component vector of int) 0:63 'g_tTex3di4' ( uniform itexture3D) 0:63 vector swizzle ( temp 3-component vector of int) 0:63 c4: direct index for structure ( uniform 4-component vector of int) 0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:63 Constant: 0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 2 (const int) 0:63 direct index ( temp int) 0:63 c4: direct index for structure ( uniform 4-component vector of int) 0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:63 Constant: 0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:63 o3: direct index for structure ( uniform 3-component vector of int) 0:63 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:63 Constant: 0:63 6 (const uint) 0:64 textureFetchOffset ( temp 4-component vector of uint) 0:64 'g_tTex3du4' ( uniform utexture3D) 0:64 vector swizzle ( temp 3-component vector of int) 0:64 c4: direct index for structure ( uniform 4-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:64 Constant: 0:64 3 (const uint) 0:64 Sequence 0:64 Constant: 0:64 0 (const int) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 2 (const int) 0:64 direct index ( temp int) 0:64 c4: direct index for structure ( uniform 4-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:64 Constant: 0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) 0:64 o3: direct index for structure ( uniform 3-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:64 Constant: 0:64 6 (const uint) 0:72 move second child to first child ( temp 4-component vector of float) 0:72 Color: direct index for structure ( temp 4-component vector of float) 0:72 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:72 Constant: 0:72 0 (const int) 0:72 Constant: 0:72 1.000000 0:72 1.000000 0:72 1.000000 0:72 1.000000 0:73 move second child to first child ( temp float) 0:73 Depth: direct index for structure ( temp float) 0:73 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:73 Constant: 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 0:75 Branch: Return with expression 0:75 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Definition: main( ( temp void) 0:48 Function Parameters: 0:? Sequence 0:48 Sequence 0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:48 Color: direct index for structure ( temp 4-component vector of float) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:48 Depth: direct index for structure ( temp float) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 201 Capability Shader Capability ImageGatherExtended Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 155 159 ExecutionMode 4 OriginUpperLeft ExecutionMode 4 DepthReplacing Source HLSL 500 Name 4 "main" Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" MemberName 8(PS_OUTPUT) 1 "Depth" Name 10 "@main(" Name 14 "g_tTex1df4" Name 20 "$Global" MemberName 20($Global) 0 "c1" MemberName 20($Global) 1 "c2" MemberName 20($Global) 2 "c3" MemberName 20($Global) 3 "c4" MemberName 20($Global) 4 "o1" MemberName 20($Global) 5 "o2" MemberName 20($Global) 6 "o3" MemberName 20($Global) 7 "o4" Name 22 "" Name 38 "g_tTex1di4" Name 49 "g_tTex1du4" Name 61 "g_tTex2df4" Name 78 "g_tTex2di4" Name 90 "g_tTex2du4" Name 102 "g_tTex3df4" Name 118 "g_tTex3di4" Name 130 "g_tTex3du4" Name 141 "psout" Name 152 "flattenTemp" Name 155 "@entryPointOutput.Color" Name 159 "@entryPointOutput.Depth" Name 164 "g_sSamp" Name 167 "g_tTexcdf4" Name 170 "g_tTexcdi4" Name 173 "g_tTexcdu4" Name 176 "g_tTex1df4a" Name 179 "g_tTex1di4a" Name 182 "g_tTex1du4a" Name 185 "g_tTex2df4a" Name 188 "g_tTex2di4a" Name 191 "g_tTex2du4a" Name 194 "g_tTexcdf4a" Name 197 "g_tTexcdi4a" Name 200 "g_tTexcdu4a" Decorate 14(g_tTex1df4) DescriptorSet 0 Decorate 14(g_tTex1df4) Binding 0 MemberDecorate 20($Global) 0 Offset 0 MemberDecorate 20($Global) 1 Offset 8 MemberDecorate 20($Global) 2 Offset 16 MemberDecorate 20($Global) 3 Offset 32 MemberDecorate 20($Global) 4 Offset 48 MemberDecorate 20($Global) 5 Offset 56 MemberDecorate 20($Global) 6 Offset 64 MemberDecorate 20($Global) 7 Offset 80 Decorate 20($Global) Block Decorate 22 DescriptorSet 0 Decorate 22 Binding 0 Decorate 38(g_tTex1di4) DescriptorSet 0 Decorate 38(g_tTex1di4) Binding 0 Decorate 49(g_tTex1du4) DescriptorSet 0 Decorate 49(g_tTex1du4) Binding 0 Decorate 61(g_tTex2df4) DescriptorSet 0 Decorate 61(g_tTex2df4) Binding 0 Decorate 78(g_tTex2di4) DescriptorSet 0 Decorate 78(g_tTex2di4) Binding 0 Decorate 90(g_tTex2du4) DescriptorSet 0 Decorate 90(g_tTex2du4) Binding 0 Decorate 102(g_tTex3df4) DescriptorSet 0 Decorate 102(g_tTex3df4) Binding 0 Decorate 118(g_tTex3di4) DescriptorSet 0 Decorate 118(g_tTex3di4) Binding 0 Decorate 130(g_tTex3du4) DescriptorSet 0 Decorate 130(g_tTex3du4) Binding 0 Decorate 155(@entryPointOutput.Color) Location 0 Decorate 159(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 164(g_sSamp) DescriptorSet 0 Decorate 164(g_sSamp) Binding 0 Decorate 167(g_tTexcdf4) DescriptorSet 0 Decorate 167(g_tTexcdf4) Binding 0 Decorate 170(g_tTexcdi4) DescriptorSet 0 Decorate 170(g_tTexcdi4) Binding 0 Decorate 173(g_tTexcdu4) DescriptorSet 0 Decorate 173(g_tTexcdu4) Binding 0 Decorate 176(g_tTex1df4a) DescriptorSet 0 Decorate 176(g_tTex1df4a) Binding 0 Decorate 179(g_tTex1di4a) DescriptorSet 0 Decorate 179(g_tTex1di4a) Binding 0 Decorate 182(g_tTex1du4a) DescriptorSet 0 Decorate 182(g_tTex1du4a) Binding 0 Decorate 185(g_tTex2df4a) DescriptorSet 0 Decorate 185(g_tTex2df4a) Binding 0 Decorate 188(g_tTex2di4a) DescriptorSet 0 Decorate 188(g_tTex2di4a) Binding 0 Decorate 191(g_tTex2du4a) DescriptorSet 0 Decorate 191(g_tTex2du4a) Binding 0 Decorate 194(g_tTexcdf4a) DescriptorSet 0 Decorate 194(g_tTexcdf4a) Binding 0 Decorate 197(g_tTexcdi4a) DescriptorSet 0 Decorate 197(g_tTexcdi4a) Binding 0 Decorate 200(g_tTexcdu4a) DescriptorSet 0 Decorate 200(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 32: 16(int) Constant 4 36: TypeImage 16(int) 1D sampled format:Unknown 37: TypePointer UniformConstant 36 38(g_tTex1di4): 37(ptr) Variable UniformConstant 47: TypeImage 24(int) 1D sampled format:Unknown 48: TypePointer UniformConstant 47 49(g_tTex1du4): 48(ptr) Variable UniformConstant 57: TypeVector 24(int) 4 59: TypeImage 6(float) 2D sampled format:Unknown 60: TypePointer UniformConstant 59 61(g_tTex2df4): 60(ptr) Variable UniformConstant 63: 16(int) Constant 2 64: TypePointer Uniform 18(ivec3) 68: 24(int) Constant 2 71: 16(int) Constant 5 72: TypePointer Uniform 17(ivec2) 76: TypeImage 16(int) 2D sampled format:Unknown 77: TypePointer UniformConstant 76 78(g_tTex2di4): 77(ptr) Variable UniformConstant 88: TypeImage 24(int) 2D sampled format:Unknown 89: TypePointer UniformConstant 88 90(g_tTex2du4): 89(ptr) Variable UniformConstant 100: TypeImage 6(float) 3D sampled format:Unknown 101: TypePointer UniformConstant 100 102(g_tTex3df4): 101(ptr) Variable UniformConstant 104: 16(int) Constant 3 105: TypePointer Uniform 19(ivec4) 109: 24(int) Constant 3 112: 16(int) Constant 6 116: TypeImage 16(int) 3D sampled format:Unknown 117: TypePointer UniformConstant 116 118(g_tTex3di4): 117(ptr) Variable UniformConstant 128: TypeImage 24(int) 3D sampled format:Unknown 129: TypePointer UniformConstant 128 130(g_tTex3du4): 129(ptr) Variable UniformConstant 140: TypePointer Function 8(PS_OUTPUT) 142: 16(int) Constant 0 143: 6(float) Constant 1065353216 144: 7(fvec4) ConstantComposite 143 143 143 143 145: TypePointer Function 7(fvec4) 147: TypePointer Function 6(float) 154: TypePointer Output 7(fvec4) 155(@entryPointOutput.Color): 154(ptr) Variable Output 158: TypePointer Output 6(float) 159(@entryPointOutput.Depth): 158(ptr) Variable Output 162: TypeSampler 163: TypePointer UniformConstant 162 164(g_sSamp): 163(ptr) Variable UniformConstant 165: TypeImage 6(float) Cube sampled format:Unknown 166: TypePointer UniformConstant 165 167(g_tTexcdf4): 166(ptr) Variable UniformConstant 168: TypeImage 16(int) Cube sampled format:Unknown 169: TypePointer UniformConstant 168 170(g_tTexcdi4): 169(ptr) Variable UniformConstant 171: TypeImage 24(int) Cube sampled format:Unknown 172: TypePointer UniformConstant 171 173(g_tTexcdu4): 172(ptr) Variable UniformConstant 174: TypeImage 6(float) 1D array sampled format:Unknown 175: TypePointer UniformConstant 174 176(g_tTex1df4a): 175(ptr) Variable UniformConstant 177: TypeImage 16(int) 1D array sampled format:Unknown 178: TypePointer UniformConstant 177 179(g_tTex1di4a): 178(ptr) Variable UniformConstant 180: TypeImage 24(int) 1D array sampled format:Unknown 181: TypePointer UniformConstant 180 182(g_tTex1du4a): 181(ptr) Variable UniformConstant 183: TypeImage 6(float) 2D array sampled format:Unknown 184: TypePointer UniformConstant 183 185(g_tTex2df4a): 184(ptr) Variable UniformConstant 186: TypeImage 16(int) 2D array sampled format:Unknown 187: TypePointer UniformConstant 186 188(g_tTex2di4a): 187(ptr) Variable UniformConstant 189: TypeImage 24(int) 2D array sampled format:Unknown 190: TypePointer UniformConstant 189 191(g_tTex2du4a): 190(ptr) Variable UniformConstant 192: TypeImage 6(float) Cube array sampled format:Unknown 193: TypePointer UniformConstant 192 194(g_tTexcdf4a): 193(ptr) Variable UniformConstant 195: TypeImage 16(int) Cube array sampled format:Unknown 196: TypePointer UniformConstant 195 197(g_tTexcdi4a): 196(ptr) Variable UniformConstant 198: TypeImage 24(int) Cube array sampled format:Unknown 199: TypePointer UniformConstant 198 200(g_tTexcdu4a): 199(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 152(flattenTemp): 140(ptr) Variable Function 153:8(PS_OUTPUT) FunctionCall 10(@main() Store 152(flattenTemp) 153 156: 145(ptr) AccessChain 152(flattenTemp) 142 157: 7(fvec4) Load 156 Store 155(@entryPointOutput.Color) 157 160: 147(ptr) AccessChain 152(flattenTemp) 23 161: 6(float) Load 160 Store 159(@entryPointOutput.Depth) 161 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 141(psout): 140(ptr) Variable Function 15: 12 Load 14(g_tTex1df4) 27: 26(ptr) AccessChain 22 23 25 28: 16(int) Load 27 30: 26(ptr) AccessChain 22 23 29 31: 16(int) Load 30 33: 26(ptr) AccessChain 22 32 34: 16(int) Load 33 35: 7(fvec4) ImageFetch 15 28 Lod Offset 31 34 39: 36 Load 38(g_tTex1di4) 40: 26(ptr) AccessChain 22 23 25 41: 16(int) Load 40 42: 26(ptr) AccessChain 22 23 29 43: 16(int) Load 42 44: 26(ptr) AccessChain 22 32 45: 16(int) Load 44 46: 19(ivec4) ImageFetch 39 41 Lod Offset 43 45 50: 47 Load 49(g_tTex1du4) 51: 26(ptr) AccessChain 22 23 25 52: 16(int) Load 51 53: 26(ptr) AccessChain 22 23 29 54: 16(int) Load 53 55: 26(ptr) AccessChain 22 32 56: 16(int) Load 55 58: 57(ivec4) ImageFetch 50 52 Lod Offset 54 56 62: 59 Load 61(g_tTex2df4) 65: 64(ptr) AccessChain 22 63 66: 18(ivec3) Load 65 67: 17(ivec2) VectorShuffle 66 66 0 1 69: 26(ptr) AccessChain 22 63 68 70: 16(int) Load 69 73: 72(ptr) AccessChain 22 71 74: 17(ivec2) Load 73 75: 7(fvec4) ImageFetch 62 67 Lod Offset 70 74 79: 76 Load 78(g_tTex2di4) 80: 64(ptr) AccessChain 22 63 81: 18(ivec3) Load 80 82: 17(ivec2) VectorShuffle 81 81 0 1 83: 26(ptr) AccessChain 22 63 68 84: 16(int) Load 83 85: 72(ptr) AccessChain 22 71 86: 17(ivec2) Load 85 87: 19(ivec4) ImageFetch 79 82 Lod Offset 84 86 91: 88 Load 90(g_tTex2du4) 92: 64(ptr) AccessChain 22 63 93: 18(ivec3) Load 92 94: 17(ivec2) VectorShuffle 93 93 0 1 95: 26(ptr) AccessChain 22 63 68 96: 16(int) Load 95 97: 72(ptr) AccessChain 22 71 98: 17(ivec2) Load 97 99: 57(ivec4) ImageFetch 91 94 Lod Offset 96 98 103: 100 Load 102(g_tTex3df4) 106: 105(ptr) AccessChain 22 104 107: 19(ivec4) Load 106 108: 18(ivec3) VectorShuffle 107 107 0 1 2 110: 26(ptr) AccessChain 22 104 109 111: 16(int) Load 110 113: 64(ptr) AccessChain 22 112 114: 18(ivec3) Load 113 115: 7(fvec4) ImageFetch 103 108 Lod Offset 111 114 119: 116 Load 118(g_tTex3di4) 120: 105(ptr) AccessChain 22 104 121: 19(ivec4) Load 120 122: 18(ivec3) VectorShuffle 121 121 0 1 2 123: 26(ptr) AccessChain 22 104 109 124: 16(int) Load 123 125: 64(ptr) AccessChain 22 112 126: 18(ivec3) Load 125 127: 19(ivec4) ImageFetch 119 122 Lod Offset 124 126 131: 128 Load 130(g_tTex3du4) 132: 105(ptr) AccessChain 22 104 133: 19(ivec4) Load 132 134: 18(ivec3) VectorShuffle 133 133 0 1 2 135: 26(ptr) AccessChain 22 104 109 136: 16(int) Load 135 137: 64(ptr) AccessChain 22 112 138: 18(ivec3) Load 137 139: 57(ivec4) ImageFetch 131 134 Lod Offset 136 138 146: 145(ptr) AccessChain 141(psout) 142 Store 146 144 148: 147(ptr) AccessChain 141(psout) 23 Store 148 143 149:8(PS_OUTPUT) Load 141(psout) ReturnValue 149 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out000066400000000000000000001330361360464450000253510ustar00rootroot00000000000000hlsl.load.offsetarray.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset ( temp 4-component vector of float) 0:52 'g_tTex1df4a' ( uniform texture1DArray) 0:52 vector swizzle ( temp 2-component vector of int) 0:52 c3: direct index for structure ( uniform 3-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 2 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 1 (const int) 0:52 direct index ( temp int) 0:52 c3: direct index for structure ( uniform 3-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) 0:52 o1: direct index for structure ( uniform int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 4 (const uint) 0:53 textureFetchOffset ( temp 4-component vector of int) 0:53 'g_tTex1di4a' ( uniform itexture1DArray) 0:53 vector swizzle ( temp 2-component vector of int) 0:53 c3: direct index for structure ( uniform 3-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 2 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 Constant: 0:53 1 (const int) 0:53 direct index ( temp int) 0:53 c3: direct index for structure ( uniform 3-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) 0:53 o1: direct index for structure ( uniform int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 4 (const uint) 0:54 textureFetchOffset ( temp 4-component vector of uint) 0:54 'g_tTex1du4a' ( uniform utexture1DArray) 0:54 vector swizzle ( temp 2-component vector of int) 0:54 c3: direct index for structure ( uniform 3-component vector of int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 2 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 Constant: 0:54 1 (const int) 0:54 direct index ( temp int) 0:54 c3: direct index for structure ( uniform 3-component vector of int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) 0:54 o1: direct index for structure ( uniform int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 4 (const uint) 0:57 textureFetchOffset ( temp 4-component vector of float) 0:57 'g_tTex2df4a' ( uniform texture2DArray) 0:57 vector swizzle ( temp 3-component vector of int) 0:57 c4: direct index for structure ( uniform 4-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 3 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 2 (const int) 0:57 direct index ( temp int) 0:57 c4: direct index for structure ( uniform 4-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) 0:57 o2: direct index for structure ( uniform 2-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 5 (const uint) 0:58 textureFetchOffset ( temp 4-component vector of int) 0:58 'g_tTex2di4a' ( uniform itexture2DArray) 0:58 vector swizzle ( temp 3-component vector of int) 0:58 c4: direct index for structure ( uniform 4-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 3 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 2 (const int) 0:58 direct index ( temp int) 0:58 c4: direct index for structure ( uniform 4-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) 0:58 o2: direct index for structure ( uniform 2-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 5 (const uint) 0:59 textureFetchOffset ( temp 4-component vector of uint) 0:59 'g_tTex2du4a' ( uniform utexture2DArray) 0:59 vector swizzle ( temp 3-component vector of int) 0:59 c4: direct index for structure ( uniform 4-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 3 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 Constant: 0:59 2 (const int) 0:59 direct index ( temp int) 0:59 c4: direct index for structure ( uniform 4-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 3 (const uint) 0:59 Constant: 0:59 3 (const int) 0:59 o2: direct index for structure ( uniform 2-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 5 (const uint) 0:65 move second child to first child ( temp 4-component vector of float) 0:65 Color: direct index for structure ( temp 4-component vector of float) 0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 Constant: 0:65 1.000000 0:65 1.000000 0:65 1.000000 0:65 1.000000 0:66 move second child to first child ( temp float) 0:66 Depth: direct index for structure ( temp float) 0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 0:68 Branch: Return with expression 0:68 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Definition: main( ( temp void) 0:48 Function Parameters: 0:? Sequence 0:48 Sequence 0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:48 Color: direct index for structure ( temp 4-component vector of float) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:48 Depth: direct index for structure ( temp float) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:48 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence 0:52 textureFetchOffset ( temp 4-component vector of float) 0:52 'g_tTex1df4a' ( uniform texture1DArray) 0:52 vector swizzle ( temp 2-component vector of int) 0:52 c3: direct index for structure ( uniform 3-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 2 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 1 (const int) 0:52 direct index ( temp int) 0:52 c3: direct index for structure ( uniform 3-component vector of int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) 0:52 o1: direct index for structure ( uniform int) 0:52 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:52 Constant: 0:52 4 (const uint) 0:53 textureFetchOffset ( temp 4-component vector of int) 0:53 'g_tTex1di4a' ( uniform itexture1DArray) 0:53 vector swizzle ( temp 2-component vector of int) 0:53 c3: direct index for structure ( uniform 3-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 2 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 Constant: 0:53 1 (const int) 0:53 direct index ( temp int) 0:53 c3: direct index for structure ( uniform 3-component vector of int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) 0:53 o1: direct index for structure ( uniform int) 0:53 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:53 Constant: 0:53 4 (const uint) 0:54 textureFetchOffset ( temp 4-component vector of uint) 0:54 'g_tTex1du4a' ( uniform utexture1DArray) 0:54 vector swizzle ( temp 2-component vector of int) 0:54 c3: direct index for structure ( uniform 3-component vector of int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 2 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 Constant: 0:54 1 (const int) 0:54 direct index ( temp int) 0:54 c3: direct index for structure ( uniform 3-component vector of int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) 0:54 o1: direct index for structure ( uniform int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:54 Constant: 0:54 4 (const uint) 0:57 textureFetchOffset ( temp 4-component vector of float) 0:57 'g_tTex2df4a' ( uniform texture2DArray) 0:57 vector swizzle ( temp 3-component vector of int) 0:57 c4: direct index for structure ( uniform 4-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 3 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 2 (const int) 0:57 direct index ( temp int) 0:57 c4: direct index for structure ( uniform 4-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) 0:57 o2: direct index for structure ( uniform 2-component vector of int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:57 Constant: 0:57 5 (const uint) 0:58 textureFetchOffset ( temp 4-component vector of int) 0:58 'g_tTex2di4a' ( uniform itexture2DArray) 0:58 vector swizzle ( temp 3-component vector of int) 0:58 c4: direct index for structure ( uniform 4-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 3 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 2 (const int) 0:58 direct index ( temp int) 0:58 c4: direct index for structure ( uniform 4-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) 0:58 o2: direct index for structure ( uniform 2-component vector of int) 0:58 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:58 Constant: 0:58 5 (const uint) 0:59 textureFetchOffset ( temp 4-component vector of uint) 0:59 'g_tTex2du4a' ( uniform utexture2DArray) 0:59 vector swizzle ( temp 3-component vector of int) 0:59 c4: direct index for structure ( uniform 4-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 3 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 Constant: 0:59 2 (const int) 0:59 direct index ( temp int) 0:59 c4: direct index for structure ( uniform 4-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 3 (const uint) 0:59 Constant: 0:59 3 (const int) 0:59 o2: direct index for structure ( uniform 2-component vector of int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:59 Constant: 0:59 5 (const uint) 0:65 move second child to first child ( temp 4-component vector of float) 0:65 Color: direct index for structure ( temp 4-component vector of float) 0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:65 Constant: 0:65 0 (const int) 0:65 Constant: 0:65 1.000000 0:65 1.000000 0:65 1.000000 0:65 1.000000 0:66 move second child to first child ( temp float) 0:66 Depth: direct index for structure ( temp float) 0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:66 Constant: 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 0:68 Branch: Return with expression 0:68 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Definition: main( ( temp void) 0:48 Function Parameters: 0:? Sequence 0:48 Sequence 0:48 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:48 Color: direct index for structure ( temp 4-component vector of float) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:48 Depth: direct index for structure ( temp float) 0:48 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4}) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 174 Capability Shader Capability ImageGatherExtended Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 119 123 ExecutionMode 4 OriginUpperLeft ExecutionMode 4 DepthReplacing Source HLSL 500 Name 4 "main" Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" MemberName 8(PS_OUTPUT) 1 "Depth" Name 10 "@main(" Name 14 "g_tTex1df4a" Name 20 "$Global" MemberName 20($Global) 0 "c1" MemberName 20($Global) 1 "c2" MemberName 20($Global) 2 "c3" MemberName 20($Global) 3 "c4" MemberName 20($Global) 4 "o1" MemberName 20($Global) 5 "o2" MemberName 20($Global) 6 "o3" MemberName 20($Global) 7 "o4" Name 22 "" Name 39 "g_tTex1di4a" Name 51 "g_tTex1du4a" Name 64 "g_tTex2df4a" Name 81 "g_tTex2di4a" Name 93 "g_tTex2du4a" Name 104 "psout" Name 116 "flattenTemp" Name 119 "@entryPointOutput.Color" Name 123 "@entryPointOutput.Depth" Name 128 "g_sSamp" Name 131 "g_tTex1df4" Name 134 "g_tTex1di4" Name 137 "g_tTex1du4" Name 140 "g_tTex2df4" Name 143 "g_tTex2di4" Name 146 "g_tTex2du4" Name 149 "g_tTex3df4" Name 152 "g_tTex3di4" Name 155 "g_tTex3du4" Name 158 "g_tTexcdf4" Name 161 "g_tTexcdi4" Name 164 "g_tTexcdu4" Name 167 "g_tTexcdf4a" Name 170 "g_tTexcdi4a" Name 173 "g_tTexcdu4a" Decorate 14(g_tTex1df4a) DescriptorSet 0 Decorate 14(g_tTex1df4a) 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 0 Decorate 39(g_tTex1di4a) DescriptorSet 0 Decorate 39(g_tTex1di4a) Binding 0 Decorate 51(g_tTex1du4a) DescriptorSet 0 Decorate 51(g_tTex1du4a) Binding 0 Decorate 64(g_tTex2df4a) DescriptorSet 0 Decorate 64(g_tTex2df4a) Binding 0 Decorate 81(g_tTex2di4a) DescriptorSet 0 Decorate 81(g_tTex2di4a) Binding 0 Decorate 93(g_tTex2du4a) DescriptorSet 0 Decorate 93(g_tTex2du4a) Binding 0 Decorate 119(@entryPointOutput.Color) Location 0 Decorate 123(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 128(g_sSamp) DescriptorSet 0 Decorate 128(g_sSamp) Binding 0 Decorate 131(g_tTex1df4) DescriptorSet 0 Decorate 131(g_tTex1df4) Binding 0 Decorate 134(g_tTex1di4) DescriptorSet 0 Decorate 134(g_tTex1di4) Binding 0 Decorate 137(g_tTex1du4) DescriptorSet 0 Decorate 137(g_tTex1du4) Binding 0 Decorate 140(g_tTex2df4) DescriptorSet 0 Decorate 140(g_tTex2df4) Binding 0 Decorate 143(g_tTex2di4) DescriptorSet 0 Decorate 143(g_tTex2di4) Binding 0 Decorate 146(g_tTex2du4) DescriptorSet 0 Decorate 146(g_tTex2du4) Binding 0 Decorate 149(g_tTex3df4) DescriptorSet 0 Decorate 149(g_tTex3df4) Binding 0 Decorate 152(g_tTex3di4) DescriptorSet 0 Decorate 152(g_tTex3di4) Binding 0 Decorate 155(g_tTex3du4) DescriptorSet 0 Decorate 155(g_tTex3du4) Binding 0 Decorate 158(g_tTexcdf4) DescriptorSet 0 Decorate 158(g_tTexcdf4) Binding 0 Decorate 161(g_tTexcdi4) DescriptorSet 0 Decorate 161(g_tTexcdi4) Binding 0 Decorate 164(g_tTexcdu4) DescriptorSet 0 Decorate 164(g_tTexcdu4) Binding 0 Decorate 167(g_tTexcdf4a) DescriptorSet 0 Decorate 167(g_tTexcdf4a) Binding 0 Decorate 170(g_tTexcdi4a) DescriptorSet 0 Decorate 170(g_tTexcdi4a) Binding 0 Decorate 173(g_tTexcdu4a) DescriptorSet 0 Decorate 173(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) 33: 16(int) Constant 4 37: TypeImage 16(int) 1D array sampled format:Unknown 38: TypePointer UniformConstant 37 39(g_tTex1di4a): 38(ptr) Variable UniformConstant 49: TypeImage 28(int) 1D array sampled format:Unknown 50: TypePointer UniformConstant 49 51(g_tTex1du4a): 50(ptr) Variable UniformConstant 60: TypeVector 28(int) 4 62: TypeImage 6(float) 2D array sampled format:Unknown 63: TypePointer UniformConstant 62 64(g_tTex2df4a): 63(ptr) Variable UniformConstant 66: 16(int) Constant 3 67: TypePointer Uniform 19(ivec4) 71: 28(int) Constant 3 74: 16(int) Constant 5 75: TypePointer Uniform 17(ivec2) 79: TypeImage 16(int) 2D array sampled format:Unknown 80: TypePointer UniformConstant 79 81(g_tTex2di4a): 80(ptr) Variable UniformConstant 91: TypeImage 28(int) 2D array sampled format:Unknown 92: TypePointer UniformConstant 91 93(g_tTex2du4a): 92(ptr) Variable UniformConstant 103: TypePointer Function 8(PS_OUTPUT) 105: 16(int) Constant 0 106: 6(float) Constant 1065353216 107: 7(fvec4) ConstantComposite 106 106 106 106 108: TypePointer Function 7(fvec4) 110: 16(int) Constant 1 111: TypePointer Function 6(float) 118: TypePointer Output 7(fvec4) 119(@entryPointOutput.Color): 118(ptr) Variable Output 122: TypePointer Output 6(float) 123(@entryPointOutput.Depth): 122(ptr) Variable Output 126: TypeSampler 127: TypePointer UniformConstant 126 128(g_sSamp): 127(ptr) Variable UniformConstant 129: TypeImage 6(float) 1D sampled format:Unknown 130: TypePointer UniformConstant 129 131(g_tTex1df4): 130(ptr) Variable UniformConstant 132: TypeImage 16(int) 1D sampled format:Unknown 133: TypePointer UniformConstant 132 134(g_tTex1di4): 133(ptr) Variable UniformConstant 135: TypeImage 28(int) 1D sampled format:Unknown 136: TypePointer UniformConstant 135 137(g_tTex1du4): 136(ptr) Variable UniformConstant 138: TypeImage 6(float) 2D sampled format:Unknown 139: TypePointer UniformConstant 138 140(g_tTex2df4): 139(ptr) Variable UniformConstant 141: TypeImage 16(int) 2D sampled format:Unknown 142: TypePointer UniformConstant 141 143(g_tTex2di4): 142(ptr) Variable UniformConstant 144: TypeImage 28(int) 2D sampled format:Unknown 145: TypePointer UniformConstant 144 146(g_tTex2du4): 145(ptr) Variable UniformConstant 147: TypeImage 6(float) 3D sampled format:Unknown 148: TypePointer UniformConstant 147 149(g_tTex3df4): 148(ptr) Variable UniformConstant 150: TypeImage 16(int) 3D sampled format:Unknown 151: TypePointer UniformConstant 150 152(g_tTex3di4): 151(ptr) Variable UniformConstant 153: TypeImage 28(int) 3D sampled format:Unknown 154: TypePointer UniformConstant 153 155(g_tTex3du4): 154(ptr) Variable UniformConstant 156: TypeImage 6(float) Cube sampled format:Unknown 157: TypePointer UniformConstant 156 158(g_tTexcdf4): 157(ptr) Variable UniformConstant 159: TypeImage 16(int) Cube sampled format:Unknown 160: TypePointer UniformConstant 159 161(g_tTexcdi4): 160(ptr) Variable UniformConstant 162: TypeImage 28(int) Cube sampled format:Unknown 163: TypePointer UniformConstant 162 164(g_tTexcdu4): 163(ptr) Variable UniformConstant 165: TypeImage 6(float) Cube array sampled format:Unknown 166: TypePointer UniformConstant 165 167(g_tTexcdf4a): 166(ptr) Variable UniformConstant 168: TypeImage 16(int) Cube array sampled format:Unknown 169: TypePointer UniformConstant 168 170(g_tTexcdi4a): 169(ptr) Variable UniformConstant 171: TypeImage 28(int) Cube array sampled format:Unknown 172: TypePointer UniformConstant 171 173(g_tTexcdu4a): 172(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 116(flattenTemp): 103(ptr) Variable Function 117:8(PS_OUTPUT) FunctionCall 10(@main() Store 116(flattenTemp) 117 120: 108(ptr) AccessChain 116(flattenTemp) 105 121: 7(fvec4) Load 120 Store 119(@entryPointOutput.Color) 121 124: 111(ptr) AccessChain 116(flattenTemp) 110 125: 6(float) Load 124 Store 123(@entryPointOutput.Depth) 125 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 104(psout): 103(ptr) Variable Function 15: 12 Load 14(g_tTex1df4a) 25: 24(ptr) AccessChain 22 23 26: 18(ivec3) Load 25 27: 17(ivec2) VectorShuffle 26 26 0 1 31: 30(ptr) AccessChain 22 23 29 32: 16(int) Load 31 34: 30(ptr) AccessChain 22 33 35: 16(int) Load 34 36: 7(fvec4) ImageFetch 15 27 Lod Offset 32 35 40: 37 Load 39(g_tTex1di4a) 41: 24(ptr) AccessChain 22 23 42: 18(ivec3) Load 41 43: 17(ivec2) VectorShuffle 42 42 0 1 44: 30(ptr) AccessChain 22 23 29 45: 16(int) Load 44 46: 30(ptr) AccessChain 22 33 47: 16(int) Load 46 48: 19(ivec4) ImageFetch 40 43 Lod Offset 45 47 52: 49 Load 51(g_tTex1du4a) 53: 24(ptr) AccessChain 22 23 54: 18(ivec3) Load 53 55: 17(ivec2) VectorShuffle 54 54 0 1 56: 30(ptr) AccessChain 22 23 29 57: 16(int) Load 56 58: 30(ptr) AccessChain 22 33 59: 16(int) Load 58 61: 60(ivec4) ImageFetch 52 55 Lod Offset 57 59 65: 62 Load 64(g_tTex2df4a) 68: 67(ptr) AccessChain 22 66 69: 19(ivec4) Load 68 70: 18(ivec3) VectorShuffle 69 69 0 1 2 72: 30(ptr) AccessChain 22 66 71 73: 16(int) Load 72 76: 75(ptr) AccessChain 22 74 77: 17(ivec2) Load 76 78: 7(fvec4) ImageFetch 65 70 Lod Offset 73 77 82: 79 Load 81(g_tTex2di4a) 83: 67(ptr) AccessChain 22 66 84: 19(ivec4) Load 83 85: 18(ivec3) VectorShuffle 84 84 0 1 2 86: 30(ptr) AccessChain 22 66 71 87: 16(int) Load 86 88: 75(ptr) AccessChain 22 74 89: 17(ivec2) Load 88 90: 19(ivec4) ImageFetch 82 85 Lod Offset 87 89 94: 91 Load 93(g_tTex2du4a) 95: 67(ptr) AccessChain 22 66 96: 19(ivec4) Load 95 97: 18(ivec3) VectorShuffle 96 96 0 1 2 98: 30(ptr) AccessChain 22 66 71 99: 16(int) Load 98 100: 75(ptr) AccessChain 22 74 101: 17(ivec2) Load 100 102: 60(ivec4) ImageFetch 94 97 Lod Offset 99 101 109: 108(ptr) AccessChain 104(psout) 105 Store 109 107 112: 111(ptr) AccessChain 104(psout) 110 Store 112 106 113:8(PS_OUTPUT) Load 104(psout) ReturnValue 113 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out000066400000000000000000000312631360464450000246450ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 31(g_tBuffU) DescriptorSet 0 Decorate 31(g_tBuffU) Binding 0 Decorate 39(g_tBuffI) DescriptorSet 0 Decorate 39(g_tBuffI) 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: 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 glslang-8.13.3559/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out000066400000000000000000000650121360464450000262100ustar00rootroot00000000000000hlsl.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): 80008 // 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 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 0 Decorate 30(g_tTex1di4a) DescriptorSet 0 Decorate 30(g_tTex1di4a) Binding 0 Decorate 38(g_tTex1du4a) DescriptorSet 0 Decorate 38(g_tTex1du4a) Binding 0 Decorate 46(g_tTex2df4a) DescriptorSet 0 Decorate 46(g_tTex2df4a) Binding 0 Decorate 55(g_tTex2di4a) DescriptorSet 0 Decorate 55(g_tTex2di4a) Binding 0 Decorate 62(g_tTex2du4a) DescriptorSet 0 Decorate 62(g_tTex2du4a) Binding 0 Decorate 82(@entryPointOutput.Color) Location 0 Decorate 86(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 91(g_sSamp) DescriptorSet 0 Decorate 91(g_sSamp) Binding 0 Decorate 94(g_tTex1df4) DescriptorSet 0 Decorate 94(g_tTex1df4) Binding 0 Decorate 97(g_tTex1di4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out000066400000000000000000000745461360464450000251070ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 30(g_tTex1di4) DescriptorSet 0 Decorate 30(g_tTex1di4) Binding 0 Decorate 38(g_tTex1du4) DescriptorSet 0 Decorate 38(g_tTex1du4) Binding 0 Decorate 46(g_tTex2df4) DescriptorSet 0 Decorate 46(g_tTex2df4) Binding 0 Decorate 55(g_tTex2di4) DescriptorSet 0 Decorate 55(g_tTex2di4) Binding 0 Decorate 62(g_tTex2du4) DescriptorSet 0 Decorate 62(g_tTex2du4) Binding 0 Decorate 69(g_tTex3df4) DescriptorSet 0 Decorate 69(g_tTex3df4) Binding 0 Decorate 78(g_tTex3di4) DescriptorSet 0 Decorate 78(g_tTex3di4) Binding 0 Decorate 85(g_tTex3du4) DescriptorSet 0 Decorate 85(g_tTex3du4) Binding 0 Decorate 104(@entryPointOutput.Color) Location 0 Decorate 108(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 113(g_sSamp) DescriptorSet 0 Decorate 113(g_sSamp) Binding 0 Decorate 116(g_tTex1df4a) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.localStructuredBuffer.comp.out000066400000000000000000000021061360464450000256540ustar00rootroot00000000000000hlsl.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 glslang-8.13.3559/Test/baseResults/hlsl.logical.binary.frag.out000066400000000000000000000261171360464450000242310ustar00rootroot00000000000000hlsl.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): 80008 // 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) FOrdNotEqual 28 29 31: 21(bool) LogicalAnd 24 30 SelectionMerge 33 None BranchConditional 31 32 33 32: Label Branch 33 33: Label 34: 18(ptr) AccessChain 16 17 35: 12(int) Load 34 36: 21(bool) INotEqual 35 23 37: 26(ptr) AccessChain 16 25 38: 6(float) Load 37 39: 21(bool) FOrdNotEqual 38 29 40: 21(bool) LogicalOr 36 39 SelectionMerge 42 None BranchConditional 40 41 42 41: Label Branch 42 42: Label 48: 47(ptr) AccessChain 44(psout) 17 Store 48 46 49:8(PS_OUTPUT) Load 44(psout) ReturnValue 49 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.logical.binary.vec.frag.out000066400000000000000000000603141360464450000250020ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.logical.unary.frag.out000066400000000000000000000406511360464450000241020ustar00rootroot00000000000000hlsl.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): 80008 // 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) FOrdNotEqual 38 39 41: 21(bool) LogicalNot 40 44: 43(ptr) AccessChain 16 42 45: 7(fvec4) Load 44 47: 30(bvec4) FOrdNotEqual 45 46 48: 30(bvec4) LogicalNot 47 49: 18(ptr) AccessChain 16 17 50: 12(int) Load 49 51: 21(bool) INotEqual 50 23 SelectionMerge 53 None BranchConditional 51 52 53 52: Label Branch 53 53: Label 54: 36(ptr) AccessChain 16 35 55: 6(float) Load 54 56: 21(bool) FOrdNotEqual 55 39 SelectionMerge 58 None BranchConditional 56 57 58 57: Label Branch 58 58: Label 59: 18(ptr) AccessChain 16 17 60: 12(int) Load 59 61: 21(bool) INotEqual 60 23 62: 21(bool) LogicalNot 61 SelectionMerge 64 None BranchConditional 62 63 64 63: Label Branch 64 64: Label 65: 36(ptr) AccessChain 16 35 66: 6(float) Load 65 67: 21(bool) FOrdNotEqual 66 39 68: 21(bool) LogicalNot 67 SelectionMerge 70 None BranchConditional 68 69 70 69: Label Branch 70 70: Label 76: 75(ptr) AccessChain 72(psout) 17 Store 76 74 77:8(PS_OUTPUT) Load 72(psout) ReturnValue 77 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.logicalConvert.frag.out000066400000000000000000000263411360464450000243060ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.loopattr.frag.out000066400000000000000000000212071360464450000231730ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.matNx1.frag.out000066400000000000000000000307111360464450000224770ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.matType.bool.frag.out000066400000000000000000000474701360464450000237160ustar00rootroot00000000000000hlsl.matType.bool.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: TestBoolMatTypes( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:25 Sequence 0:25 move second child to first child ( temp 1X1 matrix of bool) 0:25 'r00' ( temp 1X1 matrix of bool) 0:25 transpose ( temp 1X1 matrix of bool) 0:25 'b1x1' ( temp 1X1 matrix of bool) 0:26 Sequence 0:26 move second child to first child ( temp 1X2 matrix of bool) 0:26 'r01' ( temp 1X2 matrix of bool) 0:26 transpose ( temp 1X2 matrix of bool) 0:26 'b2x1' ( temp 2X1 matrix of bool) 0:27 Sequence 0:27 move second child to first child ( temp 1X3 matrix of bool) 0:27 'r02' ( temp 1X3 matrix of bool) 0:27 transpose ( temp 1X3 matrix of bool) 0:27 'b3x1' ( temp 3X1 matrix of bool) 0:28 Sequence 0:28 move second child to first child ( temp 1X4 matrix of bool) 0:28 'r03' ( temp 1X4 matrix of bool) 0:28 transpose ( temp 1X4 matrix of bool) 0:28 'b4x1' ( temp 4X1 matrix of bool) 0:30 Sequence 0:30 move second child to first child ( temp 2X1 matrix of bool) 0:30 'r10' ( temp 2X1 matrix of bool) 0:30 transpose ( temp 2X1 matrix of bool) 0:30 'b1x2' ( temp 1X2 matrix of bool) 0:31 Sequence 0:31 move second child to first child ( temp 2X2 matrix of bool) 0:31 'r11' ( temp 2X2 matrix of bool) 0:31 transpose ( temp 2X2 matrix of bool) 0:31 'b2x2' ( temp 2X2 matrix of bool) 0:32 Sequence 0:32 move second child to first child ( temp 2X3 matrix of bool) 0:32 'r12' ( temp 2X3 matrix of bool) 0:32 transpose ( temp 2X3 matrix of bool) 0:32 'b3x2' ( temp 3X2 matrix of bool) 0:33 Sequence 0:33 move second child to first child ( temp 2X4 matrix of bool) 0:33 'r13' ( temp 2X4 matrix of bool) 0:33 transpose ( temp 2X4 matrix of bool) 0:33 'b4x2' ( temp 4X2 matrix of bool) 0:35 Sequence 0:35 move second child to first child ( temp 3X1 matrix of bool) 0:35 'r20' ( temp 3X1 matrix of bool) 0:35 transpose ( temp 3X1 matrix of bool) 0:35 'b1x3' ( temp 1X3 matrix of bool) 0:36 Sequence 0:36 move second child to first child ( temp 3X2 matrix of bool) 0:36 'r21' ( temp 3X2 matrix of bool) 0:36 transpose ( temp 3X2 matrix of bool) 0:36 'b2x3' ( temp 2X3 matrix of bool) 0:37 Sequence 0:37 move second child to first child ( temp 3X3 matrix of bool) 0:37 'r22' ( temp 3X3 matrix of bool) 0:37 transpose ( temp 3X3 matrix of bool) 0:37 'b3x3' ( temp 3X3 matrix of bool) 0:38 Sequence 0:38 move second child to first child ( temp 3X4 matrix of bool) 0:38 'r23' ( temp 3X4 matrix of bool) 0:38 transpose ( temp 3X4 matrix of bool) 0:38 'b4x3' ( temp 4X3 matrix of bool) 0:40 Sequence 0:40 move second child to first child ( temp 4X1 matrix of bool) 0:40 'r30' ( temp 4X1 matrix of bool) 0:40 transpose ( temp 4X1 matrix of bool) 0:40 'b1x4' ( temp 1X4 matrix of bool) 0:41 Sequence 0:41 move second child to first child ( temp 4X2 matrix of bool) 0:41 'r31' ( temp 4X2 matrix of bool) 0:41 transpose ( temp 4X2 matrix of bool) 0:41 'b2x4' ( temp 2X4 matrix of bool) 0:42 Sequence 0:42 move second child to first child ( temp 4X3 matrix of bool) 0:42 'r32' ( temp 4X3 matrix of bool) 0:42 transpose ( temp 4X3 matrix of bool) 0:42 'b3x4' ( temp 3X4 matrix of bool) 0:43 Sequence 0:43 move second child to first child ( temp 4X4 matrix of bool) 0:43 'r33' ( temp 4X4 matrix of bool) 0:43 transpose ( temp 4X4 matrix of bool) 0:43 'b4x4' ( temp 4X4 matrix of bool) 0:49 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:49 Function Parameters: 0:? Sequence 0:51 move second child to first child ( temp 4-component vector of float) 0:51 color: direct index for structure ( temp 4-component vector of float) 0:51 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:51 Constant: 0:51 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:52 Branch: Return with expression 0:52 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:49 Function Definition: main( ( temp void) 0:49 Function Parameters: 0:? Sequence 0:49 Sequence 0:49 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:49 color: direct index for structure ( temp 4-component vector of float) 0:49 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:49 Constant: 0:49 0 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: TestBoolMatTypes( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:25 Sequence 0:25 move second child to first child ( temp 1X1 matrix of bool) 0:25 'r00' ( temp 1X1 matrix of bool) 0:25 transpose ( temp 1X1 matrix of bool) 0:25 'b1x1' ( temp 1X1 matrix of bool) 0:26 Sequence 0:26 move second child to first child ( temp 1X2 matrix of bool) 0:26 'r01' ( temp 1X2 matrix of bool) 0:26 transpose ( temp 1X2 matrix of bool) 0:26 'b2x1' ( temp 2X1 matrix of bool) 0:27 Sequence 0:27 move second child to first child ( temp 1X3 matrix of bool) 0:27 'r02' ( temp 1X3 matrix of bool) 0:27 transpose ( temp 1X3 matrix of bool) 0:27 'b3x1' ( temp 3X1 matrix of bool) 0:28 Sequence 0:28 move second child to first child ( temp 1X4 matrix of bool) 0:28 'r03' ( temp 1X4 matrix of bool) 0:28 transpose ( temp 1X4 matrix of bool) 0:28 'b4x1' ( temp 4X1 matrix of bool) 0:30 Sequence 0:30 move second child to first child ( temp 2X1 matrix of bool) 0:30 'r10' ( temp 2X1 matrix of bool) 0:30 transpose ( temp 2X1 matrix of bool) 0:30 'b1x2' ( temp 1X2 matrix of bool) 0:31 Sequence 0:31 move second child to first child ( temp 2X2 matrix of bool) 0:31 'r11' ( temp 2X2 matrix of bool) 0:31 transpose ( temp 2X2 matrix of bool) 0:31 'b2x2' ( temp 2X2 matrix of bool) 0:32 Sequence 0:32 move second child to first child ( temp 2X3 matrix of bool) 0:32 'r12' ( temp 2X3 matrix of bool) 0:32 transpose ( temp 2X3 matrix of bool) 0:32 'b3x2' ( temp 3X2 matrix of bool) 0:33 Sequence 0:33 move second child to first child ( temp 2X4 matrix of bool) 0:33 'r13' ( temp 2X4 matrix of bool) 0:33 transpose ( temp 2X4 matrix of bool) 0:33 'b4x2' ( temp 4X2 matrix of bool) 0:35 Sequence 0:35 move second child to first child ( temp 3X1 matrix of bool) 0:35 'r20' ( temp 3X1 matrix of bool) 0:35 transpose ( temp 3X1 matrix of bool) 0:35 'b1x3' ( temp 1X3 matrix of bool) 0:36 Sequence 0:36 move second child to first child ( temp 3X2 matrix of bool) 0:36 'r21' ( temp 3X2 matrix of bool) 0:36 transpose ( temp 3X2 matrix of bool) 0:36 'b2x3' ( temp 2X3 matrix of bool) 0:37 Sequence 0:37 move second child to first child ( temp 3X3 matrix of bool) 0:37 'r22' ( temp 3X3 matrix of bool) 0:37 transpose ( temp 3X3 matrix of bool) 0:37 'b3x3' ( temp 3X3 matrix of bool) 0:38 Sequence 0:38 move second child to first child ( temp 3X4 matrix of bool) 0:38 'r23' ( temp 3X4 matrix of bool) 0:38 transpose ( temp 3X4 matrix of bool) 0:38 'b4x3' ( temp 4X3 matrix of bool) 0:40 Sequence 0:40 move second child to first child ( temp 4X1 matrix of bool) 0:40 'r30' ( temp 4X1 matrix of bool) 0:40 transpose ( temp 4X1 matrix of bool) 0:40 'b1x4' ( temp 1X4 matrix of bool) 0:41 Sequence 0:41 move second child to first child ( temp 4X2 matrix of bool) 0:41 'r31' ( temp 4X2 matrix of bool) 0:41 transpose ( temp 4X2 matrix of bool) 0:41 'b2x4' ( temp 2X4 matrix of bool) 0:42 Sequence 0:42 move second child to first child ( temp 4X3 matrix of bool) 0:42 'r32' ( temp 4X3 matrix of bool) 0:42 transpose ( temp 4X3 matrix of bool) 0:42 'b3x4' ( temp 3X4 matrix of bool) 0:43 Sequence 0:43 move second child to first child ( temp 4X4 matrix of bool) 0:43 'r33' ( temp 4X4 matrix of bool) 0:43 transpose ( temp 4X4 matrix of bool) 0:43 'b4x4' ( temp 4X4 matrix of bool) 0:49 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:49 Function Parameters: 0:? Sequence 0:51 move second child to first child ( temp 4-component vector of float) 0:51 color: direct index for structure ( temp 4-component vector of float) 0:51 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:51 Constant: 0:51 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:52 Branch: Return with expression 0:52 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:49 Function Definition: main( ( temp void) 0:49 Function Parameters: 0:? Sequence 0:49 Sequence 0:49 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:49 color: direct index for structure ( temp 4-component vector of float) 0:49 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:49 Constant: 0:49 0 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.matType.frag.out000066400000000000000000000125121360464450000227510ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.matType.int.frag.out000066400000000000000000001051271360464450000235470ustar00rootroot00000000000000hlsl.matType.int.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: TestIntMatTypes( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:25 Sequence 0:25 move second child to first child ( temp 1X1 matrix of int) 0:25 'r00' ( temp 1X1 matrix of int) 0:25 transpose ( temp 1X1 matrix of int) 0:25 'i1x1' ( temp 1X1 matrix of int) 0:26 Sequence 0:26 move second child to first child ( temp 1X2 matrix of int) 0:26 'r01' ( temp 1X2 matrix of int) 0:26 transpose ( temp 1X2 matrix of int) 0:26 'i2x1' ( temp 2X1 matrix of int) 0:27 Sequence 0:27 move second child to first child ( temp 1X3 matrix of int) 0:27 'r02' ( temp 1X3 matrix of int) 0:27 transpose ( temp 1X3 matrix of int) 0:27 'i3x1' ( temp 3X1 matrix of int) 0:28 Sequence 0:28 move second child to first child ( temp 1X4 matrix of int) 0:28 'r03' ( temp 1X4 matrix of int) 0:28 transpose ( temp 1X4 matrix of int) 0:28 'i4x1' ( temp 4X1 matrix of int) 0:30 Sequence 0:30 move second child to first child ( temp 2X1 matrix of int) 0:30 'r10' ( temp 2X1 matrix of int) 0:30 transpose ( temp 2X1 matrix of int) 0:30 'i1x2' ( temp 1X2 matrix of int) 0:31 Sequence 0:31 move second child to first child ( temp 2X2 matrix of int) 0:31 'r11' ( temp 2X2 matrix of int) 0:31 transpose ( temp 2X2 matrix of int) 0:31 'i2x2' ( temp 2X2 matrix of int) 0:32 Sequence 0:32 move second child to first child ( temp 2X3 matrix of int) 0:32 'r12' ( temp 2X3 matrix of int) 0:32 transpose ( temp 2X3 matrix of int) 0:32 'i3x2' ( temp 3X2 matrix of int) 0:33 Sequence 0:33 move second child to first child ( temp 2X4 matrix of int) 0:33 'r13' ( temp 2X4 matrix of int) 0:33 transpose ( temp 2X4 matrix of int) 0:33 'i4x2' ( temp 4X2 matrix of int) 0:35 Sequence 0:35 move second child to first child ( temp 3X1 matrix of int) 0:35 'r20' ( temp 3X1 matrix of int) 0:35 transpose ( temp 3X1 matrix of int) 0:35 'i1x3' ( temp 1X3 matrix of int) 0:36 Sequence 0:36 move second child to first child ( temp 3X2 matrix of int) 0:36 'r21' ( temp 3X2 matrix of int) 0:36 transpose ( temp 3X2 matrix of int) 0:36 'i2x3' ( temp 2X3 matrix of int) 0:37 Sequence 0:37 move second child to first child ( temp 3X3 matrix of int) 0:37 'r22' ( temp 3X3 matrix of int) 0:37 transpose ( temp 3X3 matrix of int) 0:37 'i3x3' ( temp 3X3 matrix of int) 0:38 Sequence 0:38 move second child to first child ( temp 3X4 matrix of int) 0:38 'r23' ( temp 3X4 matrix of int) 0:38 transpose ( temp 3X4 matrix of int) 0:38 'i4x3' ( temp 4X3 matrix of int) 0:40 Sequence 0:40 move second child to first child ( temp 4X1 matrix of int) 0:40 'r30' ( temp 4X1 matrix of int) 0:40 transpose ( temp 4X1 matrix of int) 0:40 'i1x4' ( temp 1X4 matrix of int) 0:41 Sequence 0:41 move second child to first child ( temp 4X2 matrix of int) 0:41 'r31' ( temp 4X2 matrix of int) 0:41 transpose ( temp 4X2 matrix of int) 0:41 'i2x4' ( temp 2X4 matrix of int) 0:42 Sequence 0:42 move second child to first child ( temp 4X3 matrix of int) 0:42 'r32' ( temp 4X3 matrix of int) 0:42 transpose ( temp 4X3 matrix of int) 0:42 'i3x4' ( temp 3X4 matrix of int) 0:43 Sequence 0:43 move second child to first child ( temp 4X4 matrix of int) 0:43 'r33' ( temp 4X4 matrix of int) 0:43 transpose ( temp 4X4 matrix of int) 0:43 'i4x4' ( temp 4X4 matrix of int) 0:47 Function Definition: TestUintMatTypes( ( temp void) 0:47 Function Parameters: 0:? Sequence 0:69 Sequence 0:69 move second child to first child ( temp 1X1 matrix of uint) 0:69 'r00' ( temp 1X1 matrix of uint) 0:69 transpose ( temp 1X1 matrix of uint) 0:69 'u1x1' ( temp 1X1 matrix of uint) 0:70 Sequence 0:70 move second child to first child ( temp 1X2 matrix of uint) 0:70 'r01' ( temp 1X2 matrix of uint) 0:70 transpose ( temp 1X2 matrix of uint) 0:70 'u2x1' ( temp 2X1 matrix of uint) 0:71 Sequence 0:71 move second child to first child ( temp 1X3 matrix of uint) 0:71 'r02' ( temp 1X3 matrix of uint) 0:71 transpose ( temp 1X3 matrix of uint) 0:71 'u3x1' ( temp 3X1 matrix of uint) 0:72 Sequence 0:72 move second child to first child ( temp 1X4 matrix of uint) 0:72 'r03' ( temp 1X4 matrix of uint) 0:72 transpose ( temp 1X4 matrix of uint) 0:72 'u4x1' ( temp 4X1 matrix of uint) 0:74 Sequence 0:74 move second child to first child ( temp 2X1 matrix of uint) 0:74 'r10' ( temp 2X1 matrix of uint) 0:74 transpose ( temp 2X1 matrix of uint) 0:74 'u1x2' ( temp 1X2 matrix of uint) 0:75 Sequence 0:75 move second child to first child ( temp 2X2 matrix of uint) 0:75 'r11' ( temp 2X2 matrix of uint) 0:75 transpose ( temp 2X2 matrix of uint) 0:75 'u2x2' ( temp 2X2 matrix of uint) 0:76 Sequence 0:76 move second child to first child ( temp 2X3 matrix of uint) 0:76 'r12' ( temp 2X3 matrix of uint) 0:76 transpose ( temp 2X3 matrix of uint) 0:76 'u3x2' ( temp 3X2 matrix of uint) 0:77 Sequence 0:77 move second child to first child ( temp 2X4 matrix of uint) 0:77 'r13' ( temp 2X4 matrix of uint) 0:77 transpose ( temp 2X4 matrix of uint) 0:77 'u4x2' ( temp 4X2 matrix of uint) 0:79 Sequence 0:79 move second child to first child ( temp 3X1 matrix of uint) 0:79 'r20' ( temp 3X1 matrix of uint) 0:79 transpose ( temp 3X1 matrix of uint) 0:79 'u1x3' ( temp 1X3 matrix of uint) 0:80 Sequence 0:80 move second child to first child ( temp 3X2 matrix of uint) 0:80 'r21' ( temp 3X2 matrix of uint) 0:80 transpose ( temp 3X2 matrix of uint) 0:80 'u2x3' ( temp 2X3 matrix of uint) 0:81 Sequence 0:81 move second child to first child ( temp 3X3 matrix of uint) 0:81 'r22' ( temp 3X3 matrix of uint) 0:81 transpose ( temp 3X3 matrix of uint) 0:81 'u3x3' ( temp 3X3 matrix of uint) 0:82 Sequence 0:82 move second child to first child ( temp 3X4 matrix of uint) 0:82 'r23' ( temp 3X4 matrix of uint) 0:82 transpose ( temp 3X4 matrix of uint) 0:82 'u4x3' ( temp 4X3 matrix of uint) 0:84 Sequence 0:84 move second child to first child ( temp 4X1 matrix of uint) 0:84 'r30' ( temp 4X1 matrix of uint) 0:84 transpose ( temp 4X1 matrix of uint) 0:84 'u1x4' ( temp 1X4 matrix of uint) 0:85 Sequence 0:85 move second child to first child ( temp 4X2 matrix of uint) 0:85 'r31' ( temp 4X2 matrix of uint) 0:85 transpose ( temp 4X2 matrix of uint) 0:85 'u2x4' ( temp 2X4 matrix of uint) 0:86 Sequence 0:86 move second child to first child ( temp 4X3 matrix of uint) 0:86 'r32' ( temp 4X3 matrix of uint) 0:86 transpose ( temp 4X3 matrix of uint) 0:86 'u3x4' ( temp 3X4 matrix of uint) 0:87 Sequence 0:87 move second child to first child ( temp 4X4 matrix of uint) 0:87 'r33' ( temp 4X4 matrix of uint) 0:87 transpose ( temp 4X4 matrix of uint) 0:87 'u4x4' ( temp 4X4 matrix of uint) 0:93 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:93 Function Parameters: 0:? Sequence 0:95 move second child to first child ( temp 4-component vector of float) 0:95 color: direct index for structure ( temp 4-component vector of float) 0:95 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:95 Constant: 0:95 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:96 Branch: Return with expression 0:96 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:93 Function Definition: main( ( temp void) 0:93 Function Parameters: 0:? Sequence 0:93 Sequence 0:93 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:93 color: direct index for structure ( temp 4-component vector of float) 0:93 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:93 Constant: 0:93 0 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: TestIntMatTypes( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:25 Sequence 0:25 move second child to first child ( temp 1X1 matrix of int) 0:25 'r00' ( temp 1X1 matrix of int) 0:25 transpose ( temp 1X1 matrix of int) 0:25 'i1x1' ( temp 1X1 matrix of int) 0:26 Sequence 0:26 move second child to first child ( temp 1X2 matrix of int) 0:26 'r01' ( temp 1X2 matrix of int) 0:26 transpose ( temp 1X2 matrix of int) 0:26 'i2x1' ( temp 2X1 matrix of int) 0:27 Sequence 0:27 move second child to first child ( temp 1X3 matrix of int) 0:27 'r02' ( temp 1X3 matrix of int) 0:27 transpose ( temp 1X3 matrix of int) 0:27 'i3x1' ( temp 3X1 matrix of int) 0:28 Sequence 0:28 move second child to first child ( temp 1X4 matrix of int) 0:28 'r03' ( temp 1X4 matrix of int) 0:28 transpose ( temp 1X4 matrix of int) 0:28 'i4x1' ( temp 4X1 matrix of int) 0:30 Sequence 0:30 move second child to first child ( temp 2X1 matrix of int) 0:30 'r10' ( temp 2X1 matrix of int) 0:30 transpose ( temp 2X1 matrix of int) 0:30 'i1x2' ( temp 1X2 matrix of int) 0:31 Sequence 0:31 move second child to first child ( temp 2X2 matrix of int) 0:31 'r11' ( temp 2X2 matrix of int) 0:31 transpose ( temp 2X2 matrix of int) 0:31 'i2x2' ( temp 2X2 matrix of int) 0:32 Sequence 0:32 move second child to first child ( temp 2X3 matrix of int) 0:32 'r12' ( temp 2X3 matrix of int) 0:32 transpose ( temp 2X3 matrix of int) 0:32 'i3x2' ( temp 3X2 matrix of int) 0:33 Sequence 0:33 move second child to first child ( temp 2X4 matrix of int) 0:33 'r13' ( temp 2X4 matrix of int) 0:33 transpose ( temp 2X4 matrix of int) 0:33 'i4x2' ( temp 4X2 matrix of int) 0:35 Sequence 0:35 move second child to first child ( temp 3X1 matrix of int) 0:35 'r20' ( temp 3X1 matrix of int) 0:35 transpose ( temp 3X1 matrix of int) 0:35 'i1x3' ( temp 1X3 matrix of int) 0:36 Sequence 0:36 move second child to first child ( temp 3X2 matrix of int) 0:36 'r21' ( temp 3X2 matrix of int) 0:36 transpose ( temp 3X2 matrix of int) 0:36 'i2x3' ( temp 2X3 matrix of int) 0:37 Sequence 0:37 move second child to first child ( temp 3X3 matrix of int) 0:37 'r22' ( temp 3X3 matrix of int) 0:37 transpose ( temp 3X3 matrix of int) 0:37 'i3x3' ( temp 3X3 matrix of int) 0:38 Sequence 0:38 move second child to first child ( temp 3X4 matrix of int) 0:38 'r23' ( temp 3X4 matrix of int) 0:38 transpose ( temp 3X4 matrix of int) 0:38 'i4x3' ( temp 4X3 matrix of int) 0:40 Sequence 0:40 move second child to first child ( temp 4X1 matrix of int) 0:40 'r30' ( temp 4X1 matrix of int) 0:40 transpose ( temp 4X1 matrix of int) 0:40 'i1x4' ( temp 1X4 matrix of int) 0:41 Sequence 0:41 move second child to first child ( temp 4X2 matrix of int) 0:41 'r31' ( temp 4X2 matrix of int) 0:41 transpose ( temp 4X2 matrix of int) 0:41 'i2x4' ( temp 2X4 matrix of int) 0:42 Sequence 0:42 move second child to first child ( temp 4X3 matrix of int) 0:42 'r32' ( temp 4X3 matrix of int) 0:42 transpose ( temp 4X3 matrix of int) 0:42 'i3x4' ( temp 3X4 matrix of int) 0:43 Sequence 0:43 move second child to first child ( temp 4X4 matrix of int) 0:43 'r33' ( temp 4X4 matrix of int) 0:43 transpose ( temp 4X4 matrix of int) 0:43 'i4x4' ( temp 4X4 matrix of int) 0:47 Function Definition: TestUintMatTypes( ( temp void) 0:47 Function Parameters: 0:? Sequence 0:69 Sequence 0:69 move second child to first child ( temp 1X1 matrix of uint) 0:69 'r00' ( temp 1X1 matrix of uint) 0:69 transpose ( temp 1X1 matrix of uint) 0:69 'u1x1' ( temp 1X1 matrix of uint) 0:70 Sequence 0:70 move second child to first child ( temp 1X2 matrix of uint) 0:70 'r01' ( temp 1X2 matrix of uint) 0:70 transpose ( temp 1X2 matrix of uint) 0:70 'u2x1' ( temp 2X1 matrix of uint) 0:71 Sequence 0:71 move second child to first child ( temp 1X3 matrix of uint) 0:71 'r02' ( temp 1X3 matrix of uint) 0:71 transpose ( temp 1X3 matrix of uint) 0:71 'u3x1' ( temp 3X1 matrix of uint) 0:72 Sequence 0:72 move second child to first child ( temp 1X4 matrix of uint) 0:72 'r03' ( temp 1X4 matrix of uint) 0:72 transpose ( temp 1X4 matrix of uint) 0:72 'u4x1' ( temp 4X1 matrix of uint) 0:74 Sequence 0:74 move second child to first child ( temp 2X1 matrix of uint) 0:74 'r10' ( temp 2X1 matrix of uint) 0:74 transpose ( temp 2X1 matrix of uint) 0:74 'u1x2' ( temp 1X2 matrix of uint) 0:75 Sequence 0:75 move second child to first child ( temp 2X2 matrix of uint) 0:75 'r11' ( temp 2X2 matrix of uint) 0:75 transpose ( temp 2X2 matrix of uint) 0:75 'u2x2' ( temp 2X2 matrix of uint) 0:76 Sequence 0:76 move second child to first child ( temp 2X3 matrix of uint) 0:76 'r12' ( temp 2X3 matrix of uint) 0:76 transpose ( temp 2X3 matrix of uint) 0:76 'u3x2' ( temp 3X2 matrix of uint) 0:77 Sequence 0:77 move second child to first child ( temp 2X4 matrix of uint) 0:77 'r13' ( temp 2X4 matrix of uint) 0:77 transpose ( temp 2X4 matrix of uint) 0:77 'u4x2' ( temp 4X2 matrix of uint) 0:79 Sequence 0:79 move second child to first child ( temp 3X1 matrix of uint) 0:79 'r20' ( temp 3X1 matrix of uint) 0:79 transpose ( temp 3X1 matrix of uint) 0:79 'u1x3' ( temp 1X3 matrix of uint) 0:80 Sequence 0:80 move second child to first child ( temp 3X2 matrix of uint) 0:80 'r21' ( temp 3X2 matrix of uint) 0:80 transpose ( temp 3X2 matrix of uint) 0:80 'u2x3' ( temp 2X3 matrix of uint) 0:81 Sequence 0:81 move second child to first child ( temp 3X3 matrix of uint) 0:81 'r22' ( temp 3X3 matrix of uint) 0:81 transpose ( temp 3X3 matrix of uint) 0:81 'u3x3' ( temp 3X3 matrix of uint) 0:82 Sequence 0:82 move second child to first child ( temp 3X4 matrix of uint) 0:82 'r23' ( temp 3X4 matrix of uint) 0:82 transpose ( temp 3X4 matrix of uint) 0:82 'u4x3' ( temp 4X3 matrix of uint) 0:84 Sequence 0:84 move second child to first child ( temp 4X1 matrix of uint) 0:84 'r30' ( temp 4X1 matrix of uint) 0:84 transpose ( temp 4X1 matrix of uint) 0:84 'u1x4' ( temp 1X4 matrix of uint) 0:85 Sequence 0:85 move second child to first child ( temp 4X2 matrix of uint) 0:85 'r31' ( temp 4X2 matrix of uint) 0:85 transpose ( temp 4X2 matrix of uint) 0:85 'u2x4' ( temp 2X4 matrix of uint) 0:86 Sequence 0:86 move second child to first child ( temp 4X3 matrix of uint) 0:86 'r32' ( temp 4X3 matrix of uint) 0:86 transpose ( temp 4X3 matrix of uint) 0:86 'u3x4' ( temp 3X4 matrix of uint) 0:87 Sequence 0:87 move second child to first child ( temp 4X4 matrix of uint) 0:87 'r33' ( temp 4X4 matrix of uint) 0:87 transpose ( temp 4X4 matrix of uint) 0:87 'u4x4' ( temp 4X4 matrix of uint) 0:93 Function Definition: @main( ( temp structure{ temp 4-component vector of float color}) 0:93 Function Parameters: 0:? Sequence 0:95 move second child to first child ( temp 4-component vector of float) 0:95 color: direct index for structure ( temp 4-component vector of float) 0:95 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:95 Constant: 0:95 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:96 Branch: Return with expression 0:96 'ps_output' ( temp structure{ temp 4-component vector of float color}) 0:93 Function Definition: main( ( temp void) 0:93 Function Parameters: 0:? Sequence 0:93 Sequence 0:93 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) 0:93 color: direct index for structure ( temp 4-component vector of float) 0:93 Function Call: @main( ( temp structure{ temp 4-component vector of float color}) 0:93 Constant: 0:93 0 (const int) 0:? Linker Objects 0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.matpack-1.frag.out000066400000000000000000000353101360464450000231050ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.matpack-pragma.frag.out000066400000000000000000000551641360464450000242250ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.matrixSwizzle.vert.out000066400000000000000000001035541360464450000242720ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.matrixindex.frag.out000066400000000000000000000441031360464450000236630ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.max.frag.out000066400000000000000000000144761360464450000221260ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.memberFunCall.frag.out000066400000000000000000000262121360464450000240440ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.mintypes.frag.out000066400000000000000000000272571360464450000232120ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.mip.negative.frag.out000066400000000000000000000043711360464450000237200ustar00rootroot00000000000000hlsl.mip.negative.frag ERROR: 0:5: '' : unterminated mips operator: ERROR: 1 compilation errors. No code generated. Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:4 Function Definition: @main( ( temp 4-component vector of float) 0:4 Function Parameters: 0:? Sequence 0:? textureFetch ( temp 4-component vector of float) 0:5 'g_tTex2df4' ( uniform texture2D) 0:? Constant: 0:? 3 (const uint) 0:? 4 (const uint) 0:5 Constant: 0:5 2 (const int) 0:7 Branch: Return with expression 0:7 Constant: 0:7 0.000000 0:7 0.000000 0:7 0.000000 0:7 0.000000 0:4 Function Definition: main( ( temp void) 0:4 Function Parameters: 0:? Sequence 0:4 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:4 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tTex2df4' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:4 Function Definition: @main( ( temp 4-component vector of float) 0:4 Function Parameters: 0:? Sequence 0:? textureFetch ( temp 4-component vector of float) 0:5 'g_tTex2df4' ( uniform texture2D) 0:? Constant: 0:? 3 (const uint) 0:? 4 (const uint) 0:5 Constant: 0:5 2 (const int) 0:7 Branch: Return with expression 0:7 Constant: 0:7 0.000000 0:7 0.000000 0:7 0.000000 0:7 0.000000 0:4 Function Definition: main( ( temp void) 0:4 Function Parameters: 0:? Sequence 0:4 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:4 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tTex2df4' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/hlsl.mip.negative2.frag.out000066400000000000000000000047241360464450000240040ustar00rootroot00000000000000hlsl.mip.negative2.frag ERROR: 0:5: 'r' : unexpected operator on texture type: uniform texture2D ERROR: 1 compilation errors. No code generated. Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:4 Function Definition: @main( ( temp 4-component vector of float) 0:4 Function Parameters: 0:? Sequence 0:5 direct index ( temp float) 0:5 textureFetch ( temp 4-component vector of float) 0:5 'g_tTex2df4' ( uniform texture2D) 0:5 Constant: 0:5 2 (const int) 0:5 Constant: 0:5 0 (const int) 0:? Constant: 0:? 3 (const uint) 0:? 4 (const uint) 0:7 Branch: Return with expression 0:7 Constant: 0:7 0.000000 0:7 0.000000 0:7 0.000000 0:7 0.000000 0:4 Function Definition: main( ( temp void) 0:4 Function Parameters: 0:? Sequence 0:4 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:4 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tTex2df4' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:4 Function Definition: @main( ( temp 4-component vector of float) 0:4 Function Parameters: 0:? Sequence 0:5 direct index ( temp float) 0:5 textureFetch ( temp 4-component vector of float) 0:5 'g_tTex2df4' ( uniform texture2D) 0:5 Constant: 0:5 2 (const int) 0:5 Constant: 0:5 0 (const int) 0:? Constant: 0:? 3 (const uint) 0:? 4 (const uint) 0:7 Branch: Return with expression 0:7 Constant: 0:7 0.000000 0:7 0.000000 0:7 0.000000 0:7 0.000000 0:4 Function Definition: main( ( temp void) 0:4 Function Parameters: 0:? Sequence 0:4 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:4 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tTex2df4' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/hlsl.mip.operator.frag.out000066400000000000000000000222101360464450000237410ustar00rootroot00000000000000hlsl.mip.operator.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: @main( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence 0:13 Branch: Return with expression 0:9 add ( temp 4-component vector of float) 0:6 add ( temp 4-component vector of float) 0:? textureFetch ( temp 4-component vector of float) 0:6 'g_tTex2df4' ( uniform texture2D) 0:? Constant: 0:? 3 (const uint) 0:? 4 (const uint) 0:6 Constant: 0:6 2 (const int) 0:? textureFetch ( temp 4-component vector of float) 0:9 'g_tTex2df4a' ( uniform texture2DArray) 0:? Constant: 0:? 6 (const uint) 0:? 7 (const uint) 0:? 8 (const uint) 0:9 Constant: 0:9 5 (const uint) 0:13 textureFetch ( temp 4-component vector of float) 0:13 'g_tTex2df4' ( uniform texture2D) 0:13 Convert float to uint ( temp 2-component vector of uint) 0:13 vector swizzle ( temp 2-component vector of float) 0:? textureFetch ( temp 4-component vector of float) 0:13 'g_tTex2df4' ( uniform texture2D) 0:? Constant: 0:? 14 (const uint) 0:? 15 (const uint) 0:13 Constant: 0:13 13 (const int) 0:13 Sequence 0:13 Constant: 0:13 0 (const int) 0:13 Constant: 0:13 1 (const int) 0:13 Convert float to uint ( temp uint) 0:13 direct index ( temp float) 0:? textureFetch ( temp 4-component vector of float) 0:13 'g_tTex2df4' ( uniform texture2D) 0:? Constant: 0:? 10 (const uint) 0:? 11 (const uint) 0:13 Constant: 0:13 9 (const int) 0:13 Constant: 0:13 0 (const int) 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:5 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: @main( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence 0:13 Branch: Return with expression 0:9 add ( temp 4-component vector of float) 0:6 add ( temp 4-component vector of float) 0:? textureFetch ( temp 4-component vector of float) 0:6 'g_tTex2df4' ( uniform texture2D) 0:? Constant: 0:? 3 (const uint) 0:? 4 (const uint) 0:6 Constant: 0:6 2 (const int) 0:? textureFetch ( temp 4-component vector of float) 0:9 'g_tTex2df4a' ( uniform texture2DArray) 0:? Constant: 0:? 6 (const uint) 0:? 7 (const uint) 0:? 8 (const uint) 0:9 Constant: 0:9 5 (const uint) 0:13 textureFetch ( temp 4-component vector of float) 0:13 'g_tTex2df4' ( uniform texture2D) 0:13 Convert float to uint ( temp 2-component vector of uint) 0:13 vector swizzle ( temp 2-component vector of float) 0:? textureFetch ( temp 4-component vector of float) 0:13 'g_tTex2df4' ( uniform texture2D) 0:? Constant: 0:? 14 (const uint) 0:? 15 (const uint) 0:13 Constant: 0:13 13 (const int) 0:13 Sequence 0:13 Constant: 0:13 0 (const int) 0:13 Constant: 0:13 1 (const int) 0:13 Convert float to uint ( temp uint) 0:13 direct index ( temp float) 0:? textureFetch ( temp 4-component vector of float) 0:13 'g_tTex2df4' ( uniform texture2D) 0:? Constant: 0:? 10 (const uint) 0:? 11 (const uint) 0:13 Constant: 0:13 9 (const int) 0:13 Constant: 0:13 0 (const int) 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:5 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 glslang-8.13.3559/Test/baseResults/hlsl.mul-truncate.frag.out000066400000000000000000001575571360464450000237710ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.multiDescriptorSet.frag.out000066400000000000000000000216011360464450000251720ustar00rootroot00000000000000hlsl.multiDescriptorSet.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.multiEntry.vert.out000066400000000000000000000144171360464450000235510ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.multiReturn.frag.out000066400000000000000000000145041360464450000236630ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.namespace.frag.out000066400000000000000000000202421360464450000232610ustar00rootroot00000000000000hlsl.namespace.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: N1::getVec( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence 0:5 Branch: Return with expression 0:5 'v1' ( global 4-component vector of float) 0:10 Function Definition: N2::getVec( ( temp 4-component vector of float) 0:10 Function Parameters: 0:? Sequence 0:10 Branch: Return with expression 0:10 'v2' ( global 4-component vector of float) 0:12 Function Definition: N2::N3::getVec( ( temp 4-component vector of float) 0:12 Function Parameters: 0:? Sequence 0:12 Branch: Return with expression 0:12 'v2' ( global 4-component vector of float) 0:15 Function Definition: N2::N3::C1::getVec( ( temp 4-component vector of float) 0:15 Function Parameters: 0:15 '@this' ( temp structure{}) 0:? Sequence 0:15 Branch: Return with expression 0:15 'v2' ( global 4-component vector of float) 0:21 Function Definition: @main( ( temp 4-component vector of float) 0:21 Function Parameters: 0:? Sequence 0:22 Branch: Return with expression 0:22 add ( temp 4-component vector of float) 0:22 add ( temp 4-component vector of float) 0:22 add ( temp 4-component vector of float) 0:22 Function Call: N1::getVec( ( temp 4-component vector of float) 0:22 Function Call: N2::getVec( ( temp 4-component vector of float) 0:22 Function Call: N2::N3::getVec( ( temp 4-component vector of float) 0:22 vector-scale ( temp 4-component vector of float) 0:22 Function Call: N2::N3::C1::getVec( ( temp 4-component vector of float) 0:22 'N2::gf' ( global float) 0:21 Function Definition: main( ( temp void) 0:21 Function Parameters: 0:? Sequence 0:21 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:21 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'v1' ( global 4-component vector of float) 0:? 'v2' ( global 4-component vector of float) 0:? 'N2::gf' ( global float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: N1::getVec( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence 0:5 Branch: Return with expression 0:5 'v1' ( global 4-component vector of float) 0:10 Function Definition: N2::getVec( ( temp 4-component vector of float) 0:10 Function Parameters: 0:? Sequence 0:10 Branch: Return with expression 0:10 'v2' ( global 4-component vector of float) 0:12 Function Definition: N2::N3::getVec( ( temp 4-component vector of float) 0:12 Function Parameters: 0:? Sequence 0:12 Branch: Return with expression 0:12 'v2' ( global 4-component vector of float) 0:15 Function Definition: N2::N3::C1::getVec( ( temp 4-component vector of float) 0:15 Function Parameters: 0:15 '@this' ( temp structure{}) 0:? Sequence 0:15 Branch: Return with expression 0:15 'v2' ( global 4-component vector of float) 0:21 Function Definition: @main( ( temp 4-component vector of float) 0:21 Function Parameters: 0:? Sequence 0:22 Branch: Return with expression 0:22 add ( temp 4-component vector of float) 0:22 add ( temp 4-component vector of float) 0:22 add ( temp 4-component vector of float) 0:22 Function Call: N1::getVec( ( temp 4-component vector of float) 0:22 Function Call: N2::getVec( ( temp 4-component vector of float) 0:22 Function Call: N2::N3::getVec( ( temp 4-component vector of float) 0:22 vector-scale ( temp 4-component vector of float) 0:22 Function Call: N2::N3::C1::getVec( ( temp 4-component vector of float) 0:22 'N2::gf' ( global float) 0:21 Function Definition: main( ( temp void) 0:21 Function Parameters: 0:? Sequence 0:21 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:21 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'v1' ( global 4-component vector of float) 0:? 'v2' ( global 4-component vector of float) 0:? 'N2::gf' ( global float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 54 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 52 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 9 "N1::getVec(" Name 11 "N2::getVec(" Name 13 "N2::N3::getVec(" Name 15 "C1" Name 19 "N2::N3::C1::getVec(" Name 18 "@this" Name 21 "@main(" Name 24 "v1" Name 28 "v2" Name 45 "N2::gf" Name 52 "@entryPointOutput" Decorate 52(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeFunction 7(fvec4) 15(C1): TypeStruct 16: TypePointer Function 15(C1) 17: TypeFunction 7(fvec4) 16(ptr) 23: TypePointer Private 7(fvec4) 24(v1): 23(ptr) Variable Private 28(v2): 23(ptr) Variable Private 44: TypePointer Private 6(float) 45(N2::gf): 44(ptr) Variable Private 51: TypePointer Output 7(fvec4) 52(@entryPointOutput): 51(ptr) Variable Output 4(main): 2 Function None 3 5: Label 53: 7(fvec4) FunctionCall 21(@main() Store 52(@entryPointOutput) 53 Return FunctionEnd 9(N1::getVec(): 7(fvec4) Function None 8 10: Label 25: 7(fvec4) Load 24(v1) ReturnValue 25 FunctionEnd 11(N2::getVec(): 7(fvec4) Function None 8 12: Label 29: 7(fvec4) Load 28(v2) ReturnValue 29 FunctionEnd 13(N2::N3::getVec(): 7(fvec4) Function None 8 14: Label 32: 7(fvec4) Load 28(v2) ReturnValue 32 FunctionEnd 19(N2::N3::C1::getVec(): 7(fvec4) Function None 17 18(@this): 16(ptr) FunctionParameter 20: Label 35: 7(fvec4) Load 28(v2) ReturnValue 35 FunctionEnd 21(@main(): 7(fvec4) Function None 8 22: Label 38: 7(fvec4) FunctionCall 9(N1::getVec() 39: 7(fvec4) FunctionCall 11(N2::getVec() 40: 7(fvec4) FAdd 38 39 41: 7(fvec4) FunctionCall 13(N2::N3::getVec() 42: 7(fvec4) FAdd 40 41 43: 7(fvec4) FunctionCall 19(N2::N3::C1::getVec() 46: 6(float) Load 45(N2::gf) 47: 7(fvec4) VectorTimesScalar 43 46 48: 7(fvec4) FAdd 42 47 ReturnValue 48 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.noSemantic.functionality1.comp.out000066400000000000000000000061441360464450000264210ustar00rootroot00000000000000hlsl.noSemantic.functionality1.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.nonint-index.frag.out000066400000000000000000000133671360464450000237510ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out000066400000000000000000000500421360464450000261660ustar00rootroot00000000000000hlsl.nonstaticMemberFunction.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence 0:1 move second child to first child ( temp 2-component vector of float) 0:1 'i' ( global 2-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:5 Function Definition: type1::setmem(vf4; ( temp void) 0:5 Function Parameters: 0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:5 'm' ( in 4-component vector of float) 0:? Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:5 memVar: direct index for structure ( temp 4-component vector of float) 0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:5 Constant: 0:5 0 (const uint) 0:5 'm' ( in 4-component vector of float) 0:6 Function Definition: type1::seti(i1; ( temp void) 0:6 Function Parameters: 0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:6 'si' ( in int) 0:? Sequence 0:6 move second child to first child ( temp int) 0:6 i: direct index for structure ( temp int) 0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:6 Constant: 0:6 1 (const uint) 0:6 'si' ( in int) 0:9 Function Definition: type1::memFun(vf4; ( temp 4-component vector of float) 0:9 Function Parameters: 0:9 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:9 'a' ( in 4-component vector of float) 0:? Sequence 0:10 Branch: Return with expression 0:10 add ( temp 4-component vector of float) 0:10 vector-scale ( temp 4-component vector of float) 0:10 Convert int to float ( temp float) 0:10 i: direct index for structure ( temp int) 0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:10 Constant: 0:10 1 (const uint) 0:10 'a' ( in 4-component vector of float) 0:10 memVar: direct index for structure ( temp 4-component vector of float) 0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:10 Constant: 0:10 0 (const uint) 0:13 Function Definition: type1::memFun(i1; ( temp int) 0:13 Function Parameters: 0:13 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:13 'a' ( in int) 0:? Sequence 0:14 Branch: Return with expression 0:14 Convert float to int ( temp int) 0:14 subtract ( temp float) 0:14 Convert int to float ( temp float) 0:14 add ( temp int) 0:14 i: direct index for structure ( temp int) 0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:14 Constant: 0:14 1 (const uint) 0:14 'a' ( in int) 0:14 direct index ( temp float) 0:14 memVar: direct index for structure ( temp 4-component vector of float) 0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:14 Constant: 0:14 0 (const uint) 0:14 Constant: 0:14 2 (const int) 0:19 Sequence 0:19 move second child to first child ( temp 2-component vector of float) 0:19 'j' ( global 2-component vector of float) 0:19 'i' ( global 2-component vector of float) 0:23 Function Definition: type2::memFun( ( temp 2-component vector of float) 0:23 Function Parameters: 0:23 '@this' ( temp structure{}) 0:? Sequence 0:23 Branch: Return with expression 0:23 'i' ( global 2-component vector of float) 0:27 Function Definition: @main( ( temp 4-component vector of float) 0:27 Function Parameters: 0:? Sequence 0:29 Function Call: type1::setmem(vf4; ( temp void) 0:29 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:30 Function Call: type1::seti(i1; ( temp void) 0:30 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:30 Constant: 0:30 17 (const int) 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'f4' ( temp 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:32 add second child into first child ( temp 4-component vector of float) 0:32 'f4' ( temp 4-component vector of float) 0:32 Function Call: type1::memFun(vf4; ( temp 4-component vector of float) 0:32 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:? Constant: 0:? 5.000000 0:? 5.000000 0:? 5.000000 0:? 5.000000 0:33 add second child into first child ( temp 4-component vector of float) 0:33 'f4' ( temp 4-component vector of float) 0:33 Convert int to float ( temp float) 0:33 Function Call: type1::memFun(i1; ( temp int) 0:33 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:33 Constant: 0:33 7 (const int) 0:34 Branch: Return with expression 0:34 'f4' ( temp 4-component vector of float) 0:27 Function Definition: main( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:27 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'i' ( global 2-component vector of float) 0:? 'j' ( global 2-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence 0:1 move second child to first child ( temp 2-component vector of float) 0:1 'i' ( global 2-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:5 Function Definition: type1::setmem(vf4; ( temp void) 0:5 Function Parameters: 0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:5 'm' ( in 4-component vector of float) 0:? Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:5 memVar: direct index for structure ( temp 4-component vector of float) 0:5 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:5 Constant: 0:5 0 (const uint) 0:5 'm' ( in 4-component vector of float) 0:6 Function Definition: type1::seti(i1; ( temp void) 0:6 Function Parameters: 0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:6 'si' ( in int) 0:? Sequence 0:6 move second child to first child ( temp int) 0:6 i: direct index for structure ( temp int) 0:6 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:6 Constant: 0:6 1 (const uint) 0:6 'si' ( in int) 0:9 Function Definition: type1::memFun(vf4; ( temp 4-component vector of float) 0:9 Function Parameters: 0:9 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:9 'a' ( in 4-component vector of float) 0:? Sequence 0:10 Branch: Return with expression 0:10 add ( temp 4-component vector of float) 0:10 vector-scale ( temp 4-component vector of float) 0:10 Convert int to float ( temp float) 0:10 i: direct index for structure ( temp int) 0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:10 Constant: 0:10 1 (const uint) 0:10 'a' ( in 4-component vector of float) 0:10 memVar: direct index for structure ( temp 4-component vector of float) 0:10 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:10 Constant: 0:10 0 (const uint) 0:13 Function Definition: type1::memFun(i1; ( temp int) 0:13 Function Parameters: 0:13 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:13 'a' ( in int) 0:? Sequence 0:14 Branch: Return with expression 0:14 Convert float to int ( temp int) 0:14 subtract ( temp float) 0:14 Convert int to float ( temp float) 0:14 add ( temp int) 0:14 i: direct index for structure ( temp int) 0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:14 Constant: 0:14 1 (const uint) 0:14 'a' ( in int) 0:14 direct index ( temp float) 0:14 memVar: direct index for structure ( temp 4-component vector of float) 0:14 '@this' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:14 Constant: 0:14 0 (const uint) 0:14 Constant: 0:14 2 (const int) 0:19 Sequence 0:19 move second child to first child ( temp 2-component vector of float) 0:19 'j' ( global 2-component vector of float) 0:19 'i' ( global 2-component vector of float) 0:23 Function Definition: type2::memFun( ( temp 2-component vector of float) 0:23 Function Parameters: 0:23 '@this' ( temp structure{}) 0:? Sequence 0:23 Branch: Return with expression 0:23 'i' ( global 2-component vector of float) 0:27 Function Definition: @main( ( temp 4-component vector of float) 0:27 Function Parameters: 0:? Sequence 0:29 Function Call: type1::setmem(vf4; ( temp void) 0:29 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:30 Function Call: type1::seti(i1; ( temp void) 0:30 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:30 Constant: 0:30 17 (const int) 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'f4' ( temp 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:32 add second child into first child ( temp 4-component vector of float) 0:32 'f4' ( temp 4-component vector of float) 0:32 Function Call: type1::memFun(vf4; ( temp 4-component vector of float) 0:32 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:? Constant: 0:? 5.000000 0:? 5.000000 0:? 5.000000 0:? 5.000000 0:33 add second child into first child ( temp 4-component vector of float) 0:33 'f4' ( temp 4-component vector of float) 0:33 Convert int to float ( temp float) 0:33 Function Call: type1::memFun(i1; ( temp int) 0:33 'test' ( temp structure{ temp 4-component vector of float memVar, temp int i}) 0:33 Constant: 0:33 7 (const int) 0:34 Branch: Return with expression 0:34 'f4' ( temp 4-component vector of float) 0:27 Function Definition: main( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:27 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'i' ( global 2-component vector of float) 0:? 'j' ( global 2-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.numericsuffixes.frag.out000066400000000000000000000270211360464450000245460ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.numthreads.comp.out000066400000000000000000000074331360464450000235250ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.opaque-type-bug.frag.out000066400000000000000000000106571360464450000243620ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.overload.frag.out000066400000000000000000002164211360464450000231460ustar00rootroot00000000000000hlsl.overload.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:2 Function Definition: foo1(d1;b1; ( temp void) 0:2 Function Parameters: 0:2 'a' ( in double) 0:2 'b' ( in bool) 0:3 Function Definition: foo1(d1;u1; ( temp void) 0:3 Function Parameters: 0:3 'a' ( in double) 0:3 'b' ( in uint) 0:4 Function Definition: foo1(d1;i1; ( temp void) 0:4 Function Parameters: 0:4 'a' ( in double) 0:4 'b' ( in int) 0:5 Function Definition: foo1(d1;f1; ( temp void) 0:5 Function Parameters: 0:5 'a' ( in double) 0:5 'b' ( in float) 0:6 Function Definition: foo1(d1;d1; ( temp void) 0:6 Function Parameters: 0:6 'a' ( in double) 0:6 'b' ( in double) 0:9 Function Definition: foo2(i1;b1; ( temp void) 0:9 Function Parameters: 0:9 'a' ( in int) 0:9 'b' ( in bool) 0:10 Function Definition: foo2(i1;u1; ( temp void) 0:10 Function Parameters: 0:10 'a' ( in int) 0:10 'b' ( in uint) 0:11 Function Definition: foo2(i1;i1; ( temp void) 0:11 Function Parameters: 0:11 'a' ( in int) 0:11 'b' ( in int) 0:12 Function Definition: foo2(i1;f1; ( temp void) 0:12 Function Parameters: 0:12 'a' ( in int) 0:12 'b' ( in float) 0:13 Function Definition: foo2(i1;d1; ( temp void) 0:13 Function Parameters: 0:13 'a' ( in int) 0:13 'b' ( in double) 0:16 Function Definition: foo3(b1; ( temp void) 0:16 Function Parameters: 0:16 'b' ( in bool) 0:17 Function Definition: foo4(u1; ( temp void) 0:17 Function Parameters: 0:17 'b' ( in uint) 0:18 Function Definition: foo5(i1; ( temp void) 0:18 Function Parameters: 0:18 'b' ( in int) 0:19 Function Definition: foo6(f1; ( temp void) 0:19 Function Parameters: 0:19 'b' ( in float) 0:20 Function Definition: foo7(d1; ( temp void) 0:20 Function Parameters: 0:20 'b' ( in double) 0:23 Function Definition: foo8(f1; ( temp void) 0:23 Function Parameters: 0:23 '' ( in float) 0:24 Function Definition: foo8(d1; ( temp void) 0:24 Function Parameters: 0:24 '' ( in double) 0:25 Function Definition: foo9(i1; ( temp void) 0:25 Function Parameters: 0:25 '' ( in int) 0:26 Function Definition: foo9(u1; ( temp void) 0:26 Function Parameters: 0:26 '' ( in uint) 0:27 Function Definition: foo10(b1; ( temp void) 0:27 Function Parameters: 0:27 '' ( in bool) 0:28 Function Definition: foo10(i1; ( temp void) 0:28 Function Parameters: 0:28 '' ( in int) 0:31 Function Definition: foo11(vf3; ( temp void) 0:31 Function Parameters: 0:31 '' ( in 3-component vector of float) 0:32 Function Definition: foo11(d1; ( temp void) 0:32 Function Parameters: 0:32 '' ( in double) 0:33 Function Definition: foo11(vi3; ( temp void) 0:33 Function Parameters: 0:33 '' ( in 3-component vector of int) 0:34 Function Definition: foo11(u1; ( temp void) 0:34 Function Parameters: 0:34 '' ( in uint) 0:35 Function Definition: foo12(vf1; ( temp void) 0:35 Function Parameters: 0:35 '' ( in 1-component vector of float) 0:36 Function Definition: foo12(vd3; ( temp void) 0:36 Function Parameters: 0:36 '' ( in 3-component vector of double) 0:37 Function Definition: foo16(u1; ( temp void) 0:37 Function Parameters: 0:37 '' ( in uint) 0:38 Function Definition: foo16(vu2; ( temp void) 0:38 Function Parameters: 0:38 '' ( in 2-component vector of uint) 0:41 Function Definition: foo13(vf3; ( temp void) 0:41 Function Parameters: 0:41 '' ( in 3-component vector of float) 0:42 Function Definition: foo14(vi1; ( temp void) 0:42 Function Parameters: 0:42 '' ( in 1-component vector of int) 0:43 Function Definition: foo15(vb1; ( temp void) 0:43 Function Parameters: 0:43 '' ( in 1-component vector of bool) 0:46 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:46 Function Parameters: 0:46 'input' ( in 4-component vector of float) 0:? Sequence 0:53 Function Call: foo1(d1;b1; ( temp void) 0:53 'd' ( temp double) 0:53 'b' ( temp bool) 0:54 Function Call: foo1(d1;d1; ( temp void) 0:54 'd' ( temp double) 0:54 'd' ( temp double) 0:55 Function Call: foo1(d1;u1; ( temp void) 0:55 'd' ( temp double) 0:55 'u' ( temp uint) 0:56 Function Call: foo1(d1;i1; ( temp void) 0:56 'd' ( temp double) 0:56 'i' ( temp int) 0:57 Function Call: foo1(d1;f1; ( temp void) 0:57 'd' ( temp double) 0:57 'f' ( temp float) 0:59 Function Call: foo1(d1;b1; ( temp void) 0:59 Convert float to double ( temp double) 0:59 'f' ( temp float) 0:59 'b' ( temp bool) 0:60 Function Call: foo1(d1;d1; ( temp void) 0:60 Convert float to double ( temp double) 0:60 'f' ( temp float) 0:60 'd' ( temp double) 0:61 Function Call: foo1(d1;u1; ( temp void) 0:61 Convert float to double ( temp double) 0:61 'f' ( temp float) 0:61 'u' ( temp uint) 0:62 Function Call: foo1(d1;i1; ( temp void) 0:62 Convert float to double ( temp double) 0:62 'f' ( temp float) 0:62 'i' ( temp int) 0:63 Function Call: foo1(d1;f1; ( temp void) 0:63 Convert float to double ( temp double) 0:63 'f' ( temp float) 0:63 'f' ( temp float) 0:65 Function Call: foo1(d1;b1; ( temp void) 0:65 Convert uint to double ( temp double) 0:65 'u' ( temp uint) 0:65 'b' ( temp bool) 0:66 Function Call: foo1(d1;d1; ( temp void) 0:66 Convert uint to double ( temp double) 0:66 'u' ( temp uint) 0:66 'd' ( temp double) 0:67 Function Call: foo1(d1;u1; ( temp void) 0:67 Convert uint to double ( temp double) 0:67 'u' ( temp uint) 0:67 'u' ( temp uint) 0:68 Function Call: foo1(d1;i1; ( temp void) 0:68 Convert uint to double ( temp double) 0:68 'u' ( temp uint) 0:68 'i' ( temp int) 0:69 Function Call: foo1(d1;f1; ( temp void) 0:69 Convert uint to double ( temp double) 0:69 'u' ( temp uint) 0:69 'f' ( temp float) 0:71 Function Call: foo1(d1;b1; ( temp void) 0:71 Convert int to double ( temp double) 0:71 'i' ( temp int) 0:71 'b' ( temp bool) 0:72 Function Call: foo1(d1;d1; ( temp void) 0:72 Convert int to double ( temp double) 0:72 'i' ( temp int) 0:72 'd' ( temp double) 0:73 Function Call: foo1(d1;u1; ( temp void) 0:73 Convert int to double ( temp double) 0:73 'i' ( temp int) 0:73 'u' ( temp uint) 0:74 Function Call: foo1(d1;i1; ( temp void) 0:74 Convert int to double ( temp double) 0:74 'i' ( temp int) 0:74 'i' ( temp int) 0:75 Function Call: foo1(d1;f1; ( temp void) 0:75 Convert int to double ( temp double) 0:75 'i' ( temp int) 0:75 'f' ( temp float) 0:77 Function Call: foo2(i1;b1; ( temp void) 0:77 Convert uint to int ( temp int) 0:77 'u' ( temp uint) 0:77 'b' ( temp bool) 0:78 Function Call: foo2(i1;d1; ( temp void) 0:78 Convert uint to int ( temp int) 0:78 'u' ( temp uint) 0:78 'd' ( temp double) 0:79 Function Call: foo2(i1;u1; ( temp void) 0:79 Convert uint to int ( temp int) 0:79 'u' ( temp uint) 0:79 'u' ( temp uint) 0:80 Function Call: foo2(i1;i1; ( temp void) 0:80 Convert uint to int ( temp int) 0:80 'u' ( temp uint) 0:80 'i' ( temp int) 0:81 Function Call: foo2(i1;f1; ( temp void) 0:81 Convert uint to int ( temp int) 0:81 'u' ( temp uint) 0:81 'f' ( temp float) 0:83 Function Call: foo2(i1;b1; ( temp void) 0:83 'i' ( temp int) 0:83 'b' ( temp bool) 0:84 Function Call: foo2(i1;d1; ( temp void) 0:84 'i' ( temp int) 0:84 'd' ( temp double) 0:85 Function Call: foo2(i1;u1; ( temp void) 0:85 'i' ( temp int) 0:85 'u' ( temp uint) 0:86 Function Call: foo2(i1;i1; ( temp void) 0:86 'i' ( temp int) 0:86 'i' ( temp int) 0:87 Function Call: foo2(i1;f1; ( temp void) 0:87 'i' ( temp int) 0:87 'f' ( temp float) 0:89 Function Call: foo3(b1; ( temp void) 0:89 'b' ( temp bool) 0:90 Function Call: foo3(b1; ( temp void) 0:90 Convert double to bool ( temp bool) 0:90 'd' ( temp double) 0:91 Function Call: foo3(b1; ( temp void) 0:91 Convert uint to bool ( temp bool) 0:91 'u' ( temp uint) 0:92 Function Call: foo3(b1; ( temp void) 0:92 Convert int to bool ( temp bool) 0:92 'i' ( temp int) 0:93 Function Call: foo3(b1; ( temp void) 0:93 Convert float to bool ( temp bool) 0:93 'f' ( temp float) 0:95 Function Call: foo4(u1; ( temp void) 0:95 Convert bool to uint ( temp uint) 0:95 'b' ( temp bool) 0:96 Function Call: foo4(u1; ( temp void) 0:96 Convert double to uint ( temp uint) 0:96 'd' ( temp double) 0:97 Function Call: foo4(u1; ( temp void) 0:97 'u' ( temp uint) 0:98 Function Call: foo4(u1; ( temp void) 0:98 Convert int to uint ( temp uint) 0:98 'i' ( temp int) 0:99 Function Call: foo4(u1; ( temp void) 0:99 Convert float to uint ( temp uint) 0:99 'f' ( temp float) 0:101 Function Call: foo5(i1; ( temp void) 0:101 Convert bool to int ( temp int) 0:101 'b' ( temp bool) 0:102 Function Call: foo5(i1; ( temp void) 0:102 Convert double to int ( temp int) 0:102 'd' ( temp double) 0:103 Function Call: foo5(i1; ( temp void) 0:103 Convert uint to int ( temp int) 0:103 'u' ( temp uint) 0:104 Function Call: foo5(i1; ( temp void) 0:104 'i' ( temp int) 0:105 Function Call: foo5(i1; ( temp void) 0:105 Convert float to int ( temp int) 0:105 'f' ( temp float) 0:107 Function Call: foo6(f1; ( temp void) 0:107 Convert bool to float ( temp float) 0:107 'b' ( temp bool) 0:108 Function Call: foo6(f1; ( temp void) 0:108 Convert double to float ( temp float) 0:108 'd' ( temp double) 0:109 Function Call: foo6(f1; ( temp void) 0:109 Convert uint to float ( temp float) 0:109 'u' ( temp uint) 0:110 Function Call: foo6(f1; ( temp void) 0:110 Convert int to float ( temp float) 0:110 'i' ( temp int) 0:111 Function Call: foo6(f1; ( temp void) 0:111 'f' ( temp float) 0:113 Function Call: foo7(d1; ( temp void) 0:113 Convert bool to double ( temp double) 0:113 'b' ( temp bool) 0:114 Function Call: foo7(d1; ( temp void) 0:114 'd' ( temp double) 0:115 Function Call: foo7(d1; ( temp void) 0:115 Convert uint to double ( temp double) 0:115 'u' ( temp uint) 0:116 Function Call: foo7(d1; ( temp void) 0:116 Convert int to double ( temp double) 0:116 'i' ( temp int) 0:117 Function Call: foo7(d1; ( temp void) 0:117 Convert float to double ( temp double) 0:117 'f' ( temp float) 0:119 Function Call: foo8(f1; ( temp void) 0:119 Convert bool to float ( temp float) 0:119 'b' ( temp bool) 0:120 Function Call: foo8(f1; ( temp void) 0:120 Convert uint to float ( temp float) 0:120 'u' ( temp uint) 0:121 Function Call: foo8(f1; ( temp void) 0:121 Convert int to float ( temp float) 0:121 'i' ( temp int) 0:123 Function Call: foo9(i1; ( temp void) 0:123 Convert bool to int ( temp int) 0:123 'b' ( temp bool) 0:124 Function Call: foo9(u1; ( temp void) 0:124 Convert float to uint ( temp uint) 0:124 'f' ( temp float) 0:125 Function Call: foo9(u1; ( temp void) 0:125 Convert double to uint ( temp uint) 0:125 'd' ( temp double) 0:127 Function Call: foo10(i1; ( temp void) 0:127 Convert uint to int ( temp int) 0:127 'u' ( temp uint) 0:128 Function Call: foo10(i1; ( temp void) 0:128 Convert float to int ( temp int) 0:128 'f' ( temp float) 0:129 Function Call: foo10(i1; ( temp void) 0:129 Convert double to int ( temp int) 0:129 'd' ( temp double) 0:131 Function Call: foo11(u1; ( temp void) 0:131 Convert bool to uint ( temp uint) 0:131 'b' ( temp bool) 0:132 Function Call: foo11(d1; ( temp void) 0:132 Convert float to double ( temp double) 0:132 'f' ( temp float) 0:133 Function Call: foo12(vd3; ( temp void) 0:133 Convert float to double ( temp 3-component vector of double) 0:133 Construct vec3 ( temp 3-component vector of float) 0:133 'f' ( temp float) 0:134 Function Call: foo16(vu2; ( temp void) 0:? Convert int to uint ( temp 2-component vector of uint) 0:? Construct ivec2 ( temp 2-component vector of int) 0:134 'i' ( temp int) 0:134 'i' ( temp int) 0:136 Function Call: foo13(vf3; ( temp void) 0:136 Construct vec3 ( in 3-component vector of float) 0:136 'f' ( temp float) 0:137 Function Call: foo14(vi1; ( temp void) 0:137 Construct int ( in 1-component vector of int) 0:137 Construct ivec4 ( temp 4-component vector of int) 0:137 'i' ( temp int) 0:138 Function Call: foo15(vb1; ( temp void) 0:138 Construct bool ( in 1-component vector of bool) 0:138 'b' ( temp bool) 0:139 Function Call: foo15(vb1; ( temp void) 0:139 Construct bool ( in 1-component vector of bool) 0:139 Construct bvec3 ( temp 3-component vector of bool) 0:139 'b' ( temp bool) 0:141 Branch: Return with expression 0:141 'input' ( in 4-component vector of float) 0:46 Function Definition: PixelShaderFunction( ( temp void) 0:46 Function Parameters: 0:? Sequence 0:46 move second child to first child ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) 0:46 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:46 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:2 Function Definition: foo1(d1;b1; ( temp void) 0:2 Function Parameters: 0:2 'a' ( in double) 0:2 'b' ( in bool) 0:3 Function Definition: foo1(d1;u1; ( temp void) 0:3 Function Parameters: 0:3 'a' ( in double) 0:3 'b' ( in uint) 0:4 Function Definition: foo1(d1;i1; ( temp void) 0:4 Function Parameters: 0:4 'a' ( in double) 0:4 'b' ( in int) 0:5 Function Definition: foo1(d1;f1; ( temp void) 0:5 Function Parameters: 0:5 'a' ( in double) 0:5 'b' ( in float) 0:6 Function Definition: foo1(d1;d1; ( temp void) 0:6 Function Parameters: 0:6 'a' ( in double) 0:6 'b' ( in double) 0:9 Function Definition: foo2(i1;b1; ( temp void) 0:9 Function Parameters: 0:9 'a' ( in int) 0:9 'b' ( in bool) 0:10 Function Definition: foo2(i1;u1; ( temp void) 0:10 Function Parameters: 0:10 'a' ( in int) 0:10 'b' ( in uint) 0:11 Function Definition: foo2(i1;i1; ( temp void) 0:11 Function Parameters: 0:11 'a' ( in int) 0:11 'b' ( in int) 0:12 Function Definition: foo2(i1;f1; ( temp void) 0:12 Function Parameters: 0:12 'a' ( in int) 0:12 'b' ( in float) 0:13 Function Definition: foo2(i1;d1; ( temp void) 0:13 Function Parameters: 0:13 'a' ( in int) 0:13 'b' ( in double) 0:16 Function Definition: foo3(b1; ( temp void) 0:16 Function Parameters: 0:16 'b' ( in bool) 0:17 Function Definition: foo4(u1; ( temp void) 0:17 Function Parameters: 0:17 'b' ( in uint) 0:18 Function Definition: foo5(i1; ( temp void) 0:18 Function Parameters: 0:18 'b' ( in int) 0:19 Function Definition: foo6(f1; ( temp void) 0:19 Function Parameters: 0:19 'b' ( in float) 0:20 Function Definition: foo7(d1; ( temp void) 0:20 Function Parameters: 0:20 'b' ( in double) 0:23 Function Definition: foo8(f1; ( temp void) 0:23 Function Parameters: 0:23 '' ( in float) 0:24 Function Definition: foo8(d1; ( temp void) 0:24 Function Parameters: 0:24 '' ( in double) 0:25 Function Definition: foo9(i1; ( temp void) 0:25 Function Parameters: 0:25 '' ( in int) 0:26 Function Definition: foo9(u1; ( temp void) 0:26 Function Parameters: 0:26 '' ( in uint) 0:27 Function Definition: foo10(b1; ( temp void) 0:27 Function Parameters: 0:27 '' ( in bool) 0:28 Function Definition: foo10(i1; ( temp void) 0:28 Function Parameters: 0:28 '' ( in int) 0:31 Function Definition: foo11(vf3; ( temp void) 0:31 Function Parameters: 0:31 '' ( in 3-component vector of float) 0:32 Function Definition: foo11(d1; ( temp void) 0:32 Function Parameters: 0:32 '' ( in double) 0:33 Function Definition: foo11(vi3; ( temp void) 0:33 Function Parameters: 0:33 '' ( in 3-component vector of int) 0:34 Function Definition: foo11(u1; ( temp void) 0:34 Function Parameters: 0:34 '' ( in uint) 0:35 Function Definition: foo12(vf1; ( temp void) 0:35 Function Parameters: 0:35 '' ( in 1-component vector of float) 0:36 Function Definition: foo12(vd3; ( temp void) 0:36 Function Parameters: 0:36 '' ( in 3-component vector of double) 0:37 Function Definition: foo16(u1; ( temp void) 0:37 Function Parameters: 0:37 '' ( in uint) 0:38 Function Definition: foo16(vu2; ( temp void) 0:38 Function Parameters: 0:38 '' ( in 2-component vector of uint) 0:41 Function Definition: foo13(vf3; ( temp void) 0:41 Function Parameters: 0:41 '' ( in 3-component vector of float) 0:42 Function Definition: foo14(vi1; ( temp void) 0:42 Function Parameters: 0:42 '' ( in 1-component vector of int) 0:43 Function Definition: foo15(vb1; ( temp void) 0:43 Function Parameters: 0:43 '' ( in 1-component vector of bool) 0:46 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:46 Function Parameters: 0:46 'input' ( in 4-component vector of float) 0:? Sequence 0:53 Function Call: foo1(d1;b1; ( temp void) 0:53 'd' ( temp double) 0:53 'b' ( temp bool) 0:54 Function Call: foo1(d1;d1; ( temp void) 0:54 'd' ( temp double) 0:54 'd' ( temp double) 0:55 Function Call: foo1(d1;u1; ( temp void) 0:55 'd' ( temp double) 0:55 'u' ( temp uint) 0:56 Function Call: foo1(d1;i1; ( temp void) 0:56 'd' ( temp double) 0:56 'i' ( temp int) 0:57 Function Call: foo1(d1;f1; ( temp void) 0:57 'd' ( temp double) 0:57 'f' ( temp float) 0:59 Function Call: foo1(d1;b1; ( temp void) 0:59 Convert float to double ( temp double) 0:59 'f' ( temp float) 0:59 'b' ( temp bool) 0:60 Function Call: foo1(d1;d1; ( temp void) 0:60 Convert float to double ( temp double) 0:60 'f' ( temp float) 0:60 'd' ( temp double) 0:61 Function Call: foo1(d1;u1; ( temp void) 0:61 Convert float to double ( temp double) 0:61 'f' ( temp float) 0:61 'u' ( temp uint) 0:62 Function Call: foo1(d1;i1; ( temp void) 0:62 Convert float to double ( temp double) 0:62 'f' ( temp float) 0:62 'i' ( temp int) 0:63 Function Call: foo1(d1;f1; ( temp void) 0:63 Convert float to double ( temp double) 0:63 'f' ( temp float) 0:63 'f' ( temp float) 0:65 Function Call: foo1(d1;b1; ( temp void) 0:65 Convert uint to double ( temp double) 0:65 'u' ( temp uint) 0:65 'b' ( temp bool) 0:66 Function Call: foo1(d1;d1; ( temp void) 0:66 Convert uint to double ( temp double) 0:66 'u' ( temp uint) 0:66 'd' ( temp double) 0:67 Function Call: foo1(d1;u1; ( temp void) 0:67 Convert uint to double ( temp double) 0:67 'u' ( temp uint) 0:67 'u' ( temp uint) 0:68 Function Call: foo1(d1;i1; ( temp void) 0:68 Convert uint to double ( temp double) 0:68 'u' ( temp uint) 0:68 'i' ( temp int) 0:69 Function Call: foo1(d1;f1; ( temp void) 0:69 Convert uint to double ( temp double) 0:69 'u' ( temp uint) 0:69 'f' ( temp float) 0:71 Function Call: foo1(d1;b1; ( temp void) 0:71 Convert int to double ( temp double) 0:71 'i' ( temp int) 0:71 'b' ( temp bool) 0:72 Function Call: foo1(d1;d1; ( temp void) 0:72 Convert int to double ( temp double) 0:72 'i' ( temp int) 0:72 'd' ( temp double) 0:73 Function Call: foo1(d1;u1; ( temp void) 0:73 Convert int to double ( temp double) 0:73 'i' ( temp int) 0:73 'u' ( temp uint) 0:74 Function Call: foo1(d1;i1; ( temp void) 0:74 Convert int to double ( temp double) 0:74 'i' ( temp int) 0:74 'i' ( temp int) 0:75 Function Call: foo1(d1;f1; ( temp void) 0:75 Convert int to double ( temp double) 0:75 'i' ( temp int) 0:75 'f' ( temp float) 0:77 Function Call: foo2(i1;b1; ( temp void) 0:77 Convert uint to int ( temp int) 0:77 'u' ( temp uint) 0:77 'b' ( temp bool) 0:78 Function Call: foo2(i1;d1; ( temp void) 0:78 Convert uint to int ( temp int) 0:78 'u' ( temp uint) 0:78 'd' ( temp double) 0:79 Function Call: foo2(i1;u1; ( temp void) 0:79 Convert uint to int ( temp int) 0:79 'u' ( temp uint) 0:79 'u' ( temp uint) 0:80 Function Call: foo2(i1;i1; ( temp void) 0:80 Convert uint to int ( temp int) 0:80 'u' ( temp uint) 0:80 'i' ( temp int) 0:81 Function Call: foo2(i1;f1; ( temp void) 0:81 Convert uint to int ( temp int) 0:81 'u' ( temp uint) 0:81 'f' ( temp float) 0:83 Function Call: foo2(i1;b1; ( temp void) 0:83 'i' ( temp int) 0:83 'b' ( temp bool) 0:84 Function Call: foo2(i1;d1; ( temp void) 0:84 'i' ( temp int) 0:84 'd' ( temp double) 0:85 Function Call: foo2(i1;u1; ( temp void) 0:85 'i' ( temp int) 0:85 'u' ( temp uint) 0:86 Function Call: foo2(i1;i1; ( temp void) 0:86 'i' ( temp int) 0:86 'i' ( temp int) 0:87 Function Call: foo2(i1;f1; ( temp void) 0:87 'i' ( temp int) 0:87 'f' ( temp float) 0:89 Function Call: foo3(b1; ( temp void) 0:89 'b' ( temp bool) 0:90 Function Call: foo3(b1; ( temp void) 0:90 Convert double to bool ( temp bool) 0:90 'd' ( temp double) 0:91 Function Call: foo3(b1; ( temp void) 0:91 Convert uint to bool ( temp bool) 0:91 'u' ( temp uint) 0:92 Function Call: foo3(b1; ( temp void) 0:92 Convert int to bool ( temp bool) 0:92 'i' ( temp int) 0:93 Function Call: foo3(b1; ( temp void) 0:93 Convert float to bool ( temp bool) 0:93 'f' ( temp float) 0:95 Function Call: foo4(u1; ( temp void) 0:95 Convert bool to uint ( temp uint) 0:95 'b' ( temp bool) 0:96 Function Call: foo4(u1; ( temp void) 0:96 Convert double to uint ( temp uint) 0:96 'd' ( temp double) 0:97 Function Call: foo4(u1; ( temp void) 0:97 'u' ( temp uint) 0:98 Function Call: foo4(u1; ( temp void) 0:98 Convert int to uint ( temp uint) 0:98 'i' ( temp int) 0:99 Function Call: foo4(u1; ( temp void) 0:99 Convert float to uint ( temp uint) 0:99 'f' ( temp float) 0:101 Function Call: foo5(i1; ( temp void) 0:101 Convert bool to int ( temp int) 0:101 'b' ( temp bool) 0:102 Function Call: foo5(i1; ( temp void) 0:102 Convert double to int ( temp int) 0:102 'd' ( temp double) 0:103 Function Call: foo5(i1; ( temp void) 0:103 Convert uint to int ( temp int) 0:103 'u' ( temp uint) 0:104 Function Call: foo5(i1; ( temp void) 0:104 'i' ( temp int) 0:105 Function Call: foo5(i1; ( temp void) 0:105 Convert float to int ( temp int) 0:105 'f' ( temp float) 0:107 Function Call: foo6(f1; ( temp void) 0:107 Convert bool to float ( temp float) 0:107 'b' ( temp bool) 0:108 Function Call: foo6(f1; ( temp void) 0:108 Convert double to float ( temp float) 0:108 'd' ( temp double) 0:109 Function Call: foo6(f1; ( temp void) 0:109 Convert uint to float ( temp float) 0:109 'u' ( temp uint) 0:110 Function Call: foo6(f1; ( temp void) 0:110 Convert int to float ( temp float) 0:110 'i' ( temp int) 0:111 Function Call: foo6(f1; ( temp void) 0:111 'f' ( temp float) 0:113 Function Call: foo7(d1; ( temp void) 0:113 Convert bool to double ( temp double) 0:113 'b' ( temp bool) 0:114 Function Call: foo7(d1; ( temp void) 0:114 'd' ( temp double) 0:115 Function Call: foo7(d1; ( temp void) 0:115 Convert uint to double ( temp double) 0:115 'u' ( temp uint) 0:116 Function Call: foo7(d1; ( temp void) 0:116 Convert int to double ( temp double) 0:116 'i' ( temp int) 0:117 Function Call: foo7(d1; ( temp void) 0:117 Convert float to double ( temp double) 0:117 'f' ( temp float) 0:119 Function Call: foo8(f1; ( temp void) 0:119 Convert bool to float ( temp float) 0:119 'b' ( temp bool) 0:120 Function Call: foo8(f1; ( temp void) 0:120 Convert uint to float ( temp float) 0:120 'u' ( temp uint) 0:121 Function Call: foo8(f1; ( temp void) 0:121 Convert int to float ( temp float) 0:121 'i' ( temp int) 0:123 Function Call: foo9(i1; ( temp void) 0:123 Convert bool to int ( temp int) 0:123 'b' ( temp bool) 0:124 Function Call: foo9(u1; ( temp void) 0:124 Convert float to uint ( temp uint) 0:124 'f' ( temp float) 0:125 Function Call: foo9(u1; ( temp void) 0:125 Convert double to uint ( temp uint) 0:125 'd' ( temp double) 0:127 Function Call: foo10(i1; ( temp void) 0:127 Convert uint to int ( temp int) 0:127 'u' ( temp uint) 0:128 Function Call: foo10(i1; ( temp void) 0:128 Convert float to int ( temp int) 0:128 'f' ( temp float) 0:129 Function Call: foo10(i1; ( temp void) 0:129 Convert double to int ( temp int) 0:129 'd' ( temp double) 0:131 Function Call: foo11(u1; ( temp void) 0:131 Convert bool to uint ( temp uint) 0:131 'b' ( temp bool) 0:132 Function Call: foo11(d1; ( temp void) 0:132 Convert float to double ( temp double) 0:132 'f' ( temp float) 0:133 Function Call: foo12(vd3; ( temp void) 0:133 Convert float to double ( temp 3-component vector of double) 0:133 Construct vec3 ( temp 3-component vector of float) 0:133 'f' ( temp float) 0:134 Function Call: foo16(vu2; ( temp void) 0:? Convert int to uint ( temp 2-component vector of uint) 0:? Construct ivec2 ( temp 2-component vector of int) 0:134 'i' ( temp int) 0:134 'i' ( temp int) 0:136 Function Call: foo13(vf3; ( temp void) 0:136 Construct vec3 ( in 3-component vector of float) 0:136 'f' ( temp float) 0:137 Function Call: foo14(vi1; ( temp void) 0:137 Construct int ( in 1-component vector of int) 0:137 Construct ivec4 ( temp 4-component vector of int) 0:137 'i' ( temp int) 0:138 Function Call: foo15(vb1; ( temp void) 0:138 Construct bool ( in 1-component vector of bool) 0:138 'b' ( temp bool) 0:139 Function Call: foo15(vb1; ( temp void) 0:139 Construct bool ( in 1-component vector of bool) 0:139 Construct bvec3 ( temp 3-component vector of bool) 0:139 'b' ( temp bool) 0:141 Branch: Return with expression 0:141 'input' ( in 4-component vector of float) 0:46 Function Definition: PixelShaderFunction( ( temp void) 0:46 Function Parameters: 0:? Sequence 0:46 move second child to first child ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) 0:46 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:46 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 0:? 'input' ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 520 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 513 516 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "PixelShaderFunction" Name 13 "foo1(d1;b1;" Name 11 "a" Name 12 "b" Name 20 "foo1(d1;u1;" Name 18 "a" Name 19 "b" Name 27 "foo1(d1;i1;" Name 25 "a" Name 26 "b" Name 34 "foo1(d1;f1;" Name 32 "a" Name 33 "b" Name 39 "foo1(d1;d1;" Name 37 "a" Name 38 "b" Name 44 "foo2(i1;b1;" Name 42 "a" Name 43 "b" Name 49 "foo2(i1;u1;" Name 47 "a" Name 48 "b" Name 54 "foo2(i1;i1;" Name 52 "a" Name 53 "b" Name 59 "foo2(i1;f1;" Name 57 "a" Name 58 "b" Name 64 "foo2(i1;d1;" Name 62 "a" Name 63 "b" Name 68 "foo3(b1;" Name 67 "b" Name 72 "foo4(u1;" Name 71 "b" Name 76 "foo5(i1;" Name 75 "b" Name 80 "foo6(f1;" Name 79 "b" Name 84 "foo7(d1;" Name 83 "b" Name 87 "foo8(f1;" Name 86 "" Name 90 "foo8(d1;" Name 89 "" Name 93 "foo9(i1;" Name 92 "" Name 96 "foo9(u1;" Name 95 "" Name 99 "foo10(b1;" Name 98 "" Name 102 "foo10(i1;" Name 101 "" Name 108 "foo11(vf3;" Name 107 "" Name 111 "foo11(d1;" Name 110 "" Name 117 "foo11(vi3;" Name 116 "" Name 120 "foo11(u1;" Name 119 "" Name 123 "foo12(vf1;" Name 122 "" Name 129 "foo12(vd3;" Name 128 "" Name 132 "foo16(u1;" Name 131 "" Name 138 "foo16(vu2;" Name 137 "" Name 141 "foo13(vf3;" Name 140 "" Name 144 "foo14(vi1;" Name 143 "" Name 147 "foo15(vb1;" Name 146 "" Name 153 "@PixelShaderFunction(vf4;" Name 152 "input" Name 155 "d" Name 156 "b" Name 157 "param" Name 159 "param" Name 162 "param" Name 164 "param" Name 167 "u" Name 168 "param" Name 170 "param" Name 173 "i" Name 174 "param" Name 176 "param" Name 179 "f" Name 180 "param" Name 182 "param" Name 187 "param" Name 188 "param" Name 193 "param" Name 194 "param" Name 199 "param" Name 200 "param" Name 205 "param" Name 206 "param" Name 211 "param" Name 212 "param" Name 217 "param" Name 218 "param" Name 223 "param" Name 224 "param" Name 229 "param" Name 230 "param" Name 235 "param" Name 236 "param" Name 241 "param" Name 242 "param" Name 247 "param" Name 248 "param" Name 253 "param" Name 254 "param" Name 259 "param" Name 260 "param" Name 265 "param" Name 266 "param" Name 271 "param" Name 272 "param" Name 277 "param" Name 278 "param" Name 283 "param" Name 284 "param" Name 289 "param" Name 290 "param" Name 295 "param" Name 296 "param" Name 301 "param" Name 302 "param" Name 305 "param" Name 307 "param" Name 310 "param" Name 312 "param" Name 315 "param" Name 317 "param" Name 320 "param" Name 322 "param" Name 325 "param" Name 327 "param" Name 330 "param" Name 336 "param" Name 341 "param" Name 345 "param" Name 350 "param" Name 355 "param" Name 359 "param" Name 361 "param" Name 366 "param" Name 370 "param" Name 376 "param" Name 380 "param" Name 384 "param" Name 386 "param" Name 391 "param" Name 396 "param" Name 400 "param" Name 404 "param" Name 408 "param" Name 410 "param" Name 416 "param" Name 418 "param" Name 423 "param" Name 427 "param" Name 431 "param" Name 435 "param" Name 439 "param" Name 443 "param" Name 447 "param" Name 451 "param" Name 455 "param" Name 459 "param" Name 463 "param" Name 467 "param" Name 471 "param" Name 475 "param" Name 480 "param" Name 487 "param" Name 491 "param" Name 497 "param" Name 500 "param" Name 506 "param" Name 511 "input" Name 513 "input" Name 516 "@entryPointOutput" Name 517 "param" Decorate 513(input) Location 0 Decorate 516(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 64 7: TypePointer Function 6(float64_t) 8: TypeBool 9: TypePointer Function 8(bool) 10: TypeFunction 2 7(ptr) 9(ptr) 15: TypeInt 32 0 16: TypePointer Function 15(int) 17: TypeFunction 2 7(ptr) 16(ptr) 22: TypeInt 32 1 23: TypePointer Function 22(int) 24: TypeFunction 2 7(ptr) 23(ptr) 29: TypeFloat 32 30: TypePointer Function 29(float) 31: TypeFunction 2 7(ptr) 30(ptr) 36: TypeFunction 2 7(ptr) 7(ptr) 41: TypeFunction 2 23(ptr) 9(ptr) 46: TypeFunction 2 23(ptr) 16(ptr) 51: TypeFunction 2 23(ptr) 23(ptr) 56: TypeFunction 2 23(ptr) 30(ptr) 61: TypeFunction 2 23(ptr) 7(ptr) 66: TypeFunction 2 9(ptr) 70: TypeFunction 2 16(ptr) 74: TypeFunction 2 23(ptr) 78: TypeFunction 2 30(ptr) 82: TypeFunction 2 7(ptr) 104: TypeVector 29(float) 3 105: TypePointer Function 104(fvec3) 106: TypeFunction 2 105(ptr) 113: TypeVector 22(int) 3 114: TypePointer Function 113(ivec3) 115: TypeFunction 2 114(ptr) 125: TypeVector 6(float64_t) 3 126: TypePointer Function 125(f64vec3) 127: TypeFunction 2 126(ptr) 134: TypeVector 15(int) 2 135: TypePointer Function 134(ivec2) 136: TypeFunction 2 135(ptr) 149: TypeVector 29(float) 4 150: TypePointer Function 149(fvec4) 151: TypeFunction 149(fvec4) 150(ptr) 334:6(float64_t) Constant 0 0 339: 15(int) Constant 0 348: 29(float) Constant 0 353: 15(int) Constant 1 373: 22(int) Constant 0 374: 22(int) Constant 1 394: 29(float) Constant 1065353216 414:6(float64_t) Constant 0 1072693248 484: TypeVector 22(int) 2 494: TypeVector 22(int) 4 503: TypeVector 8(bool) 3 512: TypePointer Input 149(fvec4) 513(input): 512(ptr) Variable Input 515: TypePointer Output 149(fvec4) 516(@entryPointOutput): 515(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 511(input): 150(ptr) Variable Function 517(param): 150(ptr) Variable Function 514: 149(fvec4) Load 513(input) Store 511(input) 514 518: 149(fvec4) Load 511(input) Store 517(param) 518 519: 149(fvec4) FunctionCall 153(@PixelShaderFunction(vf4;) 517(param) Store 516(@entryPointOutput) 519 Return FunctionEnd 13(foo1(d1;b1;): 2 Function None 10 11(a): 7(ptr) FunctionParameter 12(b): 9(ptr) FunctionParameter 14: Label Return FunctionEnd 20(foo1(d1;u1;): 2 Function None 17 18(a): 7(ptr) FunctionParameter 19(b): 16(ptr) FunctionParameter 21: Label Return FunctionEnd 27(foo1(d1;i1;): 2 Function None 24 25(a): 7(ptr) FunctionParameter 26(b): 23(ptr) FunctionParameter 28: Label Return FunctionEnd 34(foo1(d1;f1;): 2 Function None 31 32(a): 7(ptr) FunctionParameter 33(b): 30(ptr) FunctionParameter 35: Label Return FunctionEnd 39(foo1(d1;d1;): 2 Function None 36 37(a): 7(ptr) FunctionParameter 38(b): 7(ptr) FunctionParameter 40: Label Return FunctionEnd 44(foo2(i1;b1;): 2 Function None 41 42(a): 23(ptr) FunctionParameter 43(b): 9(ptr) FunctionParameter 45: Label Return FunctionEnd 49(foo2(i1;u1;): 2 Function None 46 47(a): 23(ptr) FunctionParameter 48(b): 16(ptr) FunctionParameter 50: Label Return FunctionEnd 54(foo2(i1;i1;): 2 Function None 51 52(a): 23(ptr) FunctionParameter 53(b): 23(ptr) FunctionParameter 55: Label Return FunctionEnd 59(foo2(i1;f1;): 2 Function None 56 57(a): 23(ptr) FunctionParameter 58(b): 30(ptr) FunctionParameter 60: Label Return FunctionEnd 64(foo2(i1;d1;): 2 Function None 61 62(a): 23(ptr) FunctionParameter 63(b): 7(ptr) FunctionParameter 65: Label Return FunctionEnd 68(foo3(b1;): 2 Function None 66 67(b): 9(ptr) FunctionParameter 69: Label Return FunctionEnd 72(foo4(u1;): 2 Function None 70 71(b): 16(ptr) FunctionParameter 73: Label Return FunctionEnd 76(foo5(i1;): 2 Function None 74 75(b): 23(ptr) FunctionParameter 77: Label Return FunctionEnd 80(foo6(f1;): 2 Function None 78 79(b): 30(ptr) FunctionParameter 81: Label Return FunctionEnd 84(foo7(d1;): 2 Function None 82 83(b): 7(ptr) FunctionParameter 85: Label Return FunctionEnd 87(foo8(f1;): 2 Function None 78 86: 30(ptr) FunctionParameter 88: Label Return FunctionEnd 90(foo8(d1;): 2 Function None 82 89: 7(ptr) FunctionParameter 91: Label Return FunctionEnd 93(foo9(i1;): 2 Function None 74 92: 23(ptr) FunctionParameter 94: Label Return FunctionEnd 96(foo9(u1;): 2 Function None 70 95: 16(ptr) FunctionParameter 97: Label Return FunctionEnd 99(foo10(b1;): 2 Function None 66 98: 9(ptr) FunctionParameter 100: Label Return FunctionEnd 102(foo10(i1;): 2 Function None 74 101: 23(ptr) FunctionParameter 103: Label Return FunctionEnd 108(foo11(vf3;): 2 Function None 106 107: 105(ptr) FunctionParameter 109: Label Return FunctionEnd 111(foo11(d1;): 2 Function None 82 110: 7(ptr) FunctionParameter 112: Label Return FunctionEnd 117(foo11(vi3;): 2 Function None 115 116: 114(ptr) FunctionParameter 118: Label Return FunctionEnd 120(foo11(u1;): 2 Function None 70 119: 16(ptr) FunctionParameter 121: Label Return FunctionEnd 123(foo12(vf1;): 2 Function None 78 122: 30(ptr) FunctionParameter 124: Label Return FunctionEnd 129(foo12(vd3;): 2 Function None 127 128: 126(ptr) FunctionParameter 130: Label Return FunctionEnd 132(foo16(u1;): 2 Function None 70 131: 16(ptr) FunctionParameter 133: Label Return FunctionEnd 138(foo16(vu2;): 2 Function None 136 137: 135(ptr) FunctionParameter 139: Label Return FunctionEnd 141(foo13(vf3;): 2 Function None 106 140: 105(ptr) FunctionParameter 142: Label Return FunctionEnd 144(foo14(vi1;): 2 Function None 74 143: 23(ptr) FunctionParameter 145: Label Return FunctionEnd 147(foo15(vb1;): 2 Function None 66 146: 9(ptr) FunctionParameter 148: Label Return FunctionEnd 153(@PixelShaderFunction(vf4;): 149(fvec4) Function None 151 152(input): 150(ptr) FunctionParameter 154: Label 155(d): 7(ptr) Variable Function 156(b): 9(ptr) Variable Function 157(param): 7(ptr) Variable Function 159(param): 9(ptr) Variable Function 162(param): 7(ptr) Variable Function 164(param): 7(ptr) Variable Function 167(u): 16(ptr) Variable Function 168(param): 7(ptr) Variable Function 170(param): 16(ptr) Variable Function 173(i): 23(ptr) Variable Function 174(param): 7(ptr) Variable Function 176(param): 23(ptr) Variable Function 179(f): 30(ptr) Variable Function 180(param): 7(ptr) Variable Function 182(param): 30(ptr) Variable Function 187(param): 7(ptr) Variable Function 188(param): 9(ptr) Variable Function 193(param): 7(ptr) Variable Function 194(param): 7(ptr) Variable Function 199(param): 7(ptr) Variable Function 200(param): 16(ptr) Variable Function 205(param): 7(ptr) Variable Function 206(param): 23(ptr) Variable Function 211(param): 7(ptr) Variable Function 212(param): 30(ptr) Variable Function 217(param): 7(ptr) Variable Function 218(param): 9(ptr) Variable Function 223(param): 7(ptr) Variable Function 224(param): 7(ptr) Variable Function 229(param): 7(ptr) Variable Function 230(param): 16(ptr) Variable Function 235(param): 7(ptr) Variable Function 236(param): 23(ptr) Variable Function 241(param): 7(ptr) Variable Function 242(param): 30(ptr) Variable Function 247(param): 7(ptr) Variable Function 248(param): 9(ptr) Variable Function 253(param): 7(ptr) Variable Function 254(param): 7(ptr) Variable Function 259(param): 7(ptr) Variable Function 260(param): 16(ptr) Variable Function 265(param): 7(ptr) Variable Function 266(param): 23(ptr) Variable Function 271(param): 7(ptr) Variable Function 272(param): 30(ptr) Variable Function 277(param): 23(ptr) Variable Function 278(param): 9(ptr) Variable Function 283(param): 23(ptr) Variable Function 284(param): 7(ptr) Variable Function 289(param): 23(ptr) Variable Function 290(param): 16(ptr) Variable Function 295(param): 23(ptr) Variable Function 296(param): 23(ptr) Variable Function 301(param): 23(ptr) Variable Function 302(param): 30(ptr) Variable Function 305(param): 23(ptr) Variable Function 307(param): 9(ptr) Variable Function 310(param): 23(ptr) Variable Function 312(param): 7(ptr) Variable Function 315(param): 23(ptr) Variable Function 317(param): 16(ptr) Variable Function 320(param): 23(ptr) Variable Function 322(param): 23(ptr) Variable Function 325(param): 23(ptr) Variable Function 327(param): 30(ptr) Variable Function 330(param): 9(ptr) Variable Function 336(param): 9(ptr) Variable Function 341(param): 9(ptr) Variable Function 345(param): 9(ptr) Variable Function 350(param): 9(ptr) Variable Function 355(param): 16(ptr) Variable Function 359(param): 16(ptr) Variable Function 361(param): 16(ptr) Variable Function 366(param): 16(ptr) Variable Function 370(param): 16(ptr) Variable Function 376(param): 23(ptr) Variable Function 380(param): 23(ptr) Variable Function 384(param): 23(ptr) Variable Function 386(param): 23(ptr) Variable Function 391(param): 23(ptr) Variable Function 396(param): 30(ptr) Variable Function 400(param): 30(ptr) Variable Function 404(param): 30(ptr) Variable Function 408(param): 30(ptr) Variable Function 410(param): 30(ptr) Variable Function 416(param): 7(ptr) Variable Function 418(param): 7(ptr) Variable Function 423(param): 7(ptr) Variable Function 427(param): 7(ptr) Variable Function 431(param): 7(ptr) Variable Function 435(param): 30(ptr) Variable Function 439(param): 30(ptr) Variable Function 443(param): 30(ptr) Variable Function 447(param): 23(ptr) Variable Function 451(param): 16(ptr) Variable Function 455(param): 16(ptr) Variable Function 459(param): 23(ptr) Variable Function 463(param): 23(ptr) Variable Function 467(param): 23(ptr) Variable Function 471(param): 16(ptr) Variable Function 475(param): 7(ptr) Variable Function 480(param): 126(ptr) Variable Function 487(param): 135(ptr) Variable Function 491(param): 105(ptr) Variable Function 497(param): 23(ptr) Variable Function 500(param): 9(ptr) Variable Function 506(param): 9(ptr) Variable Function 158:6(float64_t) Load 155(d) Store 157(param) 158 160: 8(bool) Load 156(b) Store 159(param) 160 161: 2 FunctionCall 13(foo1(d1;b1;) 157(param) 159(param) 163:6(float64_t) Load 155(d) Store 162(param) 163 165:6(float64_t) Load 155(d) Store 164(param) 165 166: 2 FunctionCall 39(foo1(d1;d1;) 162(param) 164(param) 169:6(float64_t) Load 155(d) Store 168(param) 169 171: 15(int) Load 167(u) Store 170(param) 171 172: 2 FunctionCall 20(foo1(d1;u1;) 168(param) 170(param) 175:6(float64_t) Load 155(d) Store 174(param) 175 177: 22(int) Load 173(i) Store 176(param) 177 178: 2 FunctionCall 27(foo1(d1;i1;) 174(param) 176(param) 181:6(float64_t) Load 155(d) Store 180(param) 181 183: 29(float) Load 179(f) Store 182(param) 183 184: 2 FunctionCall 34(foo1(d1;f1;) 180(param) 182(param) 185: 29(float) Load 179(f) 186:6(float64_t) FConvert 185 Store 187(param) 186 189: 8(bool) Load 156(b) Store 188(param) 189 190: 2 FunctionCall 13(foo1(d1;b1;) 187(param) 188(param) 191: 29(float) Load 179(f) 192:6(float64_t) FConvert 191 Store 193(param) 192 195:6(float64_t) Load 155(d) Store 194(param) 195 196: 2 FunctionCall 39(foo1(d1;d1;) 193(param) 194(param) 197: 29(float) Load 179(f) 198:6(float64_t) FConvert 197 Store 199(param) 198 201: 15(int) Load 167(u) Store 200(param) 201 202: 2 FunctionCall 20(foo1(d1;u1;) 199(param) 200(param) 203: 29(float) Load 179(f) 204:6(float64_t) FConvert 203 Store 205(param) 204 207: 22(int) Load 173(i) Store 206(param) 207 208: 2 FunctionCall 27(foo1(d1;i1;) 205(param) 206(param) 209: 29(float) Load 179(f) 210:6(float64_t) FConvert 209 Store 211(param) 210 213: 29(float) Load 179(f) Store 212(param) 213 214: 2 FunctionCall 34(foo1(d1;f1;) 211(param) 212(param) 215: 15(int) Load 167(u) 216:6(float64_t) ConvertUToF 215 Store 217(param) 216 219: 8(bool) Load 156(b) Store 218(param) 219 220: 2 FunctionCall 13(foo1(d1;b1;) 217(param) 218(param) 221: 15(int) Load 167(u) 222:6(float64_t) ConvertUToF 221 Store 223(param) 222 225:6(float64_t) Load 155(d) Store 224(param) 225 226: 2 FunctionCall 39(foo1(d1;d1;) 223(param) 224(param) 227: 15(int) Load 167(u) 228:6(float64_t) ConvertUToF 227 Store 229(param) 228 231: 15(int) Load 167(u) Store 230(param) 231 232: 2 FunctionCall 20(foo1(d1;u1;) 229(param) 230(param) 233: 15(int) Load 167(u) 234:6(float64_t) ConvertUToF 233 Store 235(param) 234 237: 22(int) Load 173(i) Store 236(param) 237 238: 2 FunctionCall 27(foo1(d1;i1;) 235(param) 236(param) 239: 15(int) Load 167(u) 240:6(float64_t) ConvertUToF 239 Store 241(param) 240 243: 29(float) Load 179(f) Store 242(param) 243 244: 2 FunctionCall 34(foo1(d1;f1;) 241(param) 242(param) 245: 22(int) Load 173(i) 246:6(float64_t) ConvertSToF 245 Store 247(param) 246 249: 8(bool) Load 156(b) Store 248(param) 249 250: 2 FunctionCall 13(foo1(d1;b1;) 247(param) 248(param) 251: 22(int) Load 173(i) 252:6(float64_t) ConvertSToF 251 Store 253(param) 252 255:6(float64_t) Load 155(d) Store 254(param) 255 256: 2 FunctionCall 39(foo1(d1;d1;) 253(param) 254(param) 257: 22(int) Load 173(i) 258:6(float64_t) ConvertSToF 257 Store 259(param) 258 261: 15(int) Load 167(u) Store 260(param) 261 262: 2 FunctionCall 20(foo1(d1;u1;) 259(param) 260(param) 263: 22(int) Load 173(i) 264:6(float64_t) ConvertSToF 263 Store 265(param) 264 267: 22(int) Load 173(i) Store 266(param) 267 268: 2 FunctionCall 27(foo1(d1;i1;) 265(param) 266(param) 269: 22(int) Load 173(i) 270:6(float64_t) ConvertSToF 269 Store 271(param) 270 273: 29(float) Load 179(f) Store 272(param) 273 274: 2 FunctionCall 34(foo1(d1;f1;) 271(param) 272(param) 275: 15(int) Load 167(u) 276: 22(int) Bitcast 275 Store 277(param) 276 279: 8(bool) Load 156(b) Store 278(param) 279 280: 2 FunctionCall 44(foo2(i1;b1;) 277(param) 278(param) 281: 15(int) Load 167(u) 282: 22(int) Bitcast 281 Store 283(param) 282 285:6(float64_t) Load 155(d) Store 284(param) 285 286: 2 FunctionCall 64(foo2(i1;d1;) 283(param) 284(param) 287: 15(int) Load 167(u) 288: 22(int) Bitcast 287 Store 289(param) 288 291: 15(int) Load 167(u) Store 290(param) 291 292: 2 FunctionCall 49(foo2(i1;u1;) 289(param) 290(param) 293: 15(int) Load 167(u) 294: 22(int) Bitcast 293 Store 295(param) 294 297: 22(int) Load 173(i) Store 296(param) 297 298: 2 FunctionCall 54(foo2(i1;i1;) 295(param) 296(param) 299: 15(int) Load 167(u) 300: 22(int) Bitcast 299 Store 301(param) 300 303: 29(float) Load 179(f) Store 302(param) 303 304: 2 FunctionCall 59(foo2(i1;f1;) 301(param) 302(param) 306: 22(int) Load 173(i) Store 305(param) 306 308: 8(bool) Load 156(b) Store 307(param) 308 309: 2 FunctionCall 44(foo2(i1;b1;) 305(param) 307(param) 311: 22(int) Load 173(i) Store 310(param) 311 313:6(float64_t) Load 155(d) Store 312(param) 313 314: 2 FunctionCall 64(foo2(i1;d1;) 310(param) 312(param) 316: 22(int) Load 173(i) Store 315(param) 316 318: 15(int) Load 167(u) Store 317(param) 318 319: 2 FunctionCall 49(foo2(i1;u1;) 315(param) 317(param) 321: 22(int) Load 173(i) Store 320(param) 321 323: 22(int) Load 173(i) Store 322(param) 323 324: 2 FunctionCall 54(foo2(i1;i1;) 320(param) 322(param) 326: 22(int) Load 173(i) Store 325(param) 326 328: 29(float) Load 179(f) Store 327(param) 328 329: 2 FunctionCall 59(foo2(i1;f1;) 325(param) 327(param) 331: 8(bool) Load 156(b) Store 330(param) 331 332: 2 FunctionCall 68(foo3(b1;) 330(param) 333:6(float64_t) Load 155(d) 335: 8(bool) FOrdNotEqual 333 334 Store 336(param) 335 337: 2 FunctionCall 68(foo3(b1;) 336(param) 338: 15(int) Load 167(u) 340: 8(bool) INotEqual 338 339 Store 341(param) 340 342: 2 FunctionCall 68(foo3(b1;) 341(param) 343: 22(int) Load 173(i) 344: 8(bool) INotEqual 343 339 Store 345(param) 344 346: 2 FunctionCall 68(foo3(b1;) 345(param) 347: 29(float) Load 179(f) 349: 8(bool) FOrdNotEqual 347 348 Store 350(param) 349 351: 2 FunctionCall 68(foo3(b1;) 350(param) 352: 8(bool) Load 156(b) 354: 15(int) Select 352 353 339 Store 355(param) 354 356: 2 FunctionCall 72(foo4(u1;) 355(param) 357:6(float64_t) Load 155(d) 358: 15(int) ConvertFToU 357 Store 359(param) 358 360: 2 FunctionCall 72(foo4(u1;) 359(param) 362: 15(int) Load 167(u) Store 361(param) 362 363: 2 FunctionCall 72(foo4(u1;) 361(param) 364: 22(int) Load 173(i) 365: 15(int) Bitcast 364 Store 366(param) 365 367: 2 FunctionCall 72(foo4(u1;) 366(param) 368: 29(float) Load 179(f) 369: 15(int) ConvertFToU 368 Store 370(param) 369 371: 2 FunctionCall 72(foo4(u1;) 370(param) 372: 8(bool) Load 156(b) 375: 22(int) Select 372 374 373 Store 376(param) 375 377: 2 FunctionCall 76(foo5(i1;) 376(param) 378:6(float64_t) Load 155(d) 379: 22(int) ConvertFToS 378 Store 380(param) 379 381: 2 FunctionCall 76(foo5(i1;) 380(param) 382: 15(int) Load 167(u) 383: 22(int) Bitcast 382 Store 384(param) 383 385: 2 FunctionCall 76(foo5(i1;) 384(param) 387: 22(int) Load 173(i) Store 386(param) 387 388: 2 FunctionCall 76(foo5(i1;) 386(param) 389: 29(float) Load 179(f) 390: 22(int) ConvertFToS 389 Store 391(param) 390 392: 2 FunctionCall 76(foo5(i1;) 391(param) 393: 8(bool) Load 156(b) 395: 29(float) Select 393 394 348 Store 396(param) 395 397: 2 FunctionCall 80(foo6(f1;) 396(param) 398:6(float64_t) Load 155(d) 399: 29(float) FConvert 398 Store 400(param) 399 401: 2 FunctionCall 80(foo6(f1;) 400(param) 402: 15(int) Load 167(u) 403: 29(float) ConvertUToF 402 Store 404(param) 403 405: 2 FunctionCall 80(foo6(f1;) 404(param) 406: 22(int) Load 173(i) 407: 29(float) ConvertSToF 406 Store 408(param) 407 409: 2 FunctionCall 80(foo6(f1;) 408(param) 411: 29(float) Load 179(f) Store 410(param) 411 412: 2 FunctionCall 80(foo6(f1;) 410(param) 413: 8(bool) Load 156(b) 415:6(float64_t) Select 413 414 334 Store 416(param) 415 417: 2 FunctionCall 84(foo7(d1;) 416(param) 419:6(float64_t) Load 155(d) Store 418(param) 419 420: 2 FunctionCall 84(foo7(d1;) 418(param) 421: 15(int) Load 167(u) 422:6(float64_t) ConvertUToF 421 Store 423(param) 422 424: 2 FunctionCall 84(foo7(d1;) 423(param) 425: 22(int) Load 173(i) 426:6(float64_t) ConvertSToF 425 Store 427(param) 426 428: 2 FunctionCall 84(foo7(d1;) 427(param) 429: 29(float) Load 179(f) 430:6(float64_t) FConvert 429 Store 431(param) 430 432: 2 FunctionCall 84(foo7(d1;) 431(param) 433: 8(bool) Load 156(b) 434: 29(float) Select 433 394 348 Store 435(param) 434 436: 2 FunctionCall 87(foo8(f1;) 435(param) 437: 15(int) Load 167(u) 438: 29(float) ConvertUToF 437 Store 439(param) 438 440: 2 FunctionCall 87(foo8(f1;) 439(param) 441: 22(int) Load 173(i) 442: 29(float) ConvertSToF 441 Store 443(param) 442 444: 2 FunctionCall 87(foo8(f1;) 443(param) 445: 8(bool) Load 156(b) 446: 22(int) Select 445 374 373 Store 447(param) 446 448: 2 FunctionCall 93(foo9(i1;) 447(param) 449: 29(float) Load 179(f) 450: 15(int) ConvertFToU 449 Store 451(param) 450 452: 2 FunctionCall 96(foo9(u1;) 451(param) 453:6(float64_t) Load 155(d) 454: 15(int) ConvertFToU 453 Store 455(param) 454 456: 2 FunctionCall 96(foo9(u1;) 455(param) 457: 15(int) Load 167(u) 458: 22(int) Bitcast 457 Store 459(param) 458 460: 2 FunctionCall 102(foo10(i1;) 459(param) 461: 29(float) Load 179(f) 462: 22(int) ConvertFToS 461 Store 463(param) 462 464: 2 FunctionCall 102(foo10(i1;) 463(param) 465:6(float64_t) Load 155(d) 466: 22(int) ConvertFToS 465 Store 467(param) 466 468: 2 FunctionCall 102(foo10(i1;) 467(param) 469: 8(bool) Load 156(b) 470: 15(int) Select 469 353 339 Store 471(param) 470 472: 2 FunctionCall 120(foo11(u1;) 471(param) 473: 29(float) Load 179(f) 474:6(float64_t) FConvert 473 Store 475(param) 474 476: 2 FunctionCall 111(foo11(d1;) 475(param) 477: 29(float) Load 179(f) 478: 104(fvec3) CompositeConstruct 477 477 477 479:125(f64vec3) FConvert 478 Store 480(param) 479 481: 2 FunctionCall 129(foo12(vd3;) 480(param) 482: 22(int) Load 173(i) 483: 22(int) Load 173(i) 485: 484(ivec2) CompositeConstruct 482 483 486: 134(ivec2) Bitcast 485 Store 487(param) 486 488: 2 FunctionCall 138(foo16(vu2;) 487(param) 489: 29(float) Load 179(f) 490: 104(fvec3) CompositeConstruct 489 489 489 Store 491(param) 490 492: 2 FunctionCall 141(foo13(vf3;) 491(param) 493: 22(int) Load 173(i) 495: 494(ivec4) CompositeConstruct 493 493 493 493 496: 22(int) CompositeExtract 495 0 Store 497(param) 496 498: 2 FunctionCall 144(foo14(vi1;) 497(param) 499: 8(bool) Load 156(b) Store 500(param) 499 501: 2 FunctionCall 147(foo15(vb1;) 500(param) 502: 8(bool) Load 156(b) 504: 503(bvec3) CompositeConstruct 502 502 502 505: 8(bool) CompositeExtract 504 0 Store 506(param) 505 507: 2 FunctionCall 147(foo15(vb1;) 506(param) 508: 149(fvec4) Load 152(input) ReturnValue 508 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.params.default.frag.out000066400000000000000000000730641360464450000242450ustar00rootroot00000000000000hlsl.params.default.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:9 Function Parameters: 0:9 'p0' ( in 4-component vector of int) 0:9 'b1' ( in bool) 0:9 'b2' ( in bool) 0:? Sequence 0:10 Branch: Return with expression 0:10 'p0' ( in 4-component vector of int) 0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:17 Function Parameters: 0:17 'p0' ( in 4-component vector of int) 0:17 'p1' ( in 4-component vector of int) 0:17 'p2' ( in 2-element array of int) 0:17 'p3' ( in int) 0:? Sequence 0:18 Branch: Return with expression 0:18 add ( temp 4-component vector of int) 0:18 add ( temp 4-component vector of int) 0:18 add ( temp 4-component vector of int) 0:18 'p0' ( in 4-component vector of int) 0:18 'p1' ( in 4-component vector of int) 0:18 direct index ( temp int) 0:18 'p2' ( in 2-element array of int) 0:18 Constant: 0:18 0 (const int) 0:18 'p3' ( in int) 0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) 0:23 Function Parameters: 0:23 'p0' ( in 4-component vector of int) 0:23 'x' ( in int) 0:? Sequence 0:24 Branch: Return with expression 0:? Constant: 0:? 10 (const int) 0:? 11 (const int) 0:? 12 (const int) 0:? 13 (const int) 0:28 Function Definition: fn2(vi4;f1; ( temp 4-component vector of int) 0:28 Function Parameters: 0:28 'p0' ( in 4-component vector of int) 0:28 'x' ( in float) 0:? Sequence 0:29 Branch: Return with expression 0:29 add ( temp 4-component vector of int) 0:29 'p0' ( in 4-component vector of int) 0:? Constant: 0:? 20 (const int) 0:? 21 (const int) 0:? 22 (const int) 0:? 23 (const int) 0:32 Function Definition: fn3(i1; ( temp void) 0:32 Function Parameters: 0:32 'p0' ( in int) 0:36 Function Definition: @main( ( temp 4-component vector of int) 0:36 Function Parameters: 0:? Sequence 0:37 Sequence 0:37 move second child to first child ( temp 2-element array of int) 0:37 'myarray' ( temp 2-element array of int) 0:37 Constant: 0:37 30 (const int) 0:37 31 (const int) 0:39 Function Call: fn3(i1; ( temp void) 0:32 Constant: 0:32 3 (const int) 0:40 Function Call: fn3(i1; ( temp void) 0:40 Constant: 0:40 5 (const int) 0:50 Branch: Return with expression 0:49 add ( temp 4-component vector of int) 0:47 add ( temp 4-component vector of int) 0:46 add ( temp 4-component vector of int) 0:45 add ( temp 4-component vector of int) 0:44 add ( temp 4-component vector of int) 0:43 add ( temp 4-component vector of int) 0:42 add ( temp 4-component vector of int) 0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:42 Constant: 0:42 100 (const int) 0:42 100 (const int) 0:42 100 (const int) 0:42 100 (const int) 0:? Constant: 0:? -1 (const int) 0:? -2 (const int) 0:? -3 (const int) 0:? -4 (const int) 0:15 Constant: 0:15 1 (const int) 0:15 2 (const int) 0:16 Constant: 0:16 42 (const int) 0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:43 Constant: 0:43 101 (const int) 0:43 101 (const int) 0:43 101 (const int) 0:43 101 (const int) 0:43 ui4: direct index for structure ( uniform 4-component vector of int) 0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) 0:43 Constant: 0:43 0 (const uint) 0:15 Constant: 0:15 1 (const int) 0:15 2 (const int) 0:16 Constant: 0:16 42 (const int) 0:44 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:44 Constant: 0:44 102 (const int) 0:44 102 (const int) 0:44 102 (const int) 0:44 102 (const int) 0:44 ui4: direct index for structure ( uniform 4-component vector of int) 0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) 0:44 Constant: 0:44 0 (const uint) 0:44 'myarray' ( temp 2-element array of int) 0:16 Constant: 0:16 42 (const int) 0:45 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:45 Constant: 0:45 103 (const int) 0:45 103 (const int) 0:45 103 (const int) 0:45 103 (const int) 0:45 ui4: direct index for structure ( uniform 4-component vector of int) 0:45 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) 0:45 Constant: 0:45 0 (const uint) 0:45 'myarray' ( temp 2-element array of int) 0:45 Constant: 0:45 99 (const int) 0:46 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:46 Constant: 0:46 104 (const int) 0:46 104 (const int) 0:46 104 (const int) 0:46 104 (const int) 0:46 Constant: 0:46 false (const bool) 0:9 Constant: 0:9 false (const bool) 0:47 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:47 Constant: 0:47 105 (const int) 0:47 105 (const int) 0:47 105 (const int) 0:47 105 (const int) 0:47 Constant: 0:47 false (const bool) 0:47 Constant: 0:47 true (const bool) 0:49 Function Call: fn2(vi4;f1; ( temp 4-component vector of int) 0:49 Constant: 0:49 110 (const int) 0:49 110 (const int) 0:49 110 (const int) 0:49 110 (const int) 0:49 Constant: 0:49 11.110000 0:50 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) 0:50 Constant: 0:50 111 (const int) 0:50 111 (const int) 0:50 111 (const int) 0:50 111 (const int) 0:50 Constant: 0:50 12 (const int) 0:36 Function Definition: main( ( temp void) 0:36 Function Parameters: 0:? Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) 0:36 Function Call: @main( ( temp 4-component vector of int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) 0:? 'cia' ( const int) 0:? -4 (const int) 0:? 'cib' ( const int) 0:? -42 (const int) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:9 Function Parameters: 0:9 'p0' ( in 4-component vector of int) 0:9 'b1' ( in bool) 0:9 'b2' ( in bool) 0:? Sequence 0:10 Branch: Return with expression 0:10 'p0' ( in 4-component vector of int) 0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:17 Function Parameters: 0:17 'p0' ( in 4-component vector of int) 0:17 'p1' ( in 4-component vector of int) 0:17 'p2' ( in 2-element array of int) 0:17 'p3' ( in int) 0:? Sequence 0:18 Branch: Return with expression 0:18 add ( temp 4-component vector of int) 0:18 add ( temp 4-component vector of int) 0:18 add ( temp 4-component vector of int) 0:18 'p0' ( in 4-component vector of int) 0:18 'p1' ( in 4-component vector of int) 0:18 direct index ( temp int) 0:18 'p2' ( in 2-element array of int) 0:18 Constant: 0:18 0 (const int) 0:18 'p3' ( in int) 0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) 0:23 Function Parameters: 0:23 'p0' ( in 4-component vector of int) 0:23 'x' ( in int) 0:? Sequence 0:24 Branch: Return with expression 0:? Constant: 0:? 10 (const int) 0:? 11 (const int) 0:? 12 (const int) 0:? 13 (const int) 0:28 Function Definition: fn2(vi4;f1; ( temp 4-component vector of int) 0:28 Function Parameters: 0:28 'p0' ( in 4-component vector of int) 0:28 'x' ( in float) 0:? Sequence 0:29 Branch: Return with expression 0:29 add ( temp 4-component vector of int) 0:29 'p0' ( in 4-component vector of int) 0:? Constant: 0:? 20 (const int) 0:? 21 (const int) 0:? 22 (const int) 0:? 23 (const int) 0:32 Function Definition: fn3(i1; ( temp void) 0:32 Function Parameters: 0:32 'p0' ( in int) 0:36 Function Definition: @main( ( temp 4-component vector of int) 0:36 Function Parameters: 0:? Sequence 0:37 Sequence 0:37 move second child to first child ( temp 2-element array of int) 0:37 'myarray' ( temp 2-element array of int) 0:37 Constant: 0:37 30 (const int) 0:37 31 (const int) 0:39 Function Call: fn3(i1; ( temp void) 0:32 Constant: 0:32 3 (const int) 0:40 Function Call: fn3(i1; ( temp void) 0:40 Constant: 0:40 5 (const int) 0:50 Branch: Return with expression 0:49 add ( temp 4-component vector of int) 0:47 add ( temp 4-component vector of int) 0:46 add ( temp 4-component vector of int) 0:45 add ( temp 4-component vector of int) 0:44 add ( temp 4-component vector of int) 0:43 add ( temp 4-component vector of int) 0:42 add ( temp 4-component vector of int) 0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:42 Constant: 0:42 100 (const int) 0:42 100 (const int) 0:42 100 (const int) 0:42 100 (const int) 0:? Constant: 0:? -1 (const int) 0:? -2 (const int) 0:? -3 (const int) 0:? -4 (const int) 0:15 Constant: 0:15 1 (const int) 0:15 2 (const int) 0:16 Constant: 0:16 42 (const int) 0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:43 Constant: 0:43 101 (const int) 0:43 101 (const int) 0:43 101 (const int) 0:43 101 (const int) 0:43 ui4: direct index for structure ( uniform 4-component vector of int) 0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) 0:43 Constant: 0:43 0 (const uint) 0:15 Constant: 0:15 1 (const int) 0:15 2 (const int) 0:16 Constant: 0:16 42 (const int) 0:44 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:44 Constant: 0:44 102 (const int) 0:44 102 (const int) 0:44 102 (const int) 0:44 102 (const int) 0:44 ui4: direct index for structure ( uniform 4-component vector of int) 0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) 0:44 Constant: 0:44 0 (const uint) 0:44 'myarray' ( temp 2-element array of int) 0:16 Constant: 0:16 42 (const int) 0:45 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:45 Constant: 0:45 103 (const int) 0:45 103 (const int) 0:45 103 (const int) 0:45 103 (const int) 0:45 ui4: direct index for structure ( uniform 4-component vector of int) 0:45 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) 0:45 Constant: 0:45 0 (const uint) 0:45 'myarray' ( temp 2-element array of int) 0:45 Constant: 0:45 99 (const int) 0:46 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:46 Constant: 0:46 104 (const int) 0:46 104 (const int) 0:46 104 (const int) 0:46 104 (const int) 0:46 Constant: 0:46 false (const bool) 0:9 Constant: 0:9 false (const bool) 0:47 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:47 Constant: 0:47 105 (const int) 0:47 105 (const int) 0:47 105 (const int) 0:47 105 (const int) 0:47 Constant: 0:47 false (const bool) 0:47 Constant: 0:47 true (const bool) 0:49 Function Call: fn2(vi4;f1; ( temp 4-component vector of int) 0:49 Constant: 0:49 110 (const int) 0:49 110 (const int) 0:49 110 (const int) 0:49 110 (const int) 0:49 Constant: 0:49 11.110000 0:50 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) 0:50 Constant: 0:50 111 (const int) 0:50 111 (const int) 0:50 111 (const int) 0:50 111 (const int) 0:50 Constant: 0:50 12 (const int) 0:36 Function Definition: main( ( temp void) 0:36 Function Parameters: 0:? Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) 0:36 Function Call: @main( ( temp 4-component vector of int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4}) 0:? 'cia' ( const int) 0:? -4 (const int) 0:? 'cib' ( const int) 0:? -42 (const int) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.params.default.negative.frag.out000066400000000000000000000416531360464450000260450ustar00rootroot00000000000000hlsl.params.default.negative.frag ERROR: 0:27: '' : invalid default parameter value ERROR: 0:32: 'p1' : invalid parameter after default value parameters ERROR: 0:40: 'fn1' : ambiguous best function under implicit type conversion ERROR: 0:47: 'fn2' : ambiguous best function under implicit type conversion ERROR: 4 compilation errors. No code generated. Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:7 Function Definition: fn1(vi4; ( temp 4-component vector of int) 0:7 Function Parameters: 0:7 'p0' ( in 4-component vector of int) 0:? Sequence 0:7 Branch: Return with expression 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) 0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:9 Function Parameters: 0:9 'p0' ( in 4-component vector of int) 0:9 'b1' ( in bool) 0:9 'b2' ( in bool) 0:? Sequence 0:10 Branch: Return with expression 0:10 'p0' ( in 4-component vector of int) 0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:17 Function Parameters: 0:17 'p0' ( in 4-component vector of int) 0:17 'p1' ( in 4-component vector of int) 0:17 'p2' ( in 2-element array of int) 0:17 'p3' ( in int) 0:? Sequence 0:18 Branch: Return with expression 0:18 add ( temp 4-component vector of int) 0:18 add ( temp 4-component vector of int) 0:18 add ( temp 4-component vector of int) 0:18 'p0' ( in 4-component vector of int) 0:18 'p1' ( in 4-component vector of int) 0:18 direct index ( temp int) 0:18 'p2' ( in 2-element array of int) 0:18 Constant: 0:18 0 (const int) 0:18 'p3' ( in int) 0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) 0:23 Function Parameters: 0:23 'p0' ( in 4-component vector of int) 0:23 'x' ( in int) 0:? Sequence 0:24 Branch: Return with expression 0:? Constant: 0:? 10 (const int) 0:? 11 (const int) 0:? 12 (const int) 0:? 13 (const int) 0:28 Function Definition: fn2(vi4; ( temp 4-component vector of int) 0:28 Function Parameters: 0:28 'p0' ( in 4-component vector of int) 0:? Sequence 0:29 Branch: Return with expression 0:29 add ( temp 4-component vector of int) 0:29 'p0' ( in 4-component vector of int) 0:? Constant: 0:? 20 (const int) 0:? 21 (const int) 0:? 22 (const int) 0:? 23 (const int) 0:33 Function Definition: fn3(i1; ( temp void) 0:33 Function Parameters: 0:33 'p0' ( in int) 0:37 Function Definition: @main( ( temp 4-component vector of int) 0:37 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp 2-element array of int) 0:38 'myarray' ( temp 2-element array of int) 0:38 Constant: 0:38 30 (const int) 0:38 31 (const int) 0:49 Branch: Return with expression 0:48 add ( temp 4-component vector of int) 0:47 add ( temp 4-component vector of int) 0:45 add ( temp 4-component vector of int) 0:44 add ( temp 4-component vector of int) 0:43 add ( temp 4-component vector of int) 0:42 add ( temp 4-component vector of int) 0:41 add ( temp 4-component vector of int) 0:40 add ( temp 4-component vector of int) 0:40 Function Call: fn1(vi4; ( temp 4-component vector of int) 0:40 Constant: 0:40 100 (const int) 0:40 100 (const int) 0:40 100 (const int) 0:40 100 (const int) 0:41 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:41 Constant: 0:41 101 (const int) 0:41 101 (const int) 0:41 101 (const int) 0:41 101 (const int) 0:41 ui4: direct index for structure ( uniform 4-component vector of int) 0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) 0:41 Constant: 0:41 0 (const uint) 0:15 Constant: 0:15 1 (const int) 0:15 2 (const int) 0:16 Constant: 0:16 42 (const int) 0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:42 Constant: 0:42 102 (const int) 0:42 102 (const int) 0:42 102 (const int) 0:42 102 (const int) 0:42 ui4: direct index for structure ( uniform 4-component vector of int) 0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) 0:42 Constant: 0:42 0 (const uint) 0:42 'myarray' ( temp 2-element array of int) 0:16 Constant: 0:16 42 (const int) 0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:43 Constant: 0:43 103 (const int) 0:43 103 (const int) 0:43 103 (const int) 0:43 103 (const int) 0:43 ui4: direct index for structure ( uniform 4-component vector of int) 0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) 0:43 Constant: 0:43 0 (const uint) 0:43 'myarray' ( temp 2-element array of int) 0:43 Constant: 0:43 99 (const int) 0:44 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:44 Constant: 0:44 104 (const int) 0:44 104 (const int) 0:44 104 (const int) 0:44 104 (const int) 0:44 Constant: 0:44 false (const bool) 0:9 Constant: 0:9 false (const bool) 0:45 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:45 Constant: 0:45 105 (const int) 0:45 105 (const int) 0:45 105 (const int) 0:45 105 (const int) 0:45 Constant: 0:45 false (const bool) 0:45 Constant: 0:45 true (const bool) 0:47 Function Call: fn2(vi4; ( temp 4-component vector of int) 0:47 Constant: 0:47 112 (const int) 0:47 112 (const int) 0:47 112 (const int) 0:47 112 (const int) 0:48 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) 0:48 Constant: 0:48 110 (const int) 0:48 110 (const int) 0:48 110 (const int) 0:48 110 (const int) 0:48 Constant: 0:48 11 (const int) 0:49 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) 0:49 Constant: 0:49 111 (const int) 0:49 111 (const int) 0:49 111 (const int) 0:49 111 (const int) 0:49 Constant: 0:49 12 (const int) 0:37 Function Definition: main( ( temp void) 0:37 Function Parameters: 0:? Sequence 0:37 move second child to first child ( temp 4-component vector of int) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) 0:37 Function Call: @main( ( temp 4-component vector of int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) 0:? 'cia' ( const int) 0:? -4 (const int) 0:? 'cib' ( const int) 0:? -42 (const int) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:7 Function Definition: fn1(vi4; ( temp 4-component vector of int) 0:7 Function Parameters: 0:7 'p0' ( in 4-component vector of int) 0:? Sequence 0:7 Branch: Return with expression 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) 0:9 Function Definition: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:9 Function Parameters: 0:9 'p0' ( in 4-component vector of int) 0:9 'b1' ( in bool) 0:9 'b2' ( in bool) 0:? Sequence 0:10 Branch: Return with expression 0:10 'p0' ( in 4-component vector of int) 0:17 Function Definition: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:17 Function Parameters: 0:17 'p0' ( in 4-component vector of int) 0:17 'p1' ( in 4-component vector of int) 0:17 'p2' ( in 2-element array of int) 0:17 'p3' ( in int) 0:? Sequence 0:18 Branch: Return with expression 0:18 add ( temp 4-component vector of int) 0:18 add ( temp 4-component vector of int) 0:18 add ( temp 4-component vector of int) 0:18 'p0' ( in 4-component vector of int) 0:18 'p1' ( in 4-component vector of int) 0:18 direct index ( temp int) 0:18 'p2' ( in 2-element array of int) 0:18 Constant: 0:18 0 (const int) 0:18 'p3' ( in int) 0:23 Function Definition: fn2(vi4;i1; ( temp 4-component vector of int) 0:23 Function Parameters: 0:23 'p0' ( in 4-component vector of int) 0:23 'x' ( in int) 0:? Sequence 0:24 Branch: Return with expression 0:? Constant: 0:? 10 (const int) 0:? 11 (const int) 0:? 12 (const int) 0:? 13 (const int) 0:28 Function Definition: fn2(vi4; ( temp 4-component vector of int) 0:28 Function Parameters: 0:28 'p0' ( in 4-component vector of int) 0:? Sequence 0:29 Branch: Return with expression 0:29 add ( temp 4-component vector of int) 0:29 'p0' ( in 4-component vector of int) 0:? Constant: 0:? 20 (const int) 0:? 21 (const int) 0:? 22 (const int) 0:? 23 (const int) 0:33 Function Definition: fn3(i1; ( temp void) 0:33 Function Parameters: 0:33 'p0' ( in int) 0:37 Function Definition: @main( ( temp 4-component vector of int) 0:37 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp 2-element array of int) 0:38 'myarray' ( temp 2-element array of int) 0:38 Constant: 0:38 30 (const int) 0:38 31 (const int) 0:49 Branch: Return with expression 0:48 add ( temp 4-component vector of int) 0:47 add ( temp 4-component vector of int) 0:45 add ( temp 4-component vector of int) 0:44 add ( temp 4-component vector of int) 0:43 add ( temp 4-component vector of int) 0:42 add ( temp 4-component vector of int) 0:41 add ( temp 4-component vector of int) 0:40 add ( temp 4-component vector of int) 0:40 Function Call: fn1(vi4; ( temp 4-component vector of int) 0:40 Constant: 0:40 100 (const int) 0:40 100 (const int) 0:40 100 (const int) 0:40 100 (const int) 0:41 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:41 Constant: 0:41 101 (const int) 0:41 101 (const int) 0:41 101 (const int) 0:41 101 (const int) 0:41 ui4: direct index for structure ( uniform 4-component vector of int) 0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) 0:41 Constant: 0:41 0 (const uint) 0:15 Constant: 0:15 1 (const int) 0:15 2 (const int) 0:16 Constant: 0:16 42 (const int) 0:42 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:42 Constant: 0:42 102 (const int) 0:42 102 (const int) 0:42 102 (const int) 0:42 102 (const int) 0:42 ui4: direct index for structure ( uniform 4-component vector of int) 0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) 0:42 Constant: 0:42 0 (const uint) 0:42 'myarray' ( temp 2-element array of int) 0:16 Constant: 0:16 42 (const int) 0:43 Function Call: fn1(vi4;vi4;i1[2];i1; ( temp 4-component vector of int) 0:43 Constant: 0:43 103 (const int) 0:43 103 (const int) 0:43 103 (const int) 0:43 103 (const int) 0:43 ui4: direct index for structure ( uniform 4-component vector of int) 0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) 0:43 Constant: 0:43 0 (const uint) 0:43 'myarray' ( temp 2-element array of int) 0:43 Constant: 0:43 99 (const int) 0:44 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:44 Constant: 0:44 104 (const int) 0:44 104 (const int) 0:44 104 (const int) 0:44 104 (const int) 0:44 Constant: 0:44 false (const bool) 0:9 Constant: 0:9 false (const bool) 0:45 Function Call: fn1(vi4;b1;b1; ( temp 4-component vector of int) 0:45 Constant: 0:45 105 (const int) 0:45 105 (const int) 0:45 105 (const int) 0:45 105 (const int) 0:45 Constant: 0:45 false (const bool) 0:45 Constant: 0:45 true (const bool) 0:47 Function Call: fn2(vi4; ( temp 4-component vector of int) 0:47 Constant: 0:47 112 (const int) 0:47 112 (const int) 0:47 112 (const int) 0:47 112 (const int) 0:48 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) 0:48 Constant: 0:48 110 (const int) 0:48 110 (const int) 0:48 110 (const int) 0:48 110 (const int) 0:48 Constant: 0:48 11 (const int) 0:49 Function Call: fn2(vi4;i1; ( temp 4-component vector of int) 0:49 Constant: 0:49 111 (const int) 0:49 111 (const int) 0:49 111 (const int) 0:49 111 (const int) 0:49 Constant: 0:49 12 (const int) 0:37 Function Definition: main( ( temp void) 0:37 Function Parameters: 0:? Sequence 0:37 move second child to first child ( temp 4-component vector of int) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) 0:37 Function Call: @main( ( temp 4-component vector of int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of int ui4, uniform float ufvar}) 0:? 'cia' ( const int) 0:? -4 (const int) 0:? 'cib' ( const int) 0:? -42 (const int) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int) SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/hlsl.partialFlattenLocal.vert.out000066400000000000000000000477241360464450000253310ustar00rootroot00000000000000hlsl.partialFlattenLocal.vert WARNING: AST will form illegal SPIR-V; need to transform to legalize Shader version: 500 0:? Sequence 0:12 Function Definition: @main(vf4; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'pos' ( in 4-component vector of float) 0:? Sequence 0:14 move second child to first child ( temp texture2D) 0:14 tex: direct index for structure ( temp texture2D) 0:14 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:14 Constant: 0:14 0 (const int) 0:14 'tex' ( uniform texture2D) 0:15 move second child to first child ( temp 3-component vector of float) 0:15 direct index ( temp 3-component vector of float) 0:15 pos: direct index for structure ( temp 3-element array of 3-component vector of float) 0:15 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:15 Constant: 0:15 1 (const int) 0:15 Constant: 0:15 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:16 move second child to first child ( temp 2-component vector of float) 0:16 direct index ( temp 2-component vector of float) 0:16 uv: direct index for structure ( temp 2-element array of 2-component vector of float) 0:16 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:16 Constant: 0:16 2 (const int) 0:16 Constant: 0:16 0 (const int) 0:? Constant: 0:? 0.000000 0:? 1.000000 0:17 move second child to first child ( temp float) 0:17 x: direct index for structure ( temp float) 0:17 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:17 Constant: 0:17 3 (const int) 0:17 Constant: 0:17 1.000000 0:18 move second child to first child ( temp int) 0:18 n: direct index for structure ( temp int) 0:18 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:18 Constant: 0:18 4 (const int) 0:18 Constant: 0:18 3 (const int) 0:20 Sequence 0:20 move second child to first child ( temp int) 0:20 'i' ( temp int) 0:20 Constant: 0:20 0 (const int) 0:20 Loop with condition tested first 0:20 Loop Condition 0:20 Compare Less Than ( temp bool) 0:20 'i' ( temp int) 0:20 Constant: 0:20 1 (const int) 0:20 Loop Body 0:? Sequence 0:21 add second child into first child ( temp 2-component vector of float) 0:21 vector swizzle ( temp 2-component vector of float) 0:21 indirect index ( temp 3-component vector of float) 0:21 pos: direct index for structure ( temp 3-element array of 3-component vector of float) 0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:21 Constant: 0:21 1 (const int) 0:21 'i' ( temp int) 0:21 Sequence 0:21 Constant: 0:21 0 (const int) 0:21 Constant: 0:21 1 (const int) 0:21 indirect index ( temp 2-component vector of float) 0:21 uv: direct index for structure ( temp 2-element array of 2-component vector of float) 0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:21 Constant: 0:21 2 (const int) 0:21 'i' ( temp int) 0:20 Loop Terminal Expression 0:20 Pre-Increment ( temp int) 0:20 'i' ( temp int) 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:24 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:24 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:26 Branch: Return with expression 0:26 add ( temp 4-component vector of float) 0:26 'pos' ( in 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:26 direct index ( temp 3-component vector of float) 0:26 pos: direct index for structure ( temp 3-element array of 3-component vector of float) 0:26 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:26 Constant: 0:26 1 (const int) 0:26 Constant: 0:26 0 (const int) 0:26 Constant: 0:26 0.000000 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp 4-component vector of float) 0:? 'pos' ( temp 4-component vector of float) 0:? 'pos' (layout( location=0) in 4-component vector of float) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:12 Function Call: @main(vf4; ( temp 4-component vector of float) 0:? 'pos' ( temp 4-component vector of float) 0:? Linker Objects 0:? 'tex' ( uniform texture2D) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:? 'pos' (layout( location=0) in 4-component vector of float) Linked vertex stage: Shader version: 500 0:? Sequence 0:12 Function Definition: @main(vf4; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'pos' ( in 4-component vector of float) 0:? Sequence 0:14 move second child to first child ( temp texture2D) 0:14 tex: direct index for structure ( temp texture2D) 0:14 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:14 Constant: 0:14 0 (const int) 0:14 'tex' ( uniform texture2D) 0:15 move second child to first child ( temp 3-component vector of float) 0:15 direct index ( temp 3-component vector of float) 0:15 pos: direct index for structure ( temp 3-element array of 3-component vector of float) 0:15 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:15 Constant: 0:15 1 (const int) 0:15 Constant: 0:15 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:16 move second child to first child ( temp 2-component vector of float) 0:16 direct index ( temp 2-component vector of float) 0:16 uv: direct index for structure ( temp 2-element array of 2-component vector of float) 0:16 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:16 Constant: 0:16 2 (const int) 0:16 Constant: 0:16 0 (const int) 0:? Constant: 0:? 0.000000 0:? 1.000000 0:17 move second child to first child ( temp float) 0:17 x: direct index for structure ( temp float) 0:17 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:17 Constant: 0:17 3 (const int) 0:17 Constant: 0:17 1.000000 0:18 move second child to first child ( temp int) 0:18 n: direct index for structure ( temp int) 0:18 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:18 Constant: 0:18 4 (const int) 0:18 Constant: 0:18 3 (const int) 0:20 Sequence 0:20 move second child to first child ( temp int) 0:20 'i' ( temp int) 0:20 Constant: 0:20 0 (const int) 0:20 Loop with condition tested first 0:20 Loop Condition 0:20 Compare Less Than ( temp bool) 0:20 'i' ( temp int) 0:20 Constant: 0:20 1 (const int) 0:20 Loop Body 0:? Sequence 0:21 add second child into first child ( temp 2-component vector of float) 0:21 vector swizzle ( temp 2-component vector of float) 0:21 indirect index ( temp 3-component vector of float) 0:21 pos: direct index for structure ( temp 3-element array of 3-component vector of float) 0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:21 Constant: 0:21 1 (const int) 0:21 'i' ( temp int) 0:21 Sequence 0:21 Constant: 0:21 0 (const int) 0:21 Constant: 0:21 1 (const int) 0:21 indirect index ( temp 2-component vector of float) 0:21 uv: direct index for structure ( temp 2-element array of 2-component vector of float) 0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:21 Constant: 0:21 2 (const int) 0:21 'i' ( temp int) 0:20 Loop Terminal Expression 0:20 Pre-Increment ( temp int) 0:20 'i' ( temp int) 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:24 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:24 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:26 Branch: Return with expression 0:26 add ( temp 4-component vector of float) 0:26 'pos' ( in 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:26 direct index ( temp 3-component vector of float) 0:26 pos: direct index for structure ( temp 3-element array of 3-component vector of float) 0:26 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n}) 0:26 Constant: 0:26 1 (const int) 0:26 Constant: 0:26 0 (const int) 0:26 Constant: 0:26 0.000000 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp 4-component vector of float) 0:? 'pos' ( temp 4-component vector of float) 0:? 'pos' (layout( location=0) in 4-component vector of float) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:12 Function Call: @main(vf4; ( temp 4-component vector of float) 0:? 'pos' ( temp 4-component vector of float) 0:? Linker Objects 0:? 'tex' ( uniform texture2D) 0:? '@entryPointOutput' ( out 4-component vector of float Position) 0:? 'pos' (layout( location=0) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 90 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 83 86 Source HLSL 500 Name 4 "main" Name 11 "@main(vf4;" Name 10 "pos" Name 22 "Packed" MemberName 22(Packed) 0 "tex" MemberName 22(Packed) 1 "pos" MemberName 22(Packed) 2 "uv" MemberName 22(Packed) 3 "x" MemberName 22(Packed) 4 "n" Name 24 "packed" Name 27 "tex" Name 47 "i" Name 69 "packed2" Name 81 "pos" Name 83 "pos" Name 86 "@entryPointOutput" Name 87 "param" Decorate 27(tex) DescriptorSet 0 Decorate 27(tex) Binding 0 Decorate 83(pos) Location 0 Decorate 86(@entryPointOutput) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) 13: TypeImage 6(float) 2D sampled format:Unknown 14: TypeVector 6(float) 3 15: TypeInt 32 0 16: 15(int) Constant 3 17: TypeArray 14(fvec3) 16 18: TypeVector 6(float) 2 19: 15(int) Constant 2 20: TypeArray 18(fvec2) 19 21: TypeInt 32 1 22(Packed): TypeStruct 13 17 20 6(float) 21(int) 23: TypePointer Function 22(Packed) 25: 21(int) Constant 0 26: TypePointer UniformConstant 13 27(tex): 26(ptr) Variable UniformConstant 29: TypePointer Function 13 31: 21(int) Constant 1 32: 6(float) Constant 0 33: 14(fvec3) ConstantComposite 32 32 32 34: TypePointer Function 14(fvec3) 36: 21(int) Constant 2 37: 6(float) Constant 1065353216 38: 18(fvec2) ConstantComposite 32 37 39: TypePointer Function 18(fvec2) 41: 21(int) Constant 3 42: TypePointer Function 6(float) 44: 21(int) Constant 4 45: TypePointer Function 21(int) 54: TypeBool 82: TypePointer Input 7(fvec4) 83(pos): 82(ptr) Variable Input 85: TypePointer Output 7(fvec4) 86(@entryPointOutput): 85(ptr) Variable Output 4(main): 2 Function None 3 5: Label 81(pos): 8(ptr) Variable Function 87(param): 8(ptr) Variable Function 84: 7(fvec4) Load 83(pos) Store 81(pos) 84 88: 7(fvec4) Load 81(pos) Store 87(param) 88 89: 7(fvec4) FunctionCall 11(@main(vf4;) 87(param) Store 86(@entryPointOutput) 89 Return FunctionEnd 11(@main(vf4;): 7(fvec4) Function None 9 10(pos): 8(ptr) FunctionParameter 12: Label 24(packed): 23(ptr) Variable Function 47(i): 45(ptr) Variable Function 69(packed2): 23(ptr) Variable Function 28: 13 Load 27(tex) 30: 29(ptr) AccessChain 24(packed) 25 Store 30 28 35: 34(ptr) AccessChain 24(packed) 31 25 Store 35 33 40: 39(ptr) AccessChain 24(packed) 36 25 Store 40 38 43: 42(ptr) AccessChain 24(packed) 41 Store 43 37 46: 45(ptr) AccessChain 24(packed) 44 Store 46 41 Store 47(i) 25 Branch 48 48: Label LoopMerge 50 51 None Branch 52 52: Label 53: 21(int) Load 47(i) 55: 54(bool) SLessThan 53 31 BranchConditional 55 49 50 49: Label 56: 21(int) Load 47(i) 57: 21(int) Load 47(i) 58: 39(ptr) AccessChain 24(packed) 36 57 59: 18(fvec2) Load 58 60: 34(ptr) AccessChain 24(packed) 31 56 61: 14(fvec3) Load 60 62: 18(fvec2) VectorShuffle 61 61 0 1 63: 18(fvec2) FAdd 62 59 64: 34(ptr) AccessChain 24(packed) 31 56 65: 14(fvec3) Load 64 66: 14(fvec3) VectorShuffle 65 63 3 4 2 Store 64 66 Branch 51 51: Label 67: 21(int) Load 47(i) 68: 21(int) IAdd 67 31 Store 47(i) 68 Branch 48 50: Label 70: 22(Packed) Load 24(packed) Store 69(packed2) 70 71: 7(fvec4) Load 10(pos) 72: 34(ptr) AccessChain 69(packed2) 31 25 73: 14(fvec3) Load 72 74: 6(float) CompositeExtract 73 0 75: 6(float) CompositeExtract 73 1 76: 6(float) CompositeExtract 73 2 77: 7(fvec4) CompositeConstruct 74 75 76 32 78: 7(fvec4) FAdd 71 77 ReturnValue 78 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.partialFlattenMixed.vert.out000066400000000000000000000176651360464450000253460ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 36(pos) Location 0 Decorate 39(@entryPointOutput) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) 13: TypeInt 32 1 14: TypeImage 6(float) 2D sampled format:Unknown 15: TypeInt 32 0 16: 15(int) Constant 2 17: TypeArray 14 16 18(Packed): TypeStruct 13(int) 17 13(int) 19: TypePointer Function 18(Packed) 21: 13(int) Constant 1 22: 13(int) Constant 0 23: TypePointer UniformConstant 14 24(tex[0]): 23(ptr) Variable UniformConstant 26: TypePointer Function 14 28(tex[1]): 23(ptr) Variable UniformConstant 35: TypePointer Input 7(fvec4) 36(pos): 35(ptr) Variable Input 38: TypePointer Output 7(fvec4) 39(@entryPointOutput): 38(ptr) Variable Output 4(main): 2 Function None 3 5: Label 34(pos): 8(ptr) Variable Function 40(param): 8(ptr) Variable Function 37: 7(fvec4) Load 36(pos) Store 34(pos) 37 41: 7(fvec4) Load 34(pos) Store 40(param) 41 42: 7(fvec4) FunctionCall 11(@main(vf4;) 40(param) Store 39(@entryPointOutput) 42 Return FunctionEnd 11(@main(vf4;): 7(fvec4) Function None 9 10(pos): 8(ptr) FunctionParameter 12: Label 20(packed): 19(ptr) Variable Function 25: 14 Load 24(tex[0]) 27: 26(ptr) AccessChain 20(packed) 21 22 Store 27 25 29: 14 Load 28(tex[1]) 30: 26(ptr) AccessChain 20(packed) 21 21 Store 30 29 31: 7(fvec4) Load 10(pos) ReturnValue 31 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.partialInit.frag.out000066400000000000000000000652271360464450000236210ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.pp.expand.frag.err000066400000000000000000000000001360464450000231710ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/hlsl.pp.expand.frag.out000066400000000000000000000002611360464450000232210ustar00rootroot00000000000000 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" } glslang-8.13.3559/Test/baseResults/hlsl.pp.line.frag.out000066400000000000000000000223121360464450000226720ustar00rootroot00000000000000hlsl.pp.line.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:4 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence 0:124 move second child to first child ( temp int) 0:124 'thisLineIs' ( temp int) 0:124 Constant: 0:124 124 (const int) 0:126 move second child to first child ( temp 4-component vector of float) 0:126 Color: direct index for structure ( temp 4-component vector of float) 0:126 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:126 Constant: 0:126 0 (const int) 0:? Construct vec4 ( temp 4-component vector of float) 0:126 Convert int to float ( temp float) 0:126 'thisLineIs' ( temp int) 0:126 Constant: 0:126 0.000000 0:126 Constant: 0:126 0.000000 0:126 Constant: 0:126 1.000000 0:127 move second child to first child ( temp float) 0:127 Depth: direct index for structure ( temp float) 0:127 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:127 Constant: 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 0:129 Branch: Return with expression 0:129 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 Function Definition: main( ( temp void) 0:4 Function Parameters: 0:? Sequence 0:4 Sequence 0:4 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:4 Color: direct index for structure ( temp 4-component vector of float) 0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 Constant: 0:4 0 (const int) 0:4 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:4 Depth: direct index for structure ( temp float) 0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 Constant: 0:4 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:4 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence 0:124 move second child to first child ( temp int) 0:124 'thisLineIs' ( temp int) 0:124 Constant: 0:124 124 (const int) 0:126 move second child to first child ( temp 4-component vector of float) 0:126 Color: direct index for structure ( temp 4-component vector of float) 0:126 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:126 Constant: 0:126 0 (const int) 0:? Construct vec4 ( temp 4-component vector of float) 0:126 Convert int to float ( temp float) 0:126 'thisLineIs' ( temp int) 0:126 Constant: 0:126 0.000000 0:126 Constant: 0:126 0.000000 0:126 Constant: 0:126 1.000000 0:127 move second child to first child ( temp float) 0:127 Depth: direct index for structure ( temp float) 0:127 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:127 Constant: 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 0:129 Branch: Return with expression 0:129 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 Function Definition: main( ( temp void) 0:4 Function Parameters: 0:? Sequence 0:4 Sequence 0:4 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:4 Color: direct index for structure ( temp 4-component vector of float) 0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 Constant: 0:4 0 (const int) 0:4 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:4 Depth: direct index for structure ( temp float) 0:4 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:4 Constant: 0:4 1 (const int) 0:? Linker Objects 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.pp.line2.frag.out000066400000000000000000000175541360464450000227700ustar00rootroot00000000000000hlsl.pp.line2.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 glslang-8.13.3559/Test/baseResults/hlsl.pp.line3.frag.out000066400000000000000000000172171360464450000227650ustar00rootroot00000000000000hlsl.pp.line3.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.pp.line4.frag.out000066400000000000000000000136551360464450000227700ustar00rootroot00000000000000hlsl.pp.line4.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 115 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 0 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 82: 24(ptr) AccessChain 21 23 83: 18(int) Load 82 84: 27(bool) INotEqual 83 28 SelectionMerge 85 None BranchConditional 84 86 87 86: Label Line 32 1 0 88: 24(ptr) AccessChain 21 35 89: 18(int) Load 88 Branch 85 87: Label Line 17 32 0 90: 24(ptr) AccessChain 21 39 91: 18(int) Load 90 Branch 85 85: Label 114: 18(int) Phi 89 86 91 87 Line 17 33 0 93: 50(ptr) AccessChain 48(g_tColor) 114 94: 44 Load 93 95: 53 Load 55(g_sAniso) 96: 57 SampledImage 94 95 99: 11(fvec4) ImageSampleImplicitLod 96 71 Line 17 25 0 Store 74(@entryPointOutput.vColor) 99 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.pp.vert.out000066400000000000000000000046201360464450000220070ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.precedence.frag.out000066400000000000000000000305561360464450000234330ustar00rootroot00000000000000hlsl.precedence.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4; ( temp 4-component vector of float) 0:7 Function Parameters: 0:7 'a1' ( in 4-component vector of float) 0:7 'a2' ( in 4-component vector of float) 0:7 'a3' ( in 4-component vector of float) 0:7 'a4' ( in 4-component vector of float) 0:? Sequence 0:8 Branch: Return with expression 0:8 add ( temp 4-component vector of float) 0:8 add ( temp 4-component vector of float) 0:8 add ( temp 4-component vector of float) 0:8 'a1' ( in 4-component vector of float) 0:8 component-wise multiply ( temp 4-component vector of float) 0:8 'a2' ( in 4-component vector of float) 0:8 'a3' ( in 4-component vector of float) 0:8 'a4' ( in 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:8 component-wise multiply ( temp 3-component vector of float) 0:8 vector swizzle ( temp 3-component vector of float) 0:8 'a1' ( in 4-component vector of float) 0:8 Sequence 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 1 (const int) 0:8 Constant: 0:8 2 (const int) 0:8 vector swizzle ( temp 3-component vector of float) 0:8 'a2' ( in 4-component vector of float) 0:8 Sequence 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 1 (const int) 0:8 Constant: 0:8 2 (const int) 0:8 direct index ( temp float) 0:8 'a3' ( in 4-component vector of float) 0:8 Constant: 0:8 3 (const int) 0:7 Function Definition: PixelShaderFunction( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp 4-component vector of float) 0:? 'a1' ( temp 4-component vector of float) 0:? 'a1' (layout( location=0) in 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float) 0:? 'a2' ( temp 4-component vector of float) 0:? 'a2' (layout( location=1) in 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float) 0:? 'a3' ( temp 4-component vector of float) 0:? 'a3' (layout( location=2) in 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float) 0:? 'a4' ( temp 4-component vector of float) 0:? 'a4' (layout( location=3) in 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @PixelShaderFunction(vf4;vf4;vf4;vf4; ( temp 4-component vector of float) 0:? 'a1' ( temp 4-component vector of float) 0:? 'a2' ( temp 4-component vector of float) 0:? 'a3' ( temp 4-component vector of float) 0:? 'a4' ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'a1' (layout( location=0) in 4-component vector of float) 0:? 'a2' (layout( location=1) in 4-component vector of float) 0:? 'a3' (layout( location=2) in 4-component vector of float) 0:? 'a4' (layout( location=3) in 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4; ( temp 4-component vector of float) 0:7 Function Parameters: 0:7 'a1' ( in 4-component vector of float) 0:7 'a2' ( in 4-component vector of float) 0:7 'a3' ( in 4-component vector of float) 0:7 'a4' ( in 4-component vector of float) 0:? Sequence 0:8 Branch: Return with expression 0:8 add ( temp 4-component vector of float) 0:8 add ( temp 4-component vector of float) 0:8 add ( temp 4-component vector of float) 0:8 'a1' ( in 4-component vector of float) 0:8 component-wise multiply ( temp 4-component vector of float) 0:8 'a2' ( in 4-component vector of float) 0:8 'a3' ( in 4-component vector of float) 0:8 'a4' ( in 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:8 component-wise multiply ( temp 3-component vector of float) 0:8 vector swizzle ( temp 3-component vector of float) 0:8 'a1' ( in 4-component vector of float) 0:8 Sequence 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 1 (const int) 0:8 Constant: 0:8 2 (const int) 0:8 vector swizzle ( temp 3-component vector of float) 0:8 'a2' ( in 4-component vector of float) 0:8 Sequence 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 1 (const int) 0:8 Constant: 0:8 2 (const int) 0:8 direct index ( temp float) 0:8 'a3' ( in 4-component vector of float) 0:8 Constant: 0:8 3 (const int) 0:7 Function Definition: PixelShaderFunction( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp 4-component vector of float) 0:? 'a1' ( temp 4-component vector of float) 0:? 'a1' (layout( location=0) in 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float) 0:? 'a2' ( temp 4-component vector of float) 0:? 'a2' (layout( location=1) in 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float) 0:? 'a3' ( temp 4-component vector of float) 0:? 'a3' (layout( location=2) in 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float) 0:? 'a4' ( temp 4-component vector of float) 0:? 'a4' (layout( location=3) in 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @PixelShaderFunction(vf4;vf4;vf4;vf4; ( temp 4-component vector of float) 0:? 'a1' ( temp 4-component vector of float) 0:? 'a2' ( temp 4-component vector of float) 0:? 'a3' ( temp 4-component vector of float) 0:? 'a4' ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'a1' (layout( location=0) in 4-component vector of float) 0:? 'a2' (layout( location=1) in 4-component vector of float) 0:? 'a3' (layout( location=2) in 4-component vector of float) 0:? 'a4' (layout( location=3) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.precedence2.frag.out000066400000000000000000000216551360464450000235150ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.precise.frag.out000066400000000000000000000147641360464450000227730ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.preprocessor.frag.out000066400000000000000000000171761360464450000240670ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 33(input) Location 0 Decorate 36(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) 14: TypeImage 6(float) 2D sampled format:Unknown 15: TypePointer UniformConstant 14 16(test_texture): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(test_texture_ss): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: TypeVector 6(float) 2 32: TypePointer Input 7(fvec4) 33(input): 32(ptr) Variable Input 35: TypePointer Output 7(fvec4) 36(@entryPointOutput): 35(ptr) Variable Output 4(main): 2 Function None 3 5: Label 31(input): 8(ptr) Variable Function 37(param): 8(ptr) Variable Function 34: 7(fvec4) Load 33(input) Store 31(input) 34 38: 7(fvec4) Load 31(input) Store 37(param) 38 39: 7(fvec4) FunctionCall 11(@main(vf4;) 37(param) Store 36(@entryPointOutput) 39 Return FunctionEnd 11(@main(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter 12: Label 13(tex): 8(ptr) Variable Function 17: 14 Load 16(test_texture) 21: 18 Load 20(test_texture_ss) 23: 22 SampledImage 17 21 25: 7(fvec4) Load 10(input) 26: 24(fvec2) VectorShuffle 25 25 0 1 27: 7(fvec4) ImageSampleImplicitLod 23 26 Store 13(tex) 27 28: 7(fvec4) Load 13(tex) ReturnValue 28 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.promote.atomic.frag.out000066400000000000000000000122421360464450000242660ustar00rootroot00000000000000hlsl.promote.atomic.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: @main( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence 0:13 move second child to first child ( temp int) 0:13 'Orig' ( temp int) 0:13 Convert uint to int ( temp int) 0:13 imageAtomicAdd ( temp uint) 0:13 's_uintbuff' (layout( r32ui) uniform uimageBuffer) 0:13 'Loc' ( temp int) 0:13 Convert int to uint ( temp uint) 0:13 'Inc' ( temp int) 0:15 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:5 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 's_uintbuff' (layout( r32ui) uniform uimageBuffer) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: @main( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence 0:13 move second child to first child ( temp int) 0:13 'Orig' ( temp int) 0:13 Convert uint to int ( temp int) 0:13 imageAtomicAdd ( temp uint) 0:13 's_uintbuff' (layout( r32ui) uniform uimageBuffer) 0:13 'Loc' ( temp int) 0:13 Convert int to uint ( temp uint) 0:13 'Inc' ( temp int) 0:15 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:5 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 's_uintbuff' (layout( r32ui) uniform uimageBuffer) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.promote.binary.frag.out000066400000000000000000000424161360464450000243040ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.promote.vec1.frag.out000066400000000000000000000125461360464450000236570ustar00rootroot00000000000000hlsl.promote.vec1.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: @main( ( temp 4-component vector of float) 0:3 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp float) 0:7 'f1a' ( temp float) 0:7 Construct float ( temp float) 0:7 'f1b' ( temp 1-component vector of float) 0:8 move second child to first child ( temp 1-component vector of float) 0:8 'f1b' ( temp 1-component vector of float) 0:8 Construct float ( temp 1-component vector of float) 0:8 'f1a' ( temp float) 0:11 step ( temp 3-component vector of float) 0:11 Constant: 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 'f3' ( temp 3-component vector of float) 0:13 sine ( temp float) 0:13 Construct float ( in float) 0:13 'f1b' ( temp 1-component vector of float) 0:15 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:3 Function Definition: main( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:3 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:3 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: @main( ( temp 4-component vector of float) 0:3 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp float) 0:7 'f1a' ( temp float) 0:7 Construct float ( temp float) 0:7 'f1b' ( temp 1-component vector of float) 0:8 move second child to first child ( temp 1-component vector of float) 0:8 'f1b' ( temp 1-component vector of float) 0:8 Construct float ( temp 1-component vector of float) 0:8 'f1a' ( temp float) 0:11 step ( temp 3-component vector of float) 0:11 Constant: 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 'f3' ( temp 3-component vector of float) 0:13 sine ( temp float) 0:13 Construct float ( in float) 0:13 'f1b' ( temp 1-component vector of float) 0:15 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:3 Function Definition: main( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:3 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:3 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.promotions.frag.out000066400000000000000000005326301360464450000235470ustar00rootroot00000000000000hlsl.promotions.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:19 Function Definition: Fn_F3(vf3; ( temp void) 0:19 Function Parameters: 0:19 'x' ( in 3-component vector of float) 0:20 Function Definition: Fn_I3(vi3; ( temp void) 0:20 Function Parameters: 0:20 'x' ( in 3-component vector of int) 0:21 Function Definition: Fn_U3(vu3; ( temp void) 0:21 Function Parameters: 0:21 'x' ( in 3-component vector of uint) 0:22 Function Definition: Fn_B3(vb3; ( temp void) 0:22 Function Parameters: 0:22 'x' ( in 3-component vector of bool) 0:23 Function Definition: Fn_D3(vd3; ( temp void) 0:23 Function Parameters: 0:23 'x' ( in 3-component vector of double) 0:26 Function Definition: Fn_R_F3I(vf3; ( temp 3-component vector of float) 0:26 Function Parameters: 0:26 'p' ( out 3-component vector of float) 0:? Sequence 0:26 move second child to first child ( temp 3-component vector of float) 0:26 'p' ( out 3-component vector of float) 0:26 Convert int to float ( temp 3-component vector of float) 0:26 i3: direct index for structure ( uniform 3-component vector of int) 0:26 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:26 Constant: 0:26 0 (const uint) 0:26 Branch: Return with expression 0:26 Convert int to float ( temp 3-component vector of float) 0:26 i3: direct index for structure ( uniform 3-component vector of int) 0:26 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:26 Constant: 0:26 0 (const uint) 0:27 Function Definition: Fn_R_F3U(vf3; ( temp 3-component vector of float) 0:27 Function Parameters: 0:27 'p' ( out 3-component vector of float) 0:? Sequence 0:27 move second child to first child ( temp 3-component vector of float) 0:27 'p' ( out 3-component vector of float) 0:27 Convert uint to float ( temp 3-component vector of float) 0:27 u3: direct index for structure ( uniform 3-component vector of uint) 0:27 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:27 Constant: 0:27 3 (const uint) 0:27 Branch: Return with expression 0:27 Convert uint to float ( temp 3-component vector of float) 0:27 u3: direct index for structure ( uniform 3-component vector of uint) 0:27 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:27 Constant: 0:27 3 (const uint) 0:28 Function Definition: Fn_R_F3B(vf3; ( temp 3-component vector of float) 0:28 Function Parameters: 0:28 'p' ( out 3-component vector of float) 0:? Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 'p' ( out 3-component vector of float) 0:28 Convert bool to float ( temp 3-component vector of float) 0:28 b3: direct index for structure ( uniform 3-component vector of bool) 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:28 Constant: 0:28 1 (const uint) 0:28 Branch: Return with expression 0:28 Convert bool to float ( temp 3-component vector of float) 0:28 b3: direct index for structure ( uniform 3-component vector of bool) 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:28 Constant: 0:28 1 (const uint) 0:29 Function Definition: Fn_R_F3D(vf3; ( temp 3-component vector of float) 0:29 Function Parameters: 0:29 'p' ( out 3-component vector of float) 0:? Sequence 0:29 move second child to first child ( temp 3-component vector of float) 0:29 'p' ( out 3-component vector of float) 0:29 Convert double to float ( temp 3-component vector of float) 0:29 d3: direct index for structure ( uniform 3-component vector of double) 0:29 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:29 Constant: 0:29 4 (const uint) 0:29 Branch: Return with expression 0:29 Convert double to float ( temp 3-component vector of float) 0:29 d3: direct index for structure ( uniform 3-component vector of double) 0:29 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:29 Constant: 0:29 4 (const uint) 0:31 Function Definition: Fn_R_I3U(vi3; ( temp 3-component vector of int) 0:31 Function Parameters: 0:31 'p' ( out 3-component vector of int) 0:? Sequence 0:31 move second child to first child ( temp 3-component vector of int) 0:31 'p' ( out 3-component vector of int) 0:31 Convert uint to int ( temp 3-component vector of int) 0:31 u3: direct index for structure ( uniform 3-component vector of uint) 0:31 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:31 Constant: 0:31 3 (const uint) 0:31 Branch: Return with expression 0:31 Convert uint to int ( temp 3-component vector of int) 0:31 u3: direct index for structure ( uniform 3-component vector of uint) 0:31 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:31 Constant: 0:31 3 (const uint) 0:32 Function Definition: Fn_R_I3B(vi3; ( temp 3-component vector of int) 0:32 Function Parameters: 0:32 'p' ( out 3-component vector of int) 0:? Sequence 0:32 move second child to first child ( temp 3-component vector of int) 0:32 'p' ( out 3-component vector of int) 0:32 Convert bool to int ( temp 3-component vector of int) 0:32 b3: direct index for structure ( uniform 3-component vector of bool) 0:32 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:32 Constant: 0:32 1 (const uint) 0:32 Branch: Return with expression 0:32 Convert bool to int ( temp 3-component vector of int) 0:32 b3: direct index for structure ( uniform 3-component vector of bool) 0:32 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:32 Constant: 0:32 1 (const uint) 0:33 Function Definition: Fn_R_I3F(vi3; ( temp 3-component vector of int) 0:33 Function Parameters: 0:33 'p' ( out 3-component vector of int) 0:? Sequence 0:33 move second child to first child ( temp 3-component vector of int) 0:33 'p' ( out 3-component vector of int) 0:33 Convert float to int ( temp 3-component vector of int) 0:33 f3: direct index for structure ( uniform 3-component vector of float) 0:33 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:33 Constant: 0:33 2 (const uint) 0:33 Branch: Return with expression 0:33 Convert float to int ( temp 3-component vector of int) 0:33 f3: direct index for structure ( uniform 3-component vector of float) 0:33 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:33 Constant: 0:33 2 (const uint) 0:34 Function Definition: Fn_R_I3D(vi3; ( temp 3-component vector of int) 0:34 Function Parameters: 0:34 'p' ( out 3-component vector of int) 0:? Sequence 0:34 move second child to first child ( temp 3-component vector of int) 0:34 'p' ( out 3-component vector of int) 0:34 Convert double to int ( temp 3-component vector of int) 0:34 d3: direct index for structure ( uniform 3-component vector of double) 0:34 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:34 Constant: 0:34 4 (const uint) 0:34 Branch: Return with expression 0:34 Convert double to int ( temp 3-component vector of int) 0:34 d3: direct index for structure ( uniform 3-component vector of double) 0:34 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:34 Constant: 0:34 4 (const uint) 0:36 Function Definition: Fn_R_U3I(vu3; ( temp 3-component vector of uint) 0:36 Function Parameters: 0:36 'p' ( out 3-component vector of uint) 0:? Sequence 0:36 move second child to first child ( temp 3-component vector of uint) 0:36 'p' ( out 3-component vector of uint) 0:36 Convert int to uint ( temp 3-component vector of uint) 0:36 i3: direct index for structure ( uniform 3-component vector of int) 0:36 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:36 Constant: 0:36 0 (const uint) 0:36 Branch: Return with expression 0:36 Convert int to uint ( temp 3-component vector of uint) 0:36 i3: direct index for structure ( uniform 3-component vector of int) 0:36 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:36 Constant: 0:36 0 (const uint) 0:37 Function Definition: Fn_R_U3F(vu3; ( temp 3-component vector of uint) 0:37 Function Parameters: 0:37 'p' ( out 3-component vector of uint) 0:? Sequence 0:37 move second child to first child ( temp 3-component vector of uint) 0:37 'p' ( out 3-component vector of uint) 0:37 Convert float to uint ( temp 3-component vector of uint) 0:37 f3: direct index for structure ( uniform 3-component vector of float) 0:37 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:37 Constant: 0:37 2 (const uint) 0:37 Branch: Return with expression 0:37 Convert float to uint ( temp 3-component vector of uint) 0:37 f3: direct index for structure ( uniform 3-component vector of float) 0:37 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:37 Constant: 0:37 2 (const uint) 0:38 Function Definition: Fn_R_U3B(vu3; ( temp 3-component vector of uint) 0:38 Function Parameters: 0:38 'p' ( out 3-component vector of uint) 0:? Sequence 0:38 move second child to first child ( temp 3-component vector of uint) 0:38 'p' ( out 3-component vector of uint) 0:38 Convert bool to uint ( temp 3-component vector of uint) 0:38 b3: direct index for structure ( uniform 3-component vector of bool) 0:38 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:38 Constant: 0:38 1 (const uint) 0:38 Branch: Return with expression 0:38 Convert bool to uint ( temp 3-component vector of uint) 0:38 b3: direct index for structure ( uniform 3-component vector of bool) 0:38 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:38 Constant: 0:38 1 (const uint) 0:39 Function Definition: Fn_R_U3D(vu3; ( temp 3-component vector of uint) 0:39 Function Parameters: 0:39 'p' ( out 3-component vector of uint) 0:? Sequence 0:39 move second child to first child ( temp 3-component vector of uint) 0:39 'p' ( out 3-component vector of uint) 0:39 Convert double to uint ( temp 3-component vector of uint) 0:39 d3: direct index for structure ( uniform 3-component vector of double) 0:39 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:39 Constant: 0:39 4 (const uint) 0:39 Branch: Return with expression 0:39 Convert double to uint ( temp 3-component vector of uint) 0:39 d3: direct index for structure ( uniform 3-component vector of double) 0:39 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:39 Constant: 0:39 4 (const uint) 0:41 Function Definition: Fn_R_B3I(vb3; ( temp 3-component vector of bool) 0:41 Function Parameters: 0:41 'p' ( out 3-component vector of bool) 0:? Sequence 0:41 move second child to first child ( temp 3-component vector of bool) 0:41 'p' ( out 3-component vector of bool) 0:41 Convert int to bool ( temp 3-component vector of bool) 0:41 i3: direct index for structure ( uniform 3-component vector of int) 0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:41 Constant: 0:41 0 (const uint) 0:41 Branch: Return with expression 0:41 Convert int to bool ( temp 3-component vector of bool) 0:41 i3: direct index for structure ( uniform 3-component vector of int) 0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:41 Constant: 0:41 0 (const uint) 0:42 Function Definition: Fn_R_B3U(vb3; ( temp 3-component vector of bool) 0:42 Function Parameters: 0:42 'p' ( out 3-component vector of bool) 0:? Sequence 0:42 move second child to first child ( temp 3-component vector of bool) 0:42 'p' ( out 3-component vector of bool) 0:42 Convert uint to bool ( temp 3-component vector of bool) 0:42 u3: direct index for structure ( uniform 3-component vector of uint) 0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:42 Constant: 0:42 3 (const uint) 0:42 Branch: Return with expression 0:42 Convert uint to bool ( temp 3-component vector of bool) 0:42 u3: direct index for structure ( uniform 3-component vector of uint) 0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:42 Constant: 0:42 3 (const uint) 0:43 Function Definition: Fn_R_B3F(vb3; ( temp 3-component vector of bool) 0:43 Function Parameters: 0:43 'p' ( out 3-component vector of bool) 0:? Sequence 0:43 move second child to first child ( temp 3-component vector of bool) 0:43 'p' ( out 3-component vector of bool) 0:43 Convert float to bool ( temp 3-component vector of bool) 0:43 f3: direct index for structure ( uniform 3-component vector of float) 0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:43 Constant: 0:43 2 (const uint) 0:43 Branch: Return with expression 0:43 Convert float to bool ( temp 3-component vector of bool) 0:43 f3: direct index for structure ( uniform 3-component vector of float) 0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:43 Constant: 0:43 2 (const uint) 0:44 Function Definition: Fn_R_B3D(vb3; ( temp 3-component vector of bool) 0:44 Function Parameters: 0:44 'p' ( out 3-component vector of bool) 0:? Sequence 0:44 move second child to first child ( temp 3-component vector of bool) 0:44 'p' ( out 3-component vector of bool) 0:44 Convert double to bool ( temp 3-component vector of bool) 0:44 d3: direct index for structure ( uniform 3-component vector of double) 0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:44 Constant: 0:44 4 (const uint) 0:44 Branch: Return with expression 0:44 Convert double to bool ( temp 3-component vector of bool) 0:44 d3: direct index for structure ( uniform 3-component vector of double) 0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:44 Constant: 0:44 4 (const uint) 0:46 Function Definition: Fn_R_D3I(vd3; ( temp 3-component vector of double) 0:46 Function Parameters: 0:46 'p' ( out 3-component vector of double) 0:? Sequence 0:46 move second child to first child ( temp 3-component vector of double) 0:46 'p' ( out 3-component vector of double) 0:46 Convert int to double ( temp 3-component vector of double) 0:46 i3: direct index for structure ( uniform 3-component vector of int) 0:46 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:46 Constant: 0:46 0 (const uint) 0:46 Branch: Return with expression 0:46 Convert int to double ( temp 3-component vector of double) 0:46 i3: direct index for structure ( uniform 3-component vector of int) 0:46 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:46 Constant: 0:46 0 (const uint) 0:47 Function Definition: Fn_R_D3U(vd3; ( temp 3-component vector of double) 0:47 Function Parameters: 0:47 'p' ( out 3-component vector of double) 0:? Sequence 0:47 move second child to first child ( temp 3-component vector of double) 0:47 'p' ( out 3-component vector of double) 0:47 Convert uint to double ( temp 3-component vector of double) 0:47 u3: direct index for structure ( uniform 3-component vector of uint) 0:47 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:47 Constant: 0:47 3 (const uint) 0:47 Branch: Return with expression 0:47 Convert uint to double ( temp 3-component vector of double) 0:47 u3: direct index for structure ( uniform 3-component vector of uint) 0:47 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:47 Constant: 0:47 3 (const uint) 0:48 Function Definition: Fn_R_D3B(vd3; ( temp 3-component vector of double) 0:48 Function Parameters: 0:48 'p' ( out 3-component vector of double) 0:? Sequence 0:48 move second child to first child ( temp 3-component vector of double) 0:48 'p' ( out 3-component vector of double) 0:48 Convert bool to double ( temp 3-component vector of double) 0:48 b3: direct index for structure ( uniform 3-component vector of bool) 0:48 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:48 Constant: 0:48 1 (const uint) 0:48 Branch: Return with expression 0:48 Convert bool to double ( temp 3-component vector of double) 0:48 b3: direct index for structure ( uniform 3-component vector of bool) 0:48 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:48 Constant: 0:48 1 (const uint) 0:49 Function Definition: Fn_R_D3F(vd3; ( temp 3-component vector of double) 0:49 Function Parameters: 0:49 'p' ( out 3-component vector of double) 0:? Sequence 0:49 move second child to first child ( temp 3-component vector of double) 0:49 'p' ( out 3-component vector of double) 0:49 Convert float to double ( temp 3-component vector of double) 0:49 f3: direct index for structure ( uniform 3-component vector of float) 0:49 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:49 Constant: 0:49 2 (const uint) 0:49 Branch: Return with expression 0:49 Convert float to double ( temp 3-component vector of double) 0:49 f3: direct index for structure ( uniform 3-component vector of float) 0:49 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:49 Constant: 0:49 2 (const uint) 0:52 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence 0:54 move second child to first child ( temp 3-component vector of float) 0:54 'r00' ( temp 3-component vector of float) 0:54 Convert int to float ( temp 3-component vector of float) 0:54 i3: direct index for structure ( uniform 3-component vector of int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:54 Constant: 0:54 0 (const uint) 0:55 Sequence 0:55 move second child to first child ( temp 3-component vector of float) 0:55 'r01' ( temp 3-component vector of float) 0:55 Convert bool to float ( temp 3-component vector of float) 0:55 b3: direct index for structure ( uniform 3-component vector of bool) 0:55 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:55 Constant: 0:55 1 (const uint) 0:56 Sequence 0:56 move second child to first child ( temp 3-component vector of float) 0:56 'r02' ( temp 3-component vector of float) 0:56 Convert uint to float ( temp 3-component vector of float) 0:56 u3: direct index for structure ( uniform 3-component vector of uint) 0:56 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:56 Constant: 0:56 3 (const uint) 0:57 Sequence 0:57 move second child to first child ( temp 3-component vector of float) 0:57 'r03' ( temp 3-component vector of float) 0:57 Convert double to float ( temp 3-component vector of float) 0:57 d3: direct index for structure ( uniform 3-component vector of double) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:57 Constant: 0:57 4 (const uint) 0:59 Sequence 0:59 move second child to first child ( temp 3-component vector of int) 0:59 'r10' ( temp 3-component vector of int) 0:59 Convert bool to int ( temp 3-component vector of int) 0:59 b3: direct index for structure ( uniform 3-component vector of bool) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:59 Constant: 0:59 1 (const uint) 0:60 Sequence 0:60 move second child to first child ( temp 3-component vector of int) 0:60 'r11' ( temp 3-component vector of int) 0:60 Convert uint to int ( temp 3-component vector of int) 0:60 u3: direct index for structure ( uniform 3-component vector of uint) 0:60 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:60 Constant: 0:60 3 (const uint) 0:61 Sequence 0:61 move second child to first child ( temp 3-component vector of int) 0:61 'r12' ( temp 3-component vector of int) 0:61 Convert float to int ( temp 3-component vector of int) 0:61 f3: direct index for structure ( uniform 3-component vector of float) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:61 Constant: 0:61 2 (const uint) 0:62 Sequence 0:62 move second child to first child ( temp 3-component vector of int) 0:62 'r13' ( temp 3-component vector of int) 0:62 Convert double to int ( temp 3-component vector of int) 0:62 d3: direct index for structure ( uniform 3-component vector of double) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:62 Constant: 0:62 4 (const uint) 0:64 Sequence 0:64 move second child to first child ( temp 3-component vector of uint) 0:64 'r20' ( temp 3-component vector of uint) 0:64 Convert bool to uint ( temp 3-component vector of uint) 0:64 b3: direct index for structure ( uniform 3-component vector of bool) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:64 Constant: 0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child ( temp 3-component vector of uint) 0:65 'r21' ( temp 3-component vector of uint) 0:65 Convert int to uint ( temp 3-component vector of uint) 0:65 i3: direct index for structure ( uniform 3-component vector of int) 0:65 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:65 Constant: 0:65 0 (const uint) 0:66 Sequence 0:66 move second child to first child ( temp 3-component vector of uint) 0:66 'r22' ( temp 3-component vector of uint) 0:66 Convert float to uint ( temp 3-component vector of uint) 0:66 f3: direct index for structure ( uniform 3-component vector of float) 0:66 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:66 Constant: 0:66 2 (const uint) 0:67 Sequence 0:67 move second child to first child ( temp 3-component vector of uint) 0:67 'r23' ( temp 3-component vector of uint) 0:67 Convert double to uint ( temp 3-component vector of uint) 0:67 d3: direct index for structure ( uniform 3-component vector of double) 0:67 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:67 Constant: 0:67 4 (const uint) 0:69 Sequence 0:69 move second child to first child ( temp 3-component vector of bool) 0:69 'r30' ( temp 3-component vector of bool) 0:69 Convert int to bool ( temp 3-component vector of bool) 0:69 i3: direct index for structure ( uniform 3-component vector of int) 0:69 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:69 Constant: 0:69 0 (const uint) 0:70 Sequence 0:70 move second child to first child ( temp 3-component vector of bool) 0:70 'r31' ( temp 3-component vector of bool) 0:70 Convert uint to bool ( temp 3-component vector of bool) 0:70 u3: direct index for structure ( uniform 3-component vector of uint) 0:70 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:70 Constant: 0:70 3 (const uint) 0:71 Sequence 0:71 move second child to first child ( temp 3-component vector of bool) 0:71 'r32' ( temp 3-component vector of bool) 0:71 Convert float to bool ( temp 3-component vector of bool) 0:71 f3: direct index for structure ( uniform 3-component vector of float) 0:71 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:71 Constant: 0:71 2 (const uint) 0:72 Sequence 0:72 move second child to first child ( temp 3-component vector of bool) 0:72 'r33' ( temp 3-component vector of bool) 0:72 Convert double to bool ( temp 3-component vector of bool) 0:72 d3: direct index for structure ( uniform 3-component vector of double) 0:72 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:72 Constant: 0:72 4 (const uint) 0:74 Sequence 0:74 move second child to first child ( temp 3-component vector of double) 0:74 'r40' ( temp 3-component vector of double) 0:74 Convert int to double ( temp 3-component vector of double) 0:74 i3: direct index for structure ( uniform 3-component vector of int) 0:74 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:74 Constant: 0:74 0 (const uint) 0:75 Sequence 0:75 move second child to first child ( temp 3-component vector of double) 0:75 'r41' ( temp 3-component vector of double) 0:75 Convert uint to double ( temp 3-component vector of double) 0:75 u3: direct index for structure ( uniform 3-component vector of uint) 0:75 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:75 Constant: 0:75 3 (const uint) 0:76 Sequence 0:76 move second child to first child ( temp 3-component vector of double) 0:76 'r42' ( temp 3-component vector of double) 0:76 Convert float to double ( temp 3-component vector of double) 0:76 f3: direct index for structure ( uniform 3-component vector of float) 0:76 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:76 Constant: 0:76 2 (const uint) 0:77 Sequence 0:77 move second child to first child ( temp 3-component vector of double) 0:77 'r43' ( temp 3-component vector of double) 0:77 Convert bool to double ( temp 3-component vector of double) 0:77 b3: direct index for structure ( uniform 3-component vector of bool) 0:77 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:77 Constant: 0:77 1 (const uint) 0:80 multiply second child into first child ( temp 3-component vector of float) 0:80 'r00' ( temp 3-component vector of float) 0:80 Convert int to float ( temp 3-component vector of float) 0:80 i3: direct index for structure ( uniform 3-component vector of int) 0:80 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:80 Constant: 0:80 0 (const uint) 0:81 multiply second child into first child ( temp 3-component vector of float) 0:81 'r01' ( temp 3-component vector of float) 0:81 Convert bool to float ( temp 3-component vector of float) 0:81 b3: direct index for structure ( uniform 3-component vector of bool) 0:81 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:81 Constant: 0:81 1 (const uint) 0:82 multiply second child into first child ( temp 3-component vector of float) 0:82 'r02' ( temp 3-component vector of float) 0:82 Convert uint to float ( temp 3-component vector of float) 0:82 u3: direct index for structure ( uniform 3-component vector of uint) 0:82 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:82 Constant: 0:82 3 (const uint) 0:83 multiply second child into first child ( temp 3-component vector of float) 0:83 'r03' ( temp 3-component vector of float) 0:83 Convert double to float ( temp 3-component vector of float) 0:83 d3: direct index for structure ( uniform 3-component vector of double) 0:83 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:83 Constant: 0:83 4 (const uint) 0:85 multiply second child into first child ( temp 3-component vector of int) 0:85 'r10' ( temp 3-component vector of int) 0:85 Convert bool to int ( temp 3-component vector of int) 0:85 b3: direct index for structure ( uniform 3-component vector of bool) 0:85 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:85 Constant: 0:85 1 (const uint) 0:86 multiply second child into first child ( temp 3-component vector of int) 0:86 'r11' ( temp 3-component vector of int) 0:86 Convert uint to int ( temp 3-component vector of int) 0:86 u3: direct index for structure ( uniform 3-component vector of uint) 0:86 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:86 Constant: 0:86 3 (const uint) 0:87 multiply second child into first child ( temp 3-component vector of int) 0:87 'r12' ( temp 3-component vector of int) 0:87 Convert float to int ( temp 3-component vector of int) 0:87 f3: direct index for structure ( uniform 3-component vector of float) 0:87 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:87 Constant: 0:87 2 (const uint) 0:88 multiply second child into first child ( temp 3-component vector of int) 0:88 'r13' ( temp 3-component vector of int) 0:88 Convert double to int ( temp 3-component vector of int) 0:88 d3: direct index for structure ( uniform 3-component vector of double) 0:88 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:88 Constant: 0:88 4 (const uint) 0:90 multiply second child into first child ( temp 3-component vector of uint) 0:90 'r20' ( temp 3-component vector of uint) 0:90 Convert bool to uint ( temp 3-component vector of uint) 0:90 b3: direct index for structure ( uniform 3-component vector of bool) 0:90 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:90 Constant: 0:90 1 (const uint) 0:91 multiply second child into first child ( temp 3-component vector of uint) 0:91 'r21' ( temp 3-component vector of uint) 0:91 Convert int to uint ( temp 3-component vector of uint) 0:91 i3: direct index for structure ( uniform 3-component vector of int) 0:91 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:91 Constant: 0:91 0 (const uint) 0:92 multiply second child into first child ( temp 3-component vector of uint) 0:92 'r22' ( temp 3-component vector of uint) 0:92 Convert float to uint ( temp 3-component vector of uint) 0:92 f3: direct index for structure ( uniform 3-component vector of float) 0:92 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:92 Constant: 0:92 2 (const uint) 0:93 multiply second child into first child ( temp 3-component vector of uint) 0:93 'r23' ( temp 3-component vector of uint) 0:93 Convert double to uint ( temp 3-component vector of uint) 0:93 d3: direct index for structure ( uniform 3-component vector of double) 0:93 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:93 Constant: 0:93 4 (const uint) 0:97 multiply second child into first child ( temp 3-component vector of double) 0:97 'r40' ( temp 3-component vector of double) 0:97 Convert int to double ( temp 3-component vector of double) 0:97 i3: direct index for structure ( uniform 3-component vector of int) 0:97 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:97 Constant: 0:97 0 (const uint) 0:98 multiply second child into first child ( temp 3-component vector of double) 0:98 'r41' ( temp 3-component vector of double) 0:98 Convert uint to double ( temp 3-component vector of double) 0:98 u3: direct index for structure ( uniform 3-component vector of uint) 0:98 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:98 Constant: 0:98 3 (const uint) 0:99 multiply second child into first child ( temp 3-component vector of double) 0:99 'r42' ( temp 3-component vector of double) 0:99 Convert float to double ( temp 3-component vector of double) 0:99 f3: direct index for structure ( uniform 3-component vector of float) 0:99 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:99 Constant: 0:99 2 (const uint) 0:100 multiply second child into first child ( temp 3-component vector of double) 0:100 'r43' ( temp 3-component vector of double) 0:100 Convert bool to double ( temp 3-component vector of double) 0:100 b3: direct index for structure ( uniform 3-component vector of bool) 0:100 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:100 Constant: 0:100 1 (const uint) 0:103 vector scale second child into first child ( temp 3-component vector of float) 0:103 'r00' ( temp 3-component vector of float) 0:103 Convert int to float ( temp float) 0:103 is: direct index for structure ( uniform int) 0:103 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:103 Constant: 0:103 5 (const uint) 0:104 vector scale second child into first child ( temp 3-component vector of float) 0:104 'r01' ( temp 3-component vector of float) 0:104 Convert bool to float ( temp float) 0:104 bs: direct index for structure ( uniform bool) 0:104 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:104 Constant: 0:104 6 (const uint) 0:105 vector scale second child into first child ( temp 3-component vector of float) 0:105 'r02' ( temp 3-component vector of float) 0:105 Convert uint to float ( temp float) 0:105 us: direct index for structure ( uniform uint) 0:105 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:105 Constant: 0:105 8 (const uint) 0:106 vector scale second child into first child ( temp 3-component vector of float) 0:106 'r03' ( temp 3-component vector of float) 0:106 Convert double to float ( temp float) 0:106 ds: direct index for structure ( uniform double) 0:106 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:106 Constant: 0:106 9 (const uint) 0:108 vector scale second child into first child ( temp 3-component vector of int) 0:108 'r10' ( temp 3-component vector of int) 0:108 Convert bool to int ( temp int) 0:108 bs: direct index for structure ( uniform bool) 0:108 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:108 Constant: 0:108 6 (const uint) 0:109 vector scale second child into first child ( temp 3-component vector of int) 0:109 'r11' ( temp 3-component vector of int) 0:109 Convert uint to int ( temp int) 0:109 us: direct index for structure ( uniform uint) 0:109 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:109 Constant: 0:109 8 (const uint) 0:110 vector scale second child into first child ( temp 3-component vector of int) 0:110 'r12' ( temp 3-component vector of int) 0:110 Convert float to int ( temp int) 0:110 fs: direct index for structure ( uniform float) 0:110 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:110 Constant: 0:110 7 (const uint) 0:111 vector scale second child into first child ( temp 3-component vector of int) 0:111 'r13' ( temp 3-component vector of int) 0:111 Convert double to int ( temp int) 0:111 ds: direct index for structure ( uniform double) 0:111 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:111 Constant: 0:111 9 (const uint) 0:113 vector scale second child into first child ( temp 3-component vector of uint) 0:113 'r20' ( temp 3-component vector of uint) 0:113 Convert bool to uint ( temp uint) 0:113 bs: direct index for structure ( uniform bool) 0:113 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:113 Constant: 0:113 6 (const uint) 0:114 vector scale second child into first child ( temp 3-component vector of uint) 0:114 'r21' ( temp 3-component vector of uint) 0:114 Convert int to uint ( temp uint) 0:114 is: direct index for structure ( uniform int) 0:114 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:114 Constant: 0:114 5 (const uint) 0:115 vector scale second child into first child ( temp 3-component vector of uint) 0:115 'r22' ( temp 3-component vector of uint) 0:115 Convert float to uint ( temp uint) 0:115 fs: direct index for structure ( uniform float) 0:115 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:115 Constant: 0:115 7 (const uint) 0:116 vector scale second child into first child ( temp 3-component vector of uint) 0:116 'r23' ( temp 3-component vector of uint) 0:116 Convert double to uint ( temp uint) 0:116 ds: direct index for structure ( uniform double) 0:116 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:116 Constant: 0:116 9 (const uint) 0:120 vector scale second child into first child ( temp 3-component vector of double) 0:120 'r40' ( temp 3-component vector of double) 0:120 Convert int to double ( temp double) 0:120 is: direct index for structure ( uniform int) 0:120 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:120 Constant: 0:120 5 (const uint) 0:121 vector scale second child into first child ( temp 3-component vector of double) 0:121 'r41' ( temp 3-component vector of double) 0:121 Convert uint to double ( temp double) 0:121 us: direct index for structure ( uniform uint) 0:121 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:121 Constant: 0:121 8 (const uint) 0:122 vector scale second child into first child ( temp 3-component vector of double) 0:122 'r42' ( temp 3-component vector of double) 0:122 Convert float to double ( temp double) 0:122 fs: direct index for structure ( uniform float) 0:122 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:122 Constant: 0:122 7 (const uint) 0:123 vector scale second child into first child ( temp 3-component vector of double) 0:123 'r43' ( temp 3-component vector of double) 0:123 Convert bool to double ( temp double) 0:123 bs: direct index for structure ( uniform bool) 0:123 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:123 Constant: 0:123 6 (const uint) 0:193 Sequence 0:193 move second child to first child ( temp int) 0:193 'c1' ( temp int) 0:193 Constant: 0:193 3 (const int) 0:194 Sequence 0:194 move second child to first child ( temp int) 0:194 'c2' ( temp int) 0:194 Constant: 0:194 3 (const int) 0:196 Sequence 0:196 move second child to first child ( temp 4-component vector of float) 0:196 'outval' ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:196 Constant: 0:196 3.600000 0:196 Constant: 0:196 3.600000 0:196 Convert int to float ( temp float) 0:196 'c1' ( temp int) 0:196 Convert int to float ( temp float) 0:196 'c2' ( temp int) 0:199 move second child to first child ( temp 4-component vector of float) 0:199 Color: direct index for structure ( temp 4-component vector of float) 0:199 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:199 Constant: 0:199 0 (const int) 0:199 'outval' ( temp 4-component vector of float) 0:200 Branch: Return with expression 0:200 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:52 Function Definition: main( ( temp void) 0:52 Function Parameters: 0:? Sequence 0:52 Sequence 0:52 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:52 Color: direct index for structure ( temp 4-component vector of float) 0:52 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:52 Constant: 0:52 0 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:19 Function Definition: Fn_F3(vf3; ( temp void) 0:19 Function Parameters: 0:19 'x' ( in 3-component vector of float) 0:20 Function Definition: Fn_I3(vi3; ( temp void) 0:20 Function Parameters: 0:20 'x' ( in 3-component vector of int) 0:21 Function Definition: Fn_U3(vu3; ( temp void) 0:21 Function Parameters: 0:21 'x' ( in 3-component vector of uint) 0:22 Function Definition: Fn_B3(vb3; ( temp void) 0:22 Function Parameters: 0:22 'x' ( in 3-component vector of bool) 0:23 Function Definition: Fn_D3(vd3; ( temp void) 0:23 Function Parameters: 0:23 'x' ( in 3-component vector of double) 0:26 Function Definition: Fn_R_F3I(vf3; ( temp 3-component vector of float) 0:26 Function Parameters: 0:26 'p' ( out 3-component vector of float) 0:? Sequence 0:26 move second child to first child ( temp 3-component vector of float) 0:26 'p' ( out 3-component vector of float) 0:26 Convert int to float ( temp 3-component vector of float) 0:26 i3: direct index for structure ( uniform 3-component vector of int) 0:26 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:26 Constant: 0:26 0 (const uint) 0:26 Branch: Return with expression 0:26 Convert int to float ( temp 3-component vector of float) 0:26 i3: direct index for structure ( uniform 3-component vector of int) 0:26 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:26 Constant: 0:26 0 (const uint) 0:27 Function Definition: Fn_R_F3U(vf3; ( temp 3-component vector of float) 0:27 Function Parameters: 0:27 'p' ( out 3-component vector of float) 0:? Sequence 0:27 move second child to first child ( temp 3-component vector of float) 0:27 'p' ( out 3-component vector of float) 0:27 Convert uint to float ( temp 3-component vector of float) 0:27 u3: direct index for structure ( uniform 3-component vector of uint) 0:27 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:27 Constant: 0:27 3 (const uint) 0:27 Branch: Return with expression 0:27 Convert uint to float ( temp 3-component vector of float) 0:27 u3: direct index for structure ( uniform 3-component vector of uint) 0:27 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:27 Constant: 0:27 3 (const uint) 0:28 Function Definition: Fn_R_F3B(vf3; ( temp 3-component vector of float) 0:28 Function Parameters: 0:28 'p' ( out 3-component vector of float) 0:? Sequence 0:28 move second child to first child ( temp 3-component vector of float) 0:28 'p' ( out 3-component vector of float) 0:28 Convert bool to float ( temp 3-component vector of float) 0:28 b3: direct index for structure ( uniform 3-component vector of bool) 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:28 Constant: 0:28 1 (const uint) 0:28 Branch: Return with expression 0:28 Convert bool to float ( temp 3-component vector of float) 0:28 b3: direct index for structure ( uniform 3-component vector of bool) 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:28 Constant: 0:28 1 (const uint) 0:29 Function Definition: Fn_R_F3D(vf3; ( temp 3-component vector of float) 0:29 Function Parameters: 0:29 'p' ( out 3-component vector of float) 0:? Sequence 0:29 move second child to first child ( temp 3-component vector of float) 0:29 'p' ( out 3-component vector of float) 0:29 Convert double to float ( temp 3-component vector of float) 0:29 d3: direct index for structure ( uniform 3-component vector of double) 0:29 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:29 Constant: 0:29 4 (const uint) 0:29 Branch: Return with expression 0:29 Convert double to float ( temp 3-component vector of float) 0:29 d3: direct index for structure ( uniform 3-component vector of double) 0:29 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:29 Constant: 0:29 4 (const uint) 0:31 Function Definition: Fn_R_I3U(vi3; ( temp 3-component vector of int) 0:31 Function Parameters: 0:31 'p' ( out 3-component vector of int) 0:? Sequence 0:31 move second child to first child ( temp 3-component vector of int) 0:31 'p' ( out 3-component vector of int) 0:31 Convert uint to int ( temp 3-component vector of int) 0:31 u3: direct index for structure ( uniform 3-component vector of uint) 0:31 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:31 Constant: 0:31 3 (const uint) 0:31 Branch: Return with expression 0:31 Convert uint to int ( temp 3-component vector of int) 0:31 u3: direct index for structure ( uniform 3-component vector of uint) 0:31 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:31 Constant: 0:31 3 (const uint) 0:32 Function Definition: Fn_R_I3B(vi3; ( temp 3-component vector of int) 0:32 Function Parameters: 0:32 'p' ( out 3-component vector of int) 0:? Sequence 0:32 move second child to first child ( temp 3-component vector of int) 0:32 'p' ( out 3-component vector of int) 0:32 Convert bool to int ( temp 3-component vector of int) 0:32 b3: direct index for structure ( uniform 3-component vector of bool) 0:32 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:32 Constant: 0:32 1 (const uint) 0:32 Branch: Return with expression 0:32 Convert bool to int ( temp 3-component vector of int) 0:32 b3: direct index for structure ( uniform 3-component vector of bool) 0:32 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:32 Constant: 0:32 1 (const uint) 0:33 Function Definition: Fn_R_I3F(vi3; ( temp 3-component vector of int) 0:33 Function Parameters: 0:33 'p' ( out 3-component vector of int) 0:? Sequence 0:33 move second child to first child ( temp 3-component vector of int) 0:33 'p' ( out 3-component vector of int) 0:33 Convert float to int ( temp 3-component vector of int) 0:33 f3: direct index for structure ( uniform 3-component vector of float) 0:33 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:33 Constant: 0:33 2 (const uint) 0:33 Branch: Return with expression 0:33 Convert float to int ( temp 3-component vector of int) 0:33 f3: direct index for structure ( uniform 3-component vector of float) 0:33 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:33 Constant: 0:33 2 (const uint) 0:34 Function Definition: Fn_R_I3D(vi3; ( temp 3-component vector of int) 0:34 Function Parameters: 0:34 'p' ( out 3-component vector of int) 0:? Sequence 0:34 move second child to first child ( temp 3-component vector of int) 0:34 'p' ( out 3-component vector of int) 0:34 Convert double to int ( temp 3-component vector of int) 0:34 d3: direct index for structure ( uniform 3-component vector of double) 0:34 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:34 Constant: 0:34 4 (const uint) 0:34 Branch: Return with expression 0:34 Convert double to int ( temp 3-component vector of int) 0:34 d3: direct index for structure ( uniform 3-component vector of double) 0:34 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:34 Constant: 0:34 4 (const uint) 0:36 Function Definition: Fn_R_U3I(vu3; ( temp 3-component vector of uint) 0:36 Function Parameters: 0:36 'p' ( out 3-component vector of uint) 0:? Sequence 0:36 move second child to first child ( temp 3-component vector of uint) 0:36 'p' ( out 3-component vector of uint) 0:36 Convert int to uint ( temp 3-component vector of uint) 0:36 i3: direct index for structure ( uniform 3-component vector of int) 0:36 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:36 Constant: 0:36 0 (const uint) 0:36 Branch: Return with expression 0:36 Convert int to uint ( temp 3-component vector of uint) 0:36 i3: direct index for structure ( uniform 3-component vector of int) 0:36 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:36 Constant: 0:36 0 (const uint) 0:37 Function Definition: Fn_R_U3F(vu3; ( temp 3-component vector of uint) 0:37 Function Parameters: 0:37 'p' ( out 3-component vector of uint) 0:? Sequence 0:37 move second child to first child ( temp 3-component vector of uint) 0:37 'p' ( out 3-component vector of uint) 0:37 Convert float to uint ( temp 3-component vector of uint) 0:37 f3: direct index for structure ( uniform 3-component vector of float) 0:37 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:37 Constant: 0:37 2 (const uint) 0:37 Branch: Return with expression 0:37 Convert float to uint ( temp 3-component vector of uint) 0:37 f3: direct index for structure ( uniform 3-component vector of float) 0:37 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:37 Constant: 0:37 2 (const uint) 0:38 Function Definition: Fn_R_U3B(vu3; ( temp 3-component vector of uint) 0:38 Function Parameters: 0:38 'p' ( out 3-component vector of uint) 0:? Sequence 0:38 move second child to first child ( temp 3-component vector of uint) 0:38 'p' ( out 3-component vector of uint) 0:38 Convert bool to uint ( temp 3-component vector of uint) 0:38 b3: direct index for structure ( uniform 3-component vector of bool) 0:38 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:38 Constant: 0:38 1 (const uint) 0:38 Branch: Return with expression 0:38 Convert bool to uint ( temp 3-component vector of uint) 0:38 b3: direct index for structure ( uniform 3-component vector of bool) 0:38 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:38 Constant: 0:38 1 (const uint) 0:39 Function Definition: Fn_R_U3D(vu3; ( temp 3-component vector of uint) 0:39 Function Parameters: 0:39 'p' ( out 3-component vector of uint) 0:? Sequence 0:39 move second child to first child ( temp 3-component vector of uint) 0:39 'p' ( out 3-component vector of uint) 0:39 Convert double to uint ( temp 3-component vector of uint) 0:39 d3: direct index for structure ( uniform 3-component vector of double) 0:39 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:39 Constant: 0:39 4 (const uint) 0:39 Branch: Return with expression 0:39 Convert double to uint ( temp 3-component vector of uint) 0:39 d3: direct index for structure ( uniform 3-component vector of double) 0:39 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:39 Constant: 0:39 4 (const uint) 0:41 Function Definition: Fn_R_B3I(vb3; ( temp 3-component vector of bool) 0:41 Function Parameters: 0:41 'p' ( out 3-component vector of bool) 0:? Sequence 0:41 move second child to first child ( temp 3-component vector of bool) 0:41 'p' ( out 3-component vector of bool) 0:41 Convert int to bool ( temp 3-component vector of bool) 0:41 i3: direct index for structure ( uniform 3-component vector of int) 0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:41 Constant: 0:41 0 (const uint) 0:41 Branch: Return with expression 0:41 Convert int to bool ( temp 3-component vector of bool) 0:41 i3: direct index for structure ( uniform 3-component vector of int) 0:41 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:41 Constant: 0:41 0 (const uint) 0:42 Function Definition: Fn_R_B3U(vb3; ( temp 3-component vector of bool) 0:42 Function Parameters: 0:42 'p' ( out 3-component vector of bool) 0:? Sequence 0:42 move second child to first child ( temp 3-component vector of bool) 0:42 'p' ( out 3-component vector of bool) 0:42 Convert uint to bool ( temp 3-component vector of bool) 0:42 u3: direct index for structure ( uniform 3-component vector of uint) 0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:42 Constant: 0:42 3 (const uint) 0:42 Branch: Return with expression 0:42 Convert uint to bool ( temp 3-component vector of bool) 0:42 u3: direct index for structure ( uniform 3-component vector of uint) 0:42 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:42 Constant: 0:42 3 (const uint) 0:43 Function Definition: Fn_R_B3F(vb3; ( temp 3-component vector of bool) 0:43 Function Parameters: 0:43 'p' ( out 3-component vector of bool) 0:? Sequence 0:43 move second child to first child ( temp 3-component vector of bool) 0:43 'p' ( out 3-component vector of bool) 0:43 Convert float to bool ( temp 3-component vector of bool) 0:43 f3: direct index for structure ( uniform 3-component vector of float) 0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:43 Constant: 0:43 2 (const uint) 0:43 Branch: Return with expression 0:43 Convert float to bool ( temp 3-component vector of bool) 0:43 f3: direct index for structure ( uniform 3-component vector of float) 0:43 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:43 Constant: 0:43 2 (const uint) 0:44 Function Definition: Fn_R_B3D(vb3; ( temp 3-component vector of bool) 0:44 Function Parameters: 0:44 'p' ( out 3-component vector of bool) 0:? Sequence 0:44 move second child to first child ( temp 3-component vector of bool) 0:44 'p' ( out 3-component vector of bool) 0:44 Convert double to bool ( temp 3-component vector of bool) 0:44 d3: direct index for structure ( uniform 3-component vector of double) 0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:44 Constant: 0:44 4 (const uint) 0:44 Branch: Return with expression 0:44 Convert double to bool ( temp 3-component vector of bool) 0:44 d3: direct index for structure ( uniform 3-component vector of double) 0:44 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:44 Constant: 0:44 4 (const uint) 0:46 Function Definition: Fn_R_D3I(vd3; ( temp 3-component vector of double) 0:46 Function Parameters: 0:46 'p' ( out 3-component vector of double) 0:? Sequence 0:46 move second child to first child ( temp 3-component vector of double) 0:46 'p' ( out 3-component vector of double) 0:46 Convert int to double ( temp 3-component vector of double) 0:46 i3: direct index for structure ( uniform 3-component vector of int) 0:46 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:46 Constant: 0:46 0 (const uint) 0:46 Branch: Return with expression 0:46 Convert int to double ( temp 3-component vector of double) 0:46 i3: direct index for structure ( uniform 3-component vector of int) 0:46 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:46 Constant: 0:46 0 (const uint) 0:47 Function Definition: Fn_R_D3U(vd3; ( temp 3-component vector of double) 0:47 Function Parameters: 0:47 'p' ( out 3-component vector of double) 0:? Sequence 0:47 move second child to first child ( temp 3-component vector of double) 0:47 'p' ( out 3-component vector of double) 0:47 Convert uint to double ( temp 3-component vector of double) 0:47 u3: direct index for structure ( uniform 3-component vector of uint) 0:47 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:47 Constant: 0:47 3 (const uint) 0:47 Branch: Return with expression 0:47 Convert uint to double ( temp 3-component vector of double) 0:47 u3: direct index for structure ( uniform 3-component vector of uint) 0:47 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:47 Constant: 0:47 3 (const uint) 0:48 Function Definition: Fn_R_D3B(vd3; ( temp 3-component vector of double) 0:48 Function Parameters: 0:48 'p' ( out 3-component vector of double) 0:? Sequence 0:48 move second child to first child ( temp 3-component vector of double) 0:48 'p' ( out 3-component vector of double) 0:48 Convert bool to double ( temp 3-component vector of double) 0:48 b3: direct index for structure ( uniform 3-component vector of bool) 0:48 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:48 Constant: 0:48 1 (const uint) 0:48 Branch: Return with expression 0:48 Convert bool to double ( temp 3-component vector of double) 0:48 b3: direct index for structure ( uniform 3-component vector of bool) 0:48 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:48 Constant: 0:48 1 (const uint) 0:49 Function Definition: Fn_R_D3F(vd3; ( temp 3-component vector of double) 0:49 Function Parameters: 0:49 'p' ( out 3-component vector of double) 0:? Sequence 0:49 move second child to first child ( temp 3-component vector of double) 0:49 'p' ( out 3-component vector of double) 0:49 Convert float to double ( temp 3-component vector of double) 0:49 f3: direct index for structure ( uniform 3-component vector of float) 0:49 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:49 Constant: 0:49 2 (const uint) 0:49 Branch: Return with expression 0:49 Convert float to double ( temp 3-component vector of double) 0:49 f3: direct index for structure ( uniform 3-component vector of float) 0:49 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:49 Constant: 0:49 2 (const uint) 0:52 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence 0:54 move second child to first child ( temp 3-component vector of float) 0:54 'r00' ( temp 3-component vector of float) 0:54 Convert int to float ( temp 3-component vector of float) 0:54 i3: direct index for structure ( uniform 3-component vector of int) 0:54 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:54 Constant: 0:54 0 (const uint) 0:55 Sequence 0:55 move second child to first child ( temp 3-component vector of float) 0:55 'r01' ( temp 3-component vector of float) 0:55 Convert bool to float ( temp 3-component vector of float) 0:55 b3: direct index for structure ( uniform 3-component vector of bool) 0:55 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:55 Constant: 0:55 1 (const uint) 0:56 Sequence 0:56 move second child to first child ( temp 3-component vector of float) 0:56 'r02' ( temp 3-component vector of float) 0:56 Convert uint to float ( temp 3-component vector of float) 0:56 u3: direct index for structure ( uniform 3-component vector of uint) 0:56 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:56 Constant: 0:56 3 (const uint) 0:57 Sequence 0:57 move second child to first child ( temp 3-component vector of float) 0:57 'r03' ( temp 3-component vector of float) 0:57 Convert double to float ( temp 3-component vector of float) 0:57 d3: direct index for structure ( uniform 3-component vector of double) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:57 Constant: 0:57 4 (const uint) 0:59 Sequence 0:59 move second child to first child ( temp 3-component vector of int) 0:59 'r10' ( temp 3-component vector of int) 0:59 Convert bool to int ( temp 3-component vector of int) 0:59 b3: direct index for structure ( uniform 3-component vector of bool) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:59 Constant: 0:59 1 (const uint) 0:60 Sequence 0:60 move second child to first child ( temp 3-component vector of int) 0:60 'r11' ( temp 3-component vector of int) 0:60 Convert uint to int ( temp 3-component vector of int) 0:60 u3: direct index for structure ( uniform 3-component vector of uint) 0:60 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:60 Constant: 0:60 3 (const uint) 0:61 Sequence 0:61 move second child to first child ( temp 3-component vector of int) 0:61 'r12' ( temp 3-component vector of int) 0:61 Convert float to int ( temp 3-component vector of int) 0:61 f3: direct index for structure ( uniform 3-component vector of float) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:61 Constant: 0:61 2 (const uint) 0:62 Sequence 0:62 move second child to first child ( temp 3-component vector of int) 0:62 'r13' ( temp 3-component vector of int) 0:62 Convert double to int ( temp 3-component vector of int) 0:62 d3: direct index for structure ( uniform 3-component vector of double) 0:62 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:62 Constant: 0:62 4 (const uint) 0:64 Sequence 0:64 move second child to first child ( temp 3-component vector of uint) 0:64 'r20' ( temp 3-component vector of uint) 0:64 Convert bool to uint ( temp 3-component vector of uint) 0:64 b3: direct index for structure ( uniform 3-component vector of bool) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:64 Constant: 0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child ( temp 3-component vector of uint) 0:65 'r21' ( temp 3-component vector of uint) 0:65 Convert int to uint ( temp 3-component vector of uint) 0:65 i3: direct index for structure ( uniform 3-component vector of int) 0:65 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:65 Constant: 0:65 0 (const uint) 0:66 Sequence 0:66 move second child to first child ( temp 3-component vector of uint) 0:66 'r22' ( temp 3-component vector of uint) 0:66 Convert float to uint ( temp 3-component vector of uint) 0:66 f3: direct index for structure ( uniform 3-component vector of float) 0:66 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:66 Constant: 0:66 2 (const uint) 0:67 Sequence 0:67 move second child to first child ( temp 3-component vector of uint) 0:67 'r23' ( temp 3-component vector of uint) 0:67 Convert double to uint ( temp 3-component vector of uint) 0:67 d3: direct index for structure ( uniform 3-component vector of double) 0:67 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:67 Constant: 0:67 4 (const uint) 0:69 Sequence 0:69 move second child to first child ( temp 3-component vector of bool) 0:69 'r30' ( temp 3-component vector of bool) 0:69 Convert int to bool ( temp 3-component vector of bool) 0:69 i3: direct index for structure ( uniform 3-component vector of int) 0:69 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:69 Constant: 0:69 0 (const uint) 0:70 Sequence 0:70 move second child to first child ( temp 3-component vector of bool) 0:70 'r31' ( temp 3-component vector of bool) 0:70 Convert uint to bool ( temp 3-component vector of bool) 0:70 u3: direct index for structure ( uniform 3-component vector of uint) 0:70 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:70 Constant: 0:70 3 (const uint) 0:71 Sequence 0:71 move second child to first child ( temp 3-component vector of bool) 0:71 'r32' ( temp 3-component vector of bool) 0:71 Convert float to bool ( temp 3-component vector of bool) 0:71 f3: direct index for structure ( uniform 3-component vector of float) 0:71 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:71 Constant: 0:71 2 (const uint) 0:72 Sequence 0:72 move second child to first child ( temp 3-component vector of bool) 0:72 'r33' ( temp 3-component vector of bool) 0:72 Convert double to bool ( temp 3-component vector of bool) 0:72 d3: direct index for structure ( uniform 3-component vector of double) 0:72 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:72 Constant: 0:72 4 (const uint) 0:74 Sequence 0:74 move second child to first child ( temp 3-component vector of double) 0:74 'r40' ( temp 3-component vector of double) 0:74 Convert int to double ( temp 3-component vector of double) 0:74 i3: direct index for structure ( uniform 3-component vector of int) 0:74 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:74 Constant: 0:74 0 (const uint) 0:75 Sequence 0:75 move second child to first child ( temp 3-component vector of double) 0:75 'r41' ( temp 3-component vector of double) 0:75 Convert uint to double ( temp 3-component vector of double) 0:75 u3: direct index for structure ( uniform 3-component vector of uint) 0:75 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:75 Constant: 0:75 3 (const uint) 0:76 Sequence 0:76 move second child to first child ( temp 3-component vector of double) 0:76 'r42' ( temp 3-component vector of double) 0:76 Convert float to double ( temp 3-component vector of double) 0:76 f3: direct index for structure ( uniform 3-component vector of float) 0:76 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:76 Constant: 0:76 2 (const uint) 0:77 Sequence 0:77 move second child to first child ( temp 3-component vector of double) 0:77 'r43' ( temp 3-component vector of double) 0:77 Convert bool to double ( temp 3-component vector of double) 0:77 b3: direct index for structure ( uniform 3-component vector of bool) 0:77 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:77 Constant: 0:77 1 (const uint) 0:80 multiply second child into first child ( temp 3-component vector of float) 0:80 'r00' ( temp 3-component vector of float) 0:80 Convert int to float ( temp 3-component vector of float) 0:80 i3: direct index for structure ( uniform 3-component vector of int) 0:80 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:80 Constant: 0:80 0 (const uint) 0:81 multiply second child into first child ( temp 3-component vector of float) 0:81 'r01' ( temp 3-component vector of float) 0:81 Convert bool to float ( temp 3-component vector of float) 0:81 b3: direct index for structure ( uniform 3-component vector of bool) 0:81 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:81 Constant: 0:81 1 (const uint) 0:82 multiply second child into first child ( temp 3-component vector of float) 0:82 'r02' ( temp 3-component vector of float) 0:82 Convert uint to float ( temp 3-component vector of float) 0:82 u3: direct index for structure ( uniform 3-component vector of uint) 0:82 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:82 Constant: 0:82 3 (const uint) 0:83 multiply second child into first child ( temp 3-component vector of float) 0:83 'r03' ( temp 3-component vector of float) 0:83 Convert double to float ( temp 3-component vector of float) 0:83 d3: direct index for structure ( uniform 3-component vector of double) 0:83 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:83 Constant: 0:83 4 (const uint) 0:85 multiply second child into first child ( temp 3-component vector of int) 0:85 'r10' ( temp 3-component vector of int) 0:85 Convert bool to int ( temp 3-component vector of int) 0:85 b3: direct index for structure ( uniform 3-component vector of bool) 0:85 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:85 Constant: 0:85 1 (const uint) 0:86 multiply second child into first child ( temp 3-component vector of int) 0:86 'r11' ( temp 3-component vector of int) 0:86 Convert uint to int ( temp 3-component vector of int) 0:86 u3: direct index for structure ( uniform 3-component vector of uint) 0:86 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:86 Constant: 0:86 3 (const uint) 0:87 multiply second child into first child ( temp 3-component vector of int) 0:87 'r12' ( temp 3-component vector of int) 0:87 Convert float to int ( temp 3-component vector of int) 0:87 f3: direct index for structure ( uniform 3-component vector of float) 0:87 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:87 Constant: 0:87 2 (const uint) 0:88 multiply second child into first child ( temp 3-component vector of int) 0:88 'r13' ( temp 3-component vector of int) 0:88 Convert double to int ( temp 3-component vector of int) 0:88 d3: direct index for structure ( uniform 3-component vector of double) 0:88 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:88 Constant: 0:88 4 (const uint) 0:90 multiply second child into first child ( temp 3-component vector of uint) 0:90 'r20' ( temp 3-component vector of uint) 0:90 Convert bool to uint ( temp 3-component vector of uint) 0:90 b3: direct index for structure ( uniform 3-component vector of bool) 0:90 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:90 Constant: 0:90 1 (const uint) 0:91 multiply second child into first child ( temp 3-component vector of uint) 0:91 'r21' ( temp 3-component vector of uint) 0:91 Convert int to uint ( temp 3-component vector of uint) 0:91 i3: direct index for structure ( uniform 3-component vector of int) 0:91 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:91 Constant: 0:91 0 (const uint) 0:92 multiply second child into first child ( temp 3-component vector of uint) 0:92 'r22' ( temp 3-component vector of uint) 0:92 Convert float to uint ( temp 3-component vector of uint) 0:92 f3: direct index for structure ( uniform 3-component vector of float) 0:92 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:92 Constant: 0:92 2 (const uint) 0:93 multiply second child into first child ( temp 3-component vector of uint) 0:93 'r23' ( temp 3-component vector of uint) 0:93 Convert double to uint ( temp 3-component vector of uint) 0:93 d3: direct index for structure ( uniform 3-component vector of double) 0:93 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:93 Constant: 0:93 4 (const uint) 0:97 multiply second child into first child ( temp 3-component vector of double) 0:97 'r40' ( temp 3-component vector of double) 0:97 Convert int to double ( temp 3-component vector of double) 0:97 i3: direct index for structure ( uniform 3-component vector of int) 0:97 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:97 Constant: 0:97 0 (const uint) 0:98 multiply second child into first child ( temp 3-component vector of double) 0:98 'r41' ( temp 3-component vector of double) 0:98 Convert uint to double ( temp 3-component vector of double) 0:98 u3: direct index for structure ( uniform 3-component vector of uint) 0:98 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:98 Constant: 0:98 3 (const uint) 0:99 multiply second child into first child ( temp 3-component vector of double) 0:99 'r42' ( temp 3-component vector of double) 0:99 Convert float to double ( temp 3-component vector of double) 0:99 f3: direct index for structure ( uniform 3-component vector of float) 0:99 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:99 Constant: 0:99 2 (const uint) 0:100 multiply second child into first child ( temp 3-component vector of double) 0:100 'r43' ( temp 3-component vector of double) 0:100 Convert bool to double ( temp 3-component vector of double) 0:100 b3: direct index for structure ( uniform 3-component vector of bool) 0:100 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:100 Constant: 0:100 1 (const uint) 0:103 vector scale second child into first child ( temp 3-component vector of float) 0:103 'r00' ( temp 3-component vector of float) 0:103 Convert int to float ( temp float) 0:103 is: direct index for structure ( uniform int) 0:103 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:103 Constant: 0:103 5 (const uint) 0:104 vector scale second child into first child ( temp 3-component vector of float) 0:104 'r01' ( temp 3-component vector of float) 0:104 Convert bool to float ( temp float) 0:104 bs: direct index for structure ( uniform bool) 0:104 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:104 Constant: 0:104 6 (const uint) 0:105 vector scale second child into first child ( temp 3-component vector of float) 0:105 'r02' ( temp 3-component vector of float) 0:105 Convert uint to float ( temp float) 0:105 us: direct index for structure ( uniform uint) 0:105 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:105 Constant: 0:105 8 (const uint) 0:106 vector scale second child into first child ( temp 3-component vector of float) 0:106 'r03' ( temp 3-component vector of float) 0:106 Convert double to float ( temp float) 0:106 ds: direct index for structure ( uniform double) 0:106 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:106 Constant: 0:106 9 (const uint) 0:108 vector scale second child into first child ( temp 3-component vector of int) 0:108 'r10' ( temp 3-component vector of int) 0:108 Convert bool to int ( temp int) 0:108 bs: direct index for structure ( uniform bool) 0:108 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:108 Constant: 0:108 6 (const uint) 0:109 vector scale second child into first child ( temp 3-component vector of int) 0:109 'r11' ( temp 3-component vector of int) 0:109 Convert uint to int ( temp int) 0:109 us: direct index for structure ( uniform uint) 0:109 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:109 Constant: 0:109 8 (const uint) 0:110 vector scale second child into first child ( temp 3-component vector of int) 0:110 'r12' ( temp 3-component vector of int) 0:110 Convert float to int ( temp int) 0:110 fs: direct index for structure ( uniform float) 0:110 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:110 Constant: 0:110 7 (const uint) 0:111 vector scale second child into first child ( temp 3-component vector of int) 0:111 'r13' ( temp 3-component vector of int) 0:111 Convert double to int ( temp int) 0:111 ds: direct index for structure ( uniform double) 0:111 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:111 Constant: 0:111 9 (const uint) 0:113 vector scale second child into first child ( temp 3-component vector of uint) 0:113 'r20' ( temp 3-component vector of uint) 0:113 Convert bool to uint ( temp uint) 0:113 bs: direct index for structure ( uniform bool) 0:113 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:113 Constant: 0:113 6 (const uint) 0:114 vector scale second child into first child ( temp 3-component vector of uint) 0:114 'r21' ( temp 3-component vector of uint) 0:114 Convert int to uint ( temp uint) 0:114 is: direct index for structure ( uniform int) 0:114 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:114 Constant: 0:114 5 (const uint) 0:115 vector scale second child into first child ( temp 3-component vector of uint) 0:115 'r22' ( temp 3-component vector of uint) 0:115 Convert float to uint ( temp uint) 0:115 fs: direct index for structure ( uniform float) 0:115 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:115 Constant: 0:115 7 (const uint) 0:116 vector scale second child into first child ( temp 3-component vector of uint) 0:116 'r23' ( temp 3-component vector of uint) 0:116 Convert double to uint ( temp uint) 0:116 ds: direct index for structure ( uniform double) 0:116 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:116 Constant: 0:116 9 (const uint) 0:120 vector scale second child into first child ( temp 3-component vector of double) 0:120 'r40' ( temp 3-component vector of double) 0:120 Convert int to double ( temp double) 0:120 is: direct index for structure ( uniform int) 0:120 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:120 Constant: 0:120 5 (const uint) 0:121 vector scale second child into first child ( temp 3-component vector of double) 0:121 'r41' ( temp 3-component vector of double) 0:121 Convert uint to double ( temp double) 0:121 us: direct index for structure ( uniform uint) 0:121 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:121 Constant: 0:121 8 (const uint) 0:122 vector scale second child into first child ( temp 3-component vector of double) 0:122 'r42' ( temp 3-component vector of double) 0:122 Convert float to double ( temp double) 0:122 fs: direct index for structure ( uniform float) 0:122 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:122 Constant: 0:122 7 (const uint) 0:123 vector scale second child into first child ( temp 3-component vector of double) 0:123 'r43' ( temp 3-component vector of double) 0:123 Convert bool to double ( temp double) 0:123 bs: direct index for structure ( uniform bool) 0:123 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:123 Constant: 0:123 6 (const uint) 0:193 Sequence 0:193 move second child to first child ( temp int) 0:193 'c1' ( temp int) 0:193 Constant: 0:193 3 (const int) 0:194 Sequence 0:194 move second child to first child ( temp int) 0:194 'c2' ( temp int) 0:194 Constant: 0:194 3 (const int) 0:196 Sequence 0:196 move second child to first child ( temp 4-component vector of float) 0:196 'outval' ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float) 0:196 Constant: 0:196 3.600000 0:196 Constant: 0:196 3.600000 0:196 Convert int to float ( temp float) 0:196 'c1' ( temp int) 0:196 Convert int to float ( temp float) 0:196 'c2' ( temp int) 0:199 move second child to first child ( temp 4-component vector of float) 0:199 Color: direct index for structure ( temp 4-component vector of float) 0:199 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:199 Constant: 0:199 0 (const int) 0:199 'outval' ( temp 4-component vector of float) 0:200 Branch: Return with expression 0:200 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:52 Function Definition: main( ( temp void) 0:52 Function Parameters: 0:? Sequence 0:52 Sequence 0:52 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:52 Color: direct index for structure ( temp 4-component vector of float) 0:52 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:52 Constant: 0:52 0 (const int) 0:? Linker Objects 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 3-component vector of int i3, uniform 3-component vector of bool b3, uniform 3-component vector of float f3, uniform 3-component vector of uint u3, uniform 3-component vector of double d3, uniform int is, uniform bool bs, uniform float fs, uniform uint us, uniform double ds}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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) FOrdNotEqual 252 142 Store 87(p) 253 254: 182(ptr) AccessChain 113 181 255: 7(fvec3) Load 254 256: 28(bvec3) FOrdNotEqual 255 142 ReturnValue 256 FunctionEnd 91(Fn_R_B3D(vb3;): 28(bvec3) Function None 80 90(p): 29(ptr) FunctionParameter 92: Label 259: 152(ptr) AccessChain 113 151 260: 35(f64vec3) Load 259 263: 28(bvec3) FOrdNotEqual 260 262 Store 90(p) 263 264: 152(ptr) AccessChain 113 151 265: 35(f64vec3) Load 264 266: 28(bvec3) FOrdNotEqual 265 262 ReturnValue 266 FunctionEnd 95(Fn_R_D3I(vd3;): 35(f64vec3) Function None 93 94(p): 36(ptr) FunctionParameter 96: Label 269: 115(ptr) AccessChain 113 114 270: 14(ivec3) Load 269 271: 35(f64vec3) ConvertSToF 270 Store 94(p) 271 272: 115(ptr) AccessChain 113 114 273: 14(ivec3) Load 272 274: 35(f64vec3) ConvertSToF 273 ReturnValue 274 FunctionEnd 98(Fn_R_D3U(vd3;): 35(f64vec3) Function None 93 97(p): 36(ptr) FunctionParameter 99: Label 277: 125(ptr) AccessChain 113 124 278: 21(ivec3) Load 277 279: 35(f64vec3) ConvertUToF 278 Store 97(p) 279 280: 125(ptr) AccessChain 113 124 281: 21(ivec3) Load 280 282: 35(f64vec3) ConvertUToF 281 ReturnValue 282 FunctionEnd 101(Fn_R_D3B(vd3;): 35(f64vec3) Function None 93 100(p): 36(ptr) FunctionParameter 102: Label 285: 125(ptr) AccessChain 113 134 286: 21(ivec3) Load 285 287: 28(bvec3) INotEqual 286 138 290: 35(f64vec3) Select 287 289 262 Store 100(p) 290 291: 125(ptr) AccessChain 113 134 292: 21(ivec3) Load 291 293: 28(bvec3) INotEqual 292 138 294: 35(f64vec3) Select 293 289 262 ReturnValue 294 FunctionEnd 104(Fn_R_D3F(vd3;): 35(f64vec3) Function None 93 103(p): 36(ptr) FunctionParameter 105: Label 297: 182(ptr) AccessChain 113 181 298: 7(fvec3) Load 297 299: 35(f64vec3) FConvert 298 Store 103(p) 299 300: 182(ptr) AccessChain 113 181 301: 7(fvec3) Load 300 302: 35(f64vec3) FConvert 301 ReturnValue 302 FunctionEnd 109(@main():107(PS_OUTPUT) Function None 108 110: Label 305(r00): 8(ptr) Variable Function 309(r01): 8(ptr) Variable Function 314(r02): 8(ptr) Variable Function 318(r03): 8(ptr) Variable Function 322(r10): 15(ptr) Variable Function 327(r11): 15(ptr) Variable Function 331(r12): 15(ptr) Variable Function 335(r13): 15(ptr) Variable Function 339(r20): 22(ptr) Variable Function 344(r21): 22(ptr) Variable Function 348(r22): 22(ptr) Variable Function 352(r23): 22(ptr) Variable Function 356(r30): 29(ptr) Variable Function 360(r31): 29(ptr) Variable Function 364(r32): 29(ptr) Variable Function 368(r33): 29(ptr) Variable Function 372(r40): 36(ptr) Variable Function 376(r41): 36(ptr) Variable Function 380(r42): 36(ptr) Variable Function 384(r43): 36(ptr) Variable Function 575(c1): 574(ptr) Variable Function 576(c2): 574(ptr) Variable Function 578(outval): 577(ptr) Variable Function 586(psout): 585(ptr) Variable Function 306: 115(ptr) AccessChain 113 114 307: 14(ivec3) Load 306 308: 7(fvec3) ConvertSToF 307 Store 305(r00) 308 310: 125(ptr) AccessChain 113 134 311: 21(ivec3) Load 310 312: 28(bvec3) INotEqual 311 138 313: 7(fvec3) Select 312 143 142 Store 309(r01) 313 315: 125(ptr) AccessChain 113 124 316: 21(ivec3) Load 315 317: 7(fvec3) ConvertUToF 316 Store 314(r02) 317 319: 152(ptr) AccessChain 113 151 320: 35(f64vec3) Load 319 321: 7(fvec3) FConvert 320 Store 318(r03) 321 323: 125(ptr) AccessChain 113 134 324: 21(ivec3) Load 323 325: 28(bvec3) INotEqual 324 138 326: 14(ivec3) Select 325 173 172 Store 322(r10) 326 328: 125(ptr) AccessChain 113 124 329: 21(ivec3) Load 328 330: 14(ivec3) Bitcast 329 Store 327(r11) 330 332: 182(ptr) AccessChain 113 181 333: 7(fvec3) Load 332 334: 14(ivec3) ConvertFToS 333 Store 331(r12) 334 336: 152(ptr) AccessChain 113 151 337: 35(f64vec3) Load 336 338: 14(ivec3) ConvertFToS 337 Store 335(r13) 338 340: 125(ptr) AccessChain 113 134 341: 21(ivec3) Load 340 342: 28(bvec3) INotEqual 341 138 343: 21(ivec3) Select 342 219 138 Store 339(r20) 343 345: 115(ptr) AccessChain 113 114 346: 14(ivec3) Load 345 347: 21(ivec3) Bitcast 346 Store 344(r21) 347 349: 182(ptr) AccessChain 113 181 350: 7(fvec3) Load 349 351: 21(ivec3) ConvertFToU 350 Store 348(r22) 351 353: 152(ptr) AccessChain 113 151 354: 35(f64vec3) Load 353 355: 21(ivec3) ConvertFToU 354 Store 352(r23) 355 357: 115(ptr) AccessChain 113 114 358: 14(ivec3) Load 357 359: 28(bvec3) INotEqual 358 138 Store 356(r30) 359 361: 125(ptr) AccessChain 113 124 362: 21(ivec3) Load 361 363: 28(bvec3) INotEqual 362 138 Store 360(r31) 363 365: 182(ptr) AccessChain 113 181 366: 7(fvec3) Load 365 367: 28(bvec3) FOrdNotEqual 366 142 Store 364(r32) 367 369: 152(ptr) AccessChain 113 151 370: 35(f64vec3) Load 369 371: 28(bvec3) FOrdNotEqual 370 262 Store 368(r33) 371 373: 115(ptr) AccessChain 113 114 374: 14(ivec3) Load 373 375: 35(f64vec3) ConvertSToF 374 Store 372(r40) 375 377: 125(ptr) AccessChain 113 124 378: 21(ivec3) Load 377 379: 35(f64vec3) ConvertUToF 378 Store 376(r41) 379 381: 182(ptr) AccessChain 113 181 382: 7(fvec3) Load 381 383: 35(f64vec3) FConvert 382 Store 380(r42) 383 385: 125(ptr) AccessChain 113 134 386: 21(ivec3) Load 385 387: 28(bvec3) INotEqual 386 138 388: 35(f64vec3) Select 387 289 262 Store 384(r43) 388 389: 115(ptr) AccessChain 113 114 390: 14(ivec3) Load 389 391: 7(fvec3) ConvertSToF 390 392: 7(fvec3) Load 305(r00) 393: 7(fvec3) FMul 392 391 Store 305(r00) 393 394: 125(ptr) AccessChain 113 134 395: 21(ivec3) Load 394 396: 28(bvec3) INotEqual 395 138 397: 7(fvec3) Select 396 143 142 398: 7(fvec3) Load 309(r01) 399: 7(fvec3) FMul 398 397 Store 309(r01) 399 400: 125(ptr) AccessChain 113 124 401: 21(ivec3) Load 400 402: 7(fvec3) ConvertUToF 401 403: 7(fvec3) Load 314(r02) 404: 7(fvec3) FMul 403 402 Store 314(r02) 404 405: 152(ptr) AccessChain 113 151 406: 35(f64vec3) Load 405 407: 7(fvec3) FConvert 406 408: 7(fvec3) Load 318(r03) 409: 7(fvec3) FMul 408 407 Store 318(r03) 409 410: 125(ptr) AccessChain 113 134 411: 21(ivec3) Load 410 412: 28(bvec3) INotEqual 411 138 413: 14(ivec3) Select 412 173 172 414: 14(ivec3) Load 322(r10) 415: 14(ivec3) IMul 414 413 Store 322(r10) 415 416: 125(ptr) AccessChain 113 124 417: 21(ivec3) Load 416 418: 14(ivec3) Bitcast 417 419: 14(ivec3) Load 327(r11) 420: 14(ivec3) IMul 419 418 Store 327(r11) 420 421: 182(ptr) AccessChain 113 181 422: 7(fvec3) Load 421 423: 14(ivec3) ConvertFToS 422 424: 14(ivec3) Load 331(r12) 425: 14(ivec3) IMul 424 423 Store 331(r12) 425 426: 152(ptr) AccessChain 113 151 427: 35(f64vec3) Load 426 428: 14(ivec3) ConvertFToS 427 429: 14(ivec3) Load 335(r13) 430: 14(ivec3) IMul 429 428 Store 335(r13) 430 431: 125(ptr) AccessChain 113 134 432: 21(ivec3) Load 431 433: 28(bvec3) INotEqual 432 138 434: 21(ivec3) Select 433 219 138 435: 21(ivec3) Load 339(r20) 436: 21(ivec3) IMul 435 434 Store 339(r20) 436 437: 115(ptr) AccessChain 113 114 438: 14(ivec3) Load 437 439: 21(ivec3) Bitcast 438 440: 21(ivec3) Load 344(r21) 441: 21(ivec3) IMul 440 439 Store 344(r21) 441 442: 182(ptr) AccessChain 113 181 443: 7(fvec3) Load 442 444: 21(ivec3) ConvertFToU 443 445: 21(ivec3) Load 348(r22) 446: 21(ivec3) IMul 445 444 Store 348(r22) 446 447: 152(ptr) AccessChain 113 151 448: 35(f64vec3) Load 447 449: 21(ivec3) ConvertFToU 448 450: 21(ivec3) Load 352(r23) 451: 21(ivec3) IMul 450 449 Store 352(r23) 451 452: 115(ptr) AccessChain 113 114 453: 14(ivec3) Load 452 454: 35(f64vec3) ConvertSToF 453 455: 35(f64vec3) Load 372(r40) 456: 35(f64vec3) FMul 455 454 Store 372(r40) 456 457: 125(ptr) AccessChain 113 124 458: 21(ivec3) Load 457 459: 35(f64vec3) ConvertUToF 458 460: 35(f64vec3) Load 376(r41) 461: 35(f64vec3) FMul 460 459 Store 376(r41) 461 462: 182(ptr) AccessChain 113 181 463: 7(fvec3) Load 462 464: 35(f64vec3) FConvert 463 465: 35(f64vec3) Load 380(r42) 466: 35(f64vec3) FMul 465 464 Store 380(r42) 466 467: 125(ptr) AccessChain 113 134 468: 21(ivec3) Load 467 469: 28(bvec3) INotEqual 468 138 470: 35(f64vec3) Select 469 289 262 471: 35(f64vec3) Load 384(r43) 472: 35(f64vec3) FMul 471 470 Store 384(r43) 472 475: 474(ptr) AccessChain 113 473 476: 13(int) Load 475 477: 6(float) ConvertSToF 476 478: 7(fvec3) Load 305(r00) 479: 7(fvec3) VectorTimesScalar 478 477 Store 305(r00) 479 482: 481(ptr) AccessChain 113 480 483: 20(int) Load 482 484: 27(bool) INotEqual 483 137 485: 6(float) Select 484 141 140 486: 7(fvec3) Load 309(r01) 487: 7(fvec3) VectorTimesScalar 486 485 Store 309(r01) 487 489: 481(ptr) AccessChain 113 488 490: 20(int) Load 489 491: 6(float) ConvertUToF 490 492: 7(fvec3) Load 314(r02) 493: 7(fvec3) VectorTimesScalar 492 491 Store 314(r02) 493 496: 495(ptr) AccessChain 113 494 497:34(float64_t) Load 496 498: 6(float) FConvert 497 499: 7(fvec3) Load 318(r03) 500: 7(fvec3) VectorTimesScalar 499 498 Store 318(r03) 500 501: 481(ptr) AccessChain 113 480 502: 20(int) Load 501 503: 27(bool) INotEqual 502 137 504: 13(int) Select 503 134 114 505: 14(ivec3) Load 322(r10) 506: 14(ivec3) CompositeConstruct 504 504 504 507: 14(ivec3) IMul 505 506 Store 322(r10) 507 508: 481(ptr) AccessChain 113 488 509: 20(int) Load 508 510: 13(int) Bitcast 509 511: 14(ivec3) Load 327(r11) 512: 14(ivec3) CompositeConstruct 510 510 510 513: 14(ivec3) IMul 511 512 Store 327(r11) 513 516: 515(ptr) AccessChain 113 514 517: 6(float) Load 516 518: 13(int) ConvertFToS 517 519: 14(ivec3) Load 331(r12) 520: 14(ivec3) CompositeConstruct 518 518 518 521: 14(ivec3) IMul 519 520 Store 331(r12) 521 522: 495(ptr) AccessChain 113 494 523:34(float64_t) Load 522 524: 13(int) ConvertFToS 523 525: 14(ivec3) Load 335(r13) 526: 14(ivec3) CompositeConstruct 524 524 524 527: 14(ivec3) IMul 525 526 Store 335(r13) 527 528: 481(ptr) AccessChain 113 480 529: 20(int) Load 528 530: 27(bool) INotEqual 529 137 531: 20(int) Select 530 218 137 532: 21(ivec3) Load 339(r20) 533: 21(ivec3) CompositeConstruct 531 531 531 534: 21(ivec3) IMul 532 533 Store 339(r20) 534 535: 474(ptr) AccessChain 113 473 536: 13(int) Load 535 537: 20(int) Bitcast 536 538: 21(ivec3) Load 344(r21) 539: 21(ivec3) CompositeConstruct 537 537 537 540: 21(ivec3) IMul 538 539 Store 344(r21) 540 541: 515(ptr) AccessChain 113 514 542: 6(float) Load 541 543: 20(int) ConvertFToU 542 544: 21(ivec3) Load 348(r22) 545: 21(ivec3) CompositeConstruct 543 543 543 546: 21(ivec3) IMul 544 545 Store 348(r22) 546 547: 495(ptr) AccessChain 113 494 548:34(float64_t) Load 547 549: 20(int) ConvertFToU 548 550: 21(ivec3) Load 352(r23) 551: 21(ivec3) CompositeConstruct 549 549 549 552: 21(ivec3) IMul 550 551 Store 352(r23) 552 553: 474(ptr) AccessChain 113 473 554: 13(int) Load 553 555:34(float64_t) ConvertSToF 554 556: 35(f64vec3) Load 372(r40) 557: 35(f64vec3) VectorTimesScalar 556 555 Store 372(r40) 557 558: 481(ptr) AccessChain 113 488 559: 20(int) Load 558 560:34(float64_t) ConvertUToF 559 561: 35(f64vec3) Load 376(r41) 562: 35(f64vec3) VectorTimesScalar 561 560 Store 376(r41) 562 563: 515(ptr) AccessChain 113 514 564: 6(float) Load 563 565:34(float64_t) FConvert 564 566: 35(f64vec3) Load 380(r42) 567: 35(f64vec3) VectorTimesScalar 566 565 Store 380(r42) 567 568: 481(ptr) AccessChain 113 480 569: 20(int) Load 568 570: 27(bool) INotEqual 569 137 571:34(float64_t) Select 570 288 261 572: 35(f64vec3) Load 384(r43) 573: 35(f64vec3) VectorTimesScalar 572 571 Store 384(r43) 573 Store 575(c1) 124 Store 576(c2) 124 580: 13(int) Load 575(c1) 581: 6(float) ConvertSToF 580 582: 13(int) Load 576(c2) 583: 6(float) ConvertSToF 582 584: 106(fvec4) CompositeConstruct 579 579 581 583 Store 578(outval) 584 587: 106(fvec4) Load 578(outval) 588: 577(ptr) AccessChain 586(psout) 114 Store 588 587 589:107(PS_OUTPUT) Load 586(psout) ReturnValue 589 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.reflection.binding.frag.out000066400000000000000000000022241360464450000250700ustar00rootroot00000000000000hlsl.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 -1, 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 glslang-8.13.3559/Test/baseResults/hlsl.reflection.binding.vert.out000066400000000000000000000005311360464450000251300ustar00rootroot00000000000000hlsl.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: glslang-8.13.3559/Test/baseResults/hlsl.reflection.vert.out000066400000000000000000000154131360464450000235240ustar00rootroot00000000000000hlsl.reflection.vert Uniform reflection: 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 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 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 Uniform block reflection: nameless: offset -1, type ffffffff, size 496, index -1, 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 -1, binding -1, stages 1, numMembers 5 nested: offset -1, type ffffffff, size 32, index -1, binding -1, stages 1, numMembers 4 abl: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 1 abl2: offset -1, type ffffffff, size 4, index -1, 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: glslang-8.13.3559/Test/baseResults/hlsl.rw.atomics.frag.out000066400000000000000000015522051360464450000234250ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 121(g_tTex1du1) DescriptorSet 0 Decorate 121(g_tTex1du1) Binding 0 Decorate 217(g_tTex2di1) DescriptorSet 0 Decorate 217(g_tTex2di1) Binding 0 Decorate 308(g_tTex2du1) DescriptorSet 0 Decorate 308(g_tTex2du1) Binding 0 Decorate 399(g_tTex3di1) DescriptorSet 0 Decorate 399(g_tTex3di1) Binding 0 Decorate 490(g_tTex3du1) DescriptorSet 0 Decorate 490(g_tTex3du1) Binding 0 Decorate 581(g_tTex1di1a) DescriptorSet 0 Decorate 581(g_tTex1di1a) Binding 0 Decorate 670(g_tTex1du1a) DescriptorSet 0 Decorate 670(g_tTex1du1a) Binding 0 Decorate 931(g_tBuffI) DescriptorSet 0 Decorate 931(g_tBuffI) Binding 0 Decorate 1020(g_tBuffU) DescriptorSet 0 Decorate 1020(g_tBuffU) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.rw.bracket.frag.out000066400000000000000000005335031360464450000234000ustar00rootroot00000000000000hlsl.rw.bracket.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:42 Function Definition: Fn1(vi4; ( temp 4-component vector of int) 0:42 Function Parameters: 0:42 'x' ( in 4-component vector of int) 0:? Sequence 0:42 Branch: Return with expression 0:42 'x' ( in 4-component vector of int) 0:43 Function Definition: Fn1(vu4; ( temp 4-component vector of uint) 0:43 Function Parameters: 0:43 'x' ( in 4-component vector of uint) 0:? Sequence 0:43 Branch: Return with expression 0:43 'x' ( in 4-component vector of uint) 0:44 Function Definition: Fn1(vf4; ( temp 4-component vector of float) 0:44 Function Parameters: 0:44 'x' ( in 4-component vector of float) 0:? Sequence 0:44 Branch: Return with expression 0:44 'x' ( in 4-component vector of float) 0:46 Function Definition: Fn2(vi4; ( temp void) 0:46 Function Parameters: 0:46 'x' ( out 4-component vector of int) 0:? Sequence 0:46 move second child to first child ( temp 4-component vector of int) 0:46 'x' ( out 4-component vector of int) 0:46 Constant: 0:46 0 (const int) 0:46 0 (const int) 0:46 0 (const int) 0:46 0 (const int) 0:47 Function Definition: Fn2(vu4; ( temp void) 0:47 Function Parameters: 0:47 'x' ( out 4-component vector of uint) 0:? Sequence 0:47 move second child to first child ( temp 4-component vector of uint) 0:47 'x' ( out 4-component vector of uint) 0:47 Constant: 0:47 0 (const uint) 0:47 0 (const uint) 0:47 0 (const uint) 0:47 0 (const uint) 0:48 Function Definition: Fn2(vf4; ( temp void) 0:48 Function Parameters: 0:48 'x' ( out 4-component vector of float) 0:? Sequence 0:48 move second child to first child ( temp 4-component vector of float) 0:48 'x' ( out 4-component vector of float) 0:48 Constant: 0:48 0.000000 0:48 0.000000 0:48 0.000000 0:48 0.000000 0:50 Function Definition: SomeValue( ( temp 4-component vector of float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression 0:50 Convert int to float ( temp 4-component vector of float) 0:50 c4: direct index for structure ( uniform 4-component vector of int) 0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:50 Constant: 0:50 3 (const uint) 0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence 0:57 imageLoad ( temp 4-component vector of float) 0:57 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:57 c1: direct index for structure ( uniform int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:57 Constant: 0:57 0 (const uint) 0:59 Sequence 0:59 move second child to first child ( temp 4-component vector of float) 0:59 'r00' ( temp 4-component vector of float) 0:59 imageLoad ( temp 4-component vector of float) 0:59 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:59 c1: direct index for structure ( uniform int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:59 Constant: 0:59 0 (const uint) 0:60 Sequence 0:60 move second child to first child ( temp 4-component vector of int) 0:60 'r01' ( temp 4-component vector of int) 0:60 imageLoad ( temp 4-component vector of int) 0:60 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:60 c1: direct index for structure ( uniform int) 0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:60 Constant: 0:60 0 (const uint) 0:61 Sequence 0:61 move second child to first child ( temp 4-component vector of uint) 0:61 'r02' ( temp 4-component vector of uint) 0:61 imageLoad ( temp 4-component vector of uint) 0:61 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:61 c1: direct index for structure ( uniform int) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:61 Constant: 0:61 0 (const uint) 0:64 Sequence 0:64 move second child to first child ( temp 4-component vector of float) 0:64 'r10' ( temp 4-component vector of float) 0:64 imageLoad ( temp 4-component vector of float) 0:64 'g_tTex2df4' (layout( rgba32f) uniform image2D) 0:64 c2: direct index for structure ( uniform 2-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:64 Constant: 0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child ( temp 4-component vector of int) 0:65 'r11' ( temp 4-component vector of int) 0:65 imageLoad ( temp 4-component vector of int) 0:65 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) 0:65 c2: direct index for structure ( uniform 2-component vector of int) 0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:65 Constant: 0:65 1 (const uint) 0:66 Sequence 0:66 move second child to first child ( temp 4-component vector of uint) 0:66 'r12' ( temp 4-component vector of uint) 0:66 imageLoad ( temp 4-component vector of uint) 0:66 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) 0:66 c2: direct index for structure ( uniform 2-component vector of int) 0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:66 Constant: 0:66 1 (const uint) 0:69 Sequence 0:69 move second child to first child ( temp 4-component vector of float) 0:69 'r20' ( temp 4-component vector of float) 0:69 imageLoad ( temp 4-component vector of float) 0:69 'g_tTex3df4' (layout( rgba32f) uniform image3D) 0:69 c3: direct index for structure ( uniform 3-component vector of int) 0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:69 Constant: 0:69 2 (const uint) 0:70 Sequence 0:70 move second child to first child ( temp 4-component vector of int) 0:70 'r21' ( temp 4-component vector of int) 0:70 imageLoad ( temp 4-component vector of int) 0:70 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) 0:70 c3: direct index for structure ( uniform 3-component vector of int) 0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:70 Constant: 0:70 2 (const uint) 0:71 Sequence 0:71 move second child to first child ( temp 4-component vector of uint) 0:71 'r22' ( temp 4-component vector of uint) 0:71 imageLoad ( temp 4-component vector of uint) 0:71 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) 0:71 c3: direct index for structure ( uniform 3-component vector of int) 0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:71 Constant: 0:71 2 (const uint) 0:73 Sequence 0:73 move second child to first child ( temp 4-component vector of float) 0:73 'lf4' ( temp 4-component vector of float) 0:73 uf4: direct index for structure ( uniform 4-component vector of float) 0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:73 Constant: 0:73 8 (const uint) 0:77 Sequence 0:77 move second child to first child ( temp 4-component vector of float) 0:77 'storeTemp' ( temp 4-component vector of float) 0:77 Function Call: SomeValue( ( temp 4-component vector of float) 0:77 imageStore ( temp void) 0:77 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:77 c1: direct index for structure ( uniform int) 0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:77 Constant: 0:77 0 (const uint) 0:77 'storeTemp' ( temp 4-component vector of float) 0:77 'storeTemp' ( temp 4-component vector of float) 0:78 Sequence 0:78 imageStore ( temp void) 0:78 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:78 c1: direct index for structure ( uniform int) 0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:78 Constant: 0:78 0 (const uint) 0:78 'lf4' ( temp 4-component vector of float) 0:78 'lf4' ( temp 4-component vector of float) 0:79 Sequence 0:79 move second child to first child ( temp 4-component vector of int) 0:79 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 2 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) 0:79 imageStore ( temp void) 0:79 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:79 c1: direct index for structure ( uniform int) 0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:79 Constant: 0:79 0 (const uint) 0:79 'storeTemp' ( temp 4-component vector of int) 0:79 'storeTemp' ( temp 4-component vector of int) 0:80 Sequence 0:80 move second child to first child ( temp 4-component vector of uint) 0:80 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 3 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) 0:80 imageStore ( temp void) 0:80 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:80 c1: direct index for structure ( uniform int) 0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:80 Constant: 0:80 0 (const uint) 0:80 'storeTemp' ( temp 4-component vector of uint) 0:80 'storeTemp' ( temp 4-component vector of uint) 0:83 Sequence 0:83 move second child to first child ( temp 4-component vector of float) 0:83 'val1' ( temp 4-component vector of float) 0:83 Sequence 0:83 move second child to first child ( temp int) 0:83 'coordTemp' ( temp int) 0:83 c1: direct index for structure ( uniform int) 0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:83 Constant: 0:83 0 (const uint) 0:83 move second child to first child ( temp 4-component vector of float) 0:83 'storeTemp' ( temp 4-component vector of float) 0:83 imageLoad ( temp 4-component vector of float) 0:83 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 vector scale second child into first child ( temp 4-component vector of float) 0:83 'storeTemp' ( temp 4-component vector of float) 0:83 Constant: 0:83 2.000000 0:83 imageStore ( temp void) 0:83 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 'storeTemp' ( temp 4-component vector of float) 0:83 'storeTemp' ( temp 4-component vector of float) 0:84 Sequence 0:84 move second child to first child ( temp int) 0:84 'coordTemp' ( temp int) 0:84 c1: direct index for structure ( uniform int) 0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:84 Constant: 0:84 0 (const uint) 0:84 move second child to first child ( temp 4-component vector of float) 0:84 'storeTemp' ( temp 4-component vector of float) 0:84 imageLoad ( temp 4-component vector of float) 0:84 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 subtract second child into first child ( temp 4-component vector of float) 0:84 'storeTemp' ( temp 4-component vector of float) 0:84 Constant: 0:84 3.000000 0:84 imageStore ( temp void) 0:84 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 'storeTemp' ( temp 4-component vector of float) 0:84 'storeTemp' ( temp 4-component vector of float) 0:85 Sequence 0:85 move second child to first child ( temp int) 0:85 'coordTemp' ( temp int) 0:85 c1: direct index for structure ( uniform int) 0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:85 Constant: 0:85 0 (const uint) 0:85 move second child to first child ( temp 4-component vector of float) 0:85 'storeTemp' ( temp 4-component vector of float) 0:85 imageLoad ( temp 4-component vector of float) 0:85 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 add second child into first child ( temp 4-component vector of float) 0:85 'storeTemp' ( temp 4-component vector of float) 0:85 Constant: 0:85 4.000000 0:85 imageStore ( temp void) 0:85 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 'storeTemp' ( temp 4-component vector of float) 0:85 'storeTemp' ( temp 4-component vector of float) 0:87 Sequence 0:87 move second child to first child ( temp int) 0:87 'coordTemp' ( temp int) 0:87 c1: direct index for structure ( uniform int) 0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:87 Constant: 0:87 0 (const uint) 0:87 move second child to first child ( temp 4-component vector of int) 0:87 'storeTemp' ( temp 4-component vector of int) 0:87 imageLoad ( temp 4-component vector of int) 0:87 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 divide second child into first child ( temp 4-component vector of int) 0:87 'storeTemp' ( temp 4-component vector of int) 0:87 Constant: 0:87 2 (const int) 0:87 imageStore ( temp void) 0:87 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 'storeTemp' ( temp 4-component vector of int) 0:87 'storeTemp' ( temp 4-component vector of int) 0:88 Sequence 0:88 move second child to first child ( temp int) 0:88 'coordTemp' ( temp int) 0:88 c1: direct index for structure ( uniform int) 0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:88 Constant: 0:88 0 (const uint) 0:88 move second child to first child ( temp 4-component vector of int) 0:88 'storeTemp' ( temp 4-component vector of int) 0:88 imageLoad ( temp 4-component vector of int) 0:88 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 mod second child into first child ( temp 4-component vector of int) 0:88 'storeTemp' ( temp 4-component vector of int) 0:88 Constant: 0:88 2 (const int) 0:88 imageStore ( temp void) 0:88 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 'storeTemp' ( temp 4-component vector of int) 0:88 'storeTemp' ( temp 4-component vector of int) 0:89 Sequence 0:89 move second child to first child ( temp int) 0:89 'coordTemp' ( temp int) 0:89 c1: direct index for structure ( uniform int) 0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:89 Constant: 0:89 0 (const uint) 0:89 move second child to first child ( temp 4-component vector of int) 0:89 'storeTemp' ( temp 4-component vector of int) 0:89 imageLoad ( temp 4-component vector of int) 0:89 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 and second child into first child ( temp 4-component vector of int) 0:89 'storeTemp' ( temp 4-component vector of int) 0:89 Constant: 0:89 65535 (const int) 0:89 imageStore ( temp void) 0:89 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 'storeTemp' ( temp 4-component vector of int) 0:89 'storeTemp' ( temp 4-component vector of int) 0:90 Sequence 0:90 move second child to first child ( temp int) 0:90 'coordTemp' ( temp int) 0:90 c1: direct index for structure ( uniform int) 0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:90 Constant: 0:90 0 (const uint) 0:90 move second child to first child ( temp 4-component vector of int) 0:90 'storeTemp' ( temp 4-component vector of int) 0:90 imageLoad ( temp 4-component vector of int) 0:90 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 or second child into first child ( temp 4-component vector of int) 0:90 'storeTemp' ( temp 4-component vector of int) 0:90 Constant: 0:90 61680 (const int) 0:90 imageStore ( temp void) 0:90 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 'storeTemp' ( temp 4-component vector of int) 0:90 'storeTemp' ( temp 4-component vector of int) 0:91 Sequence 0:91 move second child to first child ( temp int) 0:91 'coordTemp' ( temp int) 0:91 c1: direct index for structure ( uniform int) 0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:91 Constant: 0:91 0 (const uint) 0:91 move second child to first child ( temp 4-component vector of int) 0:91 'storeTemp' ( temp 4-component vector of int) 0:91 imageLoad ( temp 4-component vector of int) 0:91 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 left shift second child into first child ( temp 4-component vector of int) 0:91 'storeTemp' ( temp 4-component vector of int) 0:91 Constant: 0:91 2 (const int) 0:91 imageStore ( temp void) 0:91 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 'storeTemp' ( temp 4-component vector of int) 0:91 'storeTemp' ( temp 4-component vector of int) 0:92 Sequence 0:92 move second child to first child ( temp int) 0:92 'coordTemp' ( temp int) 0:92 c1: direct index for structure ( uniform int) 0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:92 Constant: 0:92 0 (const uint) 0:92 move second child to first child ( temp 4-component vector of int) 0:92 'storeTemp' ( temp 4-component vector of int) 0:92 imageLoad ( temp 4-component vector of int) 0:92 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 right shift second child into first child ( temp 4-component vector of int) 0:92 'storeTemp' ( temp 4-component vector of int) 0:92 Constant: 0:92 2 (const int) 0:92 imageStore ( temp void) 0:92 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 'storeTemp' ( temp 4-component vector of int) 0:92 'storeTemp' ( temp 4-component vector of int) 0:95 Sequence 0:95 move second child to first child ( temp 4-component vector of float) 0:95 'storeTemp' ( temp 4-component vector of float) 0:95 Function Call: SomeValue( ( temp 4-component vector of float) 0:95 imageStore ( temp void) 0:95 'g_tTex2df4' (layout( rgba32f) uniform image2D) 0:95 c2: direct index for structure ( uniform 2-component vector of int) 0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:95 Constant: 0:95 1 (const uint) 0:95 'storeTemp' ( temp 4-component vector of float) 0:95 'storeTemp' ( temp 4-component vector of float) 0:96 Sequence 0:96 imageStore ( temp void) 0:96 'g_tTex2df4' (layout( rgba32f) uniform image2D) 0:96 c2: direct index for structure ( uniform 2-component vector of int) 0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:96 Constant: 0:96 1 (const uint) 0:96 'lf4' ( temp 4-component vector of float) 0:96 'lf4' ( temp 4-component vector of float) 0:97 Sequence 0:97 move second child to first child ( temp 4-component vector of int) 0:97 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 5 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) 0:97 imageStore ( temp void) 0:97 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) 0:97 c2: direct index for structure ( uniform 2-component vector of int) 0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:97 Constant: 0:97 1 (const uint) 0:97 'storeTemp' ( temp 4-component vector of int) 0:97 'storeTemp' ( temp 4-component vector of int) 0:98 Sequence 0:98 move second child to first child ( temp 4-component vector of uint) 0:98 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 6 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) 0:98 imageStore ( temp void) 0:98 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) 0:98 c2: direct index for structure ( uniform 2-component vector of int) 0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:98 Constant: 0:98 1 (const uint) 0:98 'storeTemp' ( temp 4-component vector of uint) 0:98 'storeTemp' ( temp 4-component vector of uint) 0:101 Sequence 0:101 move second child to first child ( temp 4-component vector of float) 0:101 'storeTemp' ( temp 4-component vector of float) 0:101 Function Call: SomeValue( ( temp 4-component vector of float) 0:101 imageStore ( temp void) 0:101 'g_tTex3df4' (layout( rgba32f) uniform image3D) 0:101 c3: direct index for structure ( uniform 3-component vector of int) 0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:101 Constant: 0:101 2 (const uint) 0:101 'storeTemp' ( temp 4-component vector of float) 0:101 'storeTemp' ( temp 4-component vector of float) 0:102 Sequence 0:102 imageStore ( temp void) 0:102 'g_tTex3df4' (layout( rgba32f) uniform image3D) 0:102 c3: direct index for structure ( uniform 3-component vector of int) 0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:102 Constant: 0:102 2 (const uint) 0:102 'lf4' ( temp 4-component vector of float) 0:102 'lf4' ( temp 4-component vector of float) 0:103 Sequence 0:103 move second child to first child ( temp 4-component vector of int) 0:103 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 8 (const int) 0:? 6 (const int) 0:? 7 (const int) 0:? 8 (const int) 0:103 imageStore ( temp void) 0:103 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) 0:103 c3: direct index for structure ( uniform 3-component vector of int) 0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:103 Constant: 0:103 2 (const uint) 0:103 'storeTemp' ( temp 4-component vector of int) 0:103 'storeTemp' ( temp 4-component vector of int) 0:104 Sequence 0:104 move second child to first child ( temp 4-component vector of uint) 0:104 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 9 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) 0:104 imageStore ( temp void) 0:104 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) 0:104 c3: direct index for structure ( uniform 3-component vector of int) 0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:104 Constant: 0:104 2 (const uint) 0:104 'storeTemp' ( temp 4-component vector of uint) 0:104 'storeTemp' ( temp 4-component vector of uint) 0:107 Function Call: Fn1(vf4; ( temp 4-component vector of float) 0:107 imageLoad ( temp 4-component vector of float) 0:107 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:107 c1: direct index for structure ( uniform int) 0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:107 Constant: 0:107 0 (const uint) 0:108 Function Call: Fn1(vi4; ( temp 4-component vector of int) 0:108 imageLoad ( temp 4-component vector of int) 0:108 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:108 c1: direct index for structure ( uniform int) 0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:108 Constant: 0:108 0 (const uint) 0:109 Function Call: Fn1(vu4; ( temp 4-component vector of uint) 0:109 imageLoad ( temp 4-component vector of uint) 0:109 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:109 c1: direct index for structure ( uniform int) 0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:109 Constant: 0:109 0 (const uint) 0:111 Comma ( temp void) 0:111 Function Call: Fn2(vf4; ( temp void) 0:111 'tempArg' ( temp 4-component vector of float) 0:111 Sequence 0:111 imageStore ( temp void) 0:111 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:111 c1: direct index for structure ( uniform int) 0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:111 Constant: 0:111 0 (const uint) 0:111 'tempArg' ( temp 4-component vector of float) 0:111 'tempArg' ( temp 4-component vector of float) 0:112 Comma ( temp void) 0:112 Function Call: Fn2(vi4; ( temp void) 0:112 'tempArg' ( temp 4-component vector of int) 0:112 Sequence 0:112 imageStore ( temp void) 0:112 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:112 c1: direct index for structure ( uniform int) 0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:112 Constant: 0:112 0 (const uint) 0:112 'tempArg' ( temp 4-component vector of int) 0:112 'tempArg' ( temp 4-component vector of int) 0:113 Comma ( temp void) 0:113 Function Call: Fn2(vu4; ( temp void) 0:113 'tempArg' ( temp 4-component vector of uint) 0:113 Sequence 0:113 imageStore ( temp void) 0:113 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:113 c1: direct index for structure ( uniform int) 0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:113 Constant: 0:113 0 (const uint) 0:113 'tempArg' ( temp 4-component vector of uint) 0:113 'tempArg' ( temp 4-component vector of uint) 0:117 Sequence 0:117 move second child to first child ( temp int) 0:117 'coordTemp' ( temp int) 0:117 c1: direct index for structure ( uniform int) 0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:117 Constant: 0:117 0 (const uint) 0:117 move second child to first child ( temp 4-component vector of float) 0:117 'storeTemp' ( temp 4-component vector of float) 0:117 imageLoad ( temp 4-component vector of float) 0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 Pre-Increment ( temp 4-component vector of float) 0:117 'storeTemp' ( temp 4-component vector of float) 0:117 imageStore ( temp void) 0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 'storeTemp' ( temp 4-component vector of float) 0:117 'storeTemp' ( temp 4-component vector of float) 0:118 Sequence 0:118 move second child to first child ( temp int) 0:118 'coordTemp' ( temp int) 0:118 c1: direct index for structure ( uniform int) 0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:118 Constant: 0:118 0 (const uint) 0:118 move second child to first child ( temp 4-component vector of int) 0:118 'storeTemp' ( temp 4-component vector of int) 0:118 imageLoad ( temp 4-component vector of int) 0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 Pre-Increment ( temp 4-component vector of int) 0:118 'storeTemp' ( temp 4-component vector of int) 0:118 imageStore ( temp void) 0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 'storeTemp' ( temp 4-component vector of int) 0:118 'storeTemp' ( temp 4-component vector of int) 0:119 Sequence 0:119 move second child to first child ( temp int) 0:119 'coordTemp' ( temp int) 0:119 c1: direct index for structure ( uniform int) 0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:119 Constant: 0:119 0 (const uint) 0:119 move second child to first child ( temp 4-component vector of uint) 0:119 'storeTemp' ( temp 4-component vector of uint) 0:119 imageLoad ( temp 4-component vector of uint) 0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 Pre-Increment ( temp 4-component vector of uint) 0:119 'storeTemp' ( temp 4-component vector of uint) 0:119 imageStore ( temp void) 0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 'storeTemp' ( temp 4-component vector of uint) 0:119 'storeTemp' ( temp 4-component vector of uint) 0:121 Sequence 0:121 move second child to first child ( temp int) 0:121 'coordTemp' ( temp int) 0:121 c1: direct index for structure ( uniform int) 0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:121 Constant: 0:121 0 (const uint) 0:121 move second child to first child ( temp 4-component vector of float) 0:121 'storeTemp' ( temp 4-component vector of float) 0:121 imageLoad ( temp 4-component vector of float) 0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 Pre-Decrement ( temp 4-component vector of float) 0:121 'storeTemp' ( temp 4-component vector of float) 0:121 imageStore ( temp void) 0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 'storeTemp' ( temp 4-component vector of float) 0:121 'storeTemp' ( temp 4-component vector of float) 0:122 Sequence 0:122 move second child to first child ( temp int) 0:122 'coordTemp' ( temp int) 0:122 c1: direct index for structure ( uniform int) 0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:122 Constant: 0:122 0 (const uint) 0:122 move second child to first child ( temp 4-component vector of int) 0:122 'storeTemp' ( temp 4-component vector of int) 0:122 imageLoad ( temp 4-component vector of int) 0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 Pre-Decrement ( temp 4-component vector of int) 0:122 'storeTemp' ( temp 4-component vector of int) 0:122 imageStore ( temp void) 0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 'storeTemp' ( temp 4-component vector of int) 0:122 'storeTemp' ( temp 4-component vector of int) 0:123 Sequence 0:123 move second child to first child ( temp int) 0:123 'coordTemp' ( temp int) 0:123 c1: direct index for structure ( uniform int) 0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:123 Constant: 0:123 0 (const uint) 0:123 move second child to first child ( temp 4-component vector of uint) 0:123 'storeTemp' ( temp 4-component vector of uint) 0:123 imageLoad ( temp 4-component vector of uint) 0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 Pre-Decrement ( temp 4-component vector of uint) 0:123 'storeTemp' ( temp 4-component vector of uint) 0:123 imageStore ( temp void) 0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 'storeTemp' ( temp 4-component vector of uint) 0:123 'storeTemp' ( temp 4-component vector of uint) 0:126 Sequence 0:126 move second child to first child ( temp int) 0:126 'coordTemp' ( temp int) 0:126 c1: direct index for structure ( uniform int) 0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:126 Constant: 0:126 0 (const uint) 0:126 move second child to first child ( temp 4-component vector of float) 0:126 'storeTempPre' ( temp 4-component vector of float) 0:126 imageLoad ( temp 4-component vector of float) 0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 move second child to first child ( temp 4-component vector of float) 0:126 'storeTempPost' ( temp 4-component vector of float) 0:126 'storeTempPre' ( temp 4-component vector of float) 0:126 Post-Increment ( temp 4-component vector of float) 0:126 'storeTempPost' ( temp 4-component vector of float) 0:126 imageStore ( temp void) 0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 'storeTempPost' ( temp 4-component vector of float) 0:126 'storeTempPre' ( temp 4-component vector of float) 0:127 Sequence 0:127 move second child to first child ( temp int) 0:127 'coordTemp' ( temp int) 0:127 c1: direct index for structure ( uniform int) 0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:127 Constant: 0:127 0 (const uint) 0:127 move second child to first child ( temp 4-component vector of uint) 0:127 'storeTempPre' ( temp 4-component vector of uint) 0:127 imageLoad ( temp 4-component vector of uint) 0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 move second child to first child ( temp 4-component vector of uint) 0:127 'storeTempPost' ( temp 4-component vector of uint) 0:127 'storeTempPre' ( temp 4-component vector of uint) 0:127 Post-Decrement ( temp 4-component vector of uint) 0:127 'storeTempPost' ( temp 4-component vector of uint) 0:127 imageStore ( temp void) 0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 'storeTempPost' ( temp 4-component vector of uint) 0:127 'storeTempPre' ( temp 4-component vector of uint) 0:128 Sequence 0:128 move second child to first child ( temp int) 0:128 'coordTemp' ( temp int) 0:128 c1: direct index for structure ( uniform int) 0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:128 Constant: 0:128 0 (const uint) 0:128 move second child to first child ( temp 4-component vector of int) 0:128 'storeTempPre' ( temp 4-component vector of int) 0:128 imageLoad ( temp 4-component vector of int) 0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 move second child to first child ( temp 4-component vector of int) 0:128 'storeTempPost' ( temp 4-component vector of int) 0:128 'storeTempPre' ( temp 4-component vector of int) 0:128 Post-Increment ( temp 4-component vector of int) 0:128 'storeTempPost' ( temp 4-component vector of int) 0:128 imageStore ( temp void) 0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 'storeTempPost' ( temp 4-component vector of int) 0:128 'storeTempPre' ( temp 4-component vector of int) 0:130 Sequence 0:130 move second child to first child ( temp int) 0:130 'coordTemp' ( temp int) 0:130 c1: direct index for structure ( uniform int) 0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:130 Constant: 0:130 0 (const uint) 0:130 move second child to first child ( temp 4-component vector of float) 0:130 'storeTempPre' ( temp 4-component vector of float) 0:130 imageLoad ( temp 4-component vector of float) 0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 move second child to first child ( temp 4-component vector of float) 0:130 'storeTempPost' ( temp 4-component vector of float) 0:130 'storeTempPre' ( temp 4-component vector of float) 0:130 Post-Decrement ( temp 4-component vector of float) 0:130 'storeTempPost' ( temp 4-component vector of float) 0:130 imageStore ( temp void) 0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 'storeTempPost' ( temp 4-component vector of float) 0:130 'storeTempPre' ( temp 4-component vector of float) 0:131 Sequence 0:131 move second child to first child ( temp int) 0:131 'coordTemp' ( temp int) 0:131 c1: direct index for structure ( uniform int) 0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:131 Constant: 0:131 0 (const uint) 0:131 move second child to first child ( temp 4-component vector of int) 0:131 'storeTempPre' ( temp 4-component vector of int) 0:131 imageLoad ( temp 4-component vector of int) 0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 move second child to first child ( temp 4-component vector of int) 0:131 'storeTempPost' ( temp 4-component vector of int) 0:131 'storeTempPre' ( temp 4-component vector of int) 0:131 Post-Increment ( temp 4-component vector of int) 0:131 'storeTempPost' ( temp 4-component vector of int) 0:131 imageStore ( temp void) 0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 'storeTempPost' ( temp 4-component vector of int) 0:131 'storeTempPre' ( temp 4-component vector of int) 0:132 Sequence 0:132 move second child to first child ( temp int) 0:132 'coordTemp' ( temp int) 0:132 c1: direct index for structure ( uniform int) 0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:132 Constant: 0:132 0 (const uint) 0:132 move second child to first child ( temp 4-component vector of uint) 0:132 'storeTempPre' ( temp 4-component vector of uint) 0:132 imageLoad ( temp 4-component vector of uint) 0:132 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 move second child to first child ( temp 4-component vector of uint) 0:132 'storeTempPost' ( temp 4-component vector of uint) 0:132 'storeTempPre' ( temp 4-component vector of uint) 0:132 Post-Decrement ( temp 4-component vector of uint) 0:132 'storeTempPost' ( temp 4-component vector of uint) 0:132 imageStore ( temp void) 0:132 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 'storeTempPost' ( temp 4-component vector of uint) 0:132 'storeTempPre' ( temp 4-component vector of uint) 0:135 Sequence 0:135 move second child to first child ( temp 4-component vector of float) 0:135 'storeTemp' ( temp 4-component vector of float) 0:? imageLoad ( temp 4-component vector of float) 0:135 'g_tTex2df4' (layout( rgba32f) uniform image2D) 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:135 imageStore ( temp void) 0:135 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:135 Constant: 0:135 1 (const int) 0:135 'storeTemp' ( temp 4-component vector of float) 0:135 'storeTemp' ( temp 4-component vector of float) 0:137 move second child to first child ( temp 4-component vector of float) 0:137 Color: direct index for structure ( temp 4-component vector of float) 0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:137 Constant: 0:137 0 (const int) 0:137 Constant: 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:139 Branch: Return with expression 0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Definition: main( ( temp void) 0:53 Function Parameters: 0:? Sequence 0:53 Sequence 0:53 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:53 Color: direct index for structure ( temp 4-component vector of float) 0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Constant: 0:53 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:? 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:? 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:? 'g_tTex2df4' (layout( rgba32f) uniform image2D) 0:? 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) 0:? 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) 0:? 'g_tTex3df4' (layout( rgba32f) uniform image3D) 0:? 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) 0:? 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) 0:? 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) 0:? 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) 0:? 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) 0:? 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) 0:? 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) 0:? 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:42 Function Definition: Fn1(vi4; ( temp 4-component vector of int) 0:42 Function Parameters: 0:42 'x' ( in 4-component vector of int) 0:? Sequence 0:42 Branch: Return with expression 0:42 'x' ( in 4-component vector of int) 0:43 Function Definition: Fn1(vu4; ( temp 4-component vector of uint) 0:43 Function Parameters: 0:43 'x' ( in 4-component vector of uint) 0:? Sequence 0:43 Branch: Return with expression 0:43 'x' ( in 4-component vector of uint) 0:44 Function Definition: Fn1(vf4; ( temp 4-component vector of float) 0:44 Function Parameters: 0:44 'x' ( in 4-component vector of float) 0:? Sequence 0:44 Branch: Return with expression 0:44 'x' ( in 4-component vector of float) 0:46 Function Definition: Fn2(vi4; ( temp void) 0:46 Function Parameters: 0:46 'x' ( out 4-component vector of int) 0:? Sequence 0:46 move second child to first child ( temp 4-component vector of int) 0:46 'x' ( out 4-component vector of int) 0:46 Constant: 0:46 0 (const int) 0:46 0 (const int) 0:46 0 (const int) 0:46 0 (const int) 0:47 Function Definition: Fn2(vu4; ( temp void) 0:47 Function Parameters: 0:47 'x' ( out 4-component vector of uint) 0:? Sequence 0:47 move second child to first child ( temp 4-component vector of uint) 0:47 'x' ( out 4-component vector of uint) 0:47 Constant: 0:47 0 (const uint) 0:47 0 (const uint) 0:47 0 (const uint) 0:47 0 (const uint) 0:48 Function Definition: Fn2(vf4; ( temp void) 0:48 Function Parameters: 0:48 'x' ( out 4-component vector of float) 0:? Sequence 0:48 move second child to first child ( temp 4-component vector of float) 0:48 'x' ( out 4-component vector of float) 0:48 Constant: 0:48 0.000000 0:48 0.000000 0:48 0.000000 0:48 0.000000 0:50 Function Definition: SomeValue( ( temp 4-component vector of float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression 0:50 Convert int to float ( temp 4-component vector of float) 0:50 c4: direct index for structure ( uniform 4-component vector of int) 0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:50 Constant: 0:50 3 (const uint) 0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence 0:57 imageLoad ( temp 4-component vector of float) 0:57 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:57 c1: direct index for structure ( uniform int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:57 Constant: 0:57 0 (const uint) 0:59 Sequence 0:59 move second child to first child ( temp 4-component vector of float) 0:59 'r00' ( temp 4-component vector of float) 0:59 imageLoad ( temp 4-component vector of float) 0:59 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:59 c1: direct index for structure ( uniform int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:59 Constant: 0:59 0 (const uint) 0:60 Sequence 0:60 move second child to first child ( temp 4-component vector of int) 0:60 'r01' ( temp 4-component vector of int) 0:60 imageLoad ( temp 4-component vector of int) 0:60 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:60 c1: direct index for structure ( uniform int) 0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:60 Constant: 0:60 0 (const uint) 0:61 Sequence 0:61 move second child to first child ( temp 4-component vector of uint) 0:61 'r02' ( temp 4-component vector of uint) 0:61 imageLoad ( temp 4-component vector of uint) 0:61 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:61 c1: direct index for structure ( uniform int) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:61 Constant: 0:61 0 (const uint) 0:64 Sequence 0:64 move second child to first child ( temp 4-component vector of float) 0:64 'r10' ( temp 4-component vector of float) 0:64 imageLoad ( temp 4-component vector of float) 0:64 'g_tTex2df4' (layout( rgba32f) uniform image2D) 0:64 c2: direct index for structure ( uniform 2-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:64 Constant: 0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child ( temp 4-component vector of int) 0:65 'r11' ( temp 4-component vector of int) 0:65 imageLoad ( temp 4-component vector of int) 0:65 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) 0:65 c2: direct index for structure ( uniform 2-component vector of int) 0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:65 Constant: 0:65 1 (const uint) 0:66 Sequence 0:66 move second child to first child ( temp 4-component vector of uint) 0:66 'r12' ( temp 4-component vector of uint) 0:66 imageLoad ( temp 4-component vector of uint) 0:66 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) 0:66 c2: direct index for structure ( uniform 2-component vector of int) 0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:66 Constant: 0:66 1 (const uint) 0:69 Sequence 0:69 move second child to first child ( temp 4-component vector of float) 0:69 'r20' ( temp 4-component vector of float) 0:69 imageLoad ( temp 4-component vector of float) 0:69 'g_tTex3df4' (layout( rgba32f) uniform image3D) 0:69 c3: direct index for structure ( uniform 3-component vector of int) 0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:69 Constant: 0:69 2 (const uint) 0:70 Sequence 0:70 move second child to first child ( temp 4-component vector of int) 0:70 'r21' ( temp 4-component vector of int) 0:70 imageLoad ( temp 4-component vector of int) 0:70 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) 0:70 c3: direct index for structure ( uniform 3-component vector of int) 0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:70 Constant: 0:70 2 (const uint) 0:71 Sequence 0:71 move second child to first child ( temp 4-component vector of uint) 0:71 'r22' ( temp 4-component vector of uint) 0:71 imageLoad ( temp 4-component vector of uint) 0:71 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) 0:71 c3: direct index for structure ( uniform 3-component vector of int) 0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:71 Constant: 0:71 2 (const uint) 0:73 Sequence 0:73 move second child to first child ( temp 4-component vector of float) 0:73 'lf4' ( temp 4-component vector of float) 0:73 uf4: direct index for structure ( uniform 4-component vector of float) 0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:73 Constant: 0:73 8 (const uint) 0:77 Sequence 0:77 move second child to first child ( temp 4-component vector of float) 0:77 'storeTemp' ( temp 4-component vector of float) 0:77 Function Call: SomeValue( ( temp 4-component vector of float) 0:77 imageStore ( temp void) 0:77 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:77 c1: direct index for structure ( uniform int) 0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:77 Constant: 0:77 0 (const uint) 0:77 'storeTemp' ( temp 4-component vector of float) 0:77 'storeTemp' ( temp 4-component vector of float) 0:78 Sequence 0:78 imageStore ( temp void) 0:78 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:78 c1: direct index for structure ( uniform int) 0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:78 Constant: 0:78 0 (const uint) 0:78 'lf4' ( temp 4-component vector of float) 0:78 'lf4' ( temp 4-component vector of float) 0:79 Sequence 0:79 move second child to first child ( temp 4-component vector of int) 0:79 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 2 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) 0:79 imageStore ( temp void) 0:79 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:79 c1: direct index for structure ( uniform int) 0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:79 Constant: 0:79 0 (const uint) 0:79 'storeTemp' ( temp 4-component vector of int) 0:79 'storeTemp' ( temp 4-component vector of int) 0:80 Sequence 0:80 move second child to first child ( temp 4-component vector of uint) 0:80 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 3 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) 0:80 imageStore ( temp void) 0:80 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:80 c1: direct index for structure ( uniform int) 0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:80 Constant: 0:80 0 (const uint) 0:80 'storeTemp' ( temp 4-component vector of uint) 0:80 'storeTemp' ( temp 4-component vector of uint) 0:83 Sequence 0:83 move second child to first child ( temp 4-component vector of float) 0:83 'val1' ( temp 4-component vector of float) 0:83 Sequence 0:83 move second child to first child ( temp int) 0:83 'coordTemp' ( temp int) 0:83 c1: direct index for structure ( uniform int) 0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:83 Constant: 0:83 0 (const uint) 0:83 move second child to first child ( temp 4-component vector of float) 0:83 'storeTemp' ( temp 4-component vector of float) 0:83 imageLoad ( temp 4-component vector of float) 0:83 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 vector scale second child into first child ( temp 4-component vector of float) 0:83 'storeTemp' ( temp 4-component vector of float) 0:83 Constant: 0:83 2.000000 0:83 imageStore ( temp void) 0:83 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 'storeTemp' ( temp 4-component vector of float) 0:83 'storeTemp' ( temp 4-component vector of float) 0:84 Sequence 0:84 move second child to first child ( temp int) 0:84 'coordTemp' ( temp int) 0:84 c1: direct index for structure ( uniform int) 0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:84 Constant: 0:84 0 (const uint) 0:84 move second child to first child ( temp 4-component vector of float) 0:84 'storeTemp' ( temp 4-component vector of float) 0:84 imageLoad ( temp 4-component vector of float) 0:84 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 subtract second child into first child ( temp 4-component vector of float) 0:84 'storeTemp' ( temp 4-component vector of float) 0:84 Constant: 0:84 3.000000 0:84 imageStore ( temp void) 0:84 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 'storeTemp' ( temp 4-component vector of float) 0:84 'storeTemp' ( temp 4-component vector of float) 0:85 Sequence 0:85 move second child to first child ( temp int) 0:85 'coordTemp' ( temp int) 0:85 c1: direct index for structure ( uniform int) 0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:85 Constant: 0:85 0 (const uint) 0:85 move second child to first child ( temp 4-component vector of float) 0:85 'storeTemp' ( temp 4-component vector of float) 0:85 imageLoad ( temp 4-component vector of float) 0:85 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 add second child into first child ( temp 4-component vector of float) 0:85 'storeTemp' ( temp 4-component vector of float) 0:85 Constant: 0:85 4.000000 0:85 imageStore ( temp void) 0:85 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 'storeTemp' ( temp 4-component vector of float) 0:85 'storeTemp' ( temp 4-component vector of float) 0:87 Sequence 0:87 move second child to first child ( temp int) 0:87 'coordTemp' ( temp int) 0:87 c1: direct index for structure ( uniform int) 0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:87 Constant: 0:87 0 (const uint) 0:87 move second child to first child ( temp 4-component vector of int) 0:87 'storeTemp' ( temp 4-component vector of int) 0:87 imageLoad ( temp 4-component vector of int) 0:87 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 divide second child into first child ( temp 4-component vector of int) 0:87 'storeTemp' ( temp 4-component vector of int) 0:87 Constant: 0:87 2 (const int) 0:87 imageStore ( temp void) 0:87 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 'storeTemp' ( temp 4-component vector of int) 0:87 'storeTemp' ( temp 4-component vector of int) 0:88 Sequence 0:88 move second child to first child ( temp int) 0:88 'coordTemp' ( temp int) 0:88 c1: direct index for structure ( uniform int) 0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:88 Constant: 0:88 0 (const uint) 0:88 move second child to first child ( temp 4-component vector of int) 0:88 'storeTemp' ( temp 4-component vector of int) 0:88 imageLoad ( temp 4-component vector of int) 0:88 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 mod second child into first child ( temp 4-component vector of int) 0:88 'storeTemp' ( temp 4-component vector of int) 0:88 Constant: 0:88 2 (const int) 0:88 imageStore ( temp void) 0:88 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 'storeTemp' ( temp 4-component vector of int) 0:88 'storeTemp' ( temp 4-component vector of int) 0:89 Sequence 0:89 move second child to first child ( temp int) 0:89 'coordTemp' ( temp int) 0:89 c1: direct index for structure ( uniform int) 0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:89 Constant: 0:89 0 (const uint) 0:89 move second child to first child ( temp 4-component vector of int) 0:89 'storeTemp' ( temp 4-component vector of int) 0:89 imageLoad ( temp 4-component vector of int) 0:89 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 and second child into first child ( temp 4-component vector of int) 0:89 'storeTemp' ( temp 4-component vector of int) 0:89 Constant: 0:89 65535 (const int) 0:89 imageStore ( temp void) 0:89 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 'storeTemp' ( temp 4-component vector of int) 0:89 'storeTemp' ( temp 4-component vector of int) 0:90 Sequence 0:90 move second child to first child ( temp int) 0:90 'coordTemp' ( temp int) 0:90 c1: direct index for structure ( uniform int) 0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:90 Constant: 0:90 0 (const uint) 0:90 move second child to first child ( temp 4-component vector of int) 0:90 'storeTemp' ( temp 4-component vector of int) 0:90 imageLoad ( temp 4-component vector of int) 0:90 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 or second child into first child ( temp 4-component vector of int) 0:90 'storeTemp' ( temp 4-component vector of int) 0:90 Constant: 0:90 61680 (const int) 0:90 imageStore ( temp void) 0:90 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 'storeTemp' ( temp 4-component vector of int) 0:90 'storeTemp' ( temp 4-component vector of int) 0:91 Sequence 0:91 move second child to first child ( temp int) 0:91 'coordTemp' ( temp int) 0:91 c1: direct index for structure ( uniform int) 0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:91 Constant: 0:91 0 (const uint) 0:91 move second child to first child ( temp 4-component vector of int) 0:91 'storeTemp' ( temp 4-component vector of int) 0:91 imageLoad ( temp 4-component vector of int) 0:91 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 left shift second child into first child ( temp 4-component vector of int) 0:91 'storeTemp' ( temp 4-component vector of int) 0:91 Constant: 0:91 2 (const int) 0:91 imageStore ( temp void) 0:91 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 'storeTemp' ( temp 4-component vector of int) 0:91 'storeTemp' ( temp 4-component vector of int) 0:92 Sequence 0:92 move second child to first child ( temp int) 0:92 'coordTemp' ( temp int) 0:92 c1: direct index for structure ( uniform int) 0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:92 Constant: 0:92 0 (const uint) 0:92 move second child to first child ( temp 4-component vector of int) 0:92 'storeTemp' ( temp 4-component vector of int) 0:92 imageLoad ( temp 4-component vector of int) 0:92 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 right shift second child into first child ( temp 4-component vector of int) 0:92 'storeTemp' ( temp 4-component vector of int) 0:92 Constant: 0:92 2 (const int) 0:92 imageStore ( temp void) 0:92 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 'storeTemp' ( temp 4-component vector of int) 0:92 'storeTemp' ( temp 4-component vector of int) 0:95 Sequence 0:95 move second child to first child ( temp 4-component vector of float) 0:95 'storeTemp' ( temp 4-component vector of float) 0:95 Function Call: SomeValue( ( temp 4-component vector of float) 0:95 imageStore ( temp void) 0:95 'g_tTex2df4' (layout( rgba32f) uniform image2D) 0:95 c2: direct index for structure ( uniform 2-component vector of int) 0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:95 Constant: 0:95 1 (const uint) 0:95 'storeTemp' ( temp 4-component vector of float) 0:95 'storeTemp' ( temp 4-component vector of float) 0:96 Sequence 0:96 imageStore ( temp void) 0:96 'g_tTex2df4' (layout( rgba32f) uniform image2D) 0:96 c2: direct index for structure ( uniform 2-component vector of int) 0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:96 Constant: 0:96 1 (const uint) 0:96 'lf4' ( temp 4-component vector of float) 0:96 'lf4' ( temp 4-component vector of float) 0:97 Sequence 0:97 move second child to first child ( temp 4-component vector of int) 0:97 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 5 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) 0:97 imageStore ( temp void) 0:97 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) 0:97 c2: direct index for structure ( uniform 2-component vector of int) 0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:97 Constant: 0:97 1 (const uint) 0:97 'storeTemp' ( temp 4-component vector of int) 0:97 'storeTemp' ( temp 4-component vector of int) 0:98 Sequence 0:98 move second child to first child ( temp 4-component vector of uint) 0:98 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 6 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) 0:98 imageStore ( temp void) 0:98 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) 0:98 c2: direct index for structure ( uniform 2-component vector of int) 0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:98 Constant: 0:98 1 (const uint) 0:98 'storeTemp' ( temp 4-component vector of uint) 0:98 'storeTemp' ( temp 4-component vector of uint) 0:101 Sequence 0:101 move second child to first child ( temp 4-component vector of float) 0:101 'storeTemp' ( temp 4-component vector of float) 0:101 Function Call: SomeValue( ( temp 4-component vector of float) 0:101 imageStore ( temp void) 0:101 'g_tTex3df4' (layout( rgba32f) uniform image3D) 0:101 c3: direct index for structure ( uniform 3-component vector of int) 0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:101 Constant: 0:101 2 (const uint) 0:101 'storeTemp' ( temp 4-component vector of float) 0:101 'storeTemp' ( temp 4-component vector of float) 0:102 Sequence 0:102 imageStore ( temp void) 0:102 'g_tTex3df4' (layout( rgba32f) uniform image3D) 0:102 c3: direct index for structure ( uniform 3-component vector of int) 0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:102 Constant: 0:102 2 (const uint) 0:102 'lf4' ( temp 4-component vector of float) 0:102 'lf4' ( temp 4-component vector of float) 0:103 Sequence 0:103 move second child to first child ( temp 4-component vector of int) 0:103 'storeTemp' ( temp 4-component vector of int) 0:? Constant: 0:? 8 (const int) 0:? 6 (const int) 0:? 7 (const int) 0:? 8 (const int) 0:103 imageStore ( temp void) 0:103 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) 0:103 c3: direct index for structure ( uniform 3-component vector of int) 0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:103 Constant: 0:103 2 (const uint) 0:103 'storeTemp' ( temp 4-component vector of int) 0:103 'storeTemp' ( temp 4-component vector of int) 0:104 Sequence 0:104 move second child to first child ( temp 4-component vector of uint) 0:104 'storeTemp' ( temp 4-component vector of uint) 0:? Constant: 0:? 9 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) 0:104 imageStore ( temp void) 0:104 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) 0:104 c3: direct index for structure ( uniform 3-component vector of int) 0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:104 Constant: 0:104 2 (const uint) 0:104 'storeTemp' ( temp 4-component vector of uint) 0:104 'storeTemp' ( temp 4-component vector of uint) 0:107 Function Call: Fn1(vf4; ( temp 4-component vector of float) 0:107 imageLoad ( temp 4-component vector of float) 0:107 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:107 c1: direct index for structure ( uniform int) 0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:107 Constant: 0:107 0 (const uint) 0:108 Function Call: Fn1(vi4; ( temp 4-component vector of int) 0:108 imageLoad ( temp 4-component vector of int) 0:108 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:108 c1: direct index for structure ( uniform int) 0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:108 Constant: 0:108 0 (const uint) 0:109 Function Call: Fn1(vu4; ( temp 4-component vector of uint) 0:109 imageLoad ( temp 4-component vector of uint) 0:109 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:109 c1: direct index for structure ( uniform int) 0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:109 Constant: 0:109 0 (const uint) 0:111 Comma ( temp void) 0:111 Function Call: Fn2(vf4; ( temp void) 0:111 'tempArg' ( temp 4-component vector of float) 0:111 Sequence 0:111 imageStore ( temp void) 0:111 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:111 c1: direct index for structure ( uniform int) 0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:111 Constant: 0:111 0 (const uint) 0:111 'tempArg' ( temp 4-component vector of float) 0:111 'tempArg' ( temp 4-component vector of float) 0:112 Comma ( temp void) 0:112 Function Call: Fn2(vi4; ( temp void) 0:112 'tempArg' ( temp 4-component vector of int) 0:112 Sequence 0:112 imageStore ( temp void) 0:112 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:112 c1: direct index for structure ( uniform int) 0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:112 Constant: 0:112 0 (const uint) 0:112 'tempArg' ( temp 4-component vector of int) 0:112 'tempArg' ( temp 4-component vector of int) 0:113 Comma ( temp void) 0:113 Function Call: Fn2(vu4; ( temp void) 0:113 'tempArg' ( temp 4-component vector of uint) 0:113 Sequence 0:113 imageStore ( temp void) 0:113 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:113 c1: direct index for structure ( uniform int) 0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:113 Constant: 0:113 0 (const uint) 0:113 'tempArg' ( temp 4-component vector of uint) 0:113 'tempArg' ( temp 4-component vector of uint) 0:117 Sequence 0:117 move second child to first child ( temp int) 0:117 'coordTemp' ( temp int) 0:117 c1: direct index for structure ( uniform int) 0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:117 Constant: 0:117 0 (const uint) 0:117 move second child to first child ( temp 4-component vector of float) 0:117 'storeTemp' ( temp 4-component vector of float) 0:117 imageLoad ( temp 4-component vector of float) 0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 Pre-Increment ( temp 4-component vector of float) 0:117 'storeTemp' ( temp 4-component vector of float) 0:117 imageStore ( temp void) 0:117 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 'storeTemp' ( temp 4-component vector of float) 0:117 'storeTemp' ( temp 4-component vector of float) 0:118 Sequence 0:118 move second child to first child ( temp int) 0:118 'coordTemp' ( temp int) 0:118 c1: direct index for structure ( uniform int) 0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:118 Constant: 0:118 0 (const uint) 0:118 move second child to first child ( temp 4-component vector of int) 0:118 'storeTemp' ( temp 4-component vector of int) 0:118 imageLoad ( temp 4-component vector of int) 0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 Pre-Increment ( temp 4-component vector of int) 0:118 'storeTemp' ( temp 4-component vector of int) 0:118 imageStore ( temp void) 0:118 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 'storeTemp' ( temp 4-component vector of int) 0:118 'storeTemp' ( temp 4-component vector of int) 0:119 Sequence 0:119 move second child to first child ( temp int) 0:119 'coordTemp' ( temp int) 0:119 c1: direct index for structure ( uniform int) 0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:119 Constant: 0:119 0 (const uint) 0:119 move second child to first child ( temp 4-component vector of uint) 0:119 'storeTemp' ( temp 4-component vector of uint) 0:119 imageLoad ( temp 4-component vector of uint) 0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 Pre-Increment ( temp 4-component vector of uint) 0:119 'storeTemp' ( temp 4-component vector of uint) 0:119 imageStore ( temp void) 0:119 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 'storeTemp' ( temp 4-component vector of uint) 0:119 'storeTemp' ( temp 4-component vector of uint) 0:121 Sequence 0:121 move second child to first child ( temp int) 0:121 'coordTemp' ( temp int) 0:121 c1: direct index for structure ( uniform int) 0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:121 Constant: 0:121 0 (const uint) 0:121 move second child to first child ( temp 4-component vector of float) 0:121 'storeTemp' ( temp 4-component vector of float) 0:121 imageLoad ( temp 4-component vector of float) 0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 Pre-Decrement ( temp 4-component vector of float) 0:121 'storeTemp' ( temp 4-component vector of float) 0:121 imageStore ( temp void) 0:121 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 'storeTemp' ( temp 4-component vector of float) 0:121 'storeTemp' ( temp 4-component vector of float) 0:122 Sequence 0:122 move second child to first child ( temp int) 0:122 'coordTemp' ( temp int) 0:122 c1: direct index for structure ( uniform int) 0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:122 Constant: 0:122 0 (const uint) 0:122 move second child to first child ( temp 4-component vector of int) 0:122 'storeTemp' ( temp 4-component vector of int) 0:122 imageLoad ( temp 4-component vector of int) 0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 Pre-Decrement ( temp 4-component vector of int) 0:122 'storeTemp' ( temp 4-component vector of int) 0:122 imageStore ( temp void) 0:122 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 'storeTemp' ( temp 4-component vector of int) 0:122 'storeTemp' ( temp 4-component vector of int) 0:123 Sequence 0:123 move second child to first child ( temp int) 0:123 'coordTemp' ( temp int) 0:123 c1: direct index for structure ( uniform int) 0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:123 Constant: 0:123 0 (const uint) 0:123 move second child to first child ( temp 4-component vector of uint) 0:123 'storeTemp' ( temp 4-component vector of uint) 0:123 imageLoad ( temp 4-component vector of uint) 0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 Pre-Decrement ( temp 4-component vector of uint) 0:123 'storeTemp' ( temp 4-component vector of uint) 0:123 imageStore ( temp void) 0:123 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 'storeTemp' ( temp 4-component vector of uint) 0:123 'storeTemp' ( temp 4-component vector of uint) 0:126 Sequence 0:126 move second child to first child ( temp int) 0:126 'coordTemp' ( temp int) 0:126 c1: direct index for structure ( uniform int) 0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:126 Constant: 0:126 0 (const uint) 0:126 move second child to first child ( temp 4-component vector of float) 0:126 'storeTempPre' ( temp 4-component vector of float) 0:126 imageLoad ( temp 4-component vector of float) 0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 move second child to first child ( temp 4-component vector of float) 0:126 'storeTempPost' ( temp 4-component vector of float) 0:126 'storeTempPre' ( temp 4-component vector of float) 0:126 Post-Increment ( temp 4-component vector of float) 0:126 'storeTempPost' ( temp 4-component vector of float) 0:126 imageStore ( temp void) 0:126 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 'storeTempPost' ( temp 4-component vector of float) 0:126 'storeTempPre' ( temp 4-component vector of float) 0:127 Sequence 0:127 move second child to first child ( temp int) 0:127 'coordTemp' ( temp int) 0:127 c1: direct index for structure ( uniform int) 0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:127 Constant: 0:127 0 (const uint) 0:127 move second child to first child ( temp 4-component vector of uint) 0:127 'storeTempPre' ( temp 4-component vector of uint) 0:127 imageLoad ( temp 4-component vector of uint) 0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 move second child to first child ( temp 4-component vector of uint) 0:127 'storeTempPost' ( temp 4-component vector of uint) 0:127 'storeTempPre' ( temp 4-component vector of uint) 0:127 Post-Decrement ( temp 4-component vector of uint) 0:127 'storeTempPost' ( temp 4-component vector of uint) 0:127 imageStore ( temp void) 0:127 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 'storeTempPost' ( temp 4-component vector of uint) 0:127 'storeTempPre' ( temp 4-component vector of uint) 0:128 Sequence 0:128 move second child to first child ( temp int) 0:128 'coordTemp' ( temp int) 0:128 c1: direct index for structure ( uniform int) 0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:128 Constant: 0:128 0 (const uint) 0:128 move second child to first child ( temp 4-component vector of int) 0:128 'storeTempPre' ( temp 4-component vector of int) 0:128 imageLoad ( temp 4-component vector of int) 0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 move second child to first child ( temp 4-component vector of int) 0:128 'storeTempPost' ( temp 4-component vector of int) 0:128 'storeTempPre' ( temp 4-component vector of int) 0:128 Post-Increment ( temp 4-component vector of int) 0:128 'storeTempPost' ( temp 4-component vector of int) 0:128 imageStore ( temp void) 0:128 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 'storeTempPost' ( temp 4-component vector of int) 0:128 'storeTempPre' ( temp 4-component vector of int) 0:130 Sequence 0:130 move second child to first child ( temp int) 0:130 'coordTemp' ( temp int) 0:130 c1: direct index for structure ( uniform int) 0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:130 Constant: 0:130 0 (const uint) 0:130 move second child to first child ( temp 4-component vector of float) 0:130 'storeTempPre' ( temp 4-component vector of float) 0:130 imageLoad ( temp 4-component vector of float) 0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 move second child to first child ( temp 4-component vector of float) 0:130 'storeTempPost' ( temp 4-component vector of float) 0:130 'storeTempPre' ( temp 4-component vector of float) 0:130 Post-Decrement ( temp 4-component vector of float) 0:130 'storeTempPost' ( temp 4-component vector of float) 0:130 imageStore ( temp void) 0:130 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 'storeTempPost' ( temp 4-component vector of float) 0:130 'storeTempPre' ( temp 4-component vector of float) 0:131 Sequence 0:131 move second child to first child ( temp int) 0:131 'coordTemp' ( temp int) 0:131 c1: direct index for structure ( uniform int) 0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:131 Constant: 0:131 0 (const uint) 0:131 move second child to first child ( temp 4-component vector of int) 0:131 'storeTempPre' ( temp 4-component vector of int) 0:131 imageLoad ( temp 4-component vector of int) 0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 move second child to first child ( temp 4-component vector of int) 0:131 'storeTempPost' ( temp 4-component vector of int) 0:131 'storeTempPre' ( temp 4-component vector of int) 0:131 Post-Increment ( temp 4-component vector of int) 0:131 'storeTempPost' ( temp 4-component vector of int) 0:131 imageStore ( temp void) 0:131 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 'storeTempPost' ( temp 4-component vector of int) 0:131 'storeTempPre' ( temp 4-component vector of int) 0:132 Sequence 0:132 move second child to first child ( temp int) 0:132 'coordTemp' ( temp int) 0:132 c1: direct index for structure ( uniform int) 0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:132 Constant: 0:132 0 (const uint) 0:132 move second child to first child ( temp 4-component vector of uint) 0:132 'storeTempPre' ( temp 4-component vector of uint) 0:132 imageLoad ( temp 4-component vector of uint) 0:132 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 move second child to first child ( temp 4-component vector of uint) 0:132 'storeTempPost' ( temp 4-component vector of uint) 0:132 'storeTempPre' ( temp 4-component vector of uint) 0:132 Post-Decrement ( temp 4-component vector of uint) 0:132 'storeTempPost' ( temp 4-component vector of uint) 0:132 imageStore ( temp void) 0:132 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 'storeTempPost' ( temp 4-component vector of uint) 0:132 'storeTempPre' ( temp 4-component vector of uint) 0:135 Sequence 0:135 move second child to first child ( temp 4-component vector of float) 0:135 'storeTemp' ( temp 4-component vector of float) 0:? imageLoad ( temp 4-component vector of float) 0:135 'g_tTex2df4' (layout( rgba32f) uniform image2D) 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:135 imageStore ( temp void) 0:135 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:135 Constant: 0:135 1 (const int) 0:135 'storeTemp' ( temp 4-component vector of float) 0:135 'storeTemp' ( temp 4-component vector of float) 0:137 move second child to first child ( temp 4-component vector of float) 0:137 Color: direct index for structure ( temp 4-component vector of float) 0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:137 Constant: 0:137 0 (const int) 0:137 Constant: 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:139 Branch: Return with expression 0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Definition: main( ( temp void) 0:53 Function Parameters: 0:? Sequence 0:53 Sequence 0:53 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:53 Color: direct index for structure ( temp 4-component vector of float) 0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Constant: 0:53 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0 rgba32f) uniform image1D) 0:? 'g_tTex1di4' (layout( rgba32i) uniform iimage1D) 0:? 'g_tTex1du4' (layout( rgba32ui) uniform uimage1D) 0:? 'g_tTex2df4' (layout( rgba32f) uniform image2D) 0:? 'g_tTex2di4' (layout( rgba32i) uniform iimage2D) 0:? 'g_tTex2du4' (layout( rgba32ui) uniform uimage2D) 0:? 'g_tTex3df4' (layout( rgba32f) uniform image3D) 0:? 'g_tTex3di4' (layout( rgba32i) uniform iimage3D) 0:? 'g_tTex3du4' (layout( rgba32ui) uniform uimage3D) 0:? 'g_tTex1df4a' (layout( rgba32f) uniform image1DArray) 0:? 'g_tTex1di4a' (layout( rgba32i) uniform iimage1DArray) 0:? 'g_tTex1du4a' (layout( rgba32ui) uniform uimage1DArray) 0:? 'g_tTex2df4a' (layout( rgba32f) uniform image2DArray) 0:? 'g_tTex2di4a' (layout( rgba32i) uniform iimage2DArray) 0:? 'g_tTex2du4a' (layout( rgba32ui) uniform uimage2DArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 4-component vector of float uf4, uniform 4-component vector of int ui4, uniform 4-component vector of uint uu4}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 75(g_tTex1df4) DescriptorSet 0 Decorate 75(g_tTex1df4) Binding 0 Decorate 89(g_tTex1di4) DescriptorSet 0 Decorate 89(g_tTex1di4) Binding 0 Decorate 97(g_tTex1du4) DescriptorSet 0 Decorate 97(g_tTex1du4) Binding 0 Decorate 105(g_tTex2df4) DescriptorSet 0 Decorate 105(g_tTex2df4) Binding 0 Decorate 115(g_tTex2di4) DescriptorSet 0 Decorate 115(g_tTex2di4) Binding 0 Decorate 123(g_tTex2du4) DescriptorSet 0 Decorate 123(g_tTex2du4) Binding 0 Decorate 131(g_tTex3df4) DescriptorSet 0 Decorate 131(g_tTex3df4) Binding 0 Decorate 141(g_tTex3di4) DescriptorSet 0 Decorate 141(g_tTex3di4) Binding 0 Decorate 149(g_tTex3du4) DescriptorSet 0 Decorate 149(g_tTex3du4) Binding 0 Decorate 583(@entryPointOutput.Color) Location 0 Decorate 588(g_sSamp) DescriptorSet 0 Decorate 588(g_sSamp) Binding 0 Decorate 591(g_tTex1df4a) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.rw.register.frag.out000066400000000000000000000173431360464450000236100ustar00rootroot00000000000000hlsl.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): 80008 // Id's are bound by 42 Capability Shader Capability Image1D Capability ImageBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 39 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" Name 10 "@main(" Name 13 "r00" Name 16 "g_tTex1df1" Name 23 "r01" Name 26 "g_tBuf1du1" Name 30 "psout" Name 39 "@entryPointOutput.Color" Decorate 16(g_tTex1df1) DescriptorSet 0 Decorate 16(g_tTex1df1) Binding 2 Decorate 26(g_tBuf1du1) DescriptorSet 0 Decorate 26(g_tBuf1du1) Binding 3 Decorate 39(@entryPointOutput.Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 6(float) 14: TypeImage 6(float) 1D nonsampled format:R32f 15: TypePointer UniformConstant 14 16(g_tTex1df1): 15(ptr) Variable UniformConstant 18: TypeInt 32 1 19: 18(int) Constant 0 21: TypeInt 32 0 22: TypePointer Function 21(int) 24: TypeImage 21(int) Buffer nonsampled format:R32ui 25: TypePointer UniformConstant 24 26(g_tBuf1du1): 25(ptr) Variable UniformConstant 29: TypePointer Function 8(PS_OUTPUT) 31: 6(float) Constant 1065353216 32: 7(fvec4) ConstantComposite 31 31 31 31 33: TypePointer Function 7(fvec4) 38: TypePointer Output 7(fvec4) 39(@entryPointOutput.Color): 38(ptr) Variable Output 4(main): 2 Function None 3 5: Label 40:8(PS_OUTPUT) FunctionCall 10(@main() 41: 7(fvec4) CompositeExtract 40 0 Store 39(@entryPointOutput.Color) 41 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function 23(r01): 22(ptr) Variable Function 30(psout): 29(ptr) Variable Function 17: 14 Load 16(g_tTex1df1) 20: 6(float) ImageRead 17 19 Store 13(r00) 20 27: 24 Load 26(g_tBuf1du1) 28: 21(int) ImageRead 27 19 Store 23(r01) 28 34: 33(ptr) AccessChain 30(psout) 19 Store 34 32 35:8(PS_OUTPUT) Load 30(psout) ReturnValue 35 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.rw.scalar.bracket.frag.out000066400000000000000000004543131360464450000246450ustar00rootroot00000000000000hlsl.rw.scalar.bracket.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:42 Function Definition: Fn1(i1; ( temp int) 0:42 Function Parameters: 0:42 'x' ( in int) 0:? Sequence 0:42 Branch: Return with expression 0:42 'x' ( in int) 0:43 Function Definition: Fn1(u1; ( temp uint) 0:43 Function Parameters: 0:43 'x' ( in uint) 0:? Sequence 0:43 Branch: Return with expression 0:43 'x' ( in uint) 0:44 Function Definition: Fn1(f1; ( temp float) 0:44 Function Parameters: 0:44 'x' ( in float) 0:? Sequence 0:44 Branch: Return with expression 0:44 'x' ( in float) 0:46 Function Definition: Fn2(i1; ( temp void) 0:46 Function Parameters: 0:46 'x' ( out int) 0:? Sequence 0:46 move second child to first child ( temp int) 0:46 'x' ( out int) 0:46 Constant: 0:46 0 (const int) 0:47 Function Definition: Fn2(u1; ( temp void) 0:47 Function Parameters: 0:47 'x' ( out uint) 0:? Sequence 0:47 move second child to first child ( temp uint) 0:47 'x' ( out uint) 0:47 Constant: 0:47 0 (const uint) 0:48 Function Definition: Fn2(f1; ( temp void) 0:48 Function Parameters: 0:48 'x' ( out float) 0:? Sequence 0:48 move second child to first child ( temp float) 0:48 'x' ( out float) 0:48 Constant: 0:48 0.000000 0:50 Function Definition: SomeValue( ( temp float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression 0:50 Convert int to float ( temp float) 0:50 c1: direct index for structure ( uniform int) 0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:50 Constant: 0:50 0 (const uint) 0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence 0:57 imageLoad ( temp float) 0:57 'g_tTex1df1' (layout( r32f) uniform image1D) 0:57 c1: direct index for structure ( uniform int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:57 Constant: 0:57 0 (const uint) 0:59 Sequence 0:59 move second child to first child ( temp float) 0:59 'r00' ( temp float) 0:59 imageLoad ( temp float) 0:59 'g_tTex1df1' (layout( r32f) uniform image1D) 0:59 c1: direct index for structure ( uniform int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:59 Constant: 0:59 0 (const uint) 0:60 Sequence 0:60 move second child to first child ( temp int) 0:60 'r01' ( temp int) 0:60 imageLoad ( temp int) 0:60 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:60 c1: direct index for structure ( uniform int) 0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:60 Constant: 0:60 0 (const uint) 0:61 Sequence 0:61 move second child to first child ( temp uint) 0:61 'r02' ( temp uint) 0:61 imageLoad ( temp uint) 0:61 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:61 c1: direct index for structure ( uniform int) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:61 Constant: 0:61 0 (const uint) 0:64 Sequence 0:64 move second child to first child ( temp float) 0:64 'r10' ( temp float) 0:64 imageLoad ( temp float) 0:64 'g_tTex2df1' (layout( r32f) uniform image2D) 0:64 c2: direct index for structure ( uniform 2-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:64 Constant: 0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child ( temp int) 0:65 'r11' ( temp int) 0:65 imageLoad ( temp int) 0:65 'g_tTex2di1' (layout( r32i) uniform iimage2D) 0:65 c2: direct index for structure ( uniform 2-component vector of int) 0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:65 Constant: 0:65 1 (const uint) 0:66 Sequence 0:66 move second child to first child ( temp uint) 0:66 'r12' ( temp uint) 0:66 imageLoad ( temp uint) 0:66 'g_tTex2du1' (layout( r32ui) uniform uimage2D) 0:66 c2: direct index for structure ( uniform 2-component vector of int) 0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:66 Constant: 0:66 1 (const uint) 0:69 Sequence 0:69 move second child to first child ( temp float) 0:69 'r20' ( temp float) 0:69 imageLoad ( temp float) 0:69 'g_tTex3df1' (layout( r32f) uniform image3D) 0:69 c3: direct index for structure ( uniform 3-component vector of int) 0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:69 Constant: 0:69 2 (const uint) 0:70 Sequence 0:70 move second child to first child ( temp int) 0:70 'r21' ( temp int) 0:70 imageLoad ( temp int) 0:70 'g_tTex3di1' (layout( r32i) uniform iimage3D) 0:70 c3: direct index for structure ( uniform 3-component vector of int) 0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:70 Constant: 0:70 2 (const uint) 0:71 Sequence 0:71 move second child to first child ( temp uint) 0:71 'r22' ( temp uint) 0:71 imageLoad ( temp uint) 0:71 'g_tTex3du1' (layout( r32ui) uniform uimage3D) 0:71 c3: direct index for structure ( uniform 3-component vector of int) 0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:71 Constant: 0:71 2 (const uint) 0:73 Sequence 0:73 move second child to first child ( temp float) 0:73 'lf1' ( temp float) 0:73 uf1: direct index for structure ( uniform float) 0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:73 Constant: 0:73 8 (const uint) 0:77 Sequence 0:77 move second child to first child ( temp float) 0:77 'storeTemp' ( temp float) 0:77 Function Call: SomeValue( ( temp float) 0:77 imageStore ( temp void) 0:77 'g_tTex1df1' (layout( r32f) uniform image1D) 0:77 c1: direct index for structure ( uniform int) 0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:77 Constant: 0:77 0 (const uint) 0:77 'storeTemp' ( temp float) 0:77 'storeTemp' ( temp float) 0:78 Sequence 0:78 imageStore ( temp void) 0:78 'g_tTex1df1' (layout( r32f) uniform image1D) 0:78 c1: direct index for structure ( uniform int) 0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:78 Constant: 0:78 0 (const uint) 0:78 'lf1' ( temp float) 0:78 'lf1' ( temp float) 0:79 Sequence 0:79 move second child to first child ( temp int) 0:79 'storeTemp' ( temp int) 0:79 Constant: 0:79 2 (const int) 0:79 imageStore ( temp void) 0:79 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:79 c1: direct index for structure ( uniform int) 0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:79 Constant: 0:79 0 (const uint) 0:79 'storeTemp' ( temp int) 0:79 'storeTemp' ( temp int) 0:80 Sequence 0:80 move second child to first child ( temp uint) 0:80 'storeTemp' ( temp uint) 0:80 Constant: 0:80 3 (const uint) 0:80 imageStore ( temp void) 0:80 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:80 c1: direct index for structure ( uniform int) 0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:80 Constant: 0:80 0 (const uint) 0:80 'storeTemp' ( temp uint) 0:80 'storeTemp' ( temp uint) 0:83 Sequence 0:83 move second child to first child ( temp float) 0:83 'val1' ( temp float) 0:83 Sequence 0:83 move second child to first child ( temp int) 0:83 'coordTemp' ( temp int) 0:83 c1: direct index for structure ( uniform int) 0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:83 Constant: 0:83 0 (const uint) 0:83 move second child to first child ( temp float) 0:83 'storeTemp' ( temp float) 0:83 imageLoad ( temp float) 0:83 'g_tTex1df1' (layout( r32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 multiply second child into first child ( temp float) 0:83 'storeTemp' ( temp float) 0:83 Constant: 0:83 2.000000 0:83 imageStore ( temp void) 0:83 'g_tTex1df1' (layout( r32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 'storeTemp' ( temp float) 0:83 'storeTemp' ( temp float) 0:84 Sequence 0:84 move second child to first child ( temp int) 0:84 'coordTemp' ( temp int) 0:84 c1: direct index for structure ( uniform int) 0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:84 Constant: 0:84 0 (const uint) 0:84 move second child to first child ( temp float) 0:84 'storeTemp' ( temp float) 0:84 imageLoad ( temp float) 0:84 'g_tTex1df1' (layout( r32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 subtract second child into first child ( temp float) 0:84 'storeTemp' ( temp float) 0:84 Constant: 0:84 3.000000 0:84 imageStore ( temp void) 0:84 'g_tTex1df1' (layout( r32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 'storeTemp' ( temp float) 0:84 'storeTemp' ( temp float) 0:85 Sequence 0:85 move second child to first child ( temp int) 0:85 'coordTemp' ( temp int) 0:85 c1: direct index for structure ( uniform int) 0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:85 Constant: 0:85 0 (const uint) 0:85 move second child to first child ( temp float) 0:85 'storeTemp' ( temp float) 0:85 imageLoad ( temp float) 0:85 'g_tTex1df1' (layout( r32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 add second child into first child ( temp float) 0:85 'storeTemp' ( temp float) 0:85 Constant: 0:85 4.000000 0:85 imageStore ( temp void) 0:85 'g_tTex1df1' (layout( r32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 'storeTemp' ( temp float) 0:85 'storeTemp' ( temp float) 0:87 Sequence 0:87 move second child to first child ( temp int) 0:87 'coordTemp' ( temp int) 0:87 c1: direct index for structure ( uniform int) 0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:87 Constant: 0:87 0 (const uint) 0:87 move second child to first child ( temp int) 0:87 'storeTemp' ( temp int) 0:87 imageLoad ( temp int) 0:87 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 divide second child into first child ( temp int) 0:87 'storeTemp' ( temp int) 0:87 Constant: 0:87 2 (const int) 0:87 imageStore ( temp void) 0:87 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 'storeTemp' ( temp int) 0:87 'storeTemp' ( temp int) 0:88 Sequence 0:88 move second child to first child ( temp int) 0:88 'coordTemp' ( temp int) 0:88 c1: direct index for structure ( uniform int) 0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:88 Constant: 0:88 0 (const uint) 0:88 move second child to first child ( temp int) 0:88 'storeTemp' ( temp int) 0:88 imageLoad ( temp int) 0:88 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 mod second child into first child ( temp int) 0:88 'storeTemp' ( temp int) 0:88 Constant: 0:88 2 (const int) 0:88 imageStore ( temp void) 0:88 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 'storeTemp' ( temp int) 0:88 'storeTemp' ( temp int) 0:89 Sequence 0:89 move second child to first child ( temp int) 0:89 'coordTemp' ( temp int) 0:89 c1: direct index for structure ( uniform int) 0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:89 Constant: 0:89 0 (const uint) 0:89 move second child to first child ( temp int) 0:89 'storeTemp' ( temp int) 0:89 imageLoad ( temp int) 0:89 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 and second child into first child ( temp int) 0:89 'storeTemp' ( temp int) 0:89 Constant: 0:89 65535 (const int) 0:89 imageStore ( temp void) 0:89 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 'storeTemp' ( temp int) 0:89 'storeTemp' ( temp int) 0:90 Sequence 0:90 move second child to first child ( temp int) 0:90 'coordTemp' ( temp int) 0:90 c1: direct index for structure ( uniform int) 0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:90 Constant: 0:90 0 (const uint) 0:90 move second child to first child ( temp int) 0:90 'storeTemp' ( temp int) 0:90 imageLoad ( temp int) 0:90 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 or second child into first child ( temp int) 0:90 'storeTemp' ( temp int) 0:90 Constant: 0:90 61680 (const int) 0:90 imageStore ( temp void) 0:90 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 'storeTemp' ( temp int) 0:90 'storeTemp' ( temp int) 0:91 Sequence 0:91 move second child to first child ( temp int) 0:91 'coordTemp' ( temp int) 0:91 c1: direct index for structure ( uniform int) 0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:91 Constant: 0:91 0 (const uint) 0:91 move second child to first child ( temp int) 0:91 'storeTemp' ( temp int) 0:91 imageLoad ( temp int) 0:91 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 left shift second child into first child ( temp int) 0:91 'storeTemp' ( temp int) 0:91 Constant: 0:91 2 (const int) 0:91 imageStore ( temp void) 0:91 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 'storeTemp' ( temp int) 0:91 'storeTemp' ( temp int) 0:92 Sequence 0:92 move second child to first child ( temp int) 0:92 'coordTemp' ( temp int) 0:92 c1: direct index for structure ( uniform int) 0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:92 Constant: 0:92 0 (const uint) 0:92 move second child to first child ( temp int) 0:92 'storeTemp' ( temp int) 0:92 imageLoad ( temp int) 0:92 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 right shift second child into first child ( temp int) 0:92 'storeTemp' ( temp int) 0:92 Constant: 0:92 2 (const int) 0:92 imageStore ( temp void) 0:92 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 'storeTemp' ( temp int) 0:92 'storeTemp' ( temp int) 0:95 Sequence 0:95 move second child to first child ( temp float) 0:95 'storeTemp' ( temp float) 0:95 Function Call: SomeValue( ( temp float) 0:95 imageStore ( temp void) 0:95 'g_tTex2df1' (layout( r32f) uniform image2D) 0:95 c2: direct index for structure ( uniform 2-component vector of int) 0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:95 Constant: 0:95 1 (const uint) 0:95 'storeTemp' ( temp float) 0:95 'storeTemp' ( temp float) 0:96 Sequence 0:96 imageStore ( temp void) 0:96 'g_tTex2df1' (layout( r32f) uniform image2D) 0:96 c2: direct index for structure ( uniform 2-component vector of int) 0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:96 Constant: 0:96 1 (const uint) 0:96 'lf1' ( temp float) 0:96 'lf1' ( temp float) 0:97 Sequence 0:97 move second child to first child ( temp int) 0:97 'storeTemp' ( temp int) 0:97 Constant: 0:97 5 (const int) 0:97 imageStore ( temp void) 0:97 'g_tTex2di1' (layout( r32i) uniform iimage2D) 0:97 c2: direct index for structure ( uniform 2-component vector of int) 0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:97 Constant: 0:97 1 (const uint) 0:97 'storeTemp' ( temp int) 0:97 'storeTemp' ( temp int) 0:98 Sequence 0:98 move second child to first child ( temp uint) 0:98 'storeTemp' ( temp uint) 0:98 Constant: 0:98 6 (const uint) 0:98 imageStore ( temp void) 0:98 'g_tTex2du1' (layout( r32ui) uniform uimage2D) 0:98 c2: direct index for structure ( uniform 2-component vector of int) 0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:98 Constant: 0:98 1 (const uint) 0:98 'storeTemp' ( temp uint) 0:98 'storeTemp' ( temp uint) 0:101 Sequence 0:101 move second child to first child ( temp float) 0:101 'storeTemp' ( temp float) 0:101 Function Call: SomeValue( ( temp float) 0:101 imageStore ( temp void) 0:101 'g_tTex3df1' (layout( r32f) uniform image3D) 0:101 c3: direct index for structure ( uniform 3-component vector of int) 0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:101 Constant: 0:101 2 (const uint) 0:101 'storeTemp' ( temp float) 0:101 'storeTemp' ( temp float) 0:102 Sequence 0:102 imageStore ( temp void) 0:102 'g_tTex3df1' (layout( r32f) uniform image3D) 0:102 c3: direct index for structure ( uniform 3-component vector of int) 0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:102 Constant: 0:102 2 (const uint) 0:102 'lf1' ( temp float) 0:102 'lf1' ( temp float) 0:103 Sequence 0:103 move second child to first child ( temp int) 0:103 'storeTemp' ( temp int) 0:103 Constant: 0:103 8 (const int) 0:103 imageStore ( temp void) 0:103 'g_tTex3di1' (layout( r32i) uniform iimage3D) 0:103 c3: direct index for structure ( uniform 3-component vector of int) 0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:103 Constant: 0:103 2 (const uint) 0:103 'storeTemp' ( temp int) 0:103 'storeTemp' ( temp int) 0:104 Sequence 0:104 move second child to first child ( temp uint) 0:104 'storeTemp' ( temp uint) 0:104 Constant: 0:104 9 (const uint) 0:104 imageStore ( temp void) 0:104 'g_tTex3du1' (layout( r32ui) uniform uimage3D) 0:104 c3: direct index for structure ( uniform 3-component vector of int) 0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:104 Constant: 0:104 2 (const uint) 0:104 'storeTemp' ( temp uint) 0:104 'storeTemp' ( temp uint) 0:107 Function Call: Fn1(f1; ( temp float) 0:107 imageLoad ( temp float) 0:107 'g_tTex1df1' (layout( r32f) uniform image1D) 0:107 c1: direct index for structure ( uniform int) 0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:107 Constant: 0:107 0 (const uint) 0:108 Function Call: Fn1(i1; ( temp int) 0:108 imageLoad ( temp int) 0:108 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:108 c1: direct index for structure ( uniform int) 0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:108 Constant: 0:108 0 (const uint) 0:109 Function Call: Fn1(u1; ( temp uint) 0:109 imageLoad ( temp uint) 0:109 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:109 c1: direct index for structure ( uniform int) 0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:109 Constant: 0:109 0 (const uint) 0:111 Comma ( temp void) 0:111 Function Call: Fn2(f1; ( temp void) 0:111 'tempArg' ( temp float) 0:111 Sequence 0:111 imageStore ( temp void) 0:111 'g_tTex1df1' (layout( r32f) uniform image1D) 0:111 c1: direct index for structure ( uniform int) 0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:111 Constant: 0:111 0 (const uint) 0:111 'tempArg' ( temp float) 0:111 'tempArg' ( temp float) 0:112 Comma ( temp void) 0:112 Function Call: Fn2(i1; ( temp void) 0:112 'tempArg' ( temp int) 0:112 Sequence 0:112 imageStore ( temp void) 0:112 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:112 c1: direct index for structure ( uniform int) 0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:112 Constant: 0:112 0 (const uint) 0:112 'tempArg' ( temp int) 0:112 'tempArg' ( temp int) 0:113 Comma ( temp void) 0:113 Function Call: Fn2(u1; ( temp void) 0:113 'tempArg' ( temp uint) 0:113 Sequence 0:113 imageStore ( temp void) 0:113 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:113 c1: direct index for structure ( uniform int) 0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:113 Constant: 0:113 0 (const uint) 0:113 'tempArg' ( temp uint) 0:113 'tempArg' ( temp uint) 0:117 Sequence 0:117 move second child to first child ( temp int) 0:117 'coordTemp' ( temp int) 0:117 c1: direct index for structure ( uniform int) 0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:117 Constant: 0:117 0 (const uint) 0:117 move second child to first child ( temp float) 0:117 'storeTemp' ( temp float) 0:117 imageLoad ( temp float) 0:117 'g_tTex1df1' (layout( r32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 Pre-Increment ( temp float) 0:117 'storeTemp' ( temp float) 0:117 imageStore ( temp void) 0:117 'g_tTex1df1' (layout( r32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 'storeTemp' ( temp float) 0:117 'storeTemp' ( temp float) 0:118 Sequence 0:118 move second child to first child ( temp int) 0:118 'coordTemp' ( temp int) 0:118 c1: direct index for structure ( uniform int) 0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:118 Constant: 0:118 0 (const uint) 0:118 move second child to first child ( temp int) 0:118 'storeTemp' ( temp int) 0:118 imageLoad ( temp int) 0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 Pre-Increment ( temp int) 0:118 'storeTemp' ( temp int) 0:118 imageStore ( temp void) 0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 'storeTemp' ( temp int) 0:118 'storeTemp' ( temp int) 0:119 Sequence 0:119 move second child to first child ( temp int) 0:119 'coordTemp' ( temp int) 0:119 c1: direct index for structure ( uniform int) 0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:119 Constant: 0:119 0 (const uint) 0:119 move second child to first child ( temp uint) 0:119 'storeTemp' ( temp uint) 0:119 imageLoad ( temp uint) 0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 Pre-Increment ( temp uint) 0:119 'storeTemp' ( temp uint) 0:119 imageStore ( temp void) 0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 'storeTemp' ( temp uint) 0:119 'storeTemp' ( temp uint) 0:121 Sequence 0:121 move second child to first child ( temp int) 0:121 'coordTemp' ( temp int) 0:121 c1: direct index for structure ( uniform int) 0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:121 Constant: 0:121 0 (const uint) 0:121 move second child to first child ( temp float) 0:121 'storeTemp' ( temp float) 0:121 imageLoad ( temp float) 0:121 'g_tTex1df1' (layout( r32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 Pre-Decrement ( temp float) 0:121 'storeTemp' ( temp float) 0:121 imageStore ( temp void) 0:121 'g_tTex1df1' (layout( r32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 'storeTemp' ( temp float) 0:121 'storeTemp' ( temp float) 0:122 Sequence 0:122 move second child to first child ( temp int) 0:122 'coordTemp' ( temp int) 0:122 c1: direct index for structure ( uniform int) 0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:122 Constant: 0:122 0 (const uint) 0:122 move second child to first child ( temp int) 0:122 'storeTemp' ( temp int) 0:122 imageLoad ( temp int) 0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 Pre-Decrement ( temp int) 0:122 'storeTemp' ( temp int) 0:122 imageStore ( temp void) 0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 'storeTemp' ( temp int) 0:122 'storeTemp' ( temp int) 0:123 Sequence 0:123 move second child to first child ( temp int) 0:123 'coordTemp' ( temp int) 0:123 c1: direct index for structure ( uniform int) 0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:123 Constant: 0:123 0 (const uint) 0:123 move second child to first child ( temp uint) 0:123 'storeTemp' ( temp uint) 0:123 imageLoad ( temp uint) 0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 Pre-Decrement ( temp uint) 0:123 'storeTemp' ( temp uint) 0:123 imageStore ( temp void) 0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 'storeTemp' ( temp uint) 0:123 'storeTemp' ( temp uint) 0:126 Sequence 0:126 move second child to first child ( temp int) 0:126 'coordTemp' ( temp int) 0:126 c1: direct index for structure ( uniform int) 0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:126 Constant: 0:126 0 (const uint) 0:126 move second child to first child ( temp float) 0:126 'storeTempPre' ( temp float) 0:126 imageLoad ( temp float) 0:126 'g_tTex1df1' (layout( r32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 move second child to first child ( temp float) 0:126 'storeTempPost' ( temp float) 0:126 'storeTempPre' ( temp float) 0:126 Post-Increment ( temp float) 0:126 'storeTempPost' ( temp float) 0:126 imageStore ( temp void) 0:126 'g_tTex1df1' (layout( r32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 'storeTempPost' ( temp float) 0:126 'storeTempPre' ( temp float) 0:127 Sequence 0:127 move second child to first child ( temp int) 0:127 'coordTemp' ( temp int) 0:127 c1: direct index for structure ( uniform int) 0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:127 Constant: 0:127 0 (const uint) 0:127 move second child to first child ( temp uint) 0:127 'storeTempPre' ( temp uint) 0:127 imageLoad ( temp uint) 0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 move second child to first child ( temp uint) 0:127 'storeTempPost' ( temp uint) 0:127 'storeTempPre' ( temp uint) 0:127 Post-Decrement ( temp uint) 0:127 'storeTempPost' ( temp uint) 0:127 imageStore ( temp void) 0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 'storeTempPost' ( temp uint) 0:127 'storeTempPre' ( temp uint) 0:128 Sequence 0:128 move second child to first child ( temp int) 0:128 'coordTemp' ( temp int) 0:128 c1: direct index for structure ( uniform int) 0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:128 Constant: 0:128 0 (const uint) 0:128 move second child to first child ( temp int) 0:128 'storeTempPre' ( temp int) 0:128 imageLoad ( temp int) 0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 move second child to first child ( temp int) 0:128 'storeTempPost' ( temp int) 0:128 'storeTempPre' ( temp int) 0:128 Post-Increment ( temp int) 0:128 'storeTempPost' ( temp int) 0:128 imageStore ( temp void) 0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 'storeTempPost' ( temp int) 0:128 'storeTempPre' ( temp int) 0:130 Sequence 0:130 move second child to first child ( temp int) 0:130 'coordTemp' ( temp int) 0:130 c1: direct index for structure ( uniform int) 0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:130 Constant: 0:130 0 (const uint) 0:130 move second child to first child ( temp float) 0:130 'storeTempPre' ( temp float) 0:130 imageLoad ( temp float) 0:130 'g_tTex1df1' (layout( r32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 move second child to first child ( temp float) 0:130 'storeTempPost' ( temp float) 0:130 'storeTempPre' ( temp float) 0:130 Post-Decrement ( temp float) 0:130 'storeTempPost' ( temp float) 0:130 imageStore ( temp void) 0:130 'g_tTex1df1' (layout( r32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 'storeTempPost' ( temp float) 0:130 'storeTempPre' ( temp float) 0:131 Sequence 0:131 move second child to first child ( temp int) 0:131 'coordTemp' ( temp int) 0:131 c1: direct index for structure ( uniform int) 0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:131 Constant: 0:131 0 (const uint) 0:131 move second child to first child ( temp int) 0:131 'storeTempPre' ( temp int) 0:131 imageLoad ( temp int) 0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 move second child to first child ( temp int) 0:131 'storeTempPost' ( temp int) 0:131 'storeTempPre' ( temp int) 0:131 Post-Increment ( temp int) 0:131 'storeTempPost' ( temp int) 0:131 imageStore ( temp void) 0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 'storeTempPost' ( temp int) 0:131 'storeTempPre' ( temp int) 0:132 Sequence 0:132 move second child to first child ( temp int) 0:132 'coordTemp' ( temp int) 0:132 c1: direct index for structure ( uniform int) 0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:132 Constant: 0:132 0 (const uint) 0:132 move second child to first child ( temp uint) 0:132 'storeTempPre' ( temp uint) 0:132 imageLoad ( temp uint) 0:132 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 move second child to first child ( temp uint) 0:132 'storeTempPost' ( temp uint) 0:132 'storeTempPre' ( temp uint) 0:132 Post-Decrement ( temp uint) 0:132 'storeTempPost' ( temp uint) 0:132 imageStore ( temp void) 0:132 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 'storeTempPost' ( temp uint) 0:132 'storeTempPre' ( temp uint) 0:135 Sequence 0:135 move second child to first child ( temp float) 0:135 'storeTemp' ( temp float) 0:? imageLoad ( temp float) 0:135 'g_tTex2df1' (layout( r32f) uniform image2D) 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:135 imageStore ( temp void) 0:135 'g_tTex1df1' (layout( r32f) uniform image1D) 0:135 Constant: 0:135 1 (const int) 0:135 'storeTemp' ( temp float) 0:135 'storeTemp' ( temp float) 0:137 move second child to first child ( temp 4-component vector of float) 0:137 Color: direct index for structure ( temp 4-component vector of float) 0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:137 Constant: 0:137 0 (const int) 0:137 Constant: 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:139 Branch: Return with expression 0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Definition: main( ( temp void) 0:53 Function Parameters: 0:? Sequence 0:53 Sequence 0:53 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:53 Color: direct index for structure ( temp 4-component vector of float) 0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Constant: 0:53 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df1' (layout( r32f) uniform image1D) 0:? 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:? 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:? 'g_tTex2df1' (layout( r32f) uniform image2D) 0:? 'g_tTex2di1' (layout( r32i) uniform iimage2D) 0:? 'g_tTex2du1' (layout( r32ui) uniform uimage2D) 0:? 'g_tTex3df1' (layout( r32f) uniform image3D) 0:? 'g_tTex3di1' (layout( r32i) uniform iimage3D) 0:? 'g_tTex3du1' (layout( r32ui) uniform uimage3D) 0:? 'g_tTex1df1a' (layout( r32f) uniform image1DArray) 0:? 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) 0:? 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) 0:? 'g_tTex2df1a' (layout( r32f) uniform image2DArray) 0:? 'g_tTex2di1a' (layout( r32i) uniform iimage2DArray) 0:? 'g_tTex2du1a' (layout( r32ui) uniform uimage2DArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:42 Function Definition: Fn1(i1; ( temp int) 0:42 Function Parameters: 0:42 'x' ( in int) 0:? Sequence 0:42 Branch: Return with expression 0:42 'x' ( in int) 0:43 Function Definition: Fn1(u1; ( temp uint) 0:43 Function Parameters: 0:43 'x' ( in uint) 0:? Sequence 0:43 Branch: Return with expression 0:43 'x' ( in uint) 0:44 Function Definition: Fn1(f1; ( temp float) 0:44 Function Parameters: 0:44 'x' ( in float) 0:? Sequence 0:44 Branch: Return with expression 0:44 'x' ( in float) 0:46 Function Definition: Fn2(i1; ( temp void) 0:46 Function Parameters: 0:46 'x' ( out int) 0:? Sequence 0:46 move second child to first child ( temp int) 0:46 'x' ( out int) 0:46 Constant: 0:46 0 (const int) 0:47 Function Definition: Fn2(u1; ( temp void) 0:47 Function Parameters: 0:47 'x' ( out uint) 0:? Sequence 0:47 move second child to first child ( temp uint) 0:47 'x' ( out uint) 0:47 Constant: 0:47 0 (const uint) 0:48 Function Definition: Fn2(f1; ( temp void) 0:48 Function Parameters: 0:48 'x' ( out float) 0:? Sequence 0:48 move second child to first child ( temp float) 0:48 'x' ( out float) 0:48 Constant: 0:48 0.000000 0:50 Function Definition: SomeValue( ( temp float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression 0:50 Convert int to float ( temp float) 0:50 c1: direct index for structure ( uniform int) 0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:50 Constant: 0:50 0 (const uint) 0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence 0:57 imageLoad ( temp float) 0:57 'g_tTex1df1' (layout( r32f) uniform image1D) 0:57 c1: direct index for structure ( uniform int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:57 Constant: 0:57 0 (const uint) 0:59 Sequence 0:59 move second child to first child ( temp float) 0:59 'r00' ( temp float) 0:59 imageLoad ( temp float) 0:59 'g_tTex1df1' (layout( r32f) uniform image1D) 0:59 c1: direct index for structure ( uniform int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:59 Constant: 0:59 0 (const uint) 0:60 Sequence 0:60 move second child to first child ( temp int) 0:60 'r01' ( temp int) 0:60 imageLoad ( temp int) 0:60 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:60 c1: direct index for structure ( uniform int) 0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:60 Constant: 0:60 0 (const uint) 0:61 Sequence 0:61 move second child to first child ( temp uint) 0:61 'r02' ( temp uint) 0:61 imageLoad ( temp uint) 0:61 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:61 c1: direct index for structure ( uniform int) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:61 Constant: 0:61 0 (const uint) 0:64 Sequence 0:64 move second child to first child ( temp float) 0:64 'r10' ( temp float) 0:64 imageLoad ( temp float) 0:64 'g_tTex2df1' (layout( r32f) uniform image2D) 0:64 c2: direct index for structure ( uniform 2-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:64 Constant: 0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child ( temp int) 0:65 'r11' ( temp int) 0:65 imageLoad ( temp int) 0:65 'g_tTex2di1' (layout( r32i) uniform iimage2D) 0:65 c2: direct index for structure ( uniform 2-component vector of int) 0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:65 Constant: 0:65 1 (const uint) 0:66 Sequence 0:66 move second child to first child ( temp uint) 0:66 'r12' ( temp uint) 0:66 imageLoad ( temp uint) 0:66 'g_tTex2du1' (layout( r32ui) uniform uimage2D) 0:66 c2: direct index for structure ( uniform 2-component vector of int) 0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:66 Constant: 0:66 1 (const uint) 0:69 Sequence 0:69 move second child to first child ( temp float) 0:69 'r20' ( temp float) 0:69 imageLoad ( temp float) 0:69 'g_tTex3df1' (layout( r32f) uniform image3D) 0:69 c3: direct index for structure ( uniform 3-component vector of int) 0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:69 Constant: 0:69 2 (const uint) 0:70 Sequence 0:70 move second child to first child ( temp int) 0:70 'r21' ( temp int) 0:70 imageLoad ( temp int) 0:70 'g_tTex3di1' (layout( r32i) uniform iimage3D) 0:70 c3: direct index for structure ( uniform 3-component vector of int) 0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:70 Constant: 0:70 2 (const uint) 0:71 Sequence 0:71 move second child to first child ( temp uint) 0:71 'r22' ( temp uint) 0:71 imageLoad ( temp uint) 0:71 'g_tTex3du1' (layout( r32ui) uniform uimage3D) 0:71 c3: direct index for structure ( uniform 3-component vector of int) 0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:71 Constant: 0:71 2 (const uint) 0:73 Sequence 0:73 move second child to first child ( temp float) 0:73 'lf1' ( temp float) 0:73 uf1: direct index for structure ( uniform float) 0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:73 Constant: 0:73 8 (const uint) 0:77 Sequence 0:77 move second child to first child ( temp float) 0:77 'storeTemp' ( temp float) 0:77 Function Call: SomeValue( ( temp float) 0:77 imageStore ( temp void) 0:77 'g_tTex1df1' (layout( r32f) uniform image1D) 0:77 c1: direct index for structure ( uniform int) 0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:77 Constant: 0:77 0 (const uint) 0:77 'storeTemp' ( temp float) 0:77 'storeTemp' ( temp float) 0:78 Sequence 0:78 imageStore ( temp void) 0:78 'g_tTex1df1' (layout( r32f) uniform image1D) 0:78 c1: direct index for structure ( uniform int) 0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:78 Constant: 0:78 0 (const uint) 0:78 'lf1' ( temp float) 0:78 'lf1' ( temp float) 0:79 Sequence 0:79 move second child to first child ( temp int) 0:79 'storeTemp' ( temp int) 0:79 Constant: 0:79 2 (const int) 0:79 imageStore ( temp void) 0:79 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:79 c1: direct index for structure ( uniform int) 0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:79 Constant: 0:79 0 (const uint) 0:79 'storeTemp' ( temp int) 0:79 'storeTemp' ( temp int) 0:80 Sequence 0:80 move second child to first child ( temp uint) 0:80 'storeTemp' ( temp uint) 0:80 Constant: 0:80 3 (const uint) 0:80 imageStore ( temp void) 0:80 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:80 c1: direct index for structure ( uniform int) 0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:80 Constant: 0:80 0 (const uint) 0:80 'storeTemp' ( temp uint) 0:80 'storeTemp' ( temp uint) 0:83 Sequence 0:83 move second child to first child ( temp float) 0:83 'val1' ( temp float) 0:83 Sequence 0:83 move second child to first child ( temp int) 0:83 'coordTemp' ( temp int) 0:83 c1: direct index for structure ( uniform int) 0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:83 Constant: 0:83 0 (const uint) 0:83 move second child to first child ( temp float) 0:83 'storeTemp' ( temp float) 0:83 imageLoad ( temp float) 0:83 'g_tTex1df1' (layout( r32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 multiply second child into first child ( temp float) 0:83 'storeTemp' ( temp float) 0:83 Constant: 0:83 2.000000 0:83 imageStore ( temp void) 0:83 'g_tTex1df1' (layout( r32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 'storeTemp' ( temp float) 0:83 'storeTemp' ( temp float) 0:84 Sequence 0:84 move second child to first child ( temp int) 0:84 'coordTemp' ( temp int) 0:84 c1: direct index for structure ( uniform int) 0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:84 Constant: 0:84 0 (const uint) 0:84 move second child to first child ( temp float) 0:84 'storeTemp' ( temp float) 0:84 imageLoad ( temp float) 0:84 'g_tTex1df1' (layout( r32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 subtract second child into first child ( temp float) 0:84 'storeTemp' ( temp float) 0:84 Constant: 0:84 3.000000 0:84 imageStore ( temp void) 0:84 'g_tTex1df1' (layout( r32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 'storeTemp' ( temp float) 0:84 'storeTemp' ( temp float) 0:85 Sequence 0:85 move second child to first child ( temp int) 0:85 'coordTemp' ( temp int) 0:85 c1: direct index for structure ( uniform int) 0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:85 Constant: 0:85 0 (const uint) 0:85 move second child to first child ( temp float) 0:85 'storeTemp' ( temp float) 0:85 imageLoad ( temp float) 0:85 'g_tTex1df1' (layout( r32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 add second child into first child ( temp float) 0:85 'storeTemp' ( temp float) 0:85 Constant: 0:85 4.000000 0:85 imageStore ( temp void) 0:85 'g_tTex1df1' (layout( r32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 'storeTemp' ( temp float) 0:85 'storeTemp' ( temp float) 0:87 Sequence 0:87 move second child to first child ( temp int) 0:87 'coordTemp' ( temp int) 0:87 c1: direct index for structure ( uniform int) 0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:87 Constant: 0:87 0 (const uint) 0:87 move second child to first child ( temp int) 0:87 'storeTemp' ( temp int) 0:87 imageLoad ( temp int) 0:87 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 divide second child into first child ( temp int) 0:87 'storeTemp' ( temp int) 0:87 Constant: 0:87 2 (const int) 0:87 imageStore ( temp void) 0:87 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 'storeTemp' ( temp int) 0:87 'storeTemp' ( temp int) 0:88 Sequence 0:88 move second child to first child ( temp int) 0:88 'coordTemp' ( temp int) 0:88 c1: direct index for structure ( uniform int) 0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:88 Constant: 0:88 0 (const uint) 0:88 move second child to first child ( temp int) 0:88 'storeTemp' ( temp int) 0:88 imageLoad ( temp int) 0:88 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 mod second child into first child ( temp int) 0:88 'storeTemp' ( temp int) 0:88 Constant: 0:88 2 (const int) 0:88 imageStore ( temp void) 0:88 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 'storeTemp' ( temp int) 0:88 'storeTemp' ( temp int) 0:89 Sequence 0:89 move second child to first child ( temp int) 0:89 'coordTemp' ( temp int) 0:89 c1: direct index for structure ( uniform int) 0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:89 Constant: 0:89 0 (const uint) 0:89 move second child to first child ( temp int) 0:89 'storeTemp' ( temp int) 0:89 imageLoad ( temp int) 0:89 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 and second child into first child ( temp int) 0:89 'storeTemp' ( temp int) 0:89 Constant: 0:89 65535 (const int) 0:89 imageStore ( temp void) 0:89 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 'storeTemp' ( temp int) 0:89 'storeTemp' ( temp int) 0:90 Sequence 0:90 move second child to first child ( temp int) 0:90 'coordTemp' ( temp int) 0:90 c1: direct index for structure ( uniform int) 0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:90 Constant: 0:90 0 (const uint) 0:90 move second child to first child ( temp int) 0:90 'storeTemp' ( temp int) 0:90 imageLoad ( temp int) 0:90 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 or second child into first child ( temp int) 0:90 'storeTemp' ( temp int) 0:90 Constant: 0:90 61680 (const int) 0:90 imageStore ( temp void) 0:90 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 'storeTemp' ( temp int) 0:90 'storeTemp' ( temp int) 0:91 Sequence 0:91 move second child to first child ( temp int) 0:91 'coordTemp' ( temp int) 0:91 c1: direct index for structure ( uniform int) 0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:91 Constant: 0:91 0 (const uint) 0:91 move second child to first child ( temp int) 0:91 'storeTemp' ( temp int) 0:91 imageLoad ( temp int) 0:91 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 left shift second child into first child ( temp int) 0:91 'storeTemp' ( temp int) 0:91 Constant: 0:91 2 (const int) 0:91 imageStore ( temp void) 0:91 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 'storeTemp' ( temp int) 0:91 'storeTemp' ( temp int) 0:92 Sequence 0:92 move second child to first child ( temp int) 0:92 'coordTemp' ( temp int) 0:92 c1: direct index for structure ( uniform int) 0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:92 Constant: 0:92 0 (const uint) 0:92 move second child to first child ( temp int) 0:92 'storeTemp' ( temp int) 0:92 imageLoad ( temp int) 0:92 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 right shift second child into first child ( temp int) 0:92 'storeTemp' ( temp int) 0:92 Constant: 0:92 2 (const int) 0:92 imageStore ( temp void) 0:92 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 'storeTemp' ( temp int) 0:92 'storeTemp' ( temp int) 0:95 Sequence 0:95 move second child to first child ( temp float) 0:95 'storeTemp' ( temp float) 0:95 Function Call: SomeValue( ( temp float) 0:95 imageStore ( temp void) 0:95 'g_tTex2df1' (layout( r32f) uniform image2D) 0:95 c2: direct index for structure ( uniform 2-component vector of int) 0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:95 Constant: 0:95 1 (const uint) 0:95 'storeTemp' ( temp float) 0:95 'storeTemp' ( temp float) 0:96 Sequence 0:96 imageStore ( temp void) 0:96 'g_tTex2df1' (layout( r32f) uniform image2D) 0:96 c2: direct index for structure ( uniform 2-component vector of int) 0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:96 Constant: 0:96 1 (const uint) 0:96 'lf1' ( temp float) 0:96 'lf1' ( temp float) 0:97 Sequence 0:97 move second child to first child ( temp int) 0:97 'storeTemp' ( temp int) 0:97 Constant: 0:97 5 (const int) 0:97 imageStore ( temp void) 0:97 'g_tTex2di1' (layout( r32i) uniform iimage2D) 0:97 c2: direct index for structure ( uniform 2-component vector of int) 0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:97 Constant: 0:97 1 (const uint) 0:97 'storeTemp' ( temp int) 0:97 'storeTemp' ( temp int) 0:98 Sequence 0:98 move second child to first child ( temp uint) 0:98 'storeTemp' ( temp uint) 0:98 Constant: 0:98 6 (const uint) 0:98 imageStore ( temp void) 0:98 'g_tTex2du1' (layout( r32ui) uniform uimage2D) 0:98 c2: direct index for structure ( uniform 2-component vector of int) 0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:98 Constant: 0:98 1 (const uint) 0:98 'storeTemp' ( temp uint) 0:98 'storeTemp' ( temp uint) 0:101 Sequence 0:101 move second child to first child ( temp float) 0:101 'storeTemp' ( temp float) 0:101 Function Call: SomeValue( ( temp float) 0:101 imageStore ( temp void) 0:101 'g_tTex3df1' (layout( r32f) uniform image3D) 0:101 c3: direct index for structure ( uniform 3-component vector of int) 0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:101 Constant: 0:101 2 (const uint) 0:101 'storeTemp' ( temp float) 0:101 'storeTemp' ( temp float) 0:102 Sequence 0:102 imageStore ( temp void) 0:102 'g_tTex3df1' (layout( r32f) uniform image3D) 0:102 c3: direct index for structure ( uniform 3-component vector of int) 0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:102 Constant: 0:102 2 (const uint) 0:102 'lf1' ( temp float) 0:102 'lf1' ( temp float) 0:103 Sequence 0:103 move second child to first child ( temp int) 0:103 'storeTemp' ( temp int) 0:103 Constant: 0:103 8 (const int) 0:103 imageStore ( temp void) 0:103 'g_tTex3di1' (layout( r32i) uniform iimage3D) 0:103 c3: direct index for structure ( uniform 3-component vector of int) 0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:103 Constant: 0:103 2 (const uint) 0:103 'storeTemp' ( temp int) 0:103 'storeTemp' ( temp int) 0:104 Sequence 0:104 move second child to first child ( temp uint) 0:104 'storeTemp' ( temp uint) 0:104 Constant: 0:104 9 (const uint) 0:104 imageStore ( temp void) 0:104 'g_tTex3du1' (layout( r32ui) uniform uimage3D) 0:104 c3: direct index for structure ( uniform 3-component vector of int) 0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:104 Constant: 0:104 2 (const uint) 0:104 'storeTemp' ( temp uint) 0:104 'storeTemp' ( temp uint) 0:107 Function Call: Fn1(f1; ( temp float) 0:107 imageLoad ( temp float) 0:107 'g_tTex1df1' (layout( r32f) uniform image1D) 0:107 c1: direct index for structure ( uniform int) 0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:107 Constant: 0:107 0 (const uint) 0:108 Function Call: Fn1(i1; ( temp int) 0:108 imageLoad ( temp int) 0:108 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:108 c1: direct index for structure ( uniform int) 0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:108 Constant: 0:108 0 (const uint) 0:109 Function Call: Fn1(u1; ( temp uint) 0:109 imageLoad ( temp uint) 0:109 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:109 c1: direct index for structure ( uniform int) 0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:109 Constant: 0:109 0 (const uint) 0:111 Comma ( temp void) 0:111 Function Call: Fn2(f1; ( temp void) 0:111 'tempArg' ( temp float) 0:111 Sequence 0:111 imageStore ( temp void) 0:111 'g_tTex1df1' (layout( r32f) uniform image1D) 0:111 c1: direct index for structure ( uniform int) 0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:111 Constant: 0:111 0 (const uint) 0:111 'tempArg' ( temp float) 0:111 'tempArg' ( temp float) 0:112 Comma ( temp void) 0:112 Function Call: Fn2(i1; ( temp void) 0:112 'tempArg' ( temp int) 0:112 Sequence 0:112 imageStore ( temp void) 0:112 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:112 c1: direct index for structure ( uniform int) 0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:112 Constant: 0:112 0 (const uint) 0:112 'tempArg' ( temp int) 0:112 'tempArg' ( temp int) 0:113 Comma ( temp void) 0:113 Function Call: Fn2(u1; ( temp void) 0:113 'tempArg' ( temp uint) 0:113 Sequence 0:113 imageStore ( temp void) 0:113 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:113 c1: direct index for structure ( uniform int) 0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:113 Constant: 0:113 0 (const uint) 0:113 'tempArg' ( temp uint) 0:113 'tempArg' ( temp uint) 0:117 Sequence 0:117 move second child to first child ( temp int) 0:117 'coordTemp' ( temp int) 0:117 c1: direct index for structure ( uniform int) 0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:117 Constant: 0:117 0 (const uint) 0:117 move second child to first child ( temp float) 0:117 'storeTemp' ( temp float) 0:117 imageLoad ( temp float) 0:117 'g_tTex1df1' (layout( r32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 Pre-Increment ( temp float) 0:117 'storeTemp' ( temp float) 0:117 imageStore ( temp void) 0:117 'g_tTex1df1' (layout( r32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 'storeTemp' ( temp float) 0:117 'storeTemp' ( temp float) 0:118 Sequence 0:118 move second child to first child ( temp int) 0:118 'coordTemp' ( temp int) 0:118 c1: direct index for structure ( uniform int) 0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:118 Constant: 0:118 0 (const uint) 0:118 move second child to first child ( temp int) 0:118 'storeTemp' ( temp int) 0:118 imageLoad ( temp int) 0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 Pre-Increment ( temp int) 0:118 'storeTemp' ( temp int) 0:118 imageStore ( temp void) 0:118 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 'storeTemp' ( temp int) 0:118 'storeTemp' ( temp int) 0:119 Sequence 0:119 move second child to first child ( temp int) 0:119 'coordTemp' ( temp int) 0:119 c1: direct index for structure ( uniform int) 0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:119 Constant: 0:119 0 (const uint) 0:119 move second child to first child ( temp uint) 0:119 'storeTemp' ( temp uint) 0:119 imageLoad ( temp uint) 0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 Pre-Increment ( temp uint) 0:119 'storeTemp' ( temp uint) 0:119 imageStore ( temp void) 0:119 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 'storeTemp' ( temp uint) 0:119 'storeTemp' ( temp uint) 0:121 Sequence 0:121 move second child to first child ( temp int) 0:121 'coordTemp' ( temp int) 0:121 c1: direct index for structure ( uniform int) 0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:121 Constant: 0:121 0 (const uint) 0:121 move second child to first child ( temp float) 0:121 'storeTemp' ( temp float) 0:121 imageLoad ( temp float) 0:121 'g_tTex1df1' (layout( r32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 Pre-Decrement ( temp float) 0:121 'storeTemp' ( temp float) 0:121 imageStore ( temp void) 0:121 'g_tTex1df1' (layout( r32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 'storeTemp' ( temp float) 0:121 'storeTemp' ( temp float) 0:122 Sequence 0:122 move second child to first child ( temp int) 0:122 'coordTemp' ( temp int) 0:122 c1: direct index for structure ( uniform int) 0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:122 Constant: 0:122 0 (const uint) 0:122 move second child to first child ( temp int) 0:122 'storeTemp' ( temp int) 0:122 imageLoad ( temp int) 0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 Pre-Decrement ( temp int) 0:122 'storeTemp' ( temp int) 0:122 imageStore ( temp void) 0:122 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 'storeTemp' ( temp int) 0:122 'storeTemp' ( temp int) 0:123 Sequence 0:123 move second child to first child ( temp int) 0:123 'coordTemp' ( temp int) 0:123 c1: direct index for structure ( uniform int) 0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:123 Constant: 0:123 0 (const uint) 0:123 move second child to first child ( temp uint) 0:123 'storeTemp' ( temp uint) 0:123 imageLoad ( temp uint) 0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 Pre-Decrement ( temp uint) 0:123 'storeTemp' ( temp uint) 0:123 imageStore ( temp void) 0:123 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 'storeTemp' ( temp uint) 0:123 'storeTemp' ( temp uint) 0:126 Sequence 0:126 move second child to first child ( temp int) 0:126 'coordTemp' ( temp int) 0:126 c1: direct index for structure ( uniform int) 0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:126 Constant: 0:126 0 (const uint) 0:126 move second child to first child ( temp float) 0:126 'storeTempPre' ( temp float) 0:126 imageLoad ( temp float) 0:126 'g_tTex1df1' (layout( r32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 move second child to first child ( temp float) 0:126 'storeTempPost' ( temp float) 0:126 'storeTempPre' ( temp float) 0:126 Post-Increment ( temp float) 0:126 'storeTempPost' ( temp float) 0:126 imageStore ( temp void) 0:126 'g_tTex1df1' (layout( r32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 'storeTempPost' ( temp float) 0:126 'storeTempPre' ( temp float) 0:127 Sequence 0:127 move second child to first child ( temp int) 0:127 'coordTemp' ( temp int) 0:127 c1: direct index for structure ( uniform int) 0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:127 Constant: 0:127 0 (const uint) 0:127 move second child to first child ( temp uint) 0:127 'storeTempPre' ( temp uint) 0:127 imageLoad ( temp uint) 0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 move second child to first child ( temp uint) 0:127 'storeTempPost' ( temp uint) 0:127 'storeTempPre' ( temp uint) 0:127 Post-Decrement ( temp uint) 0:127 'storeTempPost' ( temp uint) 0:127 imageStore ( temp void) 0:127 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 'storeTempPost' ( temp uint) 0:127 'storeTempPre' ( temp uint) 0:128 Sequence 0:128 move second child to first child ( temp int) 0:128 'coordTemp' ( temp int) 0:128 c1: direct index for structure ( uniform int) 0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:128 Constant: 0:128 0 (const uint) 0:128 move second child to first child ( temp int) 0:128 'storeTempPre' ( temp int) 0:128 imageLoad ( temp int) 0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 move second child to first child ( temp int) 0:128 'storeTempPost' ( temp int) 0:128 'storeTempPre' ( temp int) 0:128 Post-Increment ( temp int) 0:128 'storeTempPost' ( temp int) 0:128 imageStore ( temp void) 0:128 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 'storeTempPost' ( temp int) 0:128 'storeTempPre' ( temp int) 0:130 Sequence 0:130 move second child to first child ( temp int) 0:130 'coordTemp' ( temp int) 0:130 c1: direct index for structure ( uniform int) 0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:130 Constant: 0:130 0 (const uint) 0:130 move second child to first child ( temp float) 0:130 'storeTempPre' ( temp float) 0:130 imageLoad ( temp float) 0:130 'g_tTex1df1' (layout( r32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 move second child to first child ( temp float) 0:130 'storeTempPost' ( temp float) 0:130 'storeTempPre' ( temp float) 0:130 Post-Decrement ( temp float) 0:130 'storeTempPost' ( temp float) 0:130 imageStore ( temp void) 0:130 'g_tTex1df1' (layout( r32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 'storeTempPost' ( temp float) 0:130 'storeTempPre' ( temp float) 0:131 Sequence 0:131 move second child to first child ( temp int) 0:131 'coordTemp' ( temp int) 0:131 c1: direct index for structure ( uniform int) 0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:131 Constant: 0:131 0 (const uint) 0:131 move second child to first child ( temp int) 0:131 'storeTempPre' ( temp int) 0:131 imageLoad ( temp int) 0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 move second child to first child ( temp int) 0:131 'storeTempPost' ( temp int) 0:131 'storeTempPre' ( temp int) 0:131 Post-Increment ( temp int) 0:131 'storeTempPost' ( temp int) 0:131 imageStore ( temp void) 0:131 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 'storeTempPost' ( temp int) 0:131 'storeTempPre' ( temp int) 0:132 Sequence 0:132 move second child to first child ( temp int) 0:132 'coordTemp' ( temp int) 0:132 c1: direct index for structure ( uniform int) 0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:132 Constant: 0:132 0 (const uint) 0:132 move second child to first child ( temp uint) 0:132 'storeTempPre' ( temp uint) 0:132 imageLoad ( temp uint) 0:132 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 move second child to first child ( temp uint) 0:132 'storeTempPost' ( temp uint) 0:132 'storeTempPre' ( temp uint) 0:132 Post-Decrement ( temp uint) 0:132 'storeTempPost' ( temp uint) 0:132 imageStore ( temp void) 0:132 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 'storeTempPost' ( temp uint) 0:132 'storeTempPre' ( temp uint) 0:135 Sequence 0:135 move second child to first child ( temp float) 0:135 'storeTemp' ( temp float) 0:? imageLoad ( temp float) 0:135 'g_tTex2df1' (layout( r32f) uniform image2D) 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:135 imageStore ( temp void) 0:135 'g_tTex1df1' (layout( r32f) uniform image1D) 0:135 Constant: 0:135 1 (const int) 0:135 'storeTemp' ( temp float) 0:135 'storeTemp' ( temp float) 0:137 move second child to first child ( temp 4-component vector of float) 0:137 Color: direct index for structure ( temp 4-component vector of float) 0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:137 Constant: 0:137 0 (const int) 0:137 Constant: 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:139 Branch: Return with expression 0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Definition: main( ( temp void) 0:53 Function Parameters: 0:? Sequence 0:53 Sequence 0:53 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:53 Color: direct index for structure ( temp 4-component vector of float) 0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Constant: 0:53 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df1' (layout( r32f) uniform image1D) 0:? 'g_tTex1di1' (layout( r32i) uniform iimage1D) 0:? 'g_tTex1du1' (layout( r32ui) uniform uimage1D) 0:? 'g_tTex2df1' (layout( r32f) uniform image2D) 0:? 'g_tTex2di1' (layout( r32i) uniform iimage2D) 0:? 'g_tTex2du1' (layout( r32ui) uniform uimage2D) 0:? 'g_tTex3df1' (layout( r32f) uniform image3D) 0:? 'g_tTex3di1' (layout( r32i) uniform iimage3D) 0:? 'g_tTex3du1' (layout( r32ui) uniform uimage3D) 0:? 'g_tTex1df1a' (layout( r32f) uniform image1DArray) 0:? 'g_tTex1di1a' (layout( r32i) uniform iimage1DArray) 0:? 'g_tTex1du1a' (layout( r32ui) uniform uimage1DArray) 0:? 'g_tTex2df1a' (layout( r32f) uniform image2DArray) 0:? 'g_tTex2di1a' (layout( r32i) uniform iimage2DArray) 0:? 'g_tTex2du1a' (layout( r32ui) uniform uimage2DArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform float uf1, uniform int ui1, uniform uint uu1}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 571 Capability Shader Capability Image1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 547 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 10 "Fn1(i1;" Name 9 "x" Name 16 "Fn1(u1;" Name 15 "x" Name 22 "Fn1(f1;" Name 21 "x" Name 26 "Fn2(i1;" Name 25 "x" Name 30 "Fn2(u1;" Name 29 "x" Name 34 "Fn2(f1;" Name 33 "x" Name 37 "SomeValue(" Name 40 "PS_OUTPUT" MemberName 40(PS_OUTPUT) 0 "Color" Name 42 "@main(" Name 59 "$Global" MemberName 59($Global) 0 "c1" MemberName 59($Global) 1 "c2" MemberName 59($Global) 2 "c3" MemberName 59($Global) 3 "c4" MemberName 59($Global) 4 "o1" MemberName 59($Global) 5 "o2" MemberName 59($Global) 6 "o3" MemberName 59($Global) 7 "o4" MemberName 59($Global) 8 "uf1" MemberName 59($Global) 9 "ui1" MemberName 59($Global) 10 "uu1" Name 61 "" Name 70 "g_tTex1df1" Name 75 "r00" Name 80 "r01" Name 83 "g_tTex1di1" Name 88 "r02" Name 91 "g_tTex1du1" Name 96 "r10" Name 99 "g_tTex2df1" Name 106 "r11" Name 109 "g_tTex2di1" Name 114 "r12" Name 117 "g_tTex2du1" Name 122 "r20" Name 125 "g_tTex3df1" Name 132 "r21" Name 135 "g_tTex3di1" Name 140 "r22" Name 143 "g_tTex3du1" Name 148 "lf1" Name 153 "storeTemp" Name 163 "storeTemp" Name 168 "storeTemp" Name 174 "val1" Name 175 "coordTemp" Name 178 "storeTemp" Name 189 "coordTemp" Name 192 "storeTemp" Name 202 "coordTemp" Name 205 "storeTemp" Name 215 "coordTemp" Name 218 "storeTemp" Name 227 "coordTemp" Name 230 "storeTemp" Name 239 "coordTemp" Name 242 "storeTemp" Name 252 "coordTemp" Name 255 "storeTemp" Name 265 "coordTemp" Name 268 "storeTemp" Name 277 "coordTemp" Name 280 "storeTemp" Name 289 "storeTemp" Name 299 "storeTemp" Name 305 "storeTemp" Name 311 "storeTemp" Name 321 "storeTemp" Name 326 "storeTemp" Name 336 "param" Name 342 "param" Name 348 "param" Name 350 "tempArg" Name 351 "param" Name 358 "tempArg" Name 359 "param" Name 366 "tempArg" Name 367 "param" Name 374 "coordTemp" Name 377 "storeTemp" Name 387 "coordTemp" Name 390 "storeTemp" Name 399 "coordTemp" Name 402 "storeTemp" Name 411 "coordTemp" Name 414 "storeTemp" Name 423 "coordTemp" Name 426 "storeTemp" Name 435 "coordTemp" Name 438 "storeTemp" Name 447 "coordTemp" Name 450 "storeTempPre" Name 454 "storeTempPost" Name 461 "coordTemp" Name 464 "storeTempPre" Name 468 "storeTempPost" Name 475 "coordTemp" Name 478 "storeTempPre" Name 482 "storeTempPost" Name 489 "coordTemp" Name 492 "storeTempPre" Name 496 "storeTempPost" Name 503 "coordTemp" Name 506 "storeTempPre" Name 510 "storeTempPost" Name 517 "coordTemp" Name 520 "storeTempPre" Name 524 "storeTempPost" Name 531 "storeTemp" Name 539 "psout" Name 547 "@entryPointOutput.Color" Name 552 "g_sSamp" Name 555 "g_tTex1df1a" Name 558 "g_tTex1di1a" Name 561 "g_tTex1du1a" Name 564 "g_tTex2df1a" Name 567 "g_tTex2di1a" Name 570 "g_tTex2du1a" MemberDecorate 59($Global) 0 Offset 0 MemberDecorate 59($Global) 1 Offset 8 MemberDecorate 59($Global) 2 Offset 16 MemberDecorate 59($Global) 3 Offset 32 MemberDecorate 59($Global) 4 Offset 48 MemberDecorate 59($Global) 5 Offset 56 MemberDecorate 59($Global) 6 Offset 64 MemberDecorate 59($Global) 7 Offset 80 MemberDecorate 59($Global) 8 Offset 96 MemberDecorate 59($Global) 9 Offset 100 MemberDecorate 59($Global) 10 Offset 104 Decorate 59($Global) Block Decorate 61 DescriptorSet 0 Decorate 61 Binding 0 Decorate 70(g_tTex1df1) DescriptorSet 0 Decorate 70(g_tTex1df1) Binding 0 Decorate 83(g_tTex1di1) DescriptorSet 0 Decorate 83(g_tTex1di1) Binding 0 Decorate 91(g_tTex1du1) DescriptorSet 0 Decorate 91(g_tTex1du1) Binding 0 Decorate 99(g_tTex2df1) DescriptorSet 0 Decorate 99(g_tTex2df1) Binding 0 Decorate 109(g_tTex2di1) DescriptorSet 0 Decorate 109(g_tTex2di1) Binding 0 Decorate 117(g_tTex2du1) DescriptorSet 0 Decorate 117(g_tTex2du1) Binding 0 Decorate 125(g_tTex3df1) DescriptorSet 0 Decorate 125(g_tTex3df1) Binding 0 Decorate 135(g_tTex3di1) DescriptorSet 0 Decorate 135(g_tTex3di1) Binding 0 Decorate 143(g_tTex3du1) DescriptorSet 0 Decorate 143(g_tTex3du1) Binding 0 Decorate 547(@entryPointOutput.Color) Location 0 Decorate 552(g_sSamp) DescriptorSet 0 Decorate 552(g_sSamp) Binding 0 Decorate 555(g_tTex1df1a) DescriptorSet 0 Decorate 555(g_tTex1df1a) Binding 0 Decorate 558(g_tTex1di1a) DescriptorSet 0 Decorate 558(g_tTex1di1a) Binding 0 Decorate 561(g_tTex1du1a) DescriptorSet 0 Decorate 561(g_tTex1du1a) Binding 0 Decorate 564(g_tTex2df1a) DescriptorSet 0 Decorate 564(g_tTex2df1a) Binding 0 Decorate 567(g_tTex2di1a) DescriptorSet 0 Decorate 567(g_tTex2di1a) Binding 0 Decorate 570(g_tTex2du1a) DescriptorSet 0 Decorate 570(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 81: TypeImage 6(int) 1D nonsampled format:R32i 82: TypePointer UniformConstant 81 83(g_tTex1di1): 82(ptr) Variable UniformConstant 89: TypeImage 12(int) 1D nonsampled format:R32ui 90: TypePointer UniformConstant 89 91(g_tTex1du1): 90(ptr) Variable UniformConstant 97: TypeImage 18(float) 2D nonsampled format:R32f 98: TypePointer UniformConstant 97 99(g_tTex2df1): 98(ptr) Variable UniformConstant 101: 6(int) Constant 1 102: TypePointer Uniform 56(ivec2) 107: TypeImage 6(int) 2D nonsampled format:R32i 108: TypePointer UniformConstant 107 109(g_tTex2di1): 108(ptr) Variable UniformConstant 115: TypeImage 12(int) 2D nonsampled format:R32ui 116: TypePointer UniformConstant 115 117(g_tTex2du1): 116(ptr) Variable UniformConstant 123: TypeImage 18(float) 3D nonsampled format:R32f 124: TypePointer UniformConstant 123 125(g_tTex3df1): 124(ptr) Variable UniformConstant 127: 6(int) Constant 2 128: TypePointer Uniform 57(ivec3) 133: TypeImage 6(int) 3D nonsampled format:R32i 134: TypePointer UniformConstant 133 135(g_tTex3di1): 134(ptr) Variable UniformConstant 141: TypeImage 12(int) 3D nonsampled format:R32ui 142: TypePointer UniformConstant 141 143(g_tTex3du1): 142(ptr) Variable UniformConstant 149: 6(int) Constant 8 150: TypePointer Uniform 18(float) 169: 12(int) Constant 3 182: 18(float) Constant 1073741824 196: 18(float) Constant 1077936128 209: 18(float) Constant 1082130432 246: 6(int) Constant 65535 259: 6(int) Constant 61680 300: 6(int) Constant 5 306: 12(int) Constant 6 327: 12(int) Constant 9 382: 18(float) Constant 1065353216 533: 6(int) Constant 3 534: 56(ivec2) ConstantComposite 127 533 538: TypePointer Function 40(PS_OUTPUT) 540: 39(fvec4) ConstantComposite 382 382 382 382 541: TypePointer Function 39(fvec4) 546: TypePointer Output 39(fvec4) 547(@entryPointOutput.Color): 546(ptr) Variable Output 550: TypeSampler 551: TypePointer UniformConstant 550 552(g_sSamp): 551(ptr) Variable UniformConstant 553: TypeImage 18(float) 1D array nonsampled format:R32f 554: TypePointer UniformConstant 553 555(g_tTex1df1a): 554(ptr) Variable UniformConstant 556: TypeImage 6(int) 1D array nonsampled format:R32i 557: TypePointer UniformConstant 556 558(g_tTex1di1a): 557(ptr) Variable UniformConstant 559: TypeImage 12(int) 1D array nonsampled format:R32ui 560: TypePointer UniformConstant 559 561(g_tTex1du1a): 560(ptr) Variable UniformConstant 562: TypeImage 18(float) 2D array nonsampled format:R32f 563: TypePointer UniformConstant 562 564(g_tTex2df1a): 563(ptr) Variable UniformConstant 565: TypeImage 6(int) 2D array nonsampled format:R32i 566: TypePointer UniformConstant 565 567(g_tTex2di1a): 566(ptr) Variable UniformConstant 568: TypeImage 12(int) 2D array nonsampled format:R32ui 569: TypePointer UniformConstant 568 570(g_tTex2du1a): 569(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 548:40(PS_OUTPUT) FunctionCall 42(@main() 549: 39(fvec4) CompositeExtract 548 0 Store 547(@entryPointOutput.Color) 549 Return FunctionEnd 10(Fn1(i1;): 6(int) Function None 8 9(x): 7(ptr) FunctionParameter 11: Label 44: 6(int) Load 9(x) ReturnValue 44 FunctionEnd 16(Fn1(u1;): 12(int) Function None 14 15(x): 13(ptr) FunctionParameter 17: Label 47: 12(int) Load 15(x) ReturnValue 47 FunctionEnd 22(Fn1(f1;): 18(float) Function None 20 21(x): 19(ptr) FunctionParameter 23: Label 50: 18(float) Load 21(x) ReturnValue 50 FunctionEnd 26(Fn2(i1;): 2 Function None 24 25(x): 7(ptr) FunctionParameter 27: Label Store 25(x) 53 Return FunctionEnd 30(Fn2(u1;): 2 Function None 28 29(x): 13(ptr) FunctionParameter 31: Label Store 29(x) 54 Return FunctionEnd 34(Fn2(f1;): 2 Function None 32 33(x): 19(ptr) FunctionParameter 35: Label Store 33(x) 55 Return FunctionEnd 37(SomeValue(): 18(float) Function None 36 38: Label 63: 62(ptr) AccessChain 61 53 64: 6(int) Load 63 65: 18(float) ConvertSToF 64 ReturnValue 65 FunctionEnd 42(@main():40(PS_OUTPUT) Function None 41 43: Label 75(r00): 19(ptr) Variable Function 80(r01): 7(ptr) Variable Function 88(r02): 13(ptr) Variable Function 96(r10): 19(ptr) Variable Function 106(r11): 7(ptr) Variable Function 114(r12): 13(ptr) Variable Function 122(r20): 19(ptr) Variable Function 132(r21): 7(ptr) Variable Function 140(r22): 13(ptr) Variable Function 148(lf1): 19(ptr) Variable Function 153(storeTemp): 19(ptr) Variable Function 163(storeTemp): 7(ptr) Variable Function 168(storeTemp): 13(ptr) Variable Function 174(val1): 19(ptr) Variable Function 175(coordTemp): 7(ptr) Variable Function 178(storeTemp): 19(ptr) Variable Function 189(coordTemp): 7(ptr) Variable Function 192(storeTemp): 19(ptr) Variable Function 202(coordTemp): 7(ptr) Variable Function 205(storeTemp): 19(ptr) Variable Function 215(coordTemp): 7(ptr) Variable Function 218(storeTemp): 7(ptr) Variable Function 227(coordTemp): 7(ptr) Variable Function 230(storeTemp): 7(ptr) Variable Function 239(coordTemp): 7(ptr) Variable Function 242(storeTemp): 7(ptr) Variable Function 252(coordTemp): 7(ptr) Variable Function 255(storeTemp): 7(ptr) Variable Function 265(coordTemp): 7(ptr) Variable Function 268(storeTemp): 7(ptr) Variable Function 277(coordTemp): 7(ptr) Variable Function 280(storeTemp): 7(ptr) Variable Function 289(storeTemp): 19(ptr) Variable Function 299(storeTemp): 7(ptr) Variable Function 305(storeTemp): 13(ptr) Variable Function 311(storeTemp): 19(ptr) Variable Function 321(storeTemp): 7(ptr) Variable Function 326(storeTemp): 13(ptr) Variable Function 336(param): 19(ptr) Variable Function 342(param): 7(ptr) Variable Function 348(param): 13(ptr) Variable Function 350(tempArg): 19(ptr) Variable Function 351(param): 19(ptr) Variable Function 358(tempArg): 7(ptr) Variable Function 359(param): 7(ptr) Variable Function 366(tempArg): 13(ptr) Variable Function 367(param): 13(ptr) Variable Function 374(coordTemp): 7(ptr) Variable Function 377(storeTemp): 19(ptr) Variable Function 387(coordTemp): 7(ptr) Variable Function 390(storeTemp): 7(ptr) Variable Function 399(coordTemp): 7(ptr) Variable Function 402(storeTemp): 13(ptr) Variable Function 411(coordTemp): 7(ptr) Variable Function 414(storeTemp): 19(ptr) Variable Function 423(coordTemp): 7(ptr) Variable Function 426(storeTemp): 7(ptr) Variable Function 435(coordTemp): 7(ptr) Variable Function 438(storeTemp): 13(ptr) Variable Function 447(coordTemp): 7(ptr) Variable Function 450(storeTempPre): 19(ptr) Variable Function 454(storeTempPost): 19(ptr) Variable Function 461(coordTemp): 7(ptr) Variable Function 464(storeTempPre): 13(ptr) Variable Function 468(storeTempPost): 13(ptr) Variable Function 475(coordTemp): 7(ptr) Variable Function 478(storeTempPre): 7(ptr) Variable Function 482(storeTempPost): 7(ptr) Variable Function 489(coordTemp): 7(ptr) Variable Function 492(storeTempPre): 19(ptr) Variable Function 496(storeTempPost): 19(ptr) Variable Function 503(coordTemp): 7(ptr) Variable Function 506(storeTempPre): 7(ptr) Variable Function 510(storeTempPost): 7(ptr) Variable Function 517(coordTemp): 7(ptr) Variable Function 520(storeTempPre): 13(ptr) Variable Function 524(storeTempPost): 13(ptr) Variable Function 531(storeTemp): 19(ptr) Variable Function 539(psout): 538(ptr) Variable Function 71: 68 Load 70(g_tTex1df1) 72: 62(ptr) AccessChain 61 53 73: 6(int) Load 72 74: 18(float) ImageRead 71 73 76: 68 Load 70(g_tTex1df1) 77: 62(ptr) AccessChain 61 53 78: 6(int) Load 77 79: 18(float) ImageRead 76 78 Store 75(r00) 79 84: 81 Load 83(g_tTex1di1) 85: 62(ptr) AccessChain 61 53 86: 6(int) Load 85 87: 6(int) ImageRead 84 86 Store 80(r01) 87 92: 89 Load 91(g_tTex1du1) 93: 62(ptr) AccessChain 61 53 94: 6(int) Load 93 95: 12(int) ImageRead 92 94 Store 88(r02) 95 100: 97 Load 99(g_tTex2df1) 103: 102(ptr) AccessChain 61 101 104: 56(ivec2) Load 103 105: 18(float) ImageRead 100 104 Store 96(r10) 105 110: 107 Load 109(g_tTex2di1) 111: 102(ptr) AccessChain 61 101 112: 56(ivec2) Load 111 113: 6(int) ImageRead 110 112 Store 106(r11) 113 118: 115 Load 117(g_tTex2du1) 119: 102(ptr) AccessChain 61 101 120: 56(ivec2) Load 119 121: 12(int) ImageRead 118 120 Store 114(r12) 121 126: 123 Load 125(g_tTex3df1) 129: 128(ptr) AccessChain 61 127 130: 57(ivec3) Load 129 131: 18(float) ImageRead 126 130 Store 122(r20) 131 136: 133 Load 135(g_tTex3di1) 137: 128(ptr) AccessChain 61 127 138: 57(ivec3) Load 137 139: 6(int) ImageRead 136 138 Store 132(r21) 139 144: 141 Load 143(g_tTex3du1) 145: 128(ptr) AccessChain 61 127 146: 57(ivec3) Load 145 147: 12(int) ImageRead 144 146 Store 140(r22) 147 151: 150(ptr) AccessChain 61 149 152: 18(float) Load 151 Store 148(lf1) 152 154: 18(float) FunctionCall 37(SomeValue() Store 153(storeTemp) 154 155: 68 Load 70(g_tTex1df1) 156: 62(ptr) AccessChain 61 53 157: 6(int) Load 156 158: 18(float) Load 153(storeTemp) ImageWrite 155 157 158 159: 68 Load 70(g_tTex1df1) 160: 62(ptr) AccessChain 61 53 161: 6(int) Load 160 162: 18(float) Load 148(lf1) ImageWrite 159 161 162 Store 163(storeTemp) 127 164: 81 Load 83(g_tTex1di1) 165: 62(ptr) AccessChain 61 53 166: 6(int) Load 165 167: 6(int) Load 163(storeTemp) ImageWrite 164 166 167 Store 168(storeTemp) 169 170: 89 Load 91(g_tTex1du1) 171: 62(ptr) AccessChain 61 53 172: 6(int) Load 171 173: 12(int) Load 168(storeTemp) ImageWrite 170 172 173 176: 62(ptr) AccessChain 61 53 177: 6(int) Load 176 Store 175(coordTemp) 177 179: 68 Load 70(g_tTex1df1) 180: 6(int) Load 175(coordTemp) 181: 18(float) ImageRead 179 180 Store 178(storeTemp) 181 183: 18(float) Load 178(storeTemp) 184: 18(float) FMul 183 182 Store 178(storeTemp) 184 185: 68 Load 70(g_tTex1df1) 186: 6(int) Load 175(coordTemp) 187: 18(float) Load 178(storeTemp) ImageWrite 185 186 187 188: 18(float) Load 178(storeTemp) Store 174(val1) 188 190: 62(ptr) AccessChain 61 53 191: 6(int) Load 190 Store 189(coordTemp) 191 193: 68 Load 70(g_tTex1df1) 194: 6(int) Load 189(coordTemp) 195: 18(float) ImageRead 193 194 Store 192(storeTemp) 195 197: 18(float) Load 192(storeTemp) 198: 18(float) FSub 197 196 Store 192(storeTemp) 198 199: 68 Load 70(g_tTex1df1) 200: 6(int) Load 189(coordTemp) 201: 18(float) Load 192(storeTemp) ImageWrite 199 200 201 203: 62(ptr) AccessChain 61 53 204: 6(int) Load 203 Store 202(coordTemp) 204 206: 68 Load 70(g_tTex1df1) 207: 6(int) Load 202(coordTemp) 208: 18(float) ImageRead 206 207 Store 205(storeTemp) 208 210: 18(float) Load 205(storeTemp) 211: 18(float) FAdd 210 209 Store 205(storeTemp) 211 212: 68 Load 70(g_tTex1df1) 213: 6(int) Load 202(coordTemp) 214: 18(float) Load 205(storeTemp) ImageWrite 212 213 214 216: 62(ptr) AccessChain 61 53 217: 6(int) Load 216 Store 215(coordTemp) 217 219: 81 Load 83(g_tTex1di1) 220: 6(int) Load 215(coordTemp) 221: 6(int) ImageRead 219 220 Store 218(storeTemp) 221 222: 6(int) Load 218(storeTemp) 223: 6(int) SDiv 222 127 Store 218(storeTemp) 223 224: 81 Load 83(g_tTex1di1) 225: 6(int) Load 215(coordTemp) 226: 6(int) Load 218(storeTemp) ImageWrite 224 225 226 228: 62(ptr) AccessChain 61 53 229: 6(int) Load 228 Store 227(coordTemp) 229 231: 81 Load 83(g_tTex1di1) 232: 6(int) Load 227(coordTemp) 233: 6(int) ImageRead 231 232 Store 230(storeTemp) 233 234: 6(int) Load 230(storeTemp) 235: 6(int) SMod 234 127 Store 230(storeTemp) 235 236: 81 Load 83(g_tTex1di1) 237: 6(int) Load 227(coordTemp) 238: 6(int) Load 230(storeTemp) ImageWrite 236 237 238 240: 62(ptr) AccessChain 61 53 241: 6(int) Load 240 Store 239(coordTemp) 241 243: 81 Load 83(g_tTex1di1) 244: 6(int) Load 239(coordTemp) 245: 6(int) ImageRead 243 244 Store 242(storeTemp) 245 247: 6(int) Load 242(storeTemp) 248: 6(int) BitwiseAnd 247 246 Store 242(storeTemp) 248 249: 81 Load 83(g_tTex1di1) 250: 6(int) Load 239(coordTemp) 251: 6(int) Load 242(storeTemp) ImageWrite 249 250 251 253: 62(ptr) AccessChain 61 53 254: 6(int) Load 253 Store 252(coordTemp) 254 256: 81 Load 83(g_tTex1di1) 257: 6(int) Load 252(coordTemp) 258: 6(int) ImageRead 256 257 Store 255(storeTemp) 258 260: 6(int) Load 255(storeTemp) 261: 6(int) BitwiseOr 260 259 Store 255(storeTemp) 261 262: 81 Load 83(g_tTex1di1) 263: 6(int) Load 252(coordTemp) 264: 6(int) Load 255(storeTemp) ImageWrite 262 263 264 266: 62(ptr) AccessChain 61 53 267: 6(int) Load 266 Store 265(coordTemp) 267 269: 81 Load 83(g_tTex1di1) 270: 6(int) Load 265(coordTemp) 271: 6(int) ImageRead 269 270 Store 268(storeTemp) 271 272: 6(int) Load 268(storeTemp) 273: 6(int) ShiftLeftLogical 272 127 Store 268(storeTemp) 273 274: 81 Load 83(g_tTex1di1) 275: 6(int) Load 265(coordTemp) 276: 6(int) Load 268(storeTemp) ImageWrite 274 275 276 278: 62(ptr) AccessChain 61 53 279: 6(int) Load 278 Store 277(coordTemp) 279 281: 81 Load 83(g_tTex1di1) 282: 6(int) Load 277(coordTemp) 283: 6(int) ImageRead 281 282 Store 280(storeTemp) 283 284: 6(int) Load 280(storeTemp) 285: 6(int) ShiftRightArithmetic 284 127 Store 280(storeTemp) 285 286: 81 Load 83(g_tTex1di1) 287: 6(int) Load 277(coordTemp) 288: 6(int) Load 280(storeTemp) ImageWrite 286 287 288 290: 18(float) FunctionCall 37(SomeValue() Store 289(storeTemp) 290 291: 97 Load 99(g_tTex2df1) 292: 102(ptr) AccessChain 61 101 293: 56(ivec2) Load 292 294: 18(float) Load 289(storeTemp) ImageWrite 291 293 294 295: 97 Load 99(g_tTex2df1) 296: 102(ptr) AccessChain 61 101 297: 56(ivec2) Load 296 298: 18(float) Load 148(lf1) ImageWrite 295 297 298 Store 299(storeTemp) 300 301: 107 Load 109(g_tTex2di1) 302: 102(ptr) AccessChain 61 101 303: 56(ivec2) Load 302 304: 6(int) Load 299(storeTemp) ImageWrite 301 303 304 Store 305(storeTemp) 306 307: 115 Load 117(g_tTex2du1) 308: 102(ptr) AccessChain 61 101 309: 56(ivec2) Load 308 310: 12(int) Load 305(storeTemp) ImageWrite 307 309 310 312: 18(float) FunctionCall 37(SomeValue() Store 311(storeTemp) 312 313: 123 Load 125(g_tTex3df1) 314: 128(ptr) AccessChain 61 127 315: 57(ivec3) Load 314 316: 18(float) Load 311(storeTemp) ImageWrite 313 315 316 317: 123 Load 125(g_tTex3df1) 318: 128(ptr) AccessChain 61 127 319: 57(ivec3) Load 318 320: 18(float) Load 148(lf1) ImageWrite 317 319 320 Store 321(storeTemp) 149 322: 133 Load 135(g_tTex3di1) 323: 128(ptr) AccessChain 61 127 324: 57(ivec3) Load 323 325: 6(int) Load 321(storeTemp) ImageWrite 322 324 325 Store 326(storeTemp) 327 328: 141 Load 143(g_tTex3du1) 329: 128(ptr) AccessChain 61 127 330: 57(ivec3) Load 329 331: 12(int) Load 326(storeTemp) ImageWrite 328 330 331 332: 68 Load 70(g_tTex1df1) 333: 62(ptr) AccessChain 61 53 334: 6(int) Load 333 335: 18(float) ImageRead 332 334 Store 336(param) 335 337: 18(float) FunctionCall 22(Fn1(f1;) 336(param) 338: 81 Load 83(g_tTex1di1) 339: 62(ptr) AccessChain 61 53 340: 6(int) Load 339 341: 6(int) ImageRead 338 340 Store 342(param) 341 343: 6(int) FunctionCall 10(Fn1(i1;) 342(param) 344: 89 Load 91(g_tTex1du1) 345: 62(ptr) AccessChain 61 53 346: 6(int) Load 345 347: 12(int) ImageRead 344 346 Store 348(param) 347 349: 12(int) FunctionCall 16(Fn1(u1;) 348(param) 352: 2 FunctionCall 34(Fn2(f1;) 351(param) 353: 18(float) Load 351(param) Store 350(tempArg) 353 354: 68 Load 70(g_tTex1df1) 355: 62(ptr) AccessChain 61 53 356: 6(int) Load 355 357: 18(float) Load 350(tempArg) ImageWrite 354 356 357 360: 2 FunctionCall 26(Fn2(i1;) 359(param) 361: 6(int) Load 359(param) Store 358(tempArg) 361 362: 81 Load 83(g_tTex1di1) 363: 62(ptr) AccessChain 61 53 364: 6(int) Load 363 365: 6(int) Load 358(tempArg) ImageWrite 362 364 365 368: 2 FunctionCall 30(Fn2(u1;) 367(param) 369: 12(int) Load 367(param) Store 366(tempArg) 369 370: 89 Load 91(g_tTex1du1) 371: 62(ptr) AccessChain 61 53 372: 6(int) Load 371 373: 12(int) Load 366(tempArg) ImageWrite 370 372 373 375: 62(ptr) AccessChain 61 53 376: 6(int) Load 375 Store 374(coordTemp) 376 378: 68 Load 70(g_tTex1df1) 379: 6(int) Load 374(coordTemp) 380: 18(float) ImageRead 378 379 Store 377(storeTemp) 380 381: 18(float) Load 377(storeTemp) 383: 18(float) FAdd 381 382 Store 377(storeTemp) 383 384: 68 Load 70(g_tTex1df1) 385: 6(int) Load 374(coordTemp) 386: 18(float) Load 377(storeTemp) ImageWrite 384 385 386 388: 62(ptr) AccessChain 61 53 389: 6(int) Load 388 Store 387(coordTemp) 389 391: 81 Load 83(g_tTex1di1) 392: 6(int) Load 387(coordTemp) 393: 6(int) ImageRead 391 392 Store 390(storeTemp) 393 394: 6(int) Load 390(storeTemp) 395: 6(int) IAdd 394 101 Store 390(storeTemp) 395 396: 81 Load 83(g_tTex1di1) 397: 6(int) Load 387(coordTemp) 398: 6(int) Load 390(storeTemp) ImageWrite 396 397 398 400: 62(ptr) AccessChain 61 53 401: 6(int) Load 400 Store 399(coordTemp) 401 403: 89 Load 91(g_tTex1du1) 404: 6(int) Load 399(coordTemp) 405: 12(int) ImageRead 403 404 Store 402(storeTemp) 405 406: 12(int) Load 402(storeTemp) 407: 12(int) IAdd 406 101 Store 402(storeTemp) 407 408: 89 Load 91(g_tTex1du1) 409: 6(int) Load 399(coordTemp) 410: 12(int) Load 402(storeTemp) ImageWrite 408 409 410 412: 62(ptr) AccessChain 61 53 413: 6(int) Load 412 Store 411(coordTemp) 413 415: 68 Load 70(g_tTex1df1) 416: 6(int) Load 411(coordTemp) 417: 18(float) ImageRead 415 416 Store 414(storeTemp) 417 418: 18(float) Load 414(storeTemp) 419: 18(float) FSub 418 382 Store 414(storeTemp) 419 420: 68 Load 70(g_tTex1df1) 421: 6(int) Load 411(coordTemp) 422: 18(float) Load 414(storeTemp) ImageWrite 420 421 422 424: 62(ptr) AccessChain 61 53 425: 6(int) Load 424 Store 423(coordTemp) 425 427: 81 Load 83(g_tTex1di1) 428: 6(int) Load 423(coordTemp) 429: 6(int) ImageRead 427 428 Store 426(storeTemp) 429 430: 6(int) Load 426(storeTemp) 431: 6(int) ISub 430 101 Store 426(storeTemp) 431 432: 81 Load 83(g_tTex1di1) 433: 6(int) Load 423(coordTemp) 434: 6(int) Load 426(storeTemp) ImageWrite 432 433 434 436: 62(ptr) AccessChain 61 53 437: 6(int) Load 436 Store 435(coordTemp) 437 439: 89 Load 91(g_tTex1du1) 440: 6(int) Load 435(coordTemp) 441: 12(int) ImageRead 439 440 Store 438(storeTemp) 441 442: 12(int) Load 438(storeTemp) 443: 12(int) ISub 442 101 Store 438(storeTemp) 443 444: 89 Load 91(g_tTex1du1) 445: 6(int) Load 435(coordTemp) 446: 12(int) Load 438(storeTemp) ImageWrite 444 445 446 448: 62(ptr) AccessChain 61 53 449: 6(int) Load 448 Store 447(coordTemp) 449 451: 68 Load 70(g_tTex1df1) 452: 6(int) Load 447(coordTemp) 453: 18(float) ImageRead 451 452 Store 450(storeTempPre) 453 455: 18(float) Load 450(storeTempPre) Store 454(storeTempPost) 455 456: 18(float) Load 454(storeTempPost) 457: 18(float) FAdd 456 382 Store 454(storeTempPost) 457 458: 68 Load 70(g_tTex1df1) 459: 6(int) Load 447(coordTemp) 460: 18(float) Load 454(storeTempPost) ImageWrite 458 459 460 462: 62(ptr) AccessChain 61 53 463: 6(int) Load 462 Store 461(coordTemp) 463 465: 89 Load 91(g_tTex1du1) 466: 6(int) Load 461(coordTemp) 467: 12(int) ImageRead 465 466 Store 464(storeTempPre) 467 469: 12(int) Load 464(storeTempPre) Store 468(storeTempPost) 469 470: 12(int) Load 468(storeTempPost) 471: 12(int) ISub 470 101 Store 468(storeTempPost) 471 472: 89 Load 91(g_tTex1du1) 473: 6(int) Load 461(coordTemp) 474: 12(int) Load 468(storeTempPost) ImageWrite 472 473 474 476: 62(ptr) AccessChain 61 53 477: 6(int) Load 476 Store 475(coordTemp) 477 479: 81 Load 83(g_tTex1di1) 480: 6(int) Load 475(coordTemp) 481: 6(int) ImageRead 479 480 Store 478(storeTempPre) 481 483: 6(int) Load 478(storeTempPre) Store 482(storeTempPost) 483 484: 6(int) Load 482(storeTempPost) 485: 6(int) IAdd 484 101 Store 482(storeTempPost) 485 486: 81 Load 83(g_tTex1di1) 487: 6(int) Load 475(coordTemp) 488: 6(int) Load 482(storeTempPost) ImageWrite 486 487 488 490: 62(ptr) AccessChain 61 53 491: 6(int) Load 490 Store 489(coordTemp) 491 493: 68 Load 70(g_tTex1df1) 494: 6(int) Load 489(coordTemp) 495: 18(float) ImageRead 493 494 Store 492(storeTempPre) 495 497: 18(float) Load 492(storeTempPre) Store 496(storeTempPost) 497 498: 18(float) Load 496(storeTempPost) 499: 18(float) FSub 498 382 Store 496(storeTempPost) 499 500: 68 Load 70(g_tTex1df1) 501: 6(int) Load 489(coordTemp) 502: 18(float) Load 496(storeTempPost) ImageWrite 500 501 502 504: 62(ptr) AccessChain 61 53 505: 6(int) Load 504 Store 503(coordTemp) 505 507: 81 Load 83(g_tTex1di1) 508: 6(int) Load 503(coordTemp) 509: 6(int) ImageRead 507 508 Store 506(storeTempPre) 509 511: 6(int) Load 506(storeTempPre) Store 510(storeTempPost) 511 512: 6(int) Load 510(storeTempPost) 513: 6(int) IAdd 512 101 Store 510(storeTempPost) 513 514: 81 Load 83(g_tTex1di1) 515: 6(int) Load 503(coordTemp) 516: 6(int) Load 510(storeTempPost) ImageWrite 514 515 516 518: 62(ptr) AccessChain 61 53 519: 6(int) Load 518 Store 517(coordTemp) 519 521: 89 Load 91(g_tTex1du1) 522: 6(int) Load 517(coordTemp) 523: 12(int) ImageRead 521 522 Store 520(storeTempPre) 523 525: 12(int) Load 520(storeTempPre) Store 524(storeTempPost) 525 526: 12(int) Load 524(storeTempPost) 527: 12(int) ISub 526 101 Store 524(storeTempPost) 527 528: 89 Load 91(g_tTex1du1) 529: 6(int) Load 517(coordTemp) 530: 12(int) Load 524(storeTempPost) ImageWrite 528 529 530 532: 97 Load 99(g_tTex2df1) 535: 18(float) ImageRead 532 534 Store 531(storeTemp) 535 536: 68 Load 70(g_tTex1df1) 537: 18(float) Load 531(storeTemp) ImageWrite 536 101 537 542: 541(ptr) AccessChain 539(psout) 53 Store 542 540 543:40(PS_OUTPUT) Load 539(psout) ReturnValue 543 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.rw.swizzle.frag.out000066400000000000000000000307631360464450000234740ustar00rootroot00000000000000hlsl.rw.swizzle.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:4 Function Definition: SomeValue( ( temp 3-component vector of float) 0:4 Function Parameters: 0:? Sequence 0:4 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:7 Function Definition: @main( ( temp 4-component vector of float) 0:7 Function Parameters: 0:? Sequence 0:8 Sequence 0:8 move second child to first child ( temp 2-component vector of int) 0:8 'tc2' ( temp 2-component vector of int) 0:8 Constant: 0:8 0 (const int) 0:8 0 (const int) 0:9 Sequence 0:9 move second child to first child ( temp int) 0:9 'tc' ( temp int) 0:9 Constant: 0:9 0 (const int) 0:12 Sequence 0:12 move second child to first child ( temp 3-component vector of float) 0:12 vector swizzle ( temp 3-component vector of float) 0:12 'storeTemp' ( temp 3-component vector of float) 0:12 Sequence 0:12 Constant: 0:12 2 (const int) 0:12 Constant: 0:12 1 (const int) 0:12 Constant: 0:12 0 (const int) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:12 imageStore ( temp void) 0:12 'rwtx' (layout( rgba32f) uniform image2D) 0:12 'tc2' ( temp 2-component vector of int) 0:12 'storeTemp' ( temp 3-component vector of float) 0:12 'storeTemp' ( temp 3-component vector of float) 0:13 Sequence 0:13 move second child to first child ( temp 3-component vector of float) 0:13 vector swizzle ( temp 3-component vector of float) 0:13 'storeTemp' ( temp 3-component vector of float) 0:13 Sequence 0:13 Constant: 0:13 2 (const int) 0:13 Constant: 0:13 1 (const int) 0:13 Constant: 0:13 0 (const int) 0:13 Function Call: SomeValue( ( temp 3-component vector of float) 0:13 imageStore ( temp void) 0:13 'rwtx' (layout( rgba32f) uniform image2D) 0:13 'tc2' ( temp 2-component vector of int) 0:13 'storeTemp' ( temp 3-component vector of float) 0:13 'storeTemp' ( temp 3-component vector of float) 0:14 Sequence 0:14 move second child to first child ( temp 3-component vector of float) 0:14 vector swizzle ( temp 3-component vector of float) 0:14 'storeTemp' ( temp 3-component vector of float) 0:14 Sequence 0:14 Constant: 0:14 2 (const int) 0:14 Constant: 0:14 1 (const int) 0:14 Constant: 0:14 0 (const int) 0:14 Constant: 0:14 2.000000 0:14 2.000000 0:14 2.000000 0:14 imageStore ( temp void) 0:14 'rwtx' (layout( rgba32f) uniform image2D) 0:14 'tc2' ( temp 2-component vector of int) 0:14 'storeTemp' ( temp 3-component vector of float) 0:14 'storeTemp' ( temp 3-component vector of float) 0:27 Branch: Return with expression 0:27 Constant: 0:27 0.000000 0:27 0.000000 0:27 0.000000 0:27 0.000000 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'rwtx' (layout( rgba32f) uniform image2D) 0:? 'buf' (layout( rgba32f) uniform imageBuffer) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:4 Function Definition: SomeValue( ( temp 3-component vector of float) 0:4 Function Parameters: 0:? Sequence 0:4 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:7 Function Definition: @main( ( temp 4-component vector of float) 0:7 Function Parameters: 0:? Sequence 0:8 Sequence 0:8 move second child to first child ( temp 2-component vector of int) 0:8 'tc2' ( temp 2-component vector of int) 0:8 Constant: 0:8 0 (const int) 0:8 0 (const int) 0:9 Sequence 0:9 move second child to first child ( temp int) 0:9 'tc' ( temp int) 0:9 Constant: 0:9 0 (const int) 0:12 Sequence 0:12 move second child to first child ( temp 3-component vector of float) 0:12 vector swizzle ( temp 3-component vector of float) 0:12 'storeTemp' ( temp 3-component vector of float) 0:12 Sequence 0:12 Constant: 0:12 2 (const int) 0:12 Constant: 0:12 1 (const int) 0:12 Constant: 0:12 0 (const int) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:12 imageStore ( temp void) 0:12 'rwtx' (layout( rgba32f) uniform image2D) 0:12 'tc2' ( temp 2-component vector of int) 0:12 'storeTemp' ( temp 3-component vector of float) 0:12 'storeTemp' ( temp 3-component vector of float) 0:13 Sequence 0:13 move second child to first child ( temp 3-component vector of float) 0:13 vector swizzle ( temp 3-component vector of float) 0:13 'storeTemp' ( temp 3-component vector of float) 0:13 Sequence 0:13 Constant: 0:13 2 (const int) 0:13 Constant: 0:13 1 (const int) 0:13 Constant: 0:13 0 (const int) 0:13 Function Call: SomeValue( ( temp 3-component vector of float) 0:13 imageStore ( temp void) 0:13 'rwtx' (layout( rgba32f) uniform image2D) 0:13 'tc2' ( temp 2-component vector of int) 0:13 'storeTemp' ( temp 3-component vector of float) 0:13 'storeTemp' ( temp 3-component vector of float) 0:14 Sequence 0:14 move second child to first child ( temp 3-component vector of float) 0:14 vector swizzle ( temp 3-component vector of float) 0:14 'storeTemp' ( temp 3-component vector of float) 0:14 Sequence 0:14 Constant: 0:14 2 (const int) 0:14 Constant: 0:14 1 (const int) 0:14 Constant: 0:14 0 (const int) 0:14 Constant: 0:14 2.000000 0:14 2.000000 0:14 2.000000 0:14 imageStore ( temp void) 0:14 'rwtx' (layout( rgba32f) uniform image2D) 0:14 'tc2' ( temp 2-component vector of int) 0:14 'storeTemp' ( temp 3-component vector of float) 0:14 'storeTemp' ( temp 3-component vector of float) 0:27 Branch: Return with expression 0:27 Constant: 0:27 0.000000 0:27 0.000000 0:27 0.000000 0:27 0.000000 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'rwtx' (layout( rgba32f) uniform image2D) 0:? 'buf' (layout( rgba32f) uniform imageBuffer) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.rw.vec2.bracket.frag.out000066400000000000000000005274041360464450000242410ustar00rootroot00000000000000hlsl.rw.vec2.bracket.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:42 Function Definition: Fn1(vi2; ( temp 2-component vector of int) 0:42 Function Parameters: 0:42 'x' ( in 2-component vector of int) 0:? Sequence 0:42 Branch: Return with expression 0:42 'x' ( in 2-component vector of int) 0:43 Function Definition: Fn1(vu2; ( temp 2-component vector of uint) 0:43 Function Parameters: 0:43 'x' ( in 2-component vector of uint) 0:? Sequence 0:43 Branch: Return with expression 0:43 'x' ( in 2-component vector of uint) 0:44 Function Definition: Fn1(vf2; ( temp 2-component vector of float) 0:44 Function Parameters: 0:44 'x' ( in 2-component vector of float) 0:? Sequence 0:44 Branch: Return with expression 0:44 'x' ( in 2-component vector of float) 0:46 Function Definition: Fn2(vi2; ( temp void) 0:46 Function Parameters: 0:46 'x' ( out 2-component vector of int) 0:? Sequence 0:46 move second child to first child ( temp 2-component vector of int) 0:46 'x' ( out 2-component vector of int) 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:47 Function Definition: Fn2(vu2; ( temp void) 0:47 Function Parameters: 0:47 'x' ( out 2-component vector of uint) 0:? Sequence 0:47 move second child to first child ( temp 2-component vector of uint) 0:47 'x' ( out 2-component vector of uint) 0:? Constant: 0:? 0 (const uint) 0:? 0 (const uint) 0:48 Function Definition: Fn2(vf2; ( temp void) 0:48 Function Parameters: 0:48 'x' ( out 2-component vector of float) 0:? Sequence 0:48 move second child to first child ( temp 2-component vector of float) 0:48 'x' ( out 2-component vector of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:50 Function Definition: SomeValue( ( temp 2-component vector of float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression 0:50 Convert int to float ( temp 2-component vector of float) 0:50 c2: direct index for structure ( uniform 2-component vector of int) 0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:50 Constant: 0:50 1 (const uint) 0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence 0:57 imageLoad ( temp 2-component vector of float) 0:57 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:57 c1: direct index for structure ( uniform int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:57 Constant: 0:57 0 (const uint) 0:59 Sequence 0:59 move second child to first child ( temp 2-component vector of float) 0:59 'r00' ( temp 2-component vector of float) 0:59 imageLoad ( temp 2-component vector of float) 0:59 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:59 c1: direct index for structure ( uniform int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:59 Constant: 0:59 0 (const uint) 0:60 Sequence 0:60 move second child to first child ( temp 2-component vector of int) 0:60 'r01' ( temp 2-component vector of int) 0:60 imageLoad ( temp 2-component vector of int) 0:60 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:60 c1: direct index for structure ( uniform int) 0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:60 Constant: 0:60 0 (const uint) 0:61 Sequence 0:61 move second child to first child ( temp 2-component vector of uint) 0:61 'r02' ( temp 2-component vector of uint) 0:61 imageLoad ( temp 2-component vector of uint) 0:61 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:61 c1: direct index for structure ( uniform int) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:61 Constant: 0:61 0 (const uint) 0:64 Sequence 0:64 move second child to first child ( temp 2-component vector of float) 0:64 'r10' ( temp 2-component vector of float) 0:64 imageLoad ( temp 2-component vector of float) 0:64 'g_tTex2df2' (layout( rg32f) uniform image2D) 0:64 c2: direct index for structure ( uniform 2-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:64 Constant: 0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child ( temp 2-component vector of int) 0:65 'r11' ( temp 2-component vector of int) 0:65 imageLoad ( temp 2-component vector of int) 0:65 'g_tTex2di2' (layout( rg32i) uniform iimage2D) 0:65 c2: direct index for structure ( uniform 2-component vector of int) 0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:65 Constant: 0:65 1 (const uint) 0:66 Sequence 0:66 move second child to first child ( temp 2-component vector of uint) 0:66 'r12' ( temp 2-component vector of uint) 0:66 imageLoad ( temp 2-component vector of uint) 0:66 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) 0:66 c2: direct index for structure ( uniform 2-component vector of int) 0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:66 Constant: 0:66 1 (const uint) 0:69 Sequence 0:69 move second child to first child ( temp 2-component vector of float) 0:69 'r20' ( temp 2-component vector of float) 0:69 imageLoad ( temp 2-component vector of float) 0:69 'g_tTex3df2' (layout( rg32f) uniform image3D) 0:69 c3: direct index for structure ( uniform 3-component vector of int) 0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:69 Constant: 0:69 2 (const uint) 0:70 Sequence 0:70 move second child to first child ( temp 2-component vector of int) 0:70 'r21' ( temp 2-component vector of int) 0:70 imageLoad ( temp 2-component vector of int) 0:70 'g_tTex3di2' (layout( rg32i) uniform iimage3D) 0:70 c3: direct index for structure ( uniform 3-component vector of int) 0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:70 Constant: 0:70 2 (const uint) 0:71 Sequence 0:71 move second child to first child ( temp 2-component vector of uint) 0:71 'r22' ( temp 2-component vector of uint) 0:71 imageLoad ( temp 2-component vector of uint) 0:71 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) 0:71 c3: direct index for structure ( uniform 3-component vector of int) 0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:71 Constant: 0:71 2 (const uint) 0:73 Sequence 0:73 move second child to first child ( temp 2-component vector of float) 0:73 'lf2' ( temp 2-component vector of float) 0:73 uf2: direct index for structure ( uniform 2-component vector of float) 0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:73 Constant: 0:73 8 (const uint) 0:77 Sequence 0:77 move second child to first child ( temp 2-component vector of float) 0:77 'storeTemp' ( temp 2-component vector of float) 0:77 Function Call: SomeValue( ( temp 2-component vector of float) 0:77 imageStore ( temp void) 0:77 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:77 c1: direct index for structure ( uniform int) 0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:77 Constant: 0:77 0 (const uint) 0:77 'storeTemp' ( temp 2-component vector of float) 0:77 'storeTemp' ( temp 2-component vector of float) 0:78 Sequence 0:78 imageStore ( temp void) 0:78 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:78 c1: direct index for structure ( uniform int) 0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:78 Constant: 0:78 0 (const uint) 0:78 'lf2' ( temp 2-component vector of float) 0:78 'lf2' ( temp 2-component vector of float) 0:79 Sequence 0:79 move second child to first child ( temp 2-component vector of int) 0:79 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 2 (const int) 0:? 2 (const int) 0:79 imageStore ( temp void) 0:79 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:79 c1: direct index for structure ( uniform int) 0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:79 Constant: 0:79 0 (const uint) 0:79 'storeTemp' ( temp 2-component vector of int) 0:79 'storeTemp' ( temp 2-component vector of int) 0:80 Sequence 0:80 move second child to first child ( temp 2-component vector of uint) 0:80 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 3 (const uint) 0:? 2 (const uint) 0:80 imageStore ( temp void) 0:80 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:80 c1: direct index for structure ( uniform int) 0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:80 Constant: 0:80 0 (const uint) 0:80 'storeTemp' ( temp 2-component vector of uint) 0:80 'storeTemp' ( temp 2-component vector of uint) 0:83 Sequence 0:83 move second child to first child ( temp 2-component vector of float) 0:83 'val1' ( temp 2-component vector of float) 0:83 Sequence 0:83 move second child to first child ( temp int) 0:83 'coordTemp' ( temp int) 0:83 c1: direct index for structure ( uniform int) 0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:83 Constant: 0:83 0 (const uint) 0:83 move second child to first child ( temp 2-component vector of float) 0:83 'storeTemp' ( temp 2-component vector of float) 0:83 imageLoad ( temp 2-component vector of float) 0:83 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 vector scale second child into first child ( temp 2-component vector of float) 0:83 'storeTemp' ( temp 2-component vector of float) 0:83 Constant: 0:83 2.000000 0:83 imageStore ( temp void) 0:83 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 'storeTemp' ( temp 2-component vector of float) 0:83 'storeTemp' ( temp 2-component vector of float) 0:84 Sequence 0:84 move second child to first child ( temp int) 0:84 'coordTemp' ( temp int) 0:84 c1: direct index for structure ( uniform int) 0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:84 Constant: 0:84 0 (const uint) 0:84 move second child to first child ( temp 2-component vector of float) 0:84 'storeTemp' ( temp 2-component vector of float) 0:84 imageLoad ( temp 2-component vector of float) 0:84 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 subtract second child into first child ( temp 2-component vector of float) 0:84 'storeTemp' ( temp 2-component vector of float) 0:84 Constant: 0:84 3.000000 0:84 imageStore ( temp void) 0:84 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 'storeTemp' ( temp 2-component vector of float) 0:84 'storeTemp' ( temp 2-component vector of float) 0:85 Sequence 0:85 move second child to first child ( temp int) 0:85 'coordTemp' ( temp int) 0:85 c1: direct index for structure ( uniform int) 0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:85 Constant: 0:85 0 (const uint) 0:85 move second child to first child ( temp 2-component vector of float) 0:85 'storeTemp' ( temp 2-component vector of float) 0:85 imageLoad ( temp 2-component vector of float) 0:85 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 add second child into first child ( temp 2-component vector of float) 0:85 'storeTemp' ( temp 2-component vector of float) 0:85 Constant: 0:85 4.000000 0:85 imageStore ( temp void) 0:85 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 'storeTemp' ( temp 2-component vector of float) 0:85 'storeTemp' ( temp 2-component vector of float) 0:87 Sequence 0:87 move second child to first child ( temp int) 0:87 'coordTemp' ( temp int) 0:87 c1: direct index for structure ( uniform int) 0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:87 Constant: 0:87 0 (const uint) 0:87 move second child to first child ( temp 2-component vector of int) 0:87 'storeTemp' ( temp 2-component vector of int) 0:87 imageLoad ( temp 2-component vector of int) 0:87 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 divide second child into first child ( temp 2-component vector of int) 0:87 'storeTemp' ( temp 2-component vector of int) 0:87 Constant: 0:87 2 (const int) 0:87 imageStore ( temp void) 0:87 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 'storeTemp' ( temp 2-component vector of int) 0:87 'storeTemp' ( temp 2-component vector of int) 0:88 Sequence 0:88 move second child to first child ( temp int) 0:88 'coordTemp' ( temp int) 0:88 c1: direct index for structure ( uniform int) 0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:88 Constant: 0:88 0 (const uint) 0:88 move second child to first child ( temp 2-component vector of int) 0:88 'storeTemp' ( temp 2-component vector of int) 0:88 imageLoad ( temp 2-component vector of int) 0:88 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 mod second child into first child ( temp 2-component vector of int) 0:88 'storeTemp' ( temp 2-component vector of int) 0:88 Constant: 0:88 2 (const int) 0:88 imageStore ( temp void) 0:88 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 'storeTemp' ( temp 2-component vector of int) 0:88 'storeTemp' ( temp 2-component vector of int) 0:89 Sequence 0:89 move second child to first child ( temp int) 0:89 'coordTemp' ( temp int) 0:89 c1: direct index for structure ( uniform int) 0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:89 Constant: 0:89 0 (const uint) 0:89 move second child to first child ( temp 2-component vector of int) 0:89 'storeTemp' ( temp 2-component vector of int) 0:89 imageLoad ( temp 2-component vector of int) 0:89 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 and second child into first child ( temp 2-component vector of int) 0:89 'storeTemp' ( temp 2-component vector of int) 0:89 Constant: 0:89 65535 (const int) 0:89 imageStore ( temp void) 0:89 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 'storeTemp' ( temp 2-component vector of int) 0:89 'storeTemp' ( temp 2-component vector of int) 0:90 Sequence 0:90 move second child to first child ( temp int) 0:90 'coordTemp' ( temp int) 0:90 c1: direct index for structure ( uniform int) 0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:90 Constant: 0:90 0 (const uint) 0:90 move second child to first child ( temp 2-component vector of int) 0:90 'storeTemp' ( temp 2-component vector of int) 0:90 imageLoad ( temp 2-component vector of int) 0:90 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 or second child into first child ( temp 2-component vector of int) 0:90 'storeTemp' ( temp 2-component vector of int) 0:90 Constant: 0:90 61680 (const int) 0:90 imageStore ( temp void) 0:90 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 'storeTemp' ( temp 2-component vector of int) 0:90 'storeTemp' ( temp 2-component vector of int) 0:91 Sequence 0:91 move second child to first child ( temp int) 0:91 'coordTemp' ( temp int) 0:91 c1: direct index for structure ( uniform int) 0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:91 Constant: 0:91 0 (const uint) 0:91 move second child to first child ( temp 2-component vector of int) 0:91 'storeTemp' ( temp 2-component vector of int) 0:91 imageLoad ( temp 2-component vector of int) 0:91 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 left shift second child into first child ( temp 2-component vector of int) 0:91 'storeTemp' ( temp 2-component vector of int) 0:91 Constant: 0:91 2 (const int) 0:91 imageStore ( temp void) 0:91 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 'storeTemp' ( temp 2-component vector of int) 0:91 'storeTemp' ( temp 2-component vector of int) 0:92 Sequence 0:92 move second child to first child ( temp int) 0:92 'coordTemp' ( temp int) 0:92 c1: direct index for structure ( uniform int) 0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:92 Constant: 0:92 0 (const uint) 0:92 move second child to first child ( temp 2-component vector of int) 0:92 'storeTemp' ( temp 2-component vector of int) 0:92 imageLoad ( temp 2-component vector of int) 0:92 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 right shift second child into first child ( temp 2-component vector of int) 0:92 'storeTemp' ( temp 2-component vector of int) 0:92 Constant: 0:92 2 (const int) 0:92 imageStore ( temp void) 0:92 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 'storeTemp' ( temp 2-component vector of int) 0:92 'storeTemp' ( temp 2-component vector of int) 0:95 Sequence 0:95 move second child to first child ( temp 2-component vector of float) 0:95 'storeTemp' ( temp 2-component vector of float) 0:95 Function Call: SomeValue( ( temp 2-component vector of float) 0:95 imageStore ( temp void) 0:95 'g_tTex2df2' (layout( rg32f) uniform image2D) 0:95 c2: direct index for structure ( uniform 2-component vector of int) 0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:95 Constant: 0:95 1 (const uint) 0:95 'storeTemp' ( temp 2-component vector of float) 0:95 'storeTemp' ( temp 2-component vector of float) 0:96 Sequence 0:96 imageStore ( temp void) 0:96 'g_tTex2df2' (layout( rg32f) uniform image2D) 0:96 c2: direct index for structure ( uniform 2-component vector of int) 0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:96 Constant: 0:96 1 (const uint) 0:96 'lf2' ( temp 2-component vector of float) 0:96 'lf2' ( temp 2-component vector of float) 0:97 Sequence 0:97 move second child to first child ( temp 2-component vector of int) 0:97 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 5 (const int) 0:? 2 (const int) 0:97 imageStore ( temp void) 0:97 'g_tTex2di2' (layout( rg32i) uniform iimage2D) 0:97 c2: direct index for structure ( uniform 2-component vector of int) 0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:97 Constant: 0:97 1 (const uint) 0:97 'storeTemp' ( temp 2-component vector of int) 0:97 'storeTemp' ( temp 2-component vector of int) 0:98 Sequence 0:98 move second child to first child ( temp 2-component vector of uint) 0:98 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 6 (const uint) 0:? 2 (const uint) 0:98 imageStore ( temp void) 0:98 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) 0:98 c2: direct index for structure ( uniform 2-component vector of int) 0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:98 Constant: 0:98 1 (const uint) 0:98 'storeTemp' ( temp 2-component vector of uint) 0:98 'storeTemp' ( temp 2-component vector of uint) 0:101 Sequence 0:101 move second child to first child ( temp 2-component vector of float) 0:101 'storeTemp' ( temp 2-component vector of float) 0:101 Function Call: SomeValue( ( temp 2-component vector of float) 0:101 imageStore ( temp void) 0:101 'g_tTex3df2' (layout( rg32f) uniform image3D) 0:101 c3: direct index for structure ( uniform 3-component vector of int) 0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:101 Constant: 0:101 2 (const uint) 0:101 'storeTemp' ( temp 2-component vector of float) 0:101 'storeTemp' ( temp 2-component vector of float) 0:102 Sequence 0:102 imageStore ( temp void) 0:102 'g_tTex3df2' (layout( rg32f) uniform image3D) 0:102 c3: direct index for structure ( uniform 3-component vector of int) 0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:102 Constant: 0:102 2 (const uint) 0:102 'lf2' ( temp 2-component vector of float) 0:102 'lf2' ( temp 2-component vector of float) 0:103 Sequence 0:103 move second child to first child ( temp 2-component vector of int) 0:103 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 8 (const int) 0:? 6 (const int) 0:103 imageStore ( temp void) 0:103 'g_tTex3di2' (layout( rg32i) uniform iimage3D) 0:103 c3: direct index for structure ( uniform 3-component vector of int) 0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:103 Constant: 0:103 2 (const uint) 0:103 'storeTemp' ( temp 2-component vector of int) 0:103 'storeTemp' ( temp 2-component vector of int) 0:104 Sequence 0:104 move second child to first child ( temp 2-component vector of uint) 0:104 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 9 (const uint) 0:? 2 (const uint) 0:104 imageStore ( temp void) 0:104 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) 0:104 c3: direct index for structure ( uniform 3-component vector of int) 0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:104 Constant: 0:104 2 (const uint) 0:104 'storeTemp' ( temp 2-component vector of uint) 0:104 'storeTemp' ( temp 2-component vector of uint) 0:107 Function Call: Fn1(vf2; ( temp 2-component vector of float) 0:107 imageLoad ( temp 2-component vector of float) 0:107 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:107 c1: direct index for structure ( uniform int) 0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:107 Constant: 0:107 0 (const uint) 0:108 Function Call: Fn1(vi2; ( temp 2-component vector of int) 0:108 imageLoad ( temp 2-component vector of int) 0:108 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:108 c1: direct index for structure ( uniform int) 0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:108 Constant: 0:108 0 (const uint) 0:109 Function Call: Fn1(vu2; ( temp 2-component vector of uint) 0:109 imageLoad ( temp 2-component vector of uint) 0:109 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:109 c1: direct index for structure ( uniform int) 0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:109 Constant: 0:109 0 (const uint) 0:111 Comma ( temp void) 0:111 Function Call: Fn2(vf2; ( temp void) 0:111 'tempArg' ( temp 2-component vector of float) 0:111 Sequence 0:111 imageStore ( temp void) 0:111 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:111 c1: direct index for structure ( uniform int) 0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:111 Constant: 0:111 0 (const uint) 0:111 'tempArg' ( temp 2-component vector of float) 0:111 'tempArg' ( temp 2-component vector of float) 0:112 Comma ( temp void) 0:112 Function Call: Fn2(vi2; ( temp void) 0:112 'tempArg' ( temp 2-component vector of int) 0:112 Sequence 0:112 imageStore ( temp void) 0:112 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:112 c1: direct index for structure ( uniform int) 0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:112 Constant: 0:112 0 (const uint) 0:112 'tempArg' ( temp 2-component vector of int) 0:112 'tempArg' ( temp 2-component vector of int) 0:113 Comma ( temp void) 0:113 Function Call: Fn2(vu2; ( temp void) 0:113 'tempArg' ( temp 2-component vector of uint) 0:113 Sequence 0:113 imageStore ( temp void) 0:113 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:113 c1: direct index for structure ( uniform int) 0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:113 Constant: 0:113 0 (const uint) 0:113 'tempArg' ( temp 2-component vector of uint) 0:113 'tempArg' ( temp 2-component vector of uint) 0:117 Sequence 0:117 move second child to first child ( temp int) 0:117 'coordTemp' ( temp int) 0:117 c1: direct index for structure ( uniform int) 0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:117 Constant: 0:117 0 (const uint) 0:117 move second child to first child ( temp 2-component vector of float) 0:117 'storeTemp' ( temp 2-component vector of float) 0:117 imageLoad ( temp 2-component vector of float) 0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 Pre-Increment ( temp 2-component vector of float) 0:117 'storeTemp' ( temp 2-component vector of float) 0:117 imageStore ( temp void) 0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 'storeTemp' ( temp 2-component vector of float) 0:117 'storeTemp' ( temp 2-component vector of float) 0:118 Sequence 0:118 move second child to first child ( temp int) 0:118 'coordTemp' ( temp int) 0:118 c1: direct index for structure ( uniform int) 0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:118 Constant: 0:118 0 (const uint) 0:118 move second child to first child ( temp 2-component vector of int) 0:118 'storeTemp' ( temp 2-component vector of int) 0:118 imageLoad ( temp 2-component vector of int) 0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 Pre-Increment ( temp 2-component vector of int) 0:118 'storeTemp' ( temp 2-component vector of int) 0:118 imageStore ( temp void) 0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 'storeTemp' ( temp 2-component vector of int) 0:118 'storeTemp' ( temp 2-component vector of int) 0:119 Sequence 0:119 move second child to first child ( temp int) 0:119 'coordTemp' ( temp int) 0:119 c1: direct index for structure ( uniform int) 0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:119 Constant: 0:119 0 (const uint) 0:119 move second child to first child ( temp 2-component vector of uint) 0:119 'storeTemp' ( temp 2-component vector of uint) 0:119 imageLoad ( temp 2-component vector of uint) 0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 Pre-Increment ( temp 2-component vector of uint) 0:119 'storeTemp' ( temp 2-component vector of uint) 0:119 imageStore ( temp void) 0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 'storeTemp' ( temp 2-component vector of uint) 0:119 'storeTemp' ( temp 2-component vector of uint) 0:121 Sequence 0:121 move second child to first child ( temp int) 0:121 'coordTemp' ( temp int) 0:121 c1: direct index for structure ( uniform int) 0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:121 Constant: 0:121 0 (const uint) 0:121 move second child to first child ( temp 2-component vector of float) 0:121 'storeTemp' ( temp 2-component vector of float) 0:121 imageLoad ( temp 2-component vector of float) 0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 Pre-Decrement ( temp 2-component vector of float) 0:121 'storeTemp' ( temp 2-component vector of float) 0:121 imageStore ( temp void) 0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 'storeTemp' ( temp 2-component vector of float) 0:121 'storeTemp' ( temp 2-component vector of float) 0:122 Sequence 0:122 move second child to first child ( temp int) 0:122 'coordTemp' ( temp int) 0:122 c1: direct index for structure ( uniform int) 0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:122 Constant: 0:122 0 (const uint) 0:122 move second child to first child ( temp 2-component vector of int) 0:122 'storeTemp' ( temp 2-component vector of int) 0:122 imageLoad ( temp 2-component vector of int) 0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 Pre-Decrement ( temp 2-component vector of int) 0:122 'storeTemp' ( temp 2-component vector of int) 0:122 imageStore ( temp void) 0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 'storeTemp' ( temp 2-component vector of int) 0:122 'storeTemp' ( temp 2-component vector of int) 0:123 Sequence 0:123 move second child to first child ( temp int) 0:123 'coordTemp' ( temp int) 0:123 c1: direct index for structure ( uniform int) 0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:123 Constant: 0:123 0 (const uint) 0:123 move second child to first child ( temp 2-component vector of uint) 0:123 'storeTemp' ( temp 2-component vector of uint) 0:123 imageLoad ( temp 2-component vector of uint) 0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 Pre-Decrement ( temp 2-component vector of uint) 0:123 'storeTemp' ( temp 2-component vector of uint) 0:123 imageStore ( temp void) 0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 'storeTemp' ( temp 2-component vector of uint) 0:123 'storeTemp' ( temp 2-component vector of uint) 0:126 Sequence 0:126 move second child to first child ( temp int) 0:126 'coordTemp' ( temp int) 0:126 c1: direct index for structure ( uniform int) 0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:126 Constant: 0:126 0 (const uint) 0:126 move second child to first child ( temp 2-component vector of float) 0:126 'storeTempPre' ( temp 2-component vector of float) 0:126 imageLoad ( temp 2-component vector of float) 0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 move second child to first child ( temp 2-component vector of float) 0:126 'storeTempPost' ( temp 2-component vector of float) 0:126 'storeTempPre' ( temp 2-component vector of float) 0:126 Post-Increment ( temp 2-component vector of float) 0:126 'storeTempPost' ( temp 2-component vector of float) 0:126 imageStore ( temp void) 0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 'storeTempPost' ( temp 2-component vector of float) 0:126 'storeTempPre' ( temp 2-component vector of float) 0:127 Sequence 0:127 move second child to first child ( temp int) 0:127 'coordTemp' ( temp int) 0:127 c1: direct index for structure ( uniform int) 0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:127 Constant: 0:127 0 (const uint) 0:127 move second child to first child ( temp 2-component vector of uint) 0:127 'storeTempPre' ( temp 2-component vector of uint) 0:127 imageLoad ( temp 2-component vector of uint) 0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 move second child to first child ( temp 2-component vector of uint) 0:127 'storeTempPost' ( temp 2-component vector of uint) 0:127 'storeTempPre' ( temp 2-component vector of uint) 0:127 Post-Decrement ( temp 2-component vector of uint) 0:127 'storeTempPost' ( temp 2-component vector of uint) 0:127 imageStore ( temp void) 0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 'storeTempPost' ( temp 2-component vector of uint) 0:127 'storeTempPre' ( temp 2-component vector of uint) 0:128 Sequence 0:128 move second child to first child ( temp int) 0:128 'coordTemp' ( temp int) 0:128 c1: direct index for structure ( uniform int) 0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:128 Constant: 0:128 0 (const uint) 0:128 move second child to first child ( temp 2-component vector of int) 0:128 'storeTempPre' ( temp 2-component vector of int) 0:128 imageLoad ( temp 2-component vector of int) 0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 move second child to first child ( temp 2-component vector of int) 0:128 'storeTempPost' ( temp 2-component vector of int) 0:128 'storeTempPre' ( temp 2-component vector of int) 0:128 Post-Increment ( temp 2-component vector of int) 0:128 'storeTempPost' ( temp 2-component vector of int) 0:128 imageStore ( temp void) 0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 'storeTempPost' ( temp 2-component vector of int) 0:128 'storeTempPre' ( temp 2-component vector of int) 0:130 Sequence 0:130 move second child to first child ( temp int) 0:130 'coordTemp' ( temp int) 0:130 c1: direct index for structure ( uniform int) 0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:130 Constant: 0:130 0 (const uint) 0:130 move second child to first child ( temp 2-component vector of float) 0:130 'storeTempPre' ( temp 2-component vector of float) 0:130 imageLoad ( temp 2-component vector of float) 0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 move second child to first child ( temp 2-component vector of float) 0:130 'storeTempPost' ( temp 2-component vector of float) 0:130 'storeTempPre' ( temp 2-component vector of float) 0:130 Post-Decrement ( temp 2-component vector of float) 0:130 'storeTempPost' ( temp 2-component vector of float) 0:130 imageStore ( temp void) 0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 'storeTempPost' ( temp 2-component vector of float) 0:130 'storeTempPre' ( temp 2-component vector of float) 0:131 Sequence 0:131 move second child to first child ( temp int) 0:131 'coordTemp' ( temp int) 0:131 c1: direct index for structure ( uniform int) 0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:131 Constant: 0:131 0 (const uint) 0:131 move second child to first child ( temp 2-component vector of int) 0:131 'storeTempPre' ( temp 2-component vector of int) 0:131 imageLoad ( temp 2-component vector of int) 0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 move second child to first child ( temp 2-component vector of int) 0:131 'storeTempPost' ( temp 2-component vector of int) 0:131 'storeTempPre' ( temp 2-component vector of int) 0:131 Post-Increment ( temp 2-component vector of int) 0:131 'storeTempPost' ( temp 2-component vector of int) 0:131 imageStore ( temp void) 0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 'storeTempPost' ( temp 2-component vector of int) 0:131 'storeTempPre' ( temp 2-component vector of int) 0:132 Sequence 0:132 move second child to first child ( temp int) 0:132 'coordTemp' ( temp int) 0:132 c1: direct index for structure ( uniform int) 0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:132 Constant: 0:132 0 (const uint) 0:132 move second child to first child ( temp 2-component vector of uint) 0:132 'storeTempPre' ( temp 2-component vector of uint) 0:132 imageLoad ( temp 2-component vector of uint) 0:132 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 move second child to first child ( temp 2-component vector of uint) 0:132 'storeTempPost' ( temp 2-component vector of uint) 0:132 'storeTempPre' ( temp 2-component vector of uint) 0:132 Post-Decrement ( temp 2-component vector of uint) 0:132 'storeTempPost' ( temp 2-component vector of uint) 0:132 imageStore ( temp void) 0:132 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 'storeTempPost' ( temp 2-component vector of uint) 0:132 'storeTempPre' ( temp 2-component vector of uint) 0:135 Sequence 0:135 move second child to first child ( temp 2-component vector of float) 0:135 'storeTemp' ( temp 2-component vector of float) 0:? imageLoad ( temp 2-component vector of float) 0:135 'g_tTex2df2' (layout( rg32f) uniform image2D) 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:135 imageStore ( temp void) 0:135 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:135 Constant: 0:135 1 (const int) 0:135 'storeTemp' ( temp 2-component vector of float) 0:135 'storeTemp' ( temp 2-component vector of float) 0:137 move second child to first child ( temp 4-component vector of float) 0:137 Color: direct index for structure ( temp 4-component vector of float) 0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:137 Constant: 0:137 0 (const int) 0:137 Constant: 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:139 Branch: Return with expression 0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Definition: main( ( temp void) 0:53 Function Parameters: 0:? Sequence 0:53 Sequence 0:53 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:53 Color: direct index for structure ( temp 4-component vector of float) 0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Constant: 0:53 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:? 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:? 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:? 'g_tTex2df2' (layout( rg32f) uniform image2D) 0:? 'g_tTex2di2' (layout( rg32i) uniform iimage2D) 0:? 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) 0:? 'g_tTex3df2' (layout( rg32f) uniform image3D) 0:? 'g_tTex3di2' (layout( rg32i) uniform iimage3D) 0:? 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) 0:? 'g_tTex1df2a' (layout( rg32f) uniform image1DArray) 0:? 'g_tTex1di2a' (layout( rg32i) uniform iimage1DArray) 0:? 'g_tTex1du2a' (layout( rg32ui) uniform uimage1DArray) 0:? 'g_tTex2df2a' (layout( rg32f) uniform image2DArray) 0:? 'g_tTex2di2a' (layout( rg32i) uniform iimage2DArray) 0:? 'g_tTex2du2a' (layout( rg32ui) uniform uimage2DArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:42 Function Definition: Fn1(vi2; ( temp 2-component vector of int) 0:42 Function Parameters: 0:42 'x' ( in 2-component vector of int) 0:? Sequence 0:42 Branch: Return with expression 0:42 'x' ( in 2-component vector of int) 0:43 Function Definition: Fn1(vu2; ( temp 2-component vector of uint) 0:43 Function Parameters: 0:43 'x' ( in 2-component vector of uint) 0:? Sequence 0:43 Branch: Return with expression 0:43 'x' ( in 2-component vector of uint) 0:44 Function Definition: Fn1(vf2; ( temp 2-component vector of float) 0:44 Function Parameters: 0:44 'x' ( in 2-component vector of float) 0:? Sequence 0:44 Branch: Return with expression 0:44 'x' ( in 2-component vector of float) 0:46 Function Definition: Fn2(vi2; ( temp void) 0:46 Function Parameters: 0:46 'x' ( out 2-component vector of int) 0:? Sequence 0:46 move second child to first child ( temp 2-component vector of int) 0:46 'x' ( out 2-component vector of int) 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:47 Function Definition: Fn2(vu2; ( temp void) 0:47 Function Parameters: 0:47 'x' ( out 2-component vector of uint) 0:? Sequence 0:47 move second child to first child ( temp 2-component vector of uint) 0:47 'x' ( out 2-component vector of uint) 0:? Constant: 0:? 0 (const uint) 0:? 0 (const uint) 0:48 Function Definition: Fn2(vf2; ( temp void) 0:48 Function Parameters: 0:48 'x' ( out 2-component vector of float) 0:? Sequence 0:48 move second child to first child ( temp 2-component vector of float) 0:48 'x' ( out 2-component vector of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:50 Function Definition: SomeValue( ( temp 2-component vector of float) 0:50 Function Parameters: 0:? Sequence 0:50 Branch: Return with expression 0:50 Convert int to float ( temp 2-component vector of float) 0:50 c2: direct index for structure ( uniform 2-component vector of int) 0:50 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:50 Constant: 0:50 1 (const uint) 0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Parameters: 0:? Sequence 0:57 imageLoad ( temp 2-component vector of float) 0:57 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:57 c1: direct index for structure ( uniform int) 0:57 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:57 Constant: 0:57 0 (const uint) 0:59 Sequence 0:59 move second child to first child ( temp 2-component vector of float) 0:59 'r00' ( temp 2-component vector of float) 0:59 imageLoad ( temp 2-component vector of float) 0:59 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:59 c1: direct index for structure ( uniform int) 0:59 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:59 Constant: 0:59 0 (const uint) 0:60 Sequence 0:60 move second child to first child ( temp 2-component vector of int) 0:60 'r01' ( temp 2-component vector of int) 0:60 imageLoad ( temp 2-component vector of int) 0:60 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:60 c1: direct index for structure ( uniform int) 0:60 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:60 Constant: 0:60 0 (const uint) 0:61 Sequence 0:61 move second child to first child ( temp 2-component vector of uint) 0:61 'r02' ( temp 2-component vector of uint) 0:61 imageLoad ( temp 2-component vector of uint) 0:61 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:61 c1: direct index for structure ( uniform int) 0:61 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:61 Constant: 0:61 0 (const uint) 0:64 Sequence 0:64 move second child to first child ( temp 2-component vector of float) 0:64 'r10' ( temp 2-component vector of float) 0:64 imageLoad ( temp 2-component vector of float) 0:64 'g_tTex2df2' (layout( rg32f) uniform image2D) 0:64 c2: direct index for structure ( uniform 2-component vector of int) 0:64 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:64 Constant: 0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child ( temp 2-component vector of int) 0:65 'r11' ( temp 2-component vector of int) 0:65 imageLoad ( temp 2-component vector of int) 0:65 'g_tTex2di2' (layout( rg32i) uniform iimage2D) 0:65 c2: direct index for structure ( uniform 2-component vector of int) 0:65 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:65 Constant: 0:65 1 (const uint) 0:66 Sequence 0:66 move second child to first child ( temp 2-component vector of uint) 0:66 'r12' ( temp 2-component vector of uint) 0:66 imageLoad ( temp 2-component vector of uint) 0:66 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) 0:66 c2: direct index for structure ( uniform 2-component vector of int) 0:66 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:66 Constant: 0:66 1 (const uint) 0:69 Sequence 0:69 move second child to first child ( temp 2-component vector of float) 0:69 'r20' ( temp 2-component vector of float) 0:69 imageLoad ( temp 2-component vector of float) 0:69 'g_tTex3df2' (layout( rg32f) uniform image3D) 0:69 c3: direct index for structure ( uniform 3-component vector of int) 0:69 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:69 Constant: 0:69 2 (const uint) 0:70 Sequence 0:70 move second child to first child ( temp 2-component vector of int) 0:70 'r21' ( temp 2-component vector of int) 0:70 imageLoad ( temp 2-component vector of int) 0:70 'g_tTex3di2' (layout( rg32i) uniform iimage3D) 0:70 c3: direct index for structure ( uniform 3-component vector of int) 0:70 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:70 Constant: 0:70 2 (const uint) 0:71 Sequence 0:71 move second child to first child ( temp 2-component vector of uint) 0:71 'r22' ( temp 2-component vector of uint) 0:71 imageLoad ( temp 2-component vector of uint) 0:71 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) 0:71 c3: direct index for structure ( uniform 3-component vector of int) 0:71 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:71 Constant: 0:71 2 (const uint) 0:73 Sequence 0:73 move second child to first child ( temp 2-component vector of float) 0:73 'lf2' ( temp 2-component vector of float) 0:73 uf2: direct index for structure ( uniform 2-component vector of float) 0:73 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:73 Constant: 0:73 8 (const uint) 0:77 Sequence 0:77 move second child to first child ( temp 2-component vector of float) 0:77 'storeTemp' ( temp 2-component vector of float) 0:77 Function Call: SomeValue( ( temp 2-component vector of float) 0:77 imageStore ( temp void) 0:77 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:77 c1: direct index for structure ( uniform int) 0:77 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:77 Constant: 0:77 0 (const uint) 0:77 'storeTemp' ( temp 2-component vector of float) 0:77 'storeTemp' ( temp 2-component vector of float) 0:78 Sequence 0:78 imageStore ( temp void) 0:78 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:78 c1: direct index for structure ( uniform int) 0:78 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:78 Constant: 0:78 0 (const uint) 0:78 'lf2' ( temp 2-component vector of float) 0:78 'lf2' ( temp 2-component vector of float) 0:79 Sequence 0:79 move second child to first child ( temp 2-component vector of int) 0:79 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 2 (const int) 0:? 2 (const int) 0:79 imageStore ( temp void) 0:79 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:79 c1: direct index for structure ( uniform int) 0:79 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:79 Constant: 0:79 0 (const uint) 0:79 'storeTemp' ( temp 2-component vector of int) 0:79 'storeTemp' ( temp 2-component vector of int) 0:80 Sequence 0:80 move second child to first child ( temp 2-component vector of uint) 0:80 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 3 (const uint) 0:? 2 (const uint) 0:80 imageStore ( temp void) 0:80 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:80 c1: direct index for structure ( uniform int) 0:80 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:80 Constant: 0:80 0 (const uint) 0:80 'storeTemp' ( temp 2-component vector of uint) 0:80 'storeTemp' ( temp 2-component vector of uint) 0:83 Sequence 0:83 move second child to first child ( temp 2-component vector of float) 0:83 'val1' ( temp 2-component vector of float) 0:83 Sequence 0:83 move second child to first child ( temp int) 0:83 'coordTemp' ( temp int) 0:83 c1: direct index for structure ( uniform int) 0:83 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:83 Constant: 0:83 0 (const uint) 0:83 move second child to first child ( temp 2-component vector of float) 0:83 'storeTemp' ( temp 2-component vector of float) 0:83 imageLoad ( temp 2-component vector of float) 0:83 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 vector scale second child into first child ( temp 2-component vector of float) 0:83 'storeTemp' ( temp 2-component vector of float) 0:83 Constant: 0:83 2.000000 0:83 imageStore ( temp void) 0:83 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:83 'coordTemp' ( temp int) 0:83 'storeTemp' ( temp 2-component vector of float) 0:83 'storeTemp' ( temp 2-component vector of float) 0:84 Sequence 0:84 move second child to first child ( temp int) 0:84 'coordTemp' ( temp int) 0:84 c1: direct index for structure ( uniform int) 0:84 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:84 Constant: 0:84 0 (const uint) 0:84 move second child to first child ( temp 2-component vector of float) 0:84 'storeTemp' ( temp 2-component vector of float) 0:84 imageLoad ( temp 2-component vector of float) 0:84 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 subtract second child into first child ( temp 2-component vector of float) 0:84 'storeTemp' ( temp 2-component vector of float) 0:84 Constant: 0:84 3.000000 0:84 imageStore ( temp void) 0:84 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:84 'coordTemp' ( temp int) 0:84 'storeTemp' ( temp 2-component vector of float) 0:84 'storeTemp' ( temp 2-component vector of float) 0:85 Sequence 0:85 move second child to first child ( temp int) 0:85 'coordTemp' ( temp int) 0:85 c1: direct index for structure ( uniform int) 0:85 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:85 Constant: 0:85 0 (const uint) 0:85 move second child to first child ( temp 2-component vector of float) 0:85 'storeTemp' ( temp 2-component vector of float) 0:85 imageLoad ( temp 2-component vector of float) 0:85 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 add second child into first child ( temp 2-component vector of float) 0:85 'storeTemp' ( temp 2-component vector of float) 0:85 Constant: 0:85 4.000000 0:85 imageStore ( temp void) 0:85 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:85 'coordTemp' ( temp int) 0:85 'storeTemp' ( temp 2-component vector of float) 0:85 'storeTemp' ( temp 2-component vector of float) 0:87 Sequence 0:87 move second child to first child ( temp int) 0:87 'coordTemp' ( temp int) 0:87 c1: direct index for structure ( uniform int) 0:87 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:87 Constant: 0:87 0 (const uint) 0:87 move second child to first child ( temp 2-component vector of int) 0:87 'storeTemp' ( temp 2-component vector of int) 0:87 imageLoad ( temp 2-component vector of int) 0:87 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 divide second child into first child ( temp 2-component vector of int) 0:87 'storeTemp' ( temp 2-component vector of int) 0:87 Constant: 0:87 2 (const int) 0:87 imageStore ( temp void) 0:87 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:87 'coordTemp' ( temp int) 0:87 'storeTemp' ( temp 2-component vector of int) 0:87 'storeTemp' ( temp 2-component vector of int) 0:88 Sequence 0:88 move second child to first child ( temp int) 0:88 'coordTemp' ( temp int) 0:88 c1: direct index for structure ( uniform int) 0:88 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:88 Constant: 0:88 0 (const uint) 0:88 move second child to first child ( temp 2-component vector of int) 0:88 'storeTemp' ( temp 2-component vector of int) 0:88 imageLoad ( temp 2-component vector of int) 0:88 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 mod second child into first child ( temp 2-component vector of int) 0:88 'storeTemp' ( temp 2-component vector of int) 0:88 Constant: 0:88 2 (const int) 0:88 imageStore ( temp void) 0:88 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:88 'coordTemp' ( temp int) 0:88 'storeTemp' ( temp 2-component vector of int) 0:88 'storeTemp' ( temp 2-component vector of int) 0:89 Sequence 0:89 move second child to first child ( temp int) 0:89 'coordTemp' ( temp int) 0:89 c1: direct index for structure ( uniform int) 0:89 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:89 Constant: 0:89 0 (const uint) 0:89 move second child to first child ( temp 2-component vector of int) 0:89 'storeTemp' ( temp 2-component vector of int) 0:89 imageLoad ( temp 2-component vector of int) 0:89 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 and second child into first child ( temp 2-component vector of int) 0:89 'storeTemp' ( temp 2-component vector of int) 0:89 Constant: 0:89 65535 (const int) 0:89 imageStore ( temp void) 0:89 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:89 'coordTemp' ( temp int) 0:89 'storeTemp' ( temp 2-component vector of int) 0:89 'storeTemp' ( temp 2-component vector of int) 0:90 Sequence 0:90 move second child to first child ( temp int) 0:90 'coordTemp' ( temp int) 0:90 c1: direct index for structure ( uniform int) 0:90 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:90 Constant: 0:90 0 (const uint) 0:90 move second child to first child ( temp 2-component vector of int) 0:90 'storeTemp' ( temp 2-component vector of int) 0:90 imageLoad ( temp 2-component vector of int) 0:90 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 or second child into first child ( temp 2-component vector of int) 0:90 'storeTemp' ( temp 2-component vector of int) 0:90 Constant: 0:90 61680 (const int) 0:90 imageStore ( temp void) 0:90 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:90 'coordTemp' ( temp int) 0:90 'storeTemp' ( temp 2-component vector of int) 0:90 'storeTemp' ( temp 2-component vector of int) 0:91 Sequence 0:91 move second child to first child ( temp int) 0:91 'coordTemp' ( temp int) 0:91 c1: direct index for structure ( uniform int) 0:91 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:91 Constant: 0:91 0 (const uint) 0:91 move second child to first child ( temp 2-component vector of int) 0:91 'storeTemp' ( temp 2-component vector of int) 0:91 imageLoad ( temp 2-component vector of int) 0:91 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 left shift second child into first child ( temp 2-component vector of int) 0:91 'storeTemp' ( temp 2-component vector of int) 0:91 Constant: 0:91 2 (const int) 0:91 imageStore ( temp void) 0:91 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:91 'coordTemp' ( temp int) 0:91 'storeTemp' ( temp 2-component vector of int) 0:91 'storeTemp' ( temp 2-component vector of int) 0:92 Sequence 0:92 move second child to first child ( temp int) 0:92 'coordTemp' ( temp int) 0:92 c1: direct index for structure ( uniform int) 0:92 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:92 Constant: 0:92 0 (const uint) 0:92 move second child to first child ( temp 2-component vector of int) 0:92 'storeTemp' ( temp 2-component vector of int) 0:92 imageLoad ( temp 2-component vector of int) 0:92 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 right shift second child into first child ( temp 2-component vector of int) 0:92 'storeTemp' ( temp 2-component vector of int) 0:92 Constant: 0:92 2 (const int) 0:92 imageStore ( temp void) 0:92 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:92 'coordTemp' ( temp int) 0:92 'storeTemp' ( temp 2-component vector of int) 0:92 'storeTemp' ( temp 2-component vector of int) 0:95 Sequence 0:95 move second child to first child ( temp 2-component vector of float) 0:95 'storeTemp' ( temp 2-component vector of float) 0:95 Function Call: SomeValue( ( temp 2-component vector of float) 0:95 imageStore ( temp void) 0:95 'g_tTex2df2' (layout( rg32f) uniform image2D) 0:95 c2: direct index for structure ( uniform 2-component vector of int) 0:95 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:95 Constant: 0:95 1 (const uint) 0:95 'storeTemp' ( temp 2-component vector of float) 0:95 'storeTemp' ( temp 2-component vector of float) 0:96 Sequence 0:96 imageStore ( temp void) 0:96 'g_tTex2df2' (layout( rg32f) uniform image2D) 0:96 c2: direct index for structure ( uniform 2-component vector of int) 0:96 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:96 Constant: 0:96 1 (const uint) 0:96 'lf2' ( temp 2-component vector of float) 0:96 'lf2' ( temp 2-component vector of float) 0:97 Sequence 0:97 move second child to first child ( temp 2-component vector of int) 0:97 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 5 (const int) 0:? 2 (const int) 0:97 imageStore ( temp void) 0:97 'g_tTex2di2' (layout( rg32i) uniform iimage2D) 0:97 c2: direct index for structure ( uniform 2-component vector of int) 0:97 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:97 Constant: 0:97 1 (const uint) 0:97 'storeTemp' ( temp 2-component vector of int) 0:97 'storeTemp' ( temp 2-component vector of int) 0:98 Sequence 0:98 move second child to first child ( temp 2-component vector of uint) 0:98 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 6 (const uint) 0:? 2 (const uint) 0:98 imageStore ( temp void) 0:98 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) 0:98 c2: direct index for structure ( uniform 2-component vector of int) 0:98 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:98 Constant: 0:98 1 (const uint) 0:98 'storeTemp' ( temp 2-component vector of uint) 0:98 'storeTemp' ( temp 2-component vector of uint) 0:101 Sequence 0:101 move second child to first child ( temp 2-component vector of float) 0:101 'storeTemp' ( temp 2-component vector of float) 0:101 Function Call: SomeValue( ( temp 2-component vector of float) 0:101 imageStore ( temp void) 0:101 'g_tTex3df2' (layout( rg32f) uniform image3D) 0:101 c3: direct index for structure ( uniform 3-component vector of int) 0:101 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:101 Constant: 0:101 2 (const uint) 0:101 'storeTemp' ( temp 2-component vector of float) 0:101 'storeTemp' ( temp 2-component vector of float) 0:102 Sequence 0:102 imageStore ( temp void) 0:102 'g_tTex3df2' (layout( rg32f) uniform image3D) 0:102 c3: direct index for structure ( uniform 3-component vector of int) 0:102 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:102 Constant: 0:102 2 (const uint) 0:102 'lf2' ( temp 2-component vector of float) 0:102 'lf2' ( temp 2-component vector of float) 0:103 Sequence 0:103 move second child to first child ( temp 2-component vector of int) 0:103 'storeTemp' ( temp 2-component vector of int) 0:? Constant: 0:? 8 (const int) 0:? 6 (const int) 0:103 imageStore ( temp void) 0:103 'g_tTex3di2' (layout( rg32i) uniform iimage3D) 0:103 c3: direct index for structure ( uniform 3-component vector of int) 0:103 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:103 Constant: 0:103 2 (const uint) 0:103 'storeTemp' ( temp 2-component vector of int) 0:103 'storeTemp' ( temp 2-component vector of int) 0:104 Sequence 0:104 move second child to first child ( temp 2-component vector of uint) 0:104 'storeTemp' ( temp 2-component vector of uint) 0:? Constant: 0:? 9 (const uint) 0:? 2 (const uint) 0:104 imageStore ( temp void) 0:104 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) 0:104 c3: direct index for structure ( uniform 3-component vector of int) 0:104 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:104 Constant: 0:104 2 (const uint) 0:104 'storeTemp' ( temp 2-component vector of uint) 0:104 'storeTemp' ( temp 2-component vector of uint) 0:107 Function Call: Fn1(vf2; ( temp 2-component vector of float) 0:107 imageLoad ( temp 2-component vector of float) 0:107 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:107 c1: direct index for structure ( uniform int) 0:107 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:107 Constant: 0:107 0 (const uint) 0:108 Function Call: Fn1(vi2; ( temp 2-component vector of int) 0:108 imageLoad ( temp 2-component vector of int) 0:108 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:108 c1: direct index for structure ( uniform int) 0:108 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:108 Constant: 0:108 0 (const uint) 0:109 Function Call: Fn1(vu2; ( temp 2-component vector of uint) 0:109 imageLoad ( temp 2-component vector of uint) 0:109 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:109 c1: direct index for structure ( uniform int) 0:109 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:109 Constant: 0:109 0 (const uint) 0:111 Comma ( temp void) 0:111 Function Call: Fn2(vf2; ( temp void) 0:111 'tempArg' ( temp 2-component vector of float) 0:111 Sequence 0:111 imageStore ( temp void) 0:111 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:111 c1: direct index for structure ( uniform int) 0:111 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:111 Constant: 0:111 0 (const uint) 0:111 'tempArg' ( temp 2-component vector of float) 0:111 'tempArg' ( temp 2-component vector of float) 0:112 Comma ( temp void) 0:112 Function Call: Fn2(vi2; ( temp void) 0:112 'tempArg' ( temp 2-component vector of int) 0:112 Sequence 0:112 imageStore ( temp void) 0:112 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:112 c1: direct index for structure ( uniform int) 0:112 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:112 Constant: 0:112 0 (const uint) 0:112 'tempArg' ( temp 2-component vector of int) 0:112 'tempArg' ( temp 2-component vector of int) 0:113 Comma ( temp void) 0:113 Function Call: Fn2(vu2; ( temp void) 0:113 'tempArg' ( temp 2-component vector of uint) 0:113 Sequence 0:113 imageStore ( temp void) 0:113 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:113 c1: direct index for structure ( uniform int) 0:113 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:113 Constant: 0:113 0 (const uint) 0:113 'tempArg' ( temp 2-component vector of uint) 0:113 'tempArg' ( temp 2-component vector of uint) 0:117 Sequence 0:117 move second child to first child ( temp int) 0:117 'coordTemp' ( temp int) 0:117 c1: direct index for structure ( uniform int) 0:117 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:117 Constant: 0:117 0 (const uint) 0:117 move second child to first child ( temp 2-component vector of float) 0:117 'storeTemp' ( temp 2-component vector of float) 0:117 imageLoad ( temp 2-component vector of float) 0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 Pre-Increment ( temp 2-component vector of float) 0:117 'storeTemp' ( temp 2-component vector of float) 0:117 imageStore ( temp void) 0:117 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:117 'coordTemp' ( temp int) 0:117 'storeTemp' ( temp 2-component vector of float) 0:117 'storeTemp' ( temp 2-component vector of float) 0:118 Sequence 0:118 move second child to first child ( temp int) 0:118 'coordTemp' ( temp int) 0:118 c1: direct index for structure ( uniform int) 0:118 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:118 Constant: 0:118 0 (const uint) 0:118 move second child to first child ( temp 2-component vector of int) 0:118 'storeTemp' ( temp 2-component vector of int) 0:118 imageLoad ( temp 2-component vector of int) 0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 Pre-Increment ( temp 2-component vector of int) 0:118 'storeTemp' ( temp 2-component vector of int) 0:118 imageStore ( temp void) 0:118 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:118 'coordTemp' ( temp int) 0:118 'storeTemp' ( temp 2-component vector of int) 0:118 'storeTemp' ( temp 2-component vector of int) 0:119 Sequence 0:119 move second child to first child ( temp int) 0:119 'coordTemp' ( temp int) 0:119 c1: direct index for structure ( uniform int) 0:119 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:119 Constant: 0:119 0 (const uint) 0:119 move second child to first child ( temp 2-component vector of uint) 0:119 'storeTemp' ( temp 2-component vector of uint) 0:119 imageLoad ( temp 2-component vector of uint) 0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 Pre-Increment ( temp 2-component vector of uint) 0:119 'storeTemp' ( temp 2-component vector of uint) 0:119 imageStore ( temp void) 0:119 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:119 'coordTemp' ( temp int) 0:119 'storeTemp' ( temp 2-component vector of uint) 0:119 'storeTemp' ( temp 2-component vector of uint) 0:121 Sequence 0:121 move second child to first child ( temp int) 0:121 'coordTemp' ( temp int) 0:121 c1: direct index for structure ( uniform int) 0:121 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:121 Constant: 0:121 0 (const uint) 0:121 move second child to first child ( temp 2-component vector of float) 0:121 'storeTemp' ( temp 2-component vector of float) 0:121 imageLoad ( temp 2-component vector of float) 0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 Pre-Decrement ( temp 2-component vector of float) 0:121 'storeTemp' ( temp 2-component vector of float) 0:121 imageStore ( temp void) 0:121 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:121 'coordTemp' ( temp int) 0:121 'storeTemp' ( temp 2-component vector of float) 0:121 'storeTemp' ( temp 2-component vector of float) 0:122 Sequence 0:122 move second child to first child ( temp int) 0:122 'coordTemp' ( temp int) 0:122 c1: direct index for structure ( uniform int) 0:122 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:122 Constant: 0:122 0 (const uint) 0:122 move second child to first child ( temp 2-component vector of int) 0:122 'storeTemp' ( temp 2-component vector of int) 0:122 imageLoad ( temp 2-component vector of int) 0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 Pre-Decrement ( temp 2-component vector of int) 0:122 'storeTemp' ( temp 2-component vector of int) 0:122 imageStore ( temp void) 0:122 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:122 'coordTemp' ( temp int) 0:122 'storeTemp' ( temp 2-component vector of int) 0:122 'storeTemp' ( temp 2-component vector of int) 0:123 Sequence 0:123 move second child to first child ( temp int) 0:123 'coordTemp' ( temp int) 0:123 c1: direct index for structure ( uniform int) 0:123 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:123 Constant: 0:123 0 (const uint) 0:123 move second child to first child ( temp 2-component vector of uint) 0:123 'storeTemp' ( temp 2-component vector of uint) 0:123 imageLoad ( temp 2-component vector of uint) 0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 Pre-Decrement ( temp 2-component vector of uint) 0:123 'storeTemp' ( temp 2-component vector of uint) 0:123 imageStore ( temp void) 0:123 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:123 'coordTemp' ( temp int) 0:123 'storeTemp' ( temp 2-component vector of uint) 0:123 'storeTemp' ( temp 2-component vector of uint) 0:126 Sequence 0:126 move second child to first child ( temp int) 0:126 'coordTemp' ( temp int) 0:126 c1: direct index for structure ( uniform int) 0:126 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:126 Constant: 0:126 0 (const uint) 0:126 move second child to first child ( temp 2-component vector of float) 0:126 'storeTempPre' ( temp 2-component vector of float) 0:126 imageLoad ( temp 2-component vector of float) 0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 move second child to first child ( temp 2-component vector of float) 0:126 'storeTempPost' ( temp 2-component vector of float) 0:126 'storeTempPre' ( temp 2-component vector of float) 0:126 Post-Increment ( temp 2-component vector of float) 0:126 'storeTempPost' ( temp 2-component vector of float) 0:126 imageStore ( temp void) 0:126 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:126 'coordTemp' ( temp int) 0:126 'storeTempPost' ( temp 2-component vector of float) 0:126 'storeTempPre' ( temp 2-component vector of float) 0:127 Sequence 0:127 move second child to first child ( temp int) 0:127 'coordTemp' ( temp int) 0:127 c1: direct index for structure ( uniform int) 0:127 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:127 Constant: 0:127 0 (const uint) 0:127 move second child to first child ( temp 2-component vector of uint) 0:127 'storeTempPre' ( temp 2-component vector of uint) 0:127 imageLoad ( temp 2-component vector of uint) 0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 move second child to first child ( temp 2-component vector of uint) 0:127 'storeTempPost' ( temp 2-component vector of uint) 0:127 'storeTempPre' ( temp 2-component vector of uint) 0:127 Post-Decrement ( temp 2-component vector of uint) 0:127 'storeTempPost' ( temp 2-component vector of uint) 0:127 imageStore ( temp void) 0:127 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:127 'coordTemp' ( temp int) 0:127 'storeTempPost' ( temp 2-component vector of uint) 0:127 'storeTempPre' ( temp 2-component vector of uint) 0:128 Sequence 0:128 move second child to first child ( temp int) 0:128 'coordTemp' ( temp int) 0:128 c1: direct index for structure ( uniform int) 0:128 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:128 Constant: 0:128 0 (const uint) 0:128 move second child to first child ( temp 2-component vector of int) 0:128 'storeTempPre' ( temp 2-component vector of int) 0:128 imageLoad ( temp 2-component vector of int) 0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 move second child to first child ( temp 2-component vector of int) 0:128 'storeTempPost' ( temp 2-component vector of int) 0:128 'storeTempPre' ( temp 2-component vector of int) 0:128 Post-Increment ( temp 2-component vector of int) 0:128 'storeTempPost' ( temp 2-component vector of int) 0:128 imageStore ( temp void) 0:128 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:128 'coordTemp' ( temp int) 0:128 'storeTempPost' ( temp 2-component vector of int) 0:128 'storeTempPre' ( temp 2-component vector of int) 0:130 Sequence 0:130 move second child to first child ( temp int) 0:130 'coordTemp' ( temp int) 0:130 c1: direct index for structure ( uniform int) 0:130 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:130 Constant: 0:130 0 (const uint) 0:130 move second child to first child ( temp 2-component vector of float) 0:130 'storeTempPre' ( temp 2-component vector of float) 0:130 imageLoad ( temp 2-component vector of float) 0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 move second child to first child ( temp 2-component vector of float) 0:130 'storeTempPost' ( temp 2-component vector of float) 0:130 'storeTempPre' ( temp 2-component vector of float) 0:130 Post-Decrement ( temp 2-component vector of float) 0:130 'storeTempPost' ( temp 2-component vector of float) 0:130 imageStore ( temp void) 0:130 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:130 'coordTemp' ( temp int) 0:130 'storeTempPost' ( temp 2-component vector of float) 0:130 'storeTempPre' ( temp 2-component vector of float) 0:131 Sequence 0:131 move second child to first child ( temp int) 0:131 'coordTemp' ( temp int) 0:131 c1: direct index for structure ( uniform int) 0:131 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:131 Constant: 0:131 0 (const uint) 0:131 move second child to first child ( temp 2-component vector of int) 0:131 'storeTempPre' ( temp 2-component vector of int) 0:131 imageLoad ( temp 2-component vector of int) 0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 move second child to first child ( temp 2-component vector of int) 0:131 'storeTempPost' ( temp 2-component vector of int) 0:131 'storeTempPre' ( temp 2-component vector of int) 0:131 Post-Increment ( temp 2-component vector of int) 0:131 'storeTempPost' ( temp 2-component vector of int) 0:131 imageStore ( temp void) 0:131 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:131 'coordTemp' ( temp int) 0:131 'storeTempPost' ( temp 2-component vector of int) 0:131 'storeTempPre' ( temp 2-component vector of int) 0:132 Sequence 0:132 move second child to first child ( temp int) 0:132 'coordTemp' ( temp int) 0:132 c1: direct index for structure ( uniform int) 0:132 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:132 Constant: 0:132 0 (const uint) 0:132 move second child to first child ( temp 2-component vector of uint) 0:132 'storeTempPre' ( temp 2-component vector of uint) 0:132 imageLoad ( temp 2-component vector of uint) 0:132 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 move second child to first child ( temp 2-component vector of uint) 0:132 'storeTempPost' ( temp 2-component vector of uint) 0:132 'storeTempPre' ( temp 2-component vector of uint) 0:132 Post-Decrement ( temp 2-component vector of uint) 0:132 'storeTempPost' ( temp 2-component vector of uint) 0:132 imageStore ( temp void) 0:132 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:132 'coordTemp' ( temp int) 0:132 'storeTempPost' ( temp 2-component vector of uint) 0:132 'storeTempPre' ( temp 2-component vector of uint) 0:135 Sequence 0:135 move second child to first child ( temp 2-component vector of float) 0:135 'storeTemp' ( temp 2-component vector of float) 0:? imageLoad ( temp 2-component vector of float) 0:135 'g_tTex2df2' (layout( rg32f) uniform image2D) 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:135 imageStore ( temp void) 0:135 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:135 Constant: 0:135 1 (const int) 0:135 'storeTemp' ( temp 2-component vector of float) 0:135 'storeTemp' ( temp 2-component vector of float) 0:137 move second child to first child ( temp 4-component vector of float) 0:137 Color: direct index for structure ( temp 4-component vector of float) 0:137 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:137 Constant: 0:137 0 (const int) 0:137 Constant: 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:137 1.000000 0:139 Branch: Return with expression 0:139 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:53 Function Definition: main( ( temp void) 0:53 Function Parameters: 0:? Sequence 0:53 Sequence 0:53 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:53 Color: direct index for structure ( temp 4-component vector of float) 0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:53 Constant: 0:53 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df2' (layout( rg32f) uniform image1D) 0:? 'g_tTex1di2' (layout( rg32i) uniform iimage1D) 0:? 'g_tTex1du2' (layout( rg32ui) uniform uimage1D) 0:? 'g_tTex2df2' (layout( rg32f) uniform image2D) 0:? 'g_tTex2di2' (layout( rg32i) uniform iimage2D) 0:? 'g_tTex2du2' (layout( rg32ui) uniform uimage2D) 0:? 'g_tTex3df2' (layout( rg32f) uniform image3D) 0:? 'g_tTex3di2' (layout( rg32i) uniform iimage3D) 0:? 'g_tTex3du2' (layout( rg32ui) uniform uimage3D) 0:? 'g_tTex1df2a' (layout( rg32f) uniform image1DArray) 0:? 'g_tTex1di2a' (layout( rg32i) uniform iimage1DArray) 0:? 'g_tTex1du2a' (layout( rg32ui) uniform uimage1DArray) 0:? 'g_tTex2df2a' (layout( rg32f) uniform image2DArray) 0:? 'g_tTex2di2a' (layout( rg32i) uniform iimage2DArray) 0:? 'g_tTex2du2a' (layout( rg32ui) uniform uimage2DArray) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int c1, uniform 2-component vector of int c2, uniform 3-component vector of int c3, uniform 4-component vector of int c4, uniform int o1, uniform 2-component vector of int o2, uniform 3-component vector of int o3, uniform 4-component vector of int o4, uniform 2-component vector of float uf2, uniform 2-component vector of int ui2, uniform 2-component vector of uint uu2}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 605 Capability Shader Capability Image1D Capability StorageImageExtendedFormats 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 581 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 11 "Fn1(vi2;" Name 10 "x" Name 18 "Fn1(vu2;" Name 17 "x" Name 25 "Fn1(vf2;" Name 24 "x" Name 29 "Fn2(vi2;" Name 28 "x" Name 33 "Fn2(vu2;" Name 32 "x" Name 37 "Fn2(vf2;" Name 36 "x" Name 40 "SomeValue(" Name 43 "PS_OUTPUT" MemberName 43(PS_OUTPUT) 0 "Color" Name 45 "@main(" Name 64 "$Global" MemberName 64($Global) 0 "c1" MemberName 64($Global) 1 "c2" MemberName 64($Global) 2 "c3" MemberName 64($Global) 3 "c4" MemberName 64($Global) 4 "o1" MemberName 64($Global) 5 "o2" MemberName 64($Global) 6 "o3" MemberName 64($Global) 7 "o4" MemberName 64($Global) 8 "uf2" MemberName 64($Global) 9 "ui2" MemberName 64($Global) 10 "uu2" Name 66 "" Name 76 "g_tTex1df2" Name 82 "r00" Name 87 "r01" Name 90 "g_tTex1di2" Name 95 "r02" Name 98 "g_tTex1du2" Name 103 "r10" Name 106 "g_tTex2df2" Name 111 "r11" Name 114 "g_tTex2di2" Name 119 "r12" Name 122 "g_tTex2du2" Name 127 "r20" Name 130 "g_tTex3df2" Name 137 "r21" Name 140 "g_tTex3di2" Name 145 "r22" Name 148 "g_tTex3du2" Name 153 "lf2" Name 158 "storeTemp" Name 168 "storeTemp" Name 174 "storeTemp" Name 182 "val1" Name 184 "coordTemp" Name 187 "storeTemp" Name 198 "coordTemp" Name 201 "storeTemp" Name 212 "coordTemp" Name 215 "storeTemp" Name 226 "coordTemp" Name 229 "storeTemp" Name 239 "coordTemp" Name 242 "storeTemp" Name 252 "coordTemp" Name 255 "storeTemp" Name 266 "coordTemp" Name 269 "storeTemp" Name 280 "coordTemp" Name 283 "storeTemp" Name 293 "coordTemp" Name 296 "storeTemp" Name 306 "storeTemp" Name 316 "storeTemp" Name 323 "storeTemp" Name 330 "storeTemp" Name 340 "storeTemp" Name 347 "storeTemp" Name 358 "param" Name 364 "param" Name 370 "param" Name 372 "tempArg" Name 373 "param" Name 380 "tempArg" Name 381 "param" Name 388 "tempArg" Name 389 "param" Name 396 "coordTemp" Name 399 "storeTemp" Name 410 "coordTemp" Name 413 "storeTemp" Name 423 "coordTemp" Name 426 "storeTemp" Name 436 "coordTemp" Name 439 "storeTemp" Name 449 "coordTemp" Name 452 "storeTemp" Name 462 "coordTemp" Name 465 "storeTemp" Name 475 "coordTemp" Name 478 "storeTempPre" Name 482 "storeTempPost" Name 490 "coordTemp" Name 493 "storeTempPre" Name 497 "storeTempPost" Name 505 "coordTemp" Name 508 "storeTempPre" Name 512 "storeTempPost" Name 520 "coordTemp" Name 523 "storeTempPre" Name 527 "storeTempPost" Name 535 "coordTemp" Name 538 "storeTempPre" Name 542 "storeTempPost" Name 550 "coordTemp" Name 553 "storeTempPre" Name 557 "storeTempPost" Name 565 "storeTemp" Name 573 "psout" Name 581 "@entryPointOutput.Color" Name 586 "g_sSamp" Name 589 "g_tTex1df2a" Name 592 "g_tTex1di2a" Name 595 "g_tTex1du2a" Name 598 "g_tTex2df2a" Name 601 "g_tTex2di2a" Name 604 "g_tTex2du2a" MemberDecorate 64($Global) 0 Offset 0 MemberDecorate 64($Global) 1 Offset 8 MemberDecorate 64($Global) 2 Offset 16 MemberDecorate 64($Global) 3 Offset 32 MemberDecorate 64($Global) 4 Offset 48 MemberDecorate 64($Global) 5 Offset 56 MemberDecorate 64($Global) 6 Offset 64 MemberDecorate 64($Global) 7 Offset 80 MemberDecorate 64($Global) 8 Offset 96 MemberDecorate 64($Global) 9 Offset 104 MemberDecorate 64($Global) 10 Offset 112 Decorate 64($Global) Block Decorate 66 DescriptorSet 0 Decorate 66 Binding 0 Decorate 76(g_tTex1df2) DescriptorSet 0 Decorate 76(g_tTex1df2) Binding 0 Decorate 90(g_tTex1di2) DescriptorSet 0 Decorate 90(g_tTex1di2) Binding 0 Decorate 98(g_tTex1du2) DescriptorSet 0 Decorate 98(g_tTex1du2) Binding 0 Decorate 106(g_tTex2df2) DescriptorSet 0 Decorate 106(g_tTex2df2) Binding 0 Decorate 114(g_tTex2di2) DescriptorSet 0 Decorate 114(g_tTex2di2) Binding 0 Decorate 122(g_tTex2du2) DescriptorSet 0 Decorate 122(g_tTex2du2) Binding 0 Decorate 130(g_tTex3df2) DescriptorSet 0 Decorate 130(g_tTex3df2) Binding 0 Decorate 140(g_tTex3di2) DescriptorSet 0 Decorate 140(g_tTex3di2) Binding 0 Decorate 148(g_tTex3du2) DescriptorSet 0 Decorate 148(g_tTex3du2) Binding 0 Decorate 581(@entryPointOutput.Color) Location 0 Decorate 586(g_sSamp) DescriptorSet 0 Decorate 586(g_sSamp) Binding 0 Decorate 589(g_tTex1df2a) DescriptorSet 0 Decorate 589(g_tTex1df2a) Binding 0 Decorate 592(g_tTex1di2a) DescriptorSet 0 Decorate 592(g_tTex1di2a) Binding 0 Decorate 595(g_tTex1du2a) DescriptorSet 0 Decorate 595(g_tTex1du2a) Binding 0 Decorate 598(g_tTex2df2a) DescriptorSet 0 Decorate 598(g_tTex2df2a) Binding 0 Decorate 601(g_tTex2di2a) DescriptorSet 0 Decorate 601(g_tTex2di2a) Binding 0 Decorate 604(g_tTex2du2a) DescriptorSet 0 Decorate 604(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) 88: TypeImage 6(int) 1D nonsampled format:Rg32i 89: TypePointer UniformConstant 88 90(g_tTex1di2): 89(ptr) Variable UniformConstant 96: TypeImage 13(int) 1D nonsampled format:Rg32ui 97: TypePointer UniformConstant 96 98(g_tTex1du2): 97(ptr) Variable UniformConstant 104: TypeImage 20(float) 2D nonsampled format:Rg32f 105: TypePointer UniformConstant 104 106(g_tTex2df2): 105(ptr) Variable UniformConstant 112: TypeImage 6(int) 2D nonsampled format:Rg32i 113: TypePointer UniformConstant 112 114(g_tTex2di2): 113(ptr) Variable UniformConstant 120: TypeImage 13(int) 2D nonsampled format:Rg32ui 121: TypePointer UniformConstant 120 122(g_tTex2du2): 121(ptr) Variable UniformConstant 128: TypeImage 20(float) 3D nonsampled format:Rg32f 129: TypePointer UniformConstant 128 130(g_tTex3df2): 129(ptr) Variable UniformConstant 132: 6(int) Constant 2 133: TypePointer Uniform 62(ivec3) 138: TypeImage 6(int) 3D nonsampled format:Rg32i 139: TypePointer UniformConstant 138 140(g_tTex3di2): 139(ptr) Variable UniformConstant 146: TypeImage 13(int) 3D nonsampled format:Rg32ui 147: TypePointer UniformConstant 146 148(g_tTex3du2): 147(ptr) Variable UniformConstant 154: 6(int) Constant 8 155: TypePointer Uniform 21(fvec2) 169: 7(ivec2) ConstantComposite 132 132 175: 13(int) Constant 3 176: 13(int) Constant 2 177: 14(ivec2) ConstantComposite 175 176 183: TypePointer Function 6(int) 191: 20(float) Constant 1073741824 205: 20(float) Constant 1077936128 219: 20(float) Constant 1082130432 259: 6(int) Constant 65535 273: 6(int) Constant 61680 317: 6(int) Constant 5 318: 7(ivec2) ConstantComposite 317 132 324: 13(int) Constant 6 325: 14(ivec2) ConstantComposite 324 176 341: 6(int) Constant 6 342: 7(ivec2) ConstantComposite 154 341 348: 13(int) Constant 9 349: 14(ivec2) ConstantComposite 348 176 404: 20(float) Constant 1065353216 567: 6(int) Constant 3 568: 7(ivec2) ConstantComposite 132 567 572: TypePointer Function 43(PS_OUTPUT) 574: 42(fvec4) ConstantComposite 404 404 404 404 575: TypePointer Function 42(fvec4) 580: TypePointer Output 42(fvec4) 581(@entryPointOutput.Color): 580(ptr) Variable Output 584: TypeSampler 585: TypePointer UniformConstant 584 586(g_sSamp): 585(ptr) Variable UniformConstant 587: TypeImage 20(float) 1D array nonsampled format:Rg32f 588: TypePointer UniformConstant 587 589(g_tTex1df2a): 588(ptr) Variable UniformConstant 590: TypeImage 6(int) 1D array nonsampled format:Rg32i 591: TypePointer UniformConstant 590 592(g_tTex1di2a): 591(ptr) Variable UniformConstant 593: TypeImage 13(int) 1D array nonsampled format:Rg32ui 594: TypePointer UniformConstant 593 595(g_tTex1du2a): 594(ptr) Variable UniformConstant 596: TypeImage 20(float) 2D array nonsampled format:Rg32f 597: TypePointer UniformConstant 596 598(g_tTex2df2a): 597(ptr) Variable UniformConstant 599: TypeImage 6(int) 2D array nonsampled format:Rg32i 600: TypePointer UniformConstant 599 601(g_tTex2di2a): 600(ptr) Variable UniformConstant 602: TypeImage 13(int) 2D array nonsampled format:Rg32ui 603: TypePointer UniformConstant 602 604(g_tTex2du2a): 603(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 582:43(PS_OUTPUT) FunctionCall 45(@main() 583: 42(fvec4) CompositeExtract 582 0 Store 581(@entryPointOutput.Color) 583 Return FunctionEnd 11(Fn1(vi2;): 7(ivec2) Function None 9 10(x): 8(ptr) FunctionParameter 12: Label 47: 7(ivec2) Load 10(x) ReturnValue 47 FunctionEnd 18(Fn1(vu2;): 14(ivec2) Function None 16 17(x): 15(ptr) FunctionParameter 19: Label 50: 14(ivec2) Load 17(x) ReturnValue 50 FunctionEnd 25(Fn1(vf2;): 21(fvec2) Function None 23 24(x): 22(ptr) FunctionParameter 26: Label 53: 21(fvec2) Load 24(x) ReturnValue 53 FunctionEnd 29(Fn2(vi2;): 2 Function None 27 28(x): 8(ptr) FunctionParameter 30: Label Store 28(x) 57 Return FunctionEnd 33(Fn2(vu2;): 2 Function None 31 32(x): 15(ptr) FunctionParameter 34: Label Store 32(x) 59 Return FunctionEnd 37(Fn2(vf2;): 2 Function None 35 36(x): 22(ptr) FunctionParameter 38: Label Store 36(x) 61 Return FunctionEnd 40(SomeValue(): 21(fvec2) Function None 39 41: Label 69: 68(ptr) AccessChain 66 67 70: 7(ivec2) Load 69 71: 21(fvec2) ConvertSToF 70 ReturnValue 71 FunctionEnd 45(@main():43(PS_OUTPUT) Function None 44 46: Label 82(r00): 22(ptr) Variable Function 87(r01): 8(ptr) Variable Function 95(r02): 15(ptr) Variable Function 103(r10): 22(ptr) Variable Function 111(r11): 8(ptr) Variable Function 119(r12): 15(ptr) Variable Function 127(r20): 22(ptr) Variable Function 137(r21): 8(ptr) Variable Function 145(r22): 15(ptr) Variable Function 153(lf2): 22(ptr) Variable Function 158(storeTemp): 22(ptr) Variable Function 168(storeTemp): 8(ptr) Variable Function 174(storeTemp): 15(ptr) Variable Function 182(val1): 22(ptr) Variable Function 184(coordTemp): 183(ptr) Variable Function 187(storeTemp): 22(ptr) Variable Function 198(coordTemp): 183(ptr) Variable Function 201(storeTemp): 22(ptr) Variable Function 212(coordTemp): 183(ptr) Variable Function 215(storeTemp): 22(ptr) Variable Function 226(coordTemp): 183(ptr) Variable Function 229(storeTemp): 8(ptr) Variable Function 239(coordTemp): 183(ptr) Variable Function 242(storeTemp): 8(ptr) Variable Function 252(coordTemp): 183(ptr) Variable Function 255(storeTemp): 8(ptr) Variable Function 266(coordTemp): 183(ptr) Variable Function 269(storeTemp): 8(ptr) Variable Function 280(coordTemp): 183(ptr) Variable Function 283(storeTemp): 8(ptr) Variable Function 293(coordTemp): 183(ptr) Variable Function 296(storeTemp): 8(ptr) Variable Function 306(storeTemp): 22(ptr) Variable Function 316(storeTemp): 8(ptr) Variable Function 323(storeTemp): 15(ptr) Variable Function 330(storeTemp): 22(ptr) Variable Function 340(storeTemp): 8(ptr) Variable Function 347(storeTemp): 15(ptr) Variable Function 358(param): 22(ptr) Variable Function 364(param): 8(ptr) Variable Function 370(param): 15(ptr) Variable Function 372(tempArg): 22(ptr) Variable Function 373(param): 22(ptr) Variable Function 380(tempArg): 8(ptr) Variable Function 381(param): 8(ptr) Variable Function 388(tempArg): 15(ptr) Variable Function 389(param): 15(ptr) Variable Function 396(coordTemp): 183(ptr) Variable Function 399(storeTemp): 22(ptr) Variable Function 410(coordTemp): 183(ptr) Variable Function 413(storeTemp): 8(ptr) Variable Function 423(coordTemp): 183(ptr) Variable Function 426(storeTemp): 15(ptr) Variable Function 436(coordTemp): 183(ptr) Variable Function 439(storeTemp): 22(ptr) Variable Function 449(coordTemp): 183(ptr) Variable Function 452(storeTemp): 8(ptr) Variable Function 462(coordTemp): 183(ptr) Variable Function 465(storeTemp): 15(ptr) Variable Function 475(coordTemp): 183(ptr) Variable Function 478(storeTempPre): 22(ptr) Variable Function 482(storeTempPost): 22(ptr) Variable Function 490(coordTemp): 183(ptr) Variable Function 493(storeTempPre): 15(ptr) Variable Function 497(storeTempPost): 15(ptr) Variable Function 505(coordTemp): 183(ptr) Variable Function 508(storeTempPre): 8(ptr) Variable Function 512(storeTempPost): 8(ptr) Variable Function 520(coordTemp): 183(ptr) Variable Function 523(storeTempPre): 22(ptr) Variable Function 527(storeTempPost): 22(ptr) Variable Function 535(coordTemp): 183(ptr) Variable Function 538(storeTempPre): 8(ptr) Variable Function 542(storeTempPost): 8(ptr) Variable Function 550(coordTemp): 183(ptr) Variable Function 553(storeTempPre): 15(ptr) Variable Function 557(storeTempPost): 15(ptr) Variable Function 565(storeTemp): 22(ptr) Variable Function 573(psout): 572(ptr) Variable Function 77: 74 Load 76(g_tTex1df2) 79: 78(ptr) AccessChain 66 56 80: 6(int) Load 79 81: 21(fvec2) ImageRead 77 80 83: 74 Load 76(g_tTex1df2) 84: 78(ptr) AccessChain 66 56 85: 6(int) Load 84 86: 21(fvec2) ImageRead 83 85 Store 82(r00) 86 91: 88 Load 90(g_tTex1di2) 92: 78(ptr) AccessChain 66 56 93: 6(int) Load 92 94: 7(ivec2) ImageRead 91 93 Store 87(r01) 94 99: 96 Load 98(g_tTex1du2) 100: 78(ptr) AccessChain 66 56 101: 6(int) Load 100 102: 14(ivec2) ImageRead 99 101 Store 95(r02) 102 107: 104 Load 106(g_tTex2df2) 108: 68(ptr) AccessChain 66 67 109: 7(ivec2) Load 108 110: 21(fvec2) ImageRead 107 109 Store 103(r10) 110 115: 112 Load 114(g_tTex2di2) 116: 68(ptr) AccessChain 66 67 117: 7(ivec2) Load 116 118: 7(ivec2) ImageRead 115 117 Store 111(r11) 118 123: 120 Load 122(g_tTex2du2) 124: 68(ptr) AccessChain 66 67 125: 7(ivec2) Load 124 126: 14(ivec2) ImageRead 123 125 Store 119(r12) 126 131: 128 Load 130(g_tTex3df2) 134: 133(ptr) AccessChain 66 132 135: 62(ivec3) Load 134 136: 21(fvec2) ImageRead 131 135 Store 127(r20) 136 141: 138 Load 140(g_tTex3di2) 142: 133(ptr) AccessChain 66 132 143: 62(ivec3) Load 142 144: 7(ivec2) ImageRead 141 143 Store 137(r21) 144 149: 146 Load 148(g_tTex3du2) 150: 133(ptr) AccessChain 66 132 151: 62(ivec3) Load 150 152: 14(ivec2) ImageRead 149 151 Store 145(r22) 152 156: 155(ptr) AccessChain 66 154 157: 21(fvec2) Load 156 Store 153(lf2) 157 159: 21(fvec2) FunctionCall 40(SomeValue() Store 158(storeTemp) 159 160: 74 Load 76(g_tTex1df2) 161: 78(ptr) AccessChain 66 56 162: 6(int) Load 161 163: 21(fvec2) Load 158(storeTemp) ImageWrite 160 162 163 164: 74 Load 76(g_tTex1df2) 165: 78(ptr) AccessChain 66 56 166: 6(int) Load 165 167: 21(fvec2) Load 153(lf2) ImageWrite 164 166 167 Store 168(storeTemp) 169 170: 88 Load 90(g_tTex1di2) 171: 78(ptr) AccessChain 66 56 172: 6(int) Load 171 173: 7(ivec2) Load 168(storeTemp) ImageWrite 170 172 173 Store 174(storeTemp) 177 178: 96 Load 98(g_tTex1du2) 179: 78(ptr) AccessChain 66 56 180: 6(int) Load 179 181: 14(ivec2) Load 174(storeTemp) ImageWrite 178 180 181 185: 78(ptr) AccessChain 66 56 186: 6(int) Load 185 Store 184(coordTemp) 186 188: 74 Load 76(g_tTex1df2) 189: 6(int) Load 184(coordTemp) 190: 21(fvec2) ImageRead 188 189 Store 187(storeTemp) 190 192: 21(fvec2) Load 187(storeTemp) 193: 21(fvec2) VectorTimesScalar 192 191 Store 187(storeTemp) 193 194: 74 Load 76(g_tTex1df2) 195: 6(int) Load 184(coordTemp) 196: 21(fvec2) Load 187(storeTemp) ImageWrite 194 195 196 197: 21(fvec2) Load 187(storeTemp) Store 182(val1) 197 199: 78(ptr) AccessChain 66 56 200: 6(int) Load 199 Store 198(coordTemp) 200 202: 74 Load 76(g_tTex1df2) 203: 6(int) Load 198(coordTemp) 204: 21(fvec2) ImageRead 202 203 Store 201(storeTemp) 204 206: 21(fvec2) Load 201(storeTemp) 207: 21(fvec2) CompositeConstruct 205 205 208: 21(fvec2) FSub 206 207 Store 201(storeTemp) 208 209: 74 Load 76(g_tTex1df2) 210: 6(int) Load 198(coordTemp) 211: 21(fvec2) Load 201(storeTemp) ImageWrite 209 210 211 213: 78(ptr) AccessChain 66 56 214: 6(int) Load 213 Store 212(coordTemp) 214 216: 74 Load 76(g_tTex1df2) 217: 6(int) Load 212(coordTemp) 218: 21(fvec2) ImageRead 216 217 Store 215(storeTemp) 218 220: 21(fvec2) Load 215(storeTemp) 221: 21(fvec2) CompositeConstruct 219 219 222: 21(fvec2) FAdd 220 221 Store 215(storeTemp) 222 223: 74 Load 76(g_tTex1df2) 224: 6(int) Load 212(coordTemp) 225: 21(fvec2) Load 215(storeTemp) ImageWrite 223 224 225 227: 78(ptr) AccessChain 66 56 228: 6(int) Load 227 Store 226(coordTemp) 228 230: 88 Load 90(g_tTex1di2) 231: 6(int) Load 226(coordTemp) 232: 7(ivec2) ImageRead 230 231 Store 229(storeTemp) 232 233: 7(ivec2) Load 229(storeTemp) 234: 7(ivec2) CompositeConstruct 132 132 235: 7(ivec2) SDiv 233 234 Store 229(storeTemp) 235 236: 88 Load 90(g_tTex1di2) 237: 6(int) Load 226(coordTemp) 238: 7(ivec2) Load 229(storeTemp) ImageWrite 236 237 238 240: 78(ptr) AccessChain 66 56 241: 6(int) Load 240 Store 239(coordTemp) 241 243: 88 Load 90(g_tTex1di2) 244: 6(int) Load 239(coordTemp) 245: 7(ivec2) ImageRead 243 244 Store 242(storeTemp) 245 246: 7(ivec2) Load 242(storeTemp) 247: 7(ivec2) CompositeConstruct 132 132 248: 7(ivec2) SMod 246 247 Store 242(storeTemp) 248 249: 88 Load 90(g_tTex1di2) 250: 6(int) Load 239(coordTemp) 251: 7(ivec2) Load 242(storeTemp) ImageWrite 249 250 251 253: 78(ptr) AccessChain 66 56 254: 6(int) Load 253 Store 252(coordTemp) 254 256: 88 Load 90(g_tTex1di2) 257: 6(int) Load 252(coordTemp) 258: 7(ivec2) ImageRead 256 257 Store 255(storeTemp) 258 260: 7(ivec2) Load 255(storeTemp) 261: 7(ivec2) CompositeConstruct 259 259 262: 7(ivec2) BitwiseAnd 260 261 Store 255(storeTemp) 262 263: 88 Load 90(g_tTex1di2) 264: 6(int) Load 252(coordTemp) 265: 7(ivec2) Load 255(storeTemp) ImageWrite 263 264 265 267: 78(ptr) AccessChain 66 56 268: 6(int) Load 267 Store 266(coordTemp) 268 270: 88 Load 90(g_tTex1di2) 271: 6(int) Load 266(coordTemp) 272: 7(ivec2) ImageRead 270 271 Store 269(storeTemp) 272 274: 7(ivec2) Load 269(storeTemp) 275: 7(ivec2) CompositeConstruct 273 273 276: 7(ivec2) BitwiseOr 274 275 Store 269(storeTemp) 276 277: 88 Load 90(g_tTex1di2) 278: 6(int) Load 266(coordTemp) 279: 7(ivec2) Load 269(storeTemp) ImageWrite 277 278 279 281: 78(ptr) AccessChain 66 56 282: 6(int) Load 281 Store 280(coordTemp) 282 284: 88 Load 90(g_tTex1di2) 285: 6(int) Load 280(coordTemp) 286: 7(ivec2) ImageRead 284 285 Store 283(storeTemp) 286 287: 7(ivec2) Load 283(storeTemp) 288: 7(ivec2) CompositeConstruct 132 132 289: 7(ivec2) ShiftLeftLogical 287 288 Store 283(storeTemp) 289 290: 88 Load 90(g_tTex1di2) 291: 6(int) Load 280(coordTemp) 292: 7(ivec2) Load 283(storeTemp) ImageWrite 290 291 292 294: 78(ptr) AccessChain 66 56 295: 6(int) Load 294 Store 293(coordTemp) 295 297: 88 Load 90(g_tTex1di2) 298: 6(int) Load 293(coordTemp) 299: 7(ivec2) ImageRead 297 298 Store 296(storeTemp) 299 300: 7(ivec2) Load 296(storeTemp) 301: 7(ivec2) CompositeConstruct 132 132 302: 7(ivec2) ShiftRightArithmetic 300 301 Store 296(storeTemp) 302 303: 88 Load 90(g_tTex1di2) 304: 6(int) Load 293(coordTemp) 305: 7(ivec2) Load 296(storeTemp) ImageWrite 303 304 305 307: 21(fvec2) FunctionCall 40(SomeValue() Store 306(storeTemp) 307 308: 104 Load 106(g_tTex2df2) 309: 68(ptr) AccessChain 66 67 310: 7(ivec2) Load 309 311: 21(fvec2) Load 306(storeTemp) ImageWrite 308 310 311 312: 104 Load 106(g_tTex2df2) 313: 68(ptr) AccessChain 66 67 314: 7(ivec2) Load 313 315: 21(fvec2) Load 153(lf2) ImageWrite 312 314 315 Store 316(storeTemp) 318 319: 112 Load 114(g_tTex2di2) 320: 68(ptr) AccessChain 66 67 321: 7(ivec2) Load 320 322: 7(ivec2) Load 316(storeTemp) ImageWrite 319 321 322 Store 323(storeTemp) 325 326: 120 Load 122(g_tTex2du2) 327: 68(ptr) AccessChain 66 67 328: 7(ivec2) Load 327 329: 14(ivec2) Load 323(storeTemp) ImageWrite 326 328 329 331: 21(fvec2) FunctionCall 40(SomeValue() Store 330(storeTemp) 331 332: 128 Load 130(g_tTex3df2) 333: 133(ptr) AccessChain 66 132 334: 62(ivec3) Load 333 335: 21(fvec2) Load 330(storeTemp) ImageWrite 332 334 335 336: 128 Load 130(g_tTex3df2) 337: 133(ptr) AccessChain 66 132 338: 62(ivec3) Load 337 339: 21(fvec2) Load 153(lf2) ImageWrite 336 338 339 Store 340(storeTemp) 342 343: 138 Load 140(g_tTex3di2) 344: 133(ptr) AccessChain 66 132 345: 62(ivec3) Load 344 346: 7(ivec2) Load 340(storeTemp) ImageWrite 343 345 346 Store 347(storeTemp) 349 350: 146 Load 148(g_tTex3du2) 351: 133(ptr) AccessChain 66 132 352: 62(ivec3) Load 351 353: 14(ivec2) Load 347(storeTemp) ImageWrite 350 352 353 354: 74 Load 76(g_tTex1df2) 355: 78(ptr) AccessChain 66 56 356: 6(int) Load 355 357: 21(fvec2) ImageRead 354 356 Store 358(param) 357 359: 21(fvec2) FunctionCall 25(Fn1(vf2;) 358(param) 360: 88 Load 90(g_tTex1di2) 361: 78(ptr) AccessChain 66 56 362: 6(int) Load 361 363: 7(ivec2) ImageRead 360 362 Store 364(param) 363 365: 7(ivec2) FunctionCall 11(Fn1(vi2;) 364(param) 366: 96 Load 98(g_tTex1du2) 367: 78(ptr) AccessChain 66 56 368: 6(int) Load 367 369: 14(ivec2) ImageRead 366 368 Store 370(param) 369 371: 14(ivec2) FunctionCall 18(Fn1(vu2;) 370(param) 374: 2 FunctionCall 37(Fn2(vf2;) 373(param) 375: 21(fvec2) Load 373(param) Store 372(tempArg) 375 376: 74 Load 76(g_tTex1df2) 377: 78(ptr) AccessChain 66 56 378: 6(int) Load 377 379: 21(fvec2) Load 372(tempArg) ImageWrite 376 378 379 382: 2 FunctionCall 29(Fn2(vi2;) 381(param) 383: 7(ivec2) Load 381(param) Store 380(tempArg) 383 384: 88 Load 90(g_tTex1di2) 385: 78(ptr) AccessChain 66 56 386: 6(int) Load 385 387: 7(ivec2) Load 380(tempArg) ImageWrite 384 386 387 390: 2 FunctionCall 33(Fn2(vu2;) 389(param) 391: 14(ivec2) Load 389(param) Store 388(tempArg) 391 392: 96 Load 98(g_tTex1du2) 393: 78(ptr) AccessChain 66 56 394: 6(int) Load 393 395: 14(ivec2) Load 388(tempArg) ImageWrite 392 394 395 397: 78(ptr) AccessChain 66 56 398: 6(int) Load 397 Store 396(coordTemp) 398 400: 74 Load 76(g_tTex1df2) 401: 6(int) Load 396(coordTemp) 402: 21(fvec2) ImageRead 400 401 Store 399(storeTemp) 402 403: 21(fvec2) Load 399(storeTemp) 405: 21(fvec2) CompositeConstruct 404 404 406: 21(fvec2) FAdd 403 405 Store 399(storeTemp) 406 407: 74 Load 76(g_tTex1df2) 408: 6(int) Load 396(coordTemp) 409: 21(fvec2) Load 399(storeTemp) ImageWrite 407 408 409 411: 78(ptr) AccessChain 66 56 412: 6(int) Load 411 Store 410(coordTemp) 412 414: 88 Load 90(g_tTex1di2) 415: 6(int) Load 410(coordTemp) 416: 7(ivec2) ImageRead 414 415 Store 413(storeTemp) 416 417: 7(ivec2) Load 413(storeTemp) 418: 7(ivec2) CompositeConstruct 67 67 419: 7(ivec2) IAdd 417 418 Store 413(storeTemp) 419 420: 88 Load 90(g_tTex1di2) 421: 6(int) Load 410(coordTemp) 422: 7(ivec2) Load 413(storeTemp) ImageWrite 420 421 422 424: 78(ptr) AccessChain 66 56 425: 6(int) Load 424 Store 423(coordTemp) 425 427: 96 Load 98(g_tTex1du2) 428: 6(int) Load 423(coordTemp) 429: 14(ivec2) ImageRead 427 428 Store 426(storeTemp) 429 430: 14(ivec2) Load 426(storeTemp) 431: 7(ivec2) CompositeConstruct 67 67 432: 14(ivec2) IAdd 430 431 Store 426(storeTemp) 432 433: 96 Load 98(g_tTex1du2) 434: 6(int) Load 423(coordTemp) 435: 14(ivec2) Load 426(storeTemp) ImageWrite 433 434 435 437: 78(ptr) AccessChain 66 56 438: 6(int) Load 437 Store 436(coordTemp) 438 440: 74 Load 76(g_tTex1df2) 441: 6(int) Load 436(coordTemp) 442: 21(fvec2) ImageRead 440 441 Store 439(storeTemp) 442 443: 21(fvec2) Load 439(storeTemp) 444: 21(fvec2) CompositeConstruct 404 404 445: 21(fvec2) FSub 443 444 Store 439(storeTemp) 445 446: 74 Load 76(g_tTex1df2) 447: 6(int) Load 436(coordTemp) 448: 21(fvec2) Load 439(storeTemp) ImageWrite 446 447 448 450: 78(ptr) AccessChain 66 56 451: 6(int) Load 450 Store 449(coordTemp) 451 453: 88 Load 90(g_tTex1di2) 454: 6(int) Load 449(coordTemp) 455: 7(ivec2) ImageRead 453 454 Store 452(storeTemp) 455 456: 7(ivec2) Load 452(storeTemp) 457: 7(ivec2) CompositeConstruct 67 67 458: 7(ivec2) ISub 456 457 Store 452(storeTemp) 458 459: 88 Load 90(g_tTex1di2) 460: 6(int) Load 449(coordTemp) 461: 7(ivec2) Load 452(storeTemp) ImageWrite 459 460 461 463: 78(ptr) AccessChain 66 56 464: 6(int) Load 463 Store 462(coordTemp) 464 466: 96 Load 98(g_tTex1du2) 467: 6(int) Load 462(coordTemp) 468: 14(ivec2) ImageRead 466 467 Store 465(storeTemp) 468 469: 14(ivec2) Load 465(storeTemp) 470: 7(ivec2) CompositeConstruct 67 67 471: 14(ivec2) ISub 469 470 Store 465(storeTemp) 471 472: 96 Load 98(g_tTex1du2) 473: 6(int) Load 462(coordTemp) 474: 14(ivec2) Load 465(storeTemp) ImageWrite 472 473 474 476: 78(ptr) AccessChain 66 56 477: 6(int) Load 476 Store 475(coordTemp) 477 479: 74 Load 76(g_tTex1df2) 480: 6(int) Load 475(coordTemp) 481: 21(fvec2) ImageRead 479 480 Store 478(storeTempPre) 481 483: 21(fvec2) Load 478(storeTempPre) Store 482(storeTempPost) 483 484: 21(fvec2) Load 482(storeTempPost) 485: 21(fvec2) CompositeConstruct 404 404 486: 21(fvec2) FAdd 484 485 Store 482(storeTempPost) 486 487: 74 Load 76(g_tTex1df2) 488: 6(int) Load 475(coordTemp) 489: 21(fvec2) Load 482(storeTempPost) ImageWrite 487 488 489 491: 78(ptr) AccessChain 66 56 492: 6(int) Load 491 Store 490(coordTemp) 492 494: 96 Load 98(g_tTex1du2) 495: 6(int) Load 490(coordTemp) 496: 14(ivec2) ImageRead 494 495 Store 493(storeTempPre) 496 498: 14(ivec2) Load 493(storeTempPre) Store 497(storeTempPost) 498 499: 14(ivec2) Load 497(storeTempPost) 500: 7(ivec2) CompositeConstruct 67 67 501: 14(ivec2) ISub 499 500 Store 497(storeTempPost) 501 502: 96 Load 98(g_tTex1du2) 503: 6(int) Load 490(coordTemp) 504: 14(ivec2) Load 497(storeTempPost) ImageWrite 502 503 504 506: 78(ptr) AccessChain 66 56 507: 6(int) Load 506 Store 505(coordTemp) 507 509: 88 Load 90(g_tTex1di2) 510: 6(int) Load 505(coordTemp) 511: 7(ivec2) ImageRead 509 510 Store 508(storeTempPre) 511 513: 7(ivec2) Load 508(storeTempPre) Store 512(storeTempPost) 513 514: 7(ivec2) Load 512(storeTempPost) 515: 7(ivec2) CompositeConstruct 67 67 516: 7(ivec2) IAdd 514 515 Store 512(storeTempPost) 516 517: 88 Load 90(g_tTex1di2) 518: 6(int) Load 505(coordTemp) 519: 7(ivec2) Load 512(storeTempPost) ImageWrite 517 518 519 521: 78(ptr) AccessChain 66 56 522: 6(int) Load 521 Store 520(coordTemp) 522 524: 74 Load 76(g_tTex1df2) 525: 6(int) Load 520(coordTemp) 526: 21(fvec2) ImageRead 524 525 Store 523(storeTempPre) 526 528: 21(fvec2) Load 523(storeTempPre) Store 527(storeTempPost) 528 529: 21(fvec2) Load 527(storeTempPost) 530: 21(fvec2) CompositeConstruct 404 404 531: 21(fvec2) FSub 529 530 Store 527(storeTempPost) 531 532: 74 Load 76(g_tTex1df2) 533: 6(int) Load 520(coordTemp) 534: 21(fvec2) Load 527(storeTempPost) ImageWrite 532 533 534 536: 78(ptr) AccessChain 66 56 537: 6(int) Load 536 Store 535(coordTemp) 537 539: 88 Load 90(g_tTex1di2) 540: 6(int) Load 535(coordTemp) 541: 7(ivec2) ImageRead 539 540 Store 538(storeTempPre) 541 543: 7(ivec2) Load 538(storeTempPre) Store 542(storeTempPost) 543 544: 7(ivec2) Load 542(storeTempPost) 545: 7(ivec2) CompositeConstruct 67 67 546: 7(ivec2) IAdd 544 545 Store 542(storeTempPost) 546 547: 88 Load 90(g_tTex1di2) 548: 6(int) Load 535(coordTemp) 549: 7(ivec2) Load 542(storeTempPost) ImageWrite 547 548 549 551: 78(ptr) AccessChain 66 56 552: 6(int) Load 551 Store 550(coordTemp) 552 554: 96 Load 98(g_tTex1du2) 555: 6(int) Load 550(coordTemp) 556: 14(ivec2) ImageRead 554 555 Store 553(storeTempPre) 556 558: 14(ivec2) Load 553(storeTempPre) Store 557(storeTempPost) 558 559: 14(ivec2) Load 557(storeTempPost) 560: 7(ivec2) CompositeConstruct 67 67 561: 14(ivec2) ISub 559 560 Store 557(storeTempPost) 561 562: 96 Load 98(g_tTex1du2) 563: 6(int) Load 550(coordTemp) 564: 14(ivec2) Load 557(storeTempPost) ImageWrite 562 563 564 566: 104 Load 106(g_tTex2df2) 569: 21(fvec2) ImageRead 566 568 Store 565(storeTemp) 569 570: 74 Load 76(g_tTex1df2) 571: 21(fvec2) Load 565(storeTemp) ImageWrite 570 67 571 576: 575(ptr) AccessChain 573(psout) 56 Store 576 574 577:43(PS_OUTPUT) Load 573(psout) ReturnValue 577 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.sample.array.dx10.frag.out000066400000000000000000000665711360464450000245150ustar00rootroot00000000000000hlsl.sample.array.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval10' ( temp 4-component vector of float) 0:27 texture ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler1DArray) 0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval11' ( temp 4-component vector of int) 0:28 texture ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler1DArray) 0:28 'g_tTex1di4' ( uniform itexture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval12' ( temp 4-component vector of uint) 0:29 texture ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler1DArray) 0:29 'g_tTex1du4' ( uniform utexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval20' ( temp 4-component vector of float) 0:31 texture ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2DArray) 0:31 'g_tTex2df4' ( uniform texture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval21' ( temp 4-component vector of int) 0:32 texture ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler2DArray) 0:32 'g_tTex2di4' ( uniform itexture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval22' ( temp 4-component vector of uint) 0:33 texture ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler2DArray) 0:33 'g_tTex2du4' ( uniform utexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval40' ( temp 4-component vector of float) 0:35 texture ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp samplerCubeArray) 0:35 'g_tTexcdf4' ( uniform textureCubeArray) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval41' ( temp 4-component vector of int) 0:36 texture ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isamplerCubeArray) 0:36 'g_tTexcdi4' ( uniform itextureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval42' ( temp 4-component vector of uint) 0:37 texture ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usamplerCubeArray) 0:37 'g_tTexcdu4' ( uniform utextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? 1.000000 0:39 move second child to first child ( temp 4-component vector of float) 0:39 Color: direct index for structure ( temp 4-component vector of float) 0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp float) 0:40 Depth: direct index for structure ( temp float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Branch: Return with expression 0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? 'g_tTexcdf4' ( uniform textureCubeArray) 0:? 'g_tTexcdi4' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval10' ( temp 4-component vector of float) 0:27 texture ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler1DArray) 0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval11' ( temp 4-component vector of int) 0:28 texture ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler1DArray) 0:28 'g_tTex1di4' ( uniform itexture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval12' ( temp 4-component vector of uint) 0:29 texture ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler1DArray) 0:29 'g_tTex1du4' ( uniform utexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval20' ( temp 4-component vector of float) 0:31 texture ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2DArray) 0:31 'g_tTex2df4' ( uniform texture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval21' ( temp 4-component vector of int) 0:32 texture ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler2DArray) 0:32 'g_tTex2di4' ( uniform itexture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval22' ( temp 4-component vector of uint) 0:33 texture ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler2DArray) 0:33 'g_tTex2du4' ( uniform utexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval40' ( temp 4-component vector of float) 0:35 texture ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp samplerCubeArray) 0:35 'g_tTexcdf4' ( uniform textureCubeArray) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval41' ( temp 4-component vector of int) 0:36 texture ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isamplerCubeArray) 0:36 'g_tTexcdi4' ( uniform itextureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval42' ( temp 4-component vector of uint) 0:37 texture ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usamplerCubeArray) 0:37 'g_tTexcdu4' ( uniform utextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? 1.000000 0:39 move second child to first child ( temp 4-component vector of float) 0:39 Color: direct index for structure ( temp 4-component vector of float) 0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp float) 0:40 Depth: direct index for structure ( temp float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Branch: Return with expression 0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? 'g_tTexcdf4' ( uniform textureCubeArray) 0:? 'g_tTexcdi4' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 49(g_tTex1du4) DescriptorSet 0 Decorate 49(g_tTex1du4) Binding 0 Decorate 60(g_tTex2df4) DescriptorSet 0 Decorate 60(g_tTex2df4) Binding 0 Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 71(g_tTex2di4) Binding 0 Decorate 82(g_tTex2du4) DescriptorSet 0 Decorate 82(g_tTex2du4) Binding 0 Decorate 94(g_tTexcdf4) DescriptorSet 0 Decorate 94(g_tTexcdf4) Binding 0 Decorate 104(g_tTexcdi4) DescriptorSet 0 Decorate 104(g_tTexcdi4) Binding 0 Decorate 114(g_tTexcdu4) DescriptorSet 0 Decorate 114(g_tTexcdu4) Binding 0 Decorate 138(@entryPointOutput.Color) Location 0 Decorate 142(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 145(g_tTex1df4a) DescriptorSet 0 Decorate 145(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D array sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: TypeVector 6(float) 2 25: 6(float) Constant 1036831949 26: 6(float) Constant 1045220557 27: 24(fvec2) ConstantComposite 25 26 29: TypeInt 32 1 30: TypeVector 29(int) 4 31: TypePointer Function 30(ivec4) 33: TypeImage 29(int) 1D array sampled format:Unknown 34: TypePointer UniformConstant 33 35(g_tTex1di4): 34(ptr) Variable UniformConstant 38: TypeSampledImage 33 40: 6(float) Constant 1050253722 41: 24(fvec2) ConstantComposite 26 40 43: TypeInt 32 0 44: TypeVector 43(int) 4 45: TypePointer Function 44(ivec4) 47: TypeImage 43(int) 1D array sampled format:Unknown 48: TypePointer UniformConstant 47 49(g_tTex1du4): 48(ptr) Variable UniformConstant 52: TypeSampledImage 47 54: 6(float) Constant 1053609165 55: 24(fvec2) ConstantComposite 40 54 58: TypeImage 6(float) 2D array sampled format:Unknown 59: TypePointer UniformConstant 58 60(g_tTex2df4): 59(ptr) Variable UniformConstant 63: TypeSampledImage 58 65: TypeVector 6(float) 3 66: 65(fvec3) ConstantComposite 25 26 40 69: TypeImage 29(int) 2D array sampled format:Unknown 70: TypePointer UniformConstant 69 71(g_tTex2di4): 70(ptr) Variable UniformConstant 74: TypeSampledImage 69 76: 6(float) Constant 1056964608 77: 65(fvec3) ConstantComposite 40 54 76 80: TypeImage 43(int) 2D array sampled format:Unknown 81: TypePointer UniformConstant 80 82(g_tTex2du4): 81(ptr) Variable UniformConstant 85: TypeSampledImage 80 87: 6(float) Constant 1058642330 88: 6(float) Constant 1060320051 89: 65(fvec3) ConstantComposite 76 87 88 92: TypeImage 6(float) Cube array sampled format:Unknown 93: TypePointer UniformConstant 92 94(g_tTexcdf4): 93(ptr) Variable UniformConstant 97: TypeSampledImage 92 99: 7(fvec4) ConstantComposite 25 26 40 54 102: TypeImage 29(int) Cube array sampled format:Unknown 103: TypePointer UniformConstant 102 104(g_tTexcdi4): 103(ptr) Variable UniformConstant 107: TypeSampledImage 102 109: 7(fvec4) ConstantComposite 54 76 87 88 112: TypeImage 43(int) Cube array sampled format:Unknown 113: TypePointer UniformConstant 112 114(g_tTexcdu4): 113(ptr) Variable UniformConstant 117: TypeSampledImage 112 119: 6(float) Constant 1061997773 120: 6(float) Constant 1063675494 121: 6(float) Constant 1065353216 122: 7(fvec4) ConstantComposite 88 119 120 121 124: TypePointer Function 8(PS_OUTPUT) 126: 29(int) Constant 0 127: 7(fvec4) ConstantComposite 121 121 121 121 129: 29(int) Constant 1 130: TypePointer Function 6(float) 137: TypePointer Output 7(fvec4) 138(@entryPointOutput.Color): 137(ptr) Variable Output 141: TypePointer Output 6(float) 142(@entryPointOutput.Depth): 141(ptr) Variable Output 145(g_tTex1df4a): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 135(flattenTemp): 124(ptr) Variable Function 136:8(PS_OUTPUT) FunctionCall 10(@main() Store 135(flattenTemp) 136 139: 12(ptr) AccessChain 135(flattenTemp) 126 140: 7(fvec4) Load 139 Store 138(@entryPointOutput.Color) 140 143: 130(ptr) AccessChain 135(flattenTemp) 129 144: 6(float) Load 143 Store 142(@entryPointOutput.Depth) 144 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 32(txval11): 31(ptr) Variable Function 46(txval12): 45(ptr) Variable Function 57(txval20): 12(ptr) Variable Function 68(txval21): 31(ptr) Variable Function 79(txval22): 45(ptr) Variable Function 91(txval40): 12(ptr) Variable Function 101(txval41): 31(ptr) Variable Function 111(txval42): 45(ptr) Variable Function 125(psout): 124(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 28: 7(fvec4) ImageSampleImplicitLod 23 27 Store 13(txval10) 28 36: 33 Load 35(g_tTex1di4) 37: 18 Load 20(g_sSamp) 39: 38 SampledImage 36 37 42: 30(ivec4) ImageSampleImplicitLod 39 41 Store 32(txval11) 42 50: 47 Load 49(g_tTex1du4) 51: 18 Load 20(g_sSamp) 53: 52 SampledImage 50 51 56: 44(ivec4) ImageSampleImplicitLod 53 55 Store 46(txval12) 56 61: 58 Load 60(g_tTex2df4) 62: 18 Load 20(g_sSamp) 64: 63 SampledImage 61 62 67: 7(fvec4) ImageSampleImplicitLod 64 66 Store 57(txval20) 67 72: 69 Load 71(g_tTex2di4) 73: 18 Load 20(g_sSamp) 75: 74 SampledImage 72 73 78: 30(ivec4) ImageSampleImplicitLod 75 77 Store 68(txval21) 78 83: 80 Load 82(g_tTex2du4) 84: 18 Load 20(g_sSamp) 86: 85 SampledImage 83 84 90: 44(ivec4) ImageSampleImplicitLod 86 89 Store 79(txval22) 90 95: 92 Load 94(g_tTexcdf4) 96: 18 Load 20(g_sSamp) 98: 97 SampledImage 95 96 100: 7(fvec4) ImageSampleImplicitLod 98 99 Store 91(txval40) 100 105: 102 Load 104(g_tTexcdi4) 106: 18 Load 20(g_sSamp) 108: 107 SampledImage 105 106 110: 30(ivec4) ImageSampleImplicitLod 108 109 Store 101(txval41) 110 115: 112 Load 114(g_tTexcdu4) 116: 18 Load 20(g_sSamp) 118: 117 SampledImage 115 116 123: 44(ivec4) ImageSampleImplicitLod 118 122 Store 111(txval42) 123 128: 12(ptr) AccessChain 125(psout) 126 Store 128 127 131: 130(ptr) AccessChain 125(psout) 129 Store 131 121 132:8(PS_OUTPUT) Load 125(psout) ReturnValue 132 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.sample.basic.dx10.frag.out000066400000000000000000001413131360464450000244440ustar00rootroot00000000000000hlsl.sample.basic.dx10.frag WARNING: 0:4: 'immediate sampler state' : unimplemented Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child ( temp int) 0:57 CalculateLevelOfDetail: direct index for structure ( temp int) 0:57 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1 (const int) 0:58 move second child to first child ( temp int) 0:58 CalculateLevelOfDetailUnclamped: direct index for structure ( temp int) 0:58 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:58 Constant: 0:58 2 (const int) 0:58 Constant: 0:58 1 (const int) 0:59 move second child to first child ( temp int) 0:59 Gather: direct index for structure ( temp int) 0:59 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:59 Constant: 0:59 3 (const int) 0:59 Constant: 0:59 1 (const int) 0:60 move second child to first child ( temp int) 0:60 GetDimensions: direct index for structure ( temp int) 0:60 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:60 Constant: 0:60 4 (const int) 0:60 Constant: 0:60 1 (const int) 0:61 move second child to first child ( temp int) 0:61 GetSamplePosition: direct index for structure ( temp int) 0:61 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:61 Constant: 0:61 5 (const int) 0:61 Constant: 0:61 1 (const int) 0:62 move second child to first child ( temp int) 0:62 Load: direct index for structure ( temp int) 0:62 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:62 Constant: 0:62 6 (const int) 0:62 Constant: 0:62 1 (const int) 0:63 move second child to first child ( temp int) 0:63 Sample: direct index for structure ( temp int) 0:63 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1 (const int) 0:64 move second child to first child ( temp int) 0:64 SampleBias: direct index for structure ( temp int) 0:64 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:64 Constant: 0:64 7 (const int) 0:64 Constant: 0:64 1 (const int) 0:65 move second child to first child ( temp int) 0:65 SampleCmp: direct index for structure ( temp int) 0:65 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:65 Constant: 0:65 8 (const int) 0:65 Constant: 0:65 1 (const int) 0:66 move second child to first child ( temp int) 0:66 SampleCmpLevelZero: direct index for structure ( temp int) 0:66 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:66 Constant: 0:66 9 (const int) 0:66 Constant: 0:66 1 (const int) 0:67 move second child to first child ( temp int) 0:67 SampleGrad: direct index for structure ( temp int) 0:67 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:67 Constant: 0:67 10 (const int) 0:67 Constant: 0:67 1 (const int) 0:68 move second child to first child ( temp int) 0:68 SampleLevel: direct index for structure ( temp int) 0:68 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:68 Constant: 0:68 11 (const int) 0:68 Constant: 0:68 1 (const int) 0:70 Sequence 0:70 move second child to first child ( temp 4-component vector of float) 0:70 'txval10' ( temp 4-component vector of float) 0:70 texture ( temp 4-component vector of float) 0:70 Construct combined texture-sampler ( temp sampler1D) 0:70 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:70 'g_sSamp' (layout( binding=0) uniform sampler) 0:70 Constant: 0:70 0.100000 0:71 Sequence 0:71 move second child to first child ( temp 4-component vector of int) 0:71 'txval11' ( temp 4-component vector of int) 0:71 texture ( temp 4-component vector of int) 0:71 Construct combined texture-sampler ( temp isampler1D) 0:71 'g_tTex1di4' ( uniform itexture1D) 0:71 'g_sSamp' (layout( binding=0) uniform sampler) 0:71 Constant: 0:71 0.200000 0:72 Sequence 0:72 move second child to first child ( temp 4-component vector of uint) 0:72 'txval12' ( temp 4-component vector of uint) 0:72 texture ( temp 4-component vector of uint) 0:72 Construct combined texture-sampler ( temp usampler1D) 0:72 'g_tTex1du4' ( uniform utexture1D) 0:72 'g_sSamp' (layout( binding=0) uniform sampler) 0:72 Constant: 0:72 0.300000 0:74 Sequence 0:74 move second child to first child ( temp 4-component vector of float) 0:74 'txval20' ( temp 4-component vector of float) 0:74 texture ( temp 4-component vector of float) 0:74 Construct combined texture-sampler ( temp sampler2D) 0:74 'g_tTex2df4' ( uniform texture2D) 0:74 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:75 Sequence 0:75 move second child to first child ( temp 4-component vector of int) 0:75 'txval21' ( temp 4-component vector of int) 0:75 texture ( temp 4-component vector of int) 0:75 Construct combined texture-sampler ( temp isampler2D) 0:75 'g_tTex2di4' ( uniform itexture2D) 0:75 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:76 Sequence 0:76 move second child to first child ( temp 4-component vector of uint) 0:76 'txval22' ( temp 4-component vector of uint) 0:76 texture ( temp 4-component vector of uint) 0:76 Construct combined texture-sampler ( temp usampler2D) 0:76 'g_tTex2du4' ( uniform utexture2D) 0:76 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:78 Sequence 0:78 move second child to first child ( temp 4-component vector of float) 0:78 'txval30' ( temp 4-component vector of float) 0:78 texture ( temp 4-component vector of float) 0:78 Construct combined texture-sampler ( temp sampler3D) 0:78 'g_tTex3df4' ( uniform texture3D) 0:78 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:79 Sequence 0:79 move second child to first child ( temp 4-component vector of int) 0:79 'txval31' ( temp 4-component vector of int) 0:79 texture ( temp 4-component vector of int) 0:79 Construct combined texture-sampler ( temp isampler3D) 0:79 'g_tTex3di4' ( uniform itexture3D) 0:79 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:80 Sequence 0:80 move second child to first child ( temp 4-component vector of uint) 0:80 'txval32' ( temp 4-component vector of uint) 0:80 texture ( temp 4-component vector of uint) 0:80 Construct combined texture-sampler ( temp usampler3D) 0:80 'g_tTex3du4' ( uniform utexture3D) 0:80 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:82 Sequence 0:82 move second child to first child ( temp 4-component vector of float) 0:82 'txval40' ( temp 4-component vector of float) 0:82 texture ( temp 4-component vector of float) 0:82 Construct combined texture-sampler ( temp samplerCube) 0:82 'g_tTexcdf4' ( uniform textureCube) 0:82 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:83 Sequence 0:83 move second child to first child ( temp 4-component vector of int) 0:83 'txval41' ( temp 4-component vector of int) 0:83 texture ( temp 4-component vector of int) 0:83 Construct combined texture-sampler ( temp isamplerCube) 0:83 'g_tTexcdi4' ( uniform itextureCube) 0:83 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:84 Sequence 0:84 move second child to first child ( temp 4-component vector of uint) 0:84 'txval42' ( temp 4-component vector of uint) 0:84 texture ( temp 4-component vector of uint) 0:84 Construct combined texture-sampler ( temp usamplerCube) 0:84 'g_tTexcdu4' ( uniform utextureCube) 0:84 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:86 move second child to first child ( temp 4-component vector of float) 0:86 Color: direct index for structure ( temp 4-component vector of float) 0:86 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:86 Constant: 0:86 0 (const int) 0:86 Constant: 0:86 1.000000 0:86 1.000000 0:86 1.000000 0:86 1.000000 0:87 move second child to first child ( temp float) 0:87 Depth: direct index for structure ( temp float) 0:87 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 0:89 Branch: Return with expression 0:89 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 Function Definition: main( ( temp void) 0:53 Function Parameters: 0:? Sequence 0:53 Sequence 0:53 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:53 Color: direct index for structure ( temp 4-component vector of float) 0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 Constant: 0:53 0 (const int) 0:53 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:53 Depth: direct index for structure ( temp float) 0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 Constant: 0:53 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_sSamp2d' ( uniform sampler) 0:? 'g_sSamp2D_b' ( uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:53 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child ( temp int) 0:57 CalculateLevelOfDetail: direct index for structure ( temp int) 0:57 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1 (const int) 0:58 move second child to first child ( temp int) 0:58 CalculateLevelOfDetailUnclamped: direct index for structure ( temp int) 0:58 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:58 Constant: 0:58 2 (const int) 0:58 Constant: 0:58 1 (const int) 0:59 move second child to first child ( temp int) 0:59 Gather: direct index for structure ( temp int) 0:59 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:59 Constant: 0:59 3 (const int) 0:59 Constant: 0:59 1 (const int) 0:60 move second child to first child ( temp int) 0:60 GetDimensions: direct index for structure ( temp int) 0:60 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:60 Constant: 0:60 4 (const int) 0:60 Constant: 0:60 1 (const int) 0:61 move second child to first child ( temp int) 0:61 GetSamplePosition: direct index for structure ( temp int) 0:61 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:61 Constant: 0:61 5 (const int) 0:61 Constant: 0:61 1 (const int) 0:62 move second child to first child ( temp int) 0:62 Load: direct index for structure ( temp int) 0:62 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:62 Constant: 0:62 6 (const int) 0:62 Constant: 0:62 1 (const int) 0:63 move second child to first child ( temp int) 0:63 Sample: direct index for structure ( temp int) 0:63 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1 (const int) 0:64 move second child to first child ( temp int) 0:64 SampleBias: direct index for structure ( temp int) 0:64 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:64 Constant: 0:64 7 (const int) 0:64 Constant: 0:64 1 (const int) 0:65 move second child to first child ( temp int) 0:65 SampleCmp: direct index for structure ( temp int) 0:65 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:65 Constant: 0:65 8 (const int) 0:65 Constant: 0:65 1 (const int) 0:66 move second child to first child ( temp int) 0:66 SampleCmpLevelZero: direct index for structure ( temp int) 0:66 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:66 Constant: 0:66 9 (const int) 0:66 Constant: 0:66 1 (const int) 0:67 move second child to first child ( temp int) 0:67 SampleGrad: direct index for structure ( temp int) 0:67 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:67 Constant: 0:67 10 (const int) 0:67 Constant: 0:67 1 (const int) 0:68 move second child to first child ( temp int) 0:68 SampleLevel: direct index for structure ( temp int) 0:68 'mtest' ( temp structure{ temp int Sample, temp int CalculateLevelOfDetail, temp int CalculateLevelOfDetailUnclamped, temp int Gather, temp int GetDimensions, temp int GetSamplePosition, temp int Load, temp int SampleBias, temp int SampleCmp, temp int SampleCmpLevelZero, temp int SampleGrad, temp int SampleLevel}) 0:68 Constant: 0:68 11 (const int) 0:68 Constant: 0:68 1 (const int) 0:70 Sequence 0:70 move second child to first child ( temp 4-component vector of float) 0:70 'txval10' ( temp 4-component vector of float) 0:70 texture ( temp 4-component vector of float) 0:70 Construct combined texture-sampler ( temp sampler1D) 0:70 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:70 'g_sSamp' (layout( binding=0) uniform sampler) 0:70 Constant: 0:70 0.100000 0:71 Sequence 0:71 move second child to first child ( temp 4-component vector of int) 0:71 'txval11' ( temp 4-component vector of int) 0:71 texture ( temp 4-component vector of int) 0:71 Construct combined texture-sampler ( temp isampler1D) 0:71 'g_tTex1di4' ( uniform itexture1D) 0:71 'g_sSamp' (layout( binding=0) uniform sampler) 0:71 Constant: 0:71 0.200000 0:72 Sequence 0:72 move second child to first child ( temp 4-component vector of uint) 0:72 'txval12' ( temp 4-component vector of uint) 0:72 texture ( temp 4-component vector of uint) 0:72 Construct combined texture-sampler ( temp usampler1D) 0:72 'g_tTex1du4' ( uniform utexture1D) 0:72 'g_sSamp' (layout( binding=0) uniform sampler) 0:72 Constant: 0:72 0.300000 0:74 Sequence 0:74 move second child to first child ( temp 4-component vector of float) 0:74 'txval20' ( temp 4-component vector of float) 0:74 texture ( temp 4-component vector of float) 0:74 Construct combined texture-sampler ( temp sampler2D) 0:74 'g_tTex2df4' ( uniform texture2D) 0:74 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:75 Sequence 0:75 move second child to first child ( temp 4-component vector of int) 0:75 'txval21' ( temp 4-component vector of int) 0:75 texture ( temp 4-component vector of int) 0:75 Construct combined texture-sampler ( temp isampler2D) 0:75 'g_tTex2di4' ( uniform itexture2D) 0:75 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:76 Sequence 0:76 move second child to first child ( temp 4-component vector of uint) 0:76 'txval22' ( temp 4-component vector of uint) 0:76 texture ( temp 4-component vector of uint) 0:76 Construct combined texture-sampler ( temp usampler2D) 0:76 'g_tTex2du4' ( uniform utexture2D) 0:76 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:78 Sequence 0:78 move second child to first child ( temp 4-component vector of float) 0:78 'txval30' ( temp 4-component vector of float) 0:78 texture ( temp 4-component vector of float) 0:78 Construct combined texture-sampler ( temp sampler3D) 0:78 'g_tTex3df4' ( uniform texture3D) 0:78 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:79 Sequence 0:79 move second child to first child ( temp 4-component vector of int) 0:79 'txval31' ( temp 4-component vector of int) 0:79 texture ( temp 4-component vector of int) 0:79 Construct combined texture-sampler ( temp isampler3D) 0:79 'g_tTex3di4' ( uniform itexture3D) 0:79 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:80 Sequence 0:80 move second child to first child ( temp 4-component vector of uint) 0:80 'txval32' ( temp 4-component vector of uint) 0:80 texture ( temp 4-component vector of uint) 0:80 Construct combined texture-sampler ( temp usampler3D) 0:80 'g_tTex3du4' ( uniform utexture3D) 0:80 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:82 Sequence 0:82 move second child to first child ( temp 4-component vector of float) 0:82 'txval40' ( temp 4-component vector of float) 0:82 texture ( temp 4-component vector of float) 0:82 Construct combined texture-sampler ( temp samplerCube) 0:82 'g_tTexcdf4' ( uniform textureCube) 0:82 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:83 Sequence 0:83 move second child to first child ( temp 4-component vector of int) 0:83 'txval41' ( temp 4-component vector of int) 0:83 texture ( temp 4-component vector of int) 0:83 Construct combined texture-sampler ( temp isamplerCube) 0:83 'g_tTexcdi4' ( uniform itextureCube) 0:83 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:84 Sequence 0:84 move second child to first child ( temp 4-component vector of uint) 0:84 'txval42' ( temp 4-component vector of uint) 0:84 texture ( temp 4-component vector of uint) 0:84 Construct combined texture-sampler ( temp usamplerCube) 0:84 'g_tTexcdu4' ( uniform utextureCube) 0:84 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:86 move second child to first child ( temp 4-component vector of float) 0:86 Color: direct index for structure ( temp 4-component vector of float) 0:86 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:86 Constant: 0:86 0 (const int) 0:86 Constant: 0:86 1.000000 0:86 1.000000 0:86 1.000000 0:86 1.000000 0:87 move second child to first child ( temp float) 0:87 Depth: direct index for structure ( temp float) 0:87 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:87 Constant: 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 0:89 Branch: Return with expression 0:89 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 Function Definition: main( ( temp void) 0:53 Function Parameters: 0:? Sequence 0:53 Sequence 0:53 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:53 Color: direct index for structure ( temp 4-component vector of float) 0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 Constant: 0:53 0 (const int) 0:53 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:53 Depth: direct index for structure ( temp float) 0:53 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:53 Constant: 0:53 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_sSamp2d' ( uniform sampler) 0:? 'g_sSamp2D_b' ( uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 73(g_tTex1du4) DescriptorSet 0 Decorate 73(g_tTex1du4) Binding 0 Decorate 83(g_tTex2df4) DescriptorSet 0 Decorate 83(g_tTex2df4) Binding 0 Decorate 94(g_tTex2di4) DescriptorSet 0 Decorate 94(g_tTex2di4) Binding 0 Decorate 105(g_tTex2du4) DescriptorSet 0 Decorate 105(g_tTex2du4) Binding 0 Decorate 117(g_tTex3df4) DescriptorSet 0 Decorate 117(g_tTex3df4) Binding 0 Decorate 128(g_tTex3di4) DescriptorSet 0 Decorate 128(g_tTex3di4) Binding 0 Decorate 138(g_tTex3du4) DescriptorSet 0 Decorate 138(g_tTex3du4) Binding 0 Decorate 151(g_tTexcdf4) DescriptorSet 0 Decorate 151(g_tTexcdf4) Binding 0 Decorate 160(g_tTexcdi4) DescriptorSet 0 Decorate 160(g_tTexcdi4) Binding 0 Decorate 169(g_tTexcdu4) DescriptorSet 0 Decorate 169(g_tTexcdu4) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.sample.dx9.frag.out000066400000000000000000000655721360464450000233300ustar00rootroot00000000000000hlsl.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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.400000 0:? 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:? Constant: 0:? 0.500000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 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:? Constant: 0:? 0.400000 0:? 0.300000 0:? 0.000000 0:? 0.000000 0:26 direct index ( temp float) 0:? Constant: 0:? 0.400000 0:? 0.300000 0:? 0.000000 0:? 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:? Constant: 0:? 0.500000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:27 direct index ( temp float) 0:? Constant: 0:? 0.500000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.000000 0:? 0.000000 0:28 direct index ( temp float) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.000000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.400000 0:? 0.000000 0:29 direct index ( temp float) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.400000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.400000 0:? 0.000000 0:30 direct index ( temp float) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.400000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.400000 0:? 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:? Constant: 0:? 0.500000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 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:? Constant: 0:? 0.400000 0:? 0.300000 0:? 0.000000 0:? 0.000000 0:26 direct index ( temp float) 0:? Constant: 0:? 0.400000 0:? 0.300000 0:? 0.000000 0:? 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:? Constant: 0:? 0.500000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:27 direct index ( temp float) 0:? Constant: 0:? 0.500000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.000000 0:? 0.000000 0:28 direct index ( temp float) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.000000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.400000 0:? 0.000000 0:29 direct index ( temp float) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.400000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.400000 0:? 0.000000 0:30 direct index ( temp float) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.400000 0:? 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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.sample.dx9.vert.out000066400000000000000000000262631360464450000233630ustar00rootroot00000000000000hlsl.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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.000000 0:? 1.000000 0:16 direct index ( temp float) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.000000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.000000 0:? 1.000000 0:17 direct index ( temp float) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.000000 0:? 1.000000 0:16 direct index ( temp float) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.000000 0:? 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:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.000000 0:? 1.000000 0:17 direct index ( temp float) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.000000 0:? 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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.sample.offset.dx10.frag.out000066400000000000000000000737461360464450000246670ustar00rootroot00000000000000hlsl.sample.offset.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 textureOffset ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 1 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 textureOffset ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 1 (const int) 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 textureOffset ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 1 (const int) 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 textureOffset ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 textureOffset ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 textureOffset ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 textureOffset ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 textureOffset ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 textureOffset ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child ( temp 4-component vector of float) 0:45 Color: direct index for structure ( temp 4-component vector of float) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:46 move second child to first child ( temp float) 0:46 Depth: direct index for structure ( temp float) 0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Branch: Return with expression 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 textureOffset ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 1 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 textureOffset ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 1 (const int) 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 textureOffset ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 1 (const int) 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 textureOffset ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 textureOffset ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 textureOffset ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 textureOffset ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 textureOffset ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 textureOffset ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child ( temp 4-component vector of float) 0:45 Color: direct index for structure ( temp 4-component vector of float) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:46 move second child to first child ( temp float) 0:46 Depth: direct index for structure ( temp float) 0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Branch: Return with expression 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 46(g_tTex1du4) DescriptorSet 0 Decorate 46(g_tTex1du4) Binding 0 Decorate 56(g_tTex2df4) DescriptorSet 0 Decorate 56(g_tTex2df4) Binding 0 Decorate 70(g_tTex2di4) DescriptorSet 0 Decorate 70(g_tTex2di4) Binding 0 Decorate 82(g_tTex2du4) DescriptorSet 0 Decorate 82(g_tTex2du4) Binding 0 Decorate 96(g_tTex3df4) DescriptorSet 0 Decorate 96(g_tTex3df4) Binding 0 Decorate 109(g_tTex3di4) DescriptorSet 0 Decorate 109(g_tTex3di4) Binding 0 Decorate 120(g_tTex3du4) DescriptorSet 0 Decorate 120(g_tTex3du4) Binding 0 Decorate 144(@entryPointOutput.Color) Location 0 Decorate 148(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 151(g_tTex1df4a) DescriptorSet 0 Decorate 151(g_tTex1df4a) Binding 1 Decorate 154(g_tTexcdf4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out000066400000000000000000000546321360464450000257170ustar00rootroot00000000000000hlsl.sample.offsetarray.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child ( temp 4-component vector of float) 0:23 'txval10' ( temp 4-component vector of float) 0:23 textureOffset ( temp 4-component vector of float) 0:23 Construct combined texture-sampler ( temp sampler1DArray) 0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:23 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:23 Constant: 0:23 0 (const int) 0:24 Sequence 0:24 move second child to first child ( temp 4-component vector of int) 0:24 'txval11' ( temp 4-component vector of int) 0:24 textureOffset ( temp 4-component vector of int) 0:24 Construct combined texture-sampler ( temp isampler1DArray) 0:24 'g_tTex1di4' ( uniform itexture1DArray) 0:24 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:24 Constant: 0:24 1 (const int) 0:25 Sequence 0:25 move second child to first child ( temp 4-component vector of uint) 0:25 'txval12' ( temp 4-component vector of uint) 0:25 textureOffset ( temp 4-component vector of uint) 0:25 Construct combined texture-sampler ( temp usampler1DArray) 0:25 'g_tTex1du4' ( uniform utexture1DArray) 0:25 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:25 Constant: 0:25 2 (const int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval20' ( temp 4-component vector of float) 0:27 textureOffset ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler2DArray) 0:27 'g_tTex2df4' ( uniform texture2DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval21' ( temp 4-component vector of int) 0:28 textureOffset ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler2DArray) 0:28 'g_tTex2di4' ( uniform itexture2DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval22' ( temp 4-component vector of uint) 0:29 textureOffset ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler2DArray) 0:29 'g_tTex2du4' ( uniform utexture2DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child ( temp 4-component vector of float) 0:33 Color: direct index for structure ( temp 4-component vector of float) 0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:34 move second child to first child ( temp float) 0:34 Depth: direct index for structure ( temp float) 0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Branch: Return with expression 0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Definition: main( ( temp void) 0:20 Function Parameters: 0:? Sequence 0:20 Sequence 0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:20 Color: direct index for structure ( temp 4-component vector of float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 0 (const int) 0:20 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:20 Depth: direct index for structure ( temp float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child ( temp 4-component vector of float) 0:23 'txval10' ( temp 4-component vector of float) 0:23 textureOffset ( temp 4-component vector of float) 0:23 Construct combined texture-sampler ( temp sampler1DArray) 0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:23 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:23 Constant: 0:23 0 (const int) 0:24 Sequence 0:24 move second child to first child ( temp 4-component vector of int) 0:24 'txval11' ( temp 4-component vector of int) 0:24 textureOffset ( temp 4-component vector of int) 0:24 Construct combined texture-sampler ( temp isampler1DArray) 0:24 'g_tTex1di4' ( uniform itexture1DArray) 0:24 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:24 Constant: 0:24 1 (const int) 0:25 Sequence 0:25 move second child to first child ( temp 4-component vector of uint) 0:25 'txval12' ( temp 4-component vector of uint) 0:25 textureOffset ( temp 4-component vector of uint) 0:25 Construct combined texture-sampler ( temp usampler1DArray) 0:25 'g_tTex1du4' ( uniform utexture1DArray) 0:25 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:25 Constant: 0:25 2 (const int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval20' ( temp 4-component vector of float) 0:27 textureOffset ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler2DArray) 0:27 'g_tTex2df4' ( uniform texture2DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval21' ( temp 4-component vector of int) 0:28 textureOffset ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler2DArray) 0:28 'g_tTex2di4' ( uniform itexture2DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval22' ( temp 4-component vector of uint) 0:29 textureOffset ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler2DArray) 0:29 'g_tTex2du4' ( uniform utexture2DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child ( temp 4-component vector of float) 0:33 Color: direct index for structure ( temp 4-component vector of float) 0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:34 move second child to first child ( temp float) 0:34 Depth: direct index for structure ( temp float) 0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Branch: Return with expression 0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Definition: main( ( temp void) 0:20 Function Parameters: 0:? Sequence 0:20 Sequence 0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:20 Color: direct index for structure ( temp 4-component vector of float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 0 (const int) 0:20 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:20 Depth: direct index for structure ( temp float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 51(g_tTex1du4) DescriptorSet 0 Decorate 51(g_tTex1du4) Binding 0 Decorate 63(g_tTex2df4) DescriptorSet 0 Decorate 63(g_tTex2df4) Binding 0 Decorate 76(g_tTex2di4) DescriptorSet 0 Decorate 76(g_tTex2di4) Binding 0 Decorate 87(g_tTex2du4) DescriptorSet 0 Decorate 87(g_tTex2du4) Binding 0 Decorate 110(@entryPointOutput.Color) Location 0 Decorate 114(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 117(g_tTex1df4a) DescriptorSet 0 Decorate 117(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D array sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: TypeVector 6(float) 2 25: 6(float) Constant 1036831949 26: 6(float) Constant 1045220557 27: 24(fvec2) ConstantComposite 25 26 28: TypeInt 32 1 29: 28(int) Constant 0 31: TypeVector 28(int) 4 32: TypePointer Function 31(ivec4) 34: TypeImage 28(int) 1D array sampled format:Unknown 35: TypePointer UniformConstant 34 36(g_tTex1di4): 35(ptr) Variable UniformConstant 39: TypeSampledImage 34 41: 6(float) Constant 1050253722 42: 24(fvec2) ConstantComposite 26 41 43: 28(int) Constant 1 45: TypeInt 32 0 46: TypeVector 45(int) 4 47: TypePointer Function 46(ivec4) 49: TypeImage 45(int) 1D array sampled format:Unknown 50: TypePointer UniformConstant 49 51(g_tTex1du4): 50(ptr) Variable UniformConstant 54: TypeSampledImage 49 56: 6(float) Constant 1053609165 57: 24(fvec2) ConstantComposite 41 56 58: 28(int) Constant 2 61: TypeImage 6(float) 2D array sampled format:Unknown 62: TypePointer UniformConstant 61 63(g_tTex2df4): 62(ptr) Variable UniformConstant 66: TypeSampledImage 61 68: TypeVector 6(float) 3 69: 68(fvec3) ConstantComposite 25 26 41 70: TypeVector 28(int) 2 71: 70(ivec2) ConstantComposite 29 29 74: TypeImage 28(int) 2D array sampled format:Unknown 75: TypePointer UniformConstant 74 76(g_tTex2di4): 75(ptr) Variable UniformConstant 79: TypeSampledImage 74 81: 6(float) Constant 1056964608 82: 68(fvec3) ConstantComposite 41 56 81 85: TypeImage 45(int) 2D array sampled format:Unknown 86: TypePointer UniformConstant 85 87(g_tTex2du4): 86(ptr) Variable UniformConstant 90: TypeSampledImage 85 92: 6(float) Constant 1058642330 93: 6(float) Constant 1060320051 94: 68(fvec3) ConstantComposite 81 92 93 95: 70(ivec2) ConstantComposite 29 43 97: TypePointer Function 8(PS_OUTPUT) 99: 6(float) Constant 1065353216 100: 7(fvec4) ConstantComposite 99 99 99 99 102: TypePointer Function 6(float) 109: TypePointer Output 7(fvec4) 110(@entryPointOutput.Color): 109(ptr) Variable Output 113: TypePointer Output 6(float) 114(@entryPointOutput.Depth): 113(ptr) Variable Output 117(g_tTex1df4a): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 107(flattenTemp): 97(ptr) Variable Function 108:8(PS_OUTPUT) FunctionCall 10(@main() Store 107(flattenTemp) 108 111: 12(ptr) AccessChain 107(flattenTemp) 29 112: 7(fvec4) Load 111 Store 110(@entryPointOutput.Color) 112 115: 102(ptr) AccessChain 107(flattenTemp) 43 116: 6(float) Load 115 Store 114(@entryPointOutput.Depth) 116 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 33(txval11): 32(ptr) Variable Function 48(txval12): 47(ptr) Variable Function 60(txval20): 12(ptr) Variable Function 73(txval21): 32(ptr) Variable Function 84(txval22): 47(ptr) Variable Function 98(psout): 97(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 30: 7(fvec4) ImageSampleImplicitLod 23 27 ConstOffset 29 Store 13(txval10) 30 37: 34 Load 36(g_tTex1di4) 38: 18 Load 20(g_sSamp) 40: 39 SampledImage 37 38 44: 31(ivec4) ImageSampleImplicitLod 40 42 ConstOffset 43 Store 33(txval11) 44 52: 49 Load 51(g_tTex1du4) 53: 18 Load 20(g_sSamp) 55: 54 SampledImage 52 53 59: 46(ivec4) ImageSampleImplicitLod 55 57 ConstOffset 58 Store 48(txval12) 59 64: 61 Load 63(g_tTex2df4) 65: 18 Load 20(g_sSamp) 67: 66 SampledImage 64 65 72: 7(fvec4) ImageSampleImplicitLod 67 69 ConstOffset 71 Store 60(txval20) 72 77: 74 Load 76(g_tTex2di4) 78: 18 Load 20(g_sSamp) 80: 79 SampledImage 77 78 83: 31(ivec4) ImageSampleImplicitLod 80 82 ConstOffset 71 Store 73(txval21) 83 88: 85 Load 87(g_tTex2du4) 89: 18 Load 20(g_sSamp) 91: 90 SampledImage 88 89 96: 46(ivec4) ImageSampleImplicitLod 91 94 ConstOffset 95 Store 84(txval22) 96 101: 12(ptr) AccessChain 98(psout) 29 Store 101 100 103: 102(ptr) AccessChain 98(psout) 43 Store 103 99 104:8(PS_OUTPUT) Load 98(psout) ReturnValue 104 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out000066400000000000000000000316551360464450000250220ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 Decorate 30(g_tTex1df2) DescriptorSet 0 Decorate 30(g_tTex1df2) Binding 0 Decorate 42(g_tTex1df3) DescriptorSet 0 Decorate 42(g_tTex1df3) Binding 0 Decorate 53(g_tTex1df4) DescriptorSet 0 Decorate 53(g_tTex1df4) Binding 0 Decorate 69(@entryPointOutput.Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 6(float) 14: TypeImage 6(float) 1D sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df1): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: 6(float) Constant 1036831949 27: TypeVector 6(float) 2 28: TypePointer Function 27(fvec2) 30(g_tTex1df2): 15(ptr) Variable UniformConstant 34: 6(float) Constant 1045220557 39: TypeVector 6(float) 3 40: TypePointer Function 39(fvec3) 42(g_tTex1df3): 15(ptr) Variable UniformConstant 51: TypePointer Function 7(fvec4) 53(g_tTex1df4): 15(ptr) Variable UniformConstant 58: TypePointer Function 8(PS_OUTPUT) 60: TypeInt 32 1 61: 60(int) Constant 0 62: 6(float) Constant 1065353216 63: 7(fvec4) ConstantComposite 62 62 62 62 68: TypePointer Output 7(fvec4) 69(@entryPointOutput.Color): 68(ptr) Variable Output 4(main): 2 Function None 3 5: Label 70:8(PS_OUTPUT) FunctionCall 10(@main() 71: 7(fvec4) CompositeExtract 70 0 Store 69(@entryPointOutput.Color) 71 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 29(txval11): 28(ptr) Variable Function 41(txval12): 40(ptr) Variable Function 52(txval13): 51(ptr) Variable Function 59(psout): 58(ptr) Variable Function 17: 14 Load 16(g_tTex1df1) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 25: 7(fvec4) ImageSampleImplicitLod 23 24 26: 6(float) CompositeExtract 25 0 Store 13(txval10) 26 31: 14 Load 30(g_tTex1df2) 32: 18 Load 20(g_sSamp) 33: 22 SampledImage 31 32 35: 7(fvec4) ImageSampleImplicitLod 33 34 36: 6(float) CompositeExtract 35 0 37: 6(float) CompositeExtract 35 1 38: 27(fvec2) CompositeConstruct 36 37 Store 29(txval11) 38 43: 14 Load 42(g_tTex1df3) 44: 18 Load 20(g_sSamp) 45: 22 SampledImage 43 44 46: 7(fvec4) ImageSampleImplicitLod 45 34 47: 6(float) CompositeExtract 46 0 48: 6(float) CompositeExtract 46 1 49: 6(float) CompositeExtract 46 2 50: 39(fvec3) CompositeConstruct 47 48 49 Store 41(txval12) 50 54: 14 Load 53(g_tTex1df4) 55: 18 Load 20(g_sSamp) 56: 22 SampledImage 54 55 57: 7(fvec4) ImageSampleImplicitLod 56 34 Store 52(txval13) 57 64: 51(ptr) AccessChain 59(psout) 61 Store 64 63 65:8(PS_OUTPUT) Load 59(psout) ReturnValue 65 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.samplebias.array.dx10.frag.out000066400000000000000000000705771360464450000253550ustar00rootroot00000000000000hlsl.samplebias.array.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval10' ( temp 4-component vector of float) 0:27 texture ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler1DArray) 0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:27 Constant: 0:27 0.500000 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval11' ( temp 4-component vector of int) 0:28 texture ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler1DArray) 0:28 'g_tTex1di4' ( uniform itexture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:28 Constant: 0:28 0.500000 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval12' ( temp 4-component vector of uint) 0:29 texture ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler1DArray) 0:29 'g_tTex1du4' ( uniform utexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:29 Constant: 0:29 0.500000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval20' ( temp 4-component vector of float) 0:31 texture ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2DArray) 0:31 'g_tTex2df4' ( uniform texture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:31 Constant: 0:31 0.500000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval21' ( temp 4-component vector of int) 0:32 texture ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler2DArray) 0:32 'g_tTex2di4' ( uniform itexture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:32 Constant: 0:32 0.500000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval22' ( temp 4-component vector of uint) 0:33 texture ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler2DArray) 0:33 'g_tTex2du4' ( uniform utexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:33 Constant: 0:33 0.500000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval40' ( temp 4-component vector of float) 0:35 texture ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp samplerCubeArray) 0:35 'g_tTexcdf4' ( uniform textureCubeArray) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:35 Constant: 0:35 0.500000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval41' ( temp 4-component vector of int) 0:36 texture ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isamplerCubeArray) 0:36 'g_tTexcdi4' ( uniform itextureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:36 Constant: 0:36 0.500000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval42' ( temp 4-component vector of uint) 0:37 texture ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usamplerCubeArray) 0:37 'g_tTexcdu4' ( uniform utextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? 1.000000 0:37 Constant: 0:37 0.500000 0:39 move second child to first child ( temp 4-component vector of float) 0:39 Color: direct index for structure ( temp 4-component vector of float) 0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp float) 0:40 Depth: direct index for structure ( temp float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Branch: Return with expression 0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? 'g_tTexcdf4' ( uniform textureCubeArray) 0:? 'g_tTexcdi4' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval10' ( temp 4-component vector of float) 0:27 texture ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler1DArray) 0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:27 Constant: 0:27 0.500000 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval11' ( temp 4-component vector of int) 0:28 texture ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler1DArray) 0:28 'g_tTex1di4' ( uniform itexture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:28 Constant: 0:28 0.500000 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval12' ( temp 4-component vector of uint) 0:29 texture ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler1DArray) 0:29 'g_tTex1du4' ( uniform utexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:29 Constant: 0:29 0.500000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval20' ( temp 4-component vector of float) 0:31 texture ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2DArray) 0:31 'g_tTex2df4' ( uniform texture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:31 Constant: 0:31 0.500000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval21' ( temp 4-component vector of int) 0:32 texture ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler2DArray) 0:32 'g_tTex2di4' ( uniform itexture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:32 Constant: 0:32 0.500000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval22' ( temp 4-component vector of uint) 0:33 texture ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler2DArray) 0:33 'g_tTex2du4' ( uniform utexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:33 Constant: 0:33 0.500000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval40' ( temp 4-component vector of float) 0:35 texture ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp samplerCubeArray) 0:35 'g_tTexcdf4' ( uniform textureCubeArray) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:35 Constant: 0:35 0.500000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval41' ( temp 4-component vector of int) 0:36 texture ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isamplerCubeArray) 0:36 'g_tTexcdi4' ( uniform itextureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:36 Constant: 0:36 0.500000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval42' ( temp 4-component vector of uint) 0:37 texture ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usamplerCubeArray) 0:37 'g_tTexcdu4' ( uniform utextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? 1.000000 0:37 Constant: 0:37 0.500000 0:39 move second child to first child ( temp 4-component vector of float) 0:39 Color: direct index for structure ( temp 4-component vector of float) 0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp float) 0:40 Depth: direct index for structure ( temp float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Branch: Return with expression 0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? 'g_tTexcdf4' ( uniform textureCubeArray) 0:? 'g_tTexcdi4' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 50(g_tTex1du4) DescriptorSet 0 Decorate 50(g_tTex1du4) Binding 0 Decorate 61(g_tTex2df4) DescriptorSet 0 Decorate 61(g_tTex2df4) Binding 0 Decorate 72(g_tTex2di4) DescriptorSet 0 Decorate 72(g_tTex2di4) Binding 0 Decorate 82(g_tTex2du4) DescriptorSet 0 Decorate 82(g_tTex2du4) Binding 0 Decorate 94(g_tTexcdf4) DescriptorSet 0 Decorate 94(g_tTexcdf4) Binding 0 Decorate 104(g_tTexcdi4) DescriptorSet 0 Decorate 104(g_tTexcdi4) Binding 0 Decorate 114(g_tTexcdu4) DescriptorSet 0 Decorate 114(g_tTexcdu4) Binding 0 Decorate 138(@entryPointOutput.Color) Location 0 Decorate 142(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 145(g_tTex1df4a) DescriptorSet 0 Decorate 145(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D array sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: TypeVector 6(float) 2 25: 6(float) Constant 1036831949 26: 6(float) Constant 1045220557 27: 24(fvec2) ConstantComposite 25 26 28: 6(float) Constant 1056964608 30: TypeInt 32 1 31: TypeVector 30(int) 4 32: TypePointer Function 31(ivec4) 34: TypeImage 30(int) 1D array sampled format:Unknown 35: TypePointer UniformConstant 34 36(g_tTex1di4): 35(ptr) Variable UniformConstant 39: TypeSampledImage 34 41: 6(float) Constant 1050253722 42: 24(fvec2) ConstantComposite 26 41 44: TypeInt 32 0 45: TypeVector 44(int) 4 46: TypePointer Function 45(ivec4) 48: TypeImage 44(int) 1D array sampled format:Unknown 49: TypePointer UniformConstant 48 50(g_tTex1du4): 49(ptr) Variable UniformConstant 53: TypeSampledImage 48 55: 6(float) Constant 1053609165 56: 24(fvec2) ConstantComposite 41 55 59: TypeImage 6(float) 2D array sampled format:Unknown 60: TypePointer UniformConstant 59 61(g_tTex2df4): 60(ptr) Variable UniformConstant 64: TypeSampledImage 59 66: TypeVector 6(float) 3 67: 66(fvec3) ConstantComposite 25 26 41 70: TypeImage 30(int) 2D array sampled format:Unknown 71: TypePointer UniformConstant 70 72(g_tTex2di4): 71(ptr) Variable UniformConstant 75: TypeSampledImage 70 77: 66(fvec3) ConstantComposite 41 55 28 80: TypeImage 44(int) 2D array sampled format:Unknown 81: TypePointer UniformConstant 80 82(g_tTex2du4): 81(ptr) Variable UniformConstant 85: TypeSampledImage 80 87: 6(float) Constant 1058642330 88: 6(float) Constant 1060320051 89: 66(fvec3) ConstantComposite 28 87 88 92: TypeImage 6(float) Cube array sampled format:Unknown 93: TypePointer UniformConstant 92 94(g_tTexcdf4): 93(ptr) Variable UniformConstant 97: TypeSampledImage 92 99: 7(fvec4) ConstantComposite 25 26 41 55 102: TypeImage 30(int) Cube array sampled format:Unknown 103: TypePointer UniformConstant 102 104(g_tTexcdi4): 103(ptr) Variable UniformConstant 107: TypeSampledImage 102 109: 7(fvec4) ConstantComposite 55 28 87 88 112: TypeImage 44(int) Cube array sampled format:Unknown 113: TypePointer UniformConstant 112 114(g_tTexcdu4): 113(ptr) Variable UniformConstant 117: TypeSampledImage 112 119: 6(float) Constant 1061997773 120: 6(float) Constant 1063675494 121: 6(float) Constant 1065353216 122: 7(fvec4) ConstantComposite 88 119 120 121 124: TypePointer Function 8(PS_OUTPUT) 126: 30(int) Constant 0 127: 7(fvec4) ConstantComposite 121 121 121 121 129: 30(int) Constant 1 130: TypePointer Function 6(float) 137: TypePointer Output 7(fvec4) 138(@entryPointOutput.Color): 137(ptr) Variable Output 141: TypePointer Output 6(float) 142(@entryPointOutput.Depth): 141(ptr) Variable Output 145(g_tTex1df4a): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 135(flattenTemp): 124(ptr) Variable Function 136:8(PS_OUTPUT) FunctionCall 10(@main() Store 135(flattenTemp) 136 139: 12(ptr) AccessChain 135(flattenTemp) 126 140: 7(fvec4) Load 139 Store 138(@entryPointOutput.Color) 140 143: 130(ptr) AccessChain 135(flattenTemp) 129 144: 6(float) Load 143 Store 142(@entryPointOutput.Depth) 144 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 33(txval11): 32(ptr) Variable Function 47(txval12): 46(ptr) Variable Function 58(txval20): 12(ptr) Variable Function 69(txval21): 32(ptr) Variable Function 79(txval22): 46(ptr) Variable Function 91(txval40): 12(ptr) Variable Function 101(txval41): 32(ptr) Variable Function 111(txval42): 46(ptr) Variable Function 125(psout): 124(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 29: 7(fvec4) ImageSampleImplicitLod 23 27 Bias 28 Store 13(txval10) 29 37: 34 Load 36(g_tTex1di4) 38: 18 Load 20(g_sSamp) 40: 39 SampledImage 37 38 43: 31(ivec4) ImageSampleImplicitLod 40 42 Bias 28 Store 33(txval11) 43 51: 48 Load 50(g_tTex1du4) 52: 18 Load 20(g_sSamp) 54: 53 SampledImage 51 52 57: 45(ivec4) ImageSampleImplicitLod 54 56 Bias 28 Store 47(txval12) 57 62: 59 Load 61(g_tTex2df4) 63: 18 Load 20(g_sSamp) 65: 64 SampledImage 62 63 68: 7(fvec4) ImageSampleImplicitLod 65 67 Bias 28 Store 58(txval20) 68 73: 70 Load 72(g_tTex2di4) 74: 18 Load 20(g_sSamp) 76: 75 SampledImage 73 74 78: 31(ivec4) ImageSampleImplicitLod 76 77 Bias 28 Store 69(txval21) 78 83: 80 Load 82(g_tTex2du4) 84: 18 Load 20(g_sSamp) 86: 85 SampledImage 83 84 90: 45(ivec4) ImageSampleImplicitLod 86 89 Bias 28 Store 79(txval22) 90 95: 92 Load 94(g_tTexcdf4) 96: 18 Load 20(g_sSamp) 98: 97 SampledImage 95 96 100: 7(fvec4) ImageSampleImplicitLod 98 99 Bias 28 Store 91(txval40) 100 105: 102 Load 104(g_tTexcdi4) 106: 18 Load 20(g_sSamp) 108: 107 SampledImage 105 106 110: 31(ivec4) ImageSampleImplicitLod 108 109 Bias 28 Store 101(txval41) 110 115: 112 Load 114(g_tTexcdu4) 116: 18 Load 20(g_sSamp) 118: 117 SampledImage 115 116 123: 45(ivec4) ImageSampleImplicitLod 118 122 Bias 28 Store 111(txval42) 123 128: 12(ptr) AccessChain 125(psout) 126 Store 128 127 131: 130(ptr) AccessChain 125(psout) 129 Store 131 121 132:8(PS_OUTPUT) Load 125(psout) ReturnValue 132 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out000066400000000000000000001023461360464450000253060ustar00rootroot00000000000000hlsl.samplebias.basic.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 texture ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 0.500000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 texture ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 0.500000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 texture ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 0.500000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 texture ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:35 Constant: 0:35 0.500000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 texture ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:36 Constant: 0:36 0.500000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 texture ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:37 Constant: 0:37 0.500000 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 texture ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:39 Constant: 0:39 0.500000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 texture ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:40 Constant: 0:40 0.500000 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 texture ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:41 Constant: 0:41 0.500000 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of float) 0:43 'txval40' ( temp 4-component vector of float) 0:43 texture ( temp 4-component vector of float) 0:43 Construct combined texture-sampler ( temp samplerCube) 0:43 'g_tTexcdf4' ( uniform textureCube) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:43 Constant: 0:43 0.500000 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of int) 0:44 'txval41' ( temp 4-component vector of int) 0:44 texture ( temp 4-component vector of int) 0:44 Construct combined texture-sampler ( temp isamplerCube) 0:44 'g_tTexcdi4' ( uniform itextureCube) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:44 Constant: 0:44 0.500000 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of uint) 0:45 'txval42' ( temp 4-component vector of uint) 0:45 texture ( temp 4-component vector of uint) 0:45 Construct combined texture-sampler ( temp usamplerCube) 0:45 'g_tTexcdu4' ( uniform utextureCube) 0:45 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:45 Constant: 0:45 0.500000 0:47 move second child to first child ( temp 4-component vector of float) 0:47 Color: direct index for structure ( temp 4-component vector of float) 0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: 0:47 1.000000 0:47 1.000000 0:47 1.000000 0:47 1.000000 0:48 move second child to first child ( temp float) 0:48 Depth: direct index for structure ( temp float) 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Branch: Return with expression 0:50 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 texture ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 0.500000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 texture ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 0.500000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 texture ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 0.500000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 texture ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:35 Constant: 0:35 0.500000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 texture ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:36 Constant: 0:36 0.500000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 texture ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:37 Constant: 0:37 0.500000 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 texture ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:39 Constant: 0:39 0.500000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 texture ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:40 Constant: 0:40 0.500000 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 texture ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:41 Constant: 0:41 0.500000 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of float) 0:43 'txval40' ( temp 4-component vector of float) 0:43 texture ( temp 4-component vector of float) 0:43 Construct combined texture-sampler ( temp samplerCube) 0:43 'g_tTexcdf4' ( uniform textureCube) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:43 Constant: 0:43 0.500000 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of int) 0:44 'txval41' ( temp 4-component vector of int) 0:44 texture ( temp 4-component vector of int) 0:44 Construct combined texture-sampler ( temp isamplerCube) 0:44 'g_tTexcdi4' ( uniform itextureCube) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:44 Constant: 0:44 0.500000 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of uint) 0:45 'txval42' ( temp 4-component vector of uint) 0:45 texture ( temp 4-component vector of uint) 0:45 Construct combined texture-sampler ( temp usamplerCube) 0:45 'g_tTexcdu4' ( uniform utextureCube) 0:45 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:45 Constant: 0:45 0.500000 0:47 move second child to first child ( temp 4-component vector of float) 0:47 Color: direct index for structure ( temp 4-component vector of float) 0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: 0:47 1.000000 0:47 1.000000 0:47 1.000000 0:47 1.000000 0:48 move second child to first child ( temp float) 0:48 Depth: direct index for structure ( temp float) 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Branch: Return with expression 0:50 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 46(g_tTex1du4) DescriptorSet 0 Decorate 46(g_tTex1du4) Binding 0 Decorate 56(g_tTex2df4) DescriptorSet 0 Decorate 56(g_tTex2df4) Binding 0 Decorate 67(g_tTex2di4) DescriptorSet 0 Decorate 67(g_tTex2di4) Binding 0 Decorate 78(g_tTex2du4) DescriptorSet 0 Decorate 78(g_tTex2du4) Binding 0 Decorate 89(g_tTex3df4) DescriptorSet 0 Decorate 89(g_tTex3df4) Binding 0 Decorate 100(g_tTex3di4) DescriptorSet 0 Decorate 100(g_tTex3di4) Binding 0 Decorate 110(g_tTex3du4) DescriptorSet 0 Decorate 110(g_tTex3du4) Binding 0 Decorate 123(g_tTexcdf4) DescriptorSet 0 Decorate 123(g_tTexcdf4) Binding 0 Decorate 132(g_tTexcdi4) DescriptorSet 0 Decorate 132(g_tTexcdi4) Binding 0 Decorate 141(g_tTexcdu4) DescriptorSet 0 Decorate 141(g_tTexcdu4) Binding 0 Decorate 162(@entryPointOutput.Color) Location 0 Decorate 166(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 169(g_tTex1df4a) DescriptorSet 0 Decorate 169(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: 6(float) Constant 1036831949 25: 6(float) Constant 1056964608 27: TypeInt 32 1 28: TypeVector 27(int) 4 29: TypePointer Function 28(ivec4) 31: TypeImage 27(int) 1D sampled format:Unknown 32: TypePointer UniformConstant 31 33(g_tTex1di4): 32(ptr) Variable UniformConstant 36: TypeSampledImage 31 38: 6(float) Constant 1045220557 40: TypeInt 32 0 41: TypeVector 40(int) 4 42: TypePointer Function 41(ivec4) 44: TypeImage 40(int) 1D sampled format:Unknown 45: TypePointer UniformConstant 44 46(g_tTex1du4): 45(ptr) Variable UniformConstant 49: TypeSampledImage 44 51: 6(float) Constant 1050253722 54: TypeImage 6(float) 2D sampled format:Unknown 55: TypePointer UniformConstant 54 56(g_tTex2df4): 55(ptr) Variable UniformConstant 59: TypeSampledImage 54 61: TypeVector 6(float) 2 62: 61(fvec2) ConstantComposite 24 38 65: TypeImage 27(int) 2D sampled format:Unknown 66: TypePointer UniformConstant 65 67(g_tTex2di4): 66(ptr) Variable UniformConstant 70: TypeSampledImage 65 72: 6(float) Constant 1053609165 73: 61(fvec2) ConstantComposite 51 72 76: TypeImage 40(int) 2D sampled format:Unknown 77: TypePointer UniformConstant 76 78(g_tTex2du4): 77(ptr) Variable UniformConstant 81: TypeSampledImage 76 83: 6(float) Constant 1058642330 84: 61(fvec2) ConstantComposite 25 83 87: TypeImage 6(float) 3D sampled format:Unknown 88: TypePointer UniformConstant 87 89(g_tTex3df4): 88(ptr) Variable UniformConstant 92: TypeSampledImage 87 94: TypeVector 6(float) 3 95: 94(fvec3) ConstantComposite 24 38 51 98: TypeImage 27(int) 3D sampled format:Unknown 99: TypePointer UniformConstant 98 100(g_tTex3di4): 99(ptr) Variable UniformConstant 103: TypeSampledImage 98 105: 94(fvec3) ConstantComposite 72 25 83 108: TypeImage 40(int) 3D sampled format:Unknown 109: TypePointer UniformConstant 108 110(g_tTex3du4): 109(ptr) Variable UniformConstant 113: TypeSampledImage 108 115: 6(float) Constant 1060320051 116: 6(float) Constant 1061997773 117: 6(float) Constant 1063675494 118: 94(fvec3) ConstantComposite 115 116 117 121: TypeImage 6(float) Cube sampled format:Unknown 122: TypePointer UniformConstant 121 123(g_tTexcdf4): 122(ptr) Variable UniformConstant 126: TypeSampledImage 121 130: TypeImage 27(int) Cube sampled format:Unknown 131: TypePointer UniformConstant 130 132(g_tTexcdi4): 131(ptr) Variable UniformConstant 135: TypeSampledImage 130 139: TypeImage 40(int) Cube sampled format:Unknown 140: TypePointer UniformConstant 139 141(g_tTexcdu4): 140(ptr) Variable UniformConstant 144: TypeSampledImage 139 147: TypePointer Function 8(PS_OUTPUT) 149: 27(int) Constant 0 150: 6(float) Constant 1065353216 151: 7(fvec4) ConstantComposite 150 150 150 150 153: 27(int) Constant 1 154: TypePointer Function 6(float) 161: TypePointer Output 7(fvec4) 162(@entryPointOutput.Color): 161(ptr) Variable Output 165: TypePointer Output 6(float) 166(@entryPointOutput.Depth): 165(ptr) Variable Output 169(g_tTex1df4a): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 159(flattenTemp): 147(ptr) Variable Function 160:8(PS_OUTPUT) FunctionCall 10(@main() Store 159(flattenTemp) 160 163: 12(ptr) AccessChain 159(flattenTemp) 149 164: 7(fvec4) Load 163 Store 162(@entryPointOutput.Color) 164 167: 154(ptr) AccessChain 159(flattenTemp) 153 168: 6(float) Load 167 Store 166(@entryPointOutput.Depth) 168 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 30(txval11): 29(ptr) Variable Function 43(txval12): 42(ptr) Variable Function 53(txval20): 12(ptr) Variable Function 64(txval21): 29(ptr) Variable Function 75(txval22): 42(ptr) Variable Function 86(txval30): 12(ptr) Variable Function 97(txval31): 29(ptr) Variable Function 107(txval32): 42(ptr) Variable Function 120(txval40): 12(ptr) Variable Function 129(txval41): 29(ptr) Variable Function 138(txval42): 42(ptr) Variable Function 148(psout): 147(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 26: 7(fvec4) ImageSampleImplicitLod 23 24 Bias 25 Store 13(txval10) 26 34: 31 Load 33(g_tTex1di4) 35: 18 Load 20(g_sSamp) 37: 36 SampledImage 34 35 39: 28(ivec4) ImageSampleImplicitLod 37 38 Bias 25 Store 30(txval11) 39 47: 44 Load 46(g_tTex1du4) 48: 18 Load 20(g_sSamp) 50: 49 SampledImage 47 48 52: 41(ivec4) ImageSampleImplicitLod 50 51 Bias 25 Store 43(txval12) 52 57: 54 Load 56(g_tTex2df4) 58: 18 Load 20(g_sSamp) 60: 59 SampledImage 57 58 63: 7(fvec4) ImageSampleImplicitLod 60 62 Bias 25 Store 53(txval20) 63 68: 65 Load 67(g_tTex2di4) 69: 18 Load 20(g_sSamp) 71: 70 SampledImage 68 69 74: 28(ivec4) ImageSampleImplicitLod 71 73 Bias 25 Store 64(txval21) 74 79: 76 Load 78(g_tTex2du4) 80: 18 Load 20(g_sSamp) 82: 81 SampledImage 79 80 85: 41(ivec4) ImageSampleImplicitLod 82 84 Bias 25 Store 75(txval22) 85 90: 87 Load 89(g_tTex3df4) 91: 18 Load 20(g_sSamp) 93: 92 SampledImage 90 91 96: 7(fvec4) ImageSampleImplicitLod 93 95 Bias 25 Store 86(txval30) 96 101: 98 Load 100(g_tTex3di4) 102: 18 Load 20(g_sSamp) 104: 103 SampledImage 101 102 106: 28(ivec4) ImageSampleImplicitLod 104 105 Bias 25 Store 97(txval31) 106 111: 108 Load 110(g_tTex3du4) 112: 18 Load 20(g_sSamp) 114: 113 SampledImage 111 112 119: 41(ivec4) ImageSampleImplicitLod 114 118 Bias 25 Store 107(txval32) 119 124: 121 Load 123(g_tTexcdf4) 125: 18 Load 20(g_sSamp) 127: 126 SampledImage 124 125 128: 7(fvec4) ImageSampleImplicitLod 127 95 Bias 25 Store 120(txval40) 128 133: 130 Load 132(g_tTexcdi4) 134: 18 Load 20(g_sSamp) 136: 135 SampledImage 133 134 137: 28(ivec4) ImageSampleImplicitLod 136 105 Bias 25 Store 129(txval41) 137 142: 139 Load 141(g_tTexcdu4) 143: 18 Load 20(g_sSamp) 145: 144 SampledImage 142 143 146: 41(ivec4) ImageSampleImplicitLod 145 118 Bias 25 Store 138(txval42) 146 152: 12(ptr) AccessChain 148(psout) 149 Store 152 151 155: 154(ptr) AccessChain 148(psout) 153 Store 155 150 156:8(PS_OUTPUT) Load 148(psout) ReturnValue 156 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out000066400000000000000000000757761360464450000255330ustar00rootroot00000000000000hlsl.samplebias.offset.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 textureOffset ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 0.500000 0:31 Constant: 0:31 1 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 textureOffset ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 0.500000 0:32 Constant: 0:32 1 (const int) 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 textureOffset ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 0.500000 0:33 Constant: 0:33 1 (const int) 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 textureOffset ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:35 Constant: 0:35 0.500000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 textureOffset ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:36 Constant: 0:36 0.500000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 textureOffset ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:37 Constant: 0:37 0.500000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 textureOffset ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:39 Constant: 0:39 0.500000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 textureOffset ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:40 Constant: 0:40 0.500000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 textureOffset ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:41 Constant: 0:41 0.500000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child ( temp 4-component vector of float) 0:45 Color: direct index for structure ( temp 4-component vector of float) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:46 move second child to first child ( temp float) 0:46 Depth: direct index for structure ( temp float) 0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Branch: Return with expression 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 textureOffset ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 0.500000 0:31 Constant: 0:31 1 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 textureOffset ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 0.500000 0:32 Constant: 0:32 1 (const int) 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 textureOffset ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 0.500000 0:33 Constant: 0:33 1 (const int) 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 textureOffset ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:35 Constant: 0:35 0.500000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 textureOffset ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:36 Constant: 0:36 0.500000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 textureOffset ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:37 Constant: 0:37 0.500000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 textureOffset ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:39 Constant: 0:39 0.500000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 textureOffset ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:40 Constant: 0:40 0.500000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 textureOffset ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:41 Constant: 0:41 0.500000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child ( temp 4-component vector of float) 0:45 Color: direct index for structure ( temp 4-component vector of float) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:46 move second child to first child ( temp float) 0:46 Depth: direct index for structure ( temp float) 0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Branch: Return with expression 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 47(g_tTex1du4) DescriptorSet 0 Decorate 47(g_tTex1du4) Binding 0 Decorate 57(g_tTex2df4) DescriptorSet 0 Decorate 57(g_tTex2df4) Binding 0 Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 71(g_tTex2di4) Binding 0 Decorate 83(g_tTex2du4) DescriptorSet 0 Decorate 83(g_tTex2du4) Binding 0 Decorate 96(g_tTex3df4) DescriptorSet 0 Decorate 96(g_tTex3df4) Binding 0 Decorate 109(g_tTex3di4) DescriptorSet 0 Decorate 109(g_tTex3di4) Binding 0 Decorate 120(g_tTex3du4) DescriptorSet 0 Decorate 120(g_tTex3du4) Binding 0 Decorate 144(@entryPointOutput.Color) Location 0 Decorate 148(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 151(g_tTex1df4a) DescriptorSet 0 Decorate 151(g_tTex1df4a) Binding 1 Decorate 154(g_tTexcdf4) DescriptorSet 0 Decorate 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: 6(float) Constant 1056964608 26: TypeInt 32 1 27: 26(int) Constant 1 29: TypeVector 26(int) 4 30: TypePointer Function 29(ivec4) 32: TypeImage 26(int) 1D sampled format:Unknown 33: TypePointer UniformConstant 32 34(g_tTex1di4): 33(ptr) Variable UniformConstant 37: TypeSampledImage 32 39: 6(float) Constant 1045220557 41: TypeInt 32 0 42: TypeVector 41(int) 4 43: TypePointer Function 42(ivec4) 45: TypeImage 41(int) 1D sampled format:Unknown 46: TypePointer UniformConstant 45 47(g_tTex1du4): 46(ptr) Variable UniformConstant 50: TypeSampledImage 45 52: 6(float) Constant 1050253722 55: TypeImage 6(float) 2D sampled format:Unknown 56: TypePointer UniformConstant 55 57(g_tTex2df4): 56(ptr) Variable UniformConstant 60: TypeSampledImage 55 62: TypeVector 6(float) 2 63: 62(fvec2) ConstantComposite 24 39 64: TypeVector 26(int) 2 65: 26(int) Constant 0 66: 64(ivec2) ConstantComposite 27 65 69: TypeImage 26(int) 2D sampled format:Unknown 70: TypePointer UniformConstant 69 71(g_tTex2di4): 70(ptr) Variable UniformConstant 74: TypeSampledImage 69 76: 6(float) Constant 1053609165 77: 62(fvec2) ConstantComposite 52 76 78: 64(ivec2) ConstantComposite 27 27 81: TypeImage 41(int) 2D sampled format:Unknown 82: TypePointer UniformConstant 81 83(g_tTex2du4): 82(ptr) Variable UniformConstant 86: TypeSampledImage 81 88: 6(float) Constant 1058642330 89: 62(fvec2) ConstantComposite 25 88 90: 26(int) Constant 4294967295 91: 64(ivec2) ConstantComposite 27 90 94: TypeImage 6(float) 3D sampled format:Unknown 95: TypePointer UniformConstant 94 96(g_tTex3df4): 95(ptr) Variable UniformConstant 99: TypeSampledImage 94 101: TypeVector 6(float) 3 102: 101(fvec3) ConstantComposite 24 39 52 103: TypeVector 26(int) 3 104: 103(ivec3) ConstantComposite 27 65 27 107: TypeImage 26(int) 3D sampled format:Unknown 108: TypePointer UniformConstant 107 109(g_tTex3di4): 108(ptr) Variable UniformConstant 112: TypeSampledImage 107 114: 101(fvec3) ConstantComposite 76 25 88 115: 103(ivec3) ConstantComposite 27 27 27 118: TypeImage 41(int) 3D sampled format:Unknown 119: TypePointer UniformConstant 118 120(g_tTex3du4): 119(ptr) Variable UniformConstant 123: TypeSampledImage 118 125: 6(float) Constant 1060320051 126: 6(float) Constant 1061997773 127: 6(float) Constant 1063675494 128: 101(fvec3) ConstantComposite 125 126 127 129: 103(ivec3) ConstantComposite 27 65 90 131: TypePointer Function 8(PS_OUTPUT) 133: 6(float) Constant 1065353216 134: 7(fvec4) ConstantComposite 133 133 133 133 136: TypePointer Function 6(float) 143: TypePointer Output 7(fvec4) 144(@entryPointOutput.Color): 143(ptr) Variable Output 147: TypePointer Output 6(float) 148(@entryPointOutput.Depth): 147(ptr) Variable Output 151(g_tTex1df4a): 15(ptr) Variable UniformConstant 152: TypeImage 6(float) Cube sampled format:Unknown 153: TypePointer UniformConstant 152 154(g_tTexcdf4): 153(ptr) Variable UniformConstant 155: TypeImage 26(int) Cube sampled format:Unknown 156: TypePointer UniformConstant 155 157(g_tTexcdi4): 156(ptr) Variable UniformConstant 158: TypeImage 41(int) Cube sampled format:Unknown 159: TypePointer UniformConstant 158 160(g_tTexcdu4): 159(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 141(flattenTemp): 131(ptr) Variable Function 142:8(PS_OUTPUT) FunctionCall 10(@main() Store 141(flattenTemp) 142 145: 12(ptr) AccessChain 141(flattenTemp) 65 146: 7(fvec4) Load 145 Store 144(@entryPointOutput.Color) 146 149: 136(ptr) AccessChain 141(flattenTemp) 27 150: 6(float) Load 149 Store 148(@entryPointOutput.Depth) 150 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 31(txval11): 30(ptr) Variable Function 44(txval12): 43(ptr) Variable Function 54(txval20): 12(ptr) Variable Function 68(txval21): 30(ptr) Variable Function 80(txval22): 43(ptr) Variable Function 93(txval30): 12(ptr) Variable Function 106(txval31): 30(ptr) Variable Function 117(txval32): 43(ptr) Variable Function 132(psout): 131(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 28: 7(fvec4) ImageSampleImplicitLod 23 24 Bias ConstOffset 27 25 Store 13(txval10) 28 35: 32 Load 34(g_tTex1di4) 36: 18 Load 20(g_sSamp) 38: 37 SampledImage 35 36 40: 29(ivec4) ImageSampleImplicitLod 38 39 Bias ConstOffset 27 25 Store 31(txval11) 40 48: 45 Load 47(g_tTex1du4) 49: 18 Load 20(g_sSamp) 51: 50 SampledImage 48 49 53: 42(ivec4) ImageSampleImplicitLod 51 52 Bias ConstOffset 27 25 Store 44(txval12) 53 58: 55 Load 57(g_tTex2df4) 59: 18 Load 20(g_sSamp) 61: 60 SampledImage 58 59 67: 7(fvec4) ImageSampleImplicitLod 61 63 Bias ConstOffset 66 25 Store 54(txval20) 67 72: 69 Load 71(g_tTex2di4) 73: 18 Load 20(g_sSamp) 75: 74 SampledImage 72 73 79: 29(ivec4) ImageSampleImplicitLod 75 77 Bias ConstOffset 78 25 Store 68(txval21) 79 84: 81 Load 83(g_tTex2du4) 85: 18 Load 20(g_sSamp) 87: 86 SampledImage 84 85 92: 42(ivec4) ImageSampleImplicitLod 87 89 Bias ConstOffset 91 25 Store 80(txval22) 92 97: 94 Load 96(g_tTex3df4) 98: 18 Load 20(g_sSamp) 100: 99 SampledImage 97 98 105: 7(fvec4) ImageSampleImplicitLod 100 102 Bias ConstOffset 104 25 Store 93(txval30) 105 110: 107 Load 109(g_tTex3di4) 111: 18 Load 20(g_sSamp) 113: 112 SampledImage 110 111 116: 29(ivec4) ImageSampleImplicitLod 113 114 Bias ConstOffset 115 25 Store 106(txval31) 116 121: 118 Load 120(g_tTex3du4) 122: 18 Load 20(g_sSamp) 124: 123 SampledImage 121 122 130: 42(ivec4) ImageSampleImplicitLod 124 128 Bias ConstOffset 129 25 Store 117(txval32) 130 135: 12(ptr) AccessChain 132(psout) 65 Store 135 134 137: 136(ptr) AccessChain 132(psout) 27 Store 137 133 138:8(PS_OUTPUT) Load 132(psout) ReturnValue 138 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out000066400000000000000000000561341360464450000265550ustar00rootroot00000000000000hlsl.samplebias.offsetarray.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child ( temp 4-component vector of float) 0:23 'txval10' ( temp 4-component vector of float) 0:23 textureOffset ( temp 4-component vector of float) 0:23 Construct combined texture-sampler ( temp sampler1DArray) 0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:23 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:23 Constant: 0:23 0.500000 0:23 Constant: 0:23 0 (const int) 0:24 Sequence 0:24 move second child to first child ( temp 4-component vector of int) 0:24 'txval11' ( temp 4-component vector of int) 0:24 textureOffset ( temp 4-component vector of int) 0:24 Construct combined texture-sampler ( temp isampler1DArray) 0:24 'g_tTex1di4' ( uniform itexture1DArray) 0:24 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:24 Constant: 0:24 0.500000 0:24 Constant: 0:24 1 (const int) 0:25 Sequence 0:25 move second child to first child ( temp 4-component vector of uint) 0:25 'txval12' ( temp 4-component vector of uint) 0:25 textureOffset ( temp 4-component vector of uint) 0:25 Construct combined texture-sampler ( temp usampler1DArray) 0:25 'g_tTex1du4' ( uniform utexture1DArray) 0:25 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:25 Constant: 0:25 0.500000 0:25 Constant: 0:25 2 (const int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval20' ( temp 4-component vector of float) 0:27 textureOffset ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler2DArray) 0:27 'g_tTex2df4' ( uniform texture2DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:27 Constant: 0:27 0.500000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval21' ( temp 4-component vector of int) 0:28 textureOffset ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler2DArray) 0:28 'g_tTex2di4' ( uniform itexture2DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:28 Constant: 0:28 0.500000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval22' ( temp 4-component vector of uint) 0:29 textureOffset ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler2DArray) 0:29 'g_tTex2du4' ( uniform utexture2DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:29 Constant: 0:29 0.500000 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child ( temp 4-component vector of float) 0:33 Color: direct index for structure ( temp 4-component vector of float) 0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:34 move second child to first child ( temp float) 0:34 Depth: direct index for structure ( temp float) 0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Branch: Return with expression 0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Definition: main( ( temp void) 0:20 Function Parameters: 0:? Sequence 0:20 Sequence 0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:20 Color: direct index for structure ( temp 4-component vector of float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 0 (const int) 0:20 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:20 Depth: direct index for structure ( temp float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child ( temp 4-component vector of float) 0:23 'txval10' ( temp 4-component vector of float) 0:23 textureOffset ( temp 4-component vector of float) 0:23 Construct combined texture-sampler ( temp sampler1DArray) 0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:23 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:23 Constant: 0:23 0.500000 0:23 Constant: 0:23 0 (const int) 0:24 Sequence 0:24 move second child to first child ( temp 4-component vector of int) 0:24 'txval11' ( temp 4-component vector of int) 0:24 textureOffset ( temp 4-component vector of int) 0:24 Construct combined texture-sampler ( temp isampler1DArray) 0:24 'g_tTex1di4' ( uniform itexture1DArray) 0:24 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:24 Constant: 0:24 0.500000 0:24 Constant: 0:24 1 (const int) 0:25 Sequence 0:25 move second child to first child ( temp 4-component vector of uint) 0:25 'txval12' ( temp 4-component vector of uint) 0:25 textureOffset ( temp 4-component vector of uint) 0:25 Construct combined texture-sampler ( temp usampler1DArray) 0:25 'g_tTex1du4' ( uniform utexture1DArray) 0:25 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:25 Constant: 0:25 0.500000 0:25 Constant: 0:25 2 (const int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval20' ( temp 4-component vector of float) 0:27 textureOffset ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler2DArray) 0:27 'g_tTex2df4' ( uniform texture2DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:27 Constant: 0:27 0.500000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval21' ( temp 4-component vector of int) 0:28 textureOffset ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler2DArray) 0:28 'g_tTex2di4' ( uniform itexture2DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:28 Constant: 0:28 0.500000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval22' ( temp 4-component vector of uint) 0:29 textureOffset ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler2DArray) 0:29 'g_tTex2du4' ( uniform utexture2DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:29 Constant: 0:29 0.500000 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child ( temp 4-component vector of float) 0:33 Color: direct index for structure ( temp 4-component vector of float) 0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:34 move second child to first child ( temp float) 0:34 Depth: direct index for structure ( temp float) 0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Branch: Return with expression 0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Definition: main( ( temp void) 0:20 Function Parameters: 0:? Sequence 0:20 Sequence 0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:20 Color: direct index for structure ( temp 4-component vector of float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 0 (const int) 0:20 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:20 Depth: direct index for structure ( temp float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 52(g_tTex1du4) DescriptorSet 0 Decorate 52(g_tTex1du4) Binding 0 Decorate 64(g_tTex2df4) DescriptorSet 0 Decorate 64(g_tTex2df4) Binding 0 Decorate 77(g_tTex2di4) DescriptorSet 0 Decorate 77(g_tTex2di4) Binding 0 Decorate 87(g_tTex2du4) DescriptorSet 0 Decorate 87(g_tTex2du4) Binding 0 Decorate 110(@entryPointOutput.Color) Location 0 Decorate 114(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 117(g_tTex1df4a) DescriptorSet 0 Decorate 117(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D array sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: TypeVector 6(float) 2 25: 6(float) Constant 1036831949 26: 6(float) Constant 1045220557 27: 24(fvec2) ConstantComposite 25 26 28: 6(float) Constant 1056964608 29: TypeInt 32 1 30: 29(int) Constant 0 32: TypeVector 29(int) 4 33: TypePointer Function 32(ivec4) 35: TypeImage 29(int) 1D array sampled format:Unknown 36: TypePointer UniformConstant 35 37(g_tTex1di4): 36(ptr) Variable UniformConstant 40: TypeSampledImage 35 42: 6(float) Constant 1050253722 43: 24(fvec2) ConstantComposite 26 42 44: 29(int) Constant 1 46: TypeInt 32 0 47: TypeVector 46(int) 4 48: TypePointer Function 47(ivec4) 50: TypeImage 46(int) 1D array sampled format:Unknown 51: TypePointer UniformConstant 50 52(g_tTex1du4): 51(ptr) Variable UniformConstant 55: TypeSampledImage 50 57: 6(float) Constant 1053609165 58: 24(fvec2) ConstantComposite 42 57 59: 29(int) Constant 2 62: TypeImage 6(float) 2D array sampled format:Unknown 63: TypePointer UniformConstant 62 64(g_tTex2df4): 63(ptr) Variable UniformConstant 67: TypeSampledImage 62 69: TypeVector 6(float) 3 70: 69(fvec3) ConstantComposite 25 26 42 71: TypeVector 29(int) 2 72: 71(ivec2) ConstantComposite 30 30 75: TypeImage 29(int) 2D array sampled format:Unknown 76: TypePointer UniformConstant 75 77(g_tTex2di4): 76(ptr) Variable UniformConstant 80: TypeSampledImage 75 82: 69(fvec3) ConstantComposite 42 57 28 85: TypeImage 46(int) 2D array sampled format:Unknown 86: TypePointer UniformConstant 85 87(g_tTex2du4): 86(ptr) Variable UniformConstant 90: TypeSampledImage 85 92: 6(float) Constant 1058642330 93: 6(float) Constant 1060320051 94: 69(fvec3) ConstantComposite 28 92 93 95: 71(ivec2) ConstantComposite 30 44 97: TypePointer Function 8(PS_OUTPUT) 99: 6(float) Constant 1065353216 100: 7(fvec4) ConstantComposite 99 99 99 99 102: TypePointer Function 6(float) 109: TypePointer Output 7(fvec4) 110(@entryPointOutput.Color): 109(ptr) Variable Output 113: TypePointer Output 6(float) 114(@entryPointOutput.Depth): 113(ptr) Variable Output 117(g_tTex1df4a): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 107(flattenTemp): 97(ptr) Variable Function 108:8(PS_OUTPUT) FunctionCall 10(@main() Store 107(flattenTemp) 108 111: 12(ptr) AccessChain 107(flattenTemp) 30 112: 7(fvec4) Load 111 Store 110(@entryPointOutput.Color) 112 115: 102(ptr) AccessChain 107(flattenTemp) 44 116: 6(float) Load 115 Store 114(@entryPointOutput.Depth) 116 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 34(txval11): 33(ptr) Variable Function 49(txval12): 48(ptr) Variable Function 61(txval20): 12(ptr) Variable Function 74(txval21): 33(ptr) Variable Function 84(txval22): 48(ptr) Variable Function 98(psout): 97(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 31: 7(fvec4) ImageSampleImplicitLod 23 27 Bias ConstOffset 30 28 Store 13(txval10) 31 38: 35 Load 37(g_tTex1di4) 39: 18 Load 20(g_sSamp) 41: 40 SampledImage 38 39 45: 32(ivec4) ImageSampleImplicitLod 41 43 Bias ConstOffset 44 28 Store 34(txval11) 45 53: 50 Load 52(g_tTex1du4) 54: 18 Load 20(g_sSamp) 56: 55 SampledImage 53 54 60: 47(ivec4) ImageSampleImplicitLod 56 58 Bias ConstOffset 59 28 Store 49(txval12) 60 65: 62 Load 64(g_tTex2df4) 66: 18 Load 20(g_sSamp) 68: 67 SampledImage 65 66 73: 7(fvec4) ImageSampleImplicitLod 68 70 Bias ConstOffset 72 28 Store 61(txval20) 73 78: 75 Load 77(g_tTex2di4) 79: 18 Load 20(g_sSamp) 81: 80 SampledImage 78 79 83: 32(ivec4) ImageSampleImplicitLod 81 82 Bias ConstOffset 72 28 Store 74(txval21) 83 88: 85 Load 87(g_tTex2du4) 89: 18 Load 20(g_sSamp) 91: 90 SampledImage 88 89 96: 47(ivec4) ImageSampleImplicitLod 91 94 Bias ConstOffset 95 28 Store 84(txval22) 96 101: 12(ptr) AccessChain 98(psout) 30 Store 101 100 103: 102(ptr) AccessChain 98(psout) 44 Store 103 99 104:8(PS_OUTPUT) Load 98(psout) ReturnValue 104 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out000066400000000000000000001070041360464450000252000ustar00rootroot00000000000000hlsl.samplecmp.array.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r10' ( temp float) 0:42 texture ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:42 Constant: 0:42 0.750000 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r12' ( temp float) 0:43 texture ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:43 Constant: 0:43 0.750000 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r14' ( temp float) 0:44 texture ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:44 Constant: 0:44 0.750000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r30' ( temp float) 0:47 texture ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:47 Constant: 0:47 0.750000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r32' ( temp float) 0:48 texture ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:48 Constant: 0:48 0.750000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r34' ( temp float) 0:49 texture ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:49 Constant: 0:49 0.750000 0:52 Sequence 0:52 move second child to first child ( temp float) 0:52 'r60' ( temp float) 0:52 texture ( temp float) 0:52 Construct combined texture-sampler ( temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) 0:52 'g_sSamp' (layout( binding=0) uniform sampler) 0:52 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:52 Constant: 0:52 0.750000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'r62' ( temp float) 0:53 texture ( temp float) 0:53 Construct combined texture-sampler ( temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) 0:53 'g_sSamp' (layout( binding=0) uniform sampler) 0:53 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:53 Constant: 0:53 0.750000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'r64' ( temp float) 0:54 texture ( temp float) 0:54 Construct combined texture-sampler ( temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) 0:54 'g_sSamp' (layout( binding=0) uniform sampler) 0:54 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:54 Constant: 0:54 0.750000 0:56 move second child to first child ( temp 4-component vector of float) 0:56 Color: direct index for structure ( temp 4-component vector of float) 0:56 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: 0:56 1.000000 0:56 1.000000 0:56 1.000000 0:56 1.000000 0:57 move second child to first child ( temp float) 0:57 Depth: direct index for structure ( temp float) 0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Branch: Return with expression 0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:? 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r10' ( temp float) 0:42 texture ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:42 Constant: 0:42 0.750000 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r12' ( temp float) 0:43 texture ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:43 Constant: 0:43 0.750000 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r14' ( temp float) 0:44 texture ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:44 Constant: 0:44 0.750000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r30' ( temp float) 0:47 texture ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:47 Constant: 0:47 0.750000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r32' ( temp float) 0:48 texture ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:48 Constant: 0:48 0.750000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r34' ( temp float) 0:49 texture ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:49 Constant: 0:49 0.750000 0:52 Sequence 0:52 move second child to first child ( temp float) 0:52 'r60' ( temp float) 0:52 texture ( temp float) 0:52 Construct combined texture-sampler ( temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) 0:52 'g_sSamp' (layout( binding=0) uniform sampler) 0:52 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:52 Constant: 0:52 0.750000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'r62' ( temp float) 0:53 texture ( temp float) 0:53 Construct combined texture-sampler ( temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) 0:53 'g_sSamp' (layout( binding=0) uniform sampler) 0:53 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:53 Constant: 0:53 0.750000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'r64' ( temp float) 0:54 texture ( temp float) 0:54 Construct combined texture-sampler ( temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) 0:54 'g_sSamp' (layout( binding=0) uniform sampler) 0:54 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:54 Constant: 0:54 0.750000 0:56 move second child to first child ( temp 4-component vector of float) 0:56 Color: direct index for structure ( temp 4-component vector of float) 0:56 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: 0:56 1.000000 0:56 1.000000 0:56 1.000000 0:56 1.000000 0:57 move second child to first child ( temp float) 0:57 Depth: direct index for structure ( temp float) 0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Branch: Return with expression 0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:? 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 Decorate 39(g_tTex1di4a) DescriptorSet 0 Decorate 39(g_tTex1di4a) Binding 0 Decorate 53(g_tTex1du4a) DescriptorSet 0 Decorate 53(g_tTex1du4a) Binding 0 Decorate 66(g_tTex2df4a) DescriptorSet 0 Decorate 66(g_tTex2df4a) Binding 0 Decorate 82(g_tTex2di4a) DescriptorSet 0 Decorate 82(g_tTex2di4a) Binding 0 Decorate 96(g_tTex2du4a) DescriptorSet 0 Decorate 96(g_tTex2du4a) Binding 0 Decorate 110(g_tTexcdf4a) DescriptorSet 0 Decorate 110(g_tTexcdf4a) Binding 0 Decorate 126(g_tTexcdi4a) DescriptorSet 0 Decorate 126(g_tTexcdi4a) Binding 0 Decorate 140(g_tTexcdu4a) DescriptorSet 0 Decorate 140(g_tTexcdu4a) Binding 0 Decorate 166(@entryPointOutput.Color) Location 0 Decorate 170(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 175(g_tTex1df4) DescriptorSet 0 Decorate 175(g_tTex1df4) Binding 0 Decorate 178(g_tTex1di4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out000066400000000000000000001044031360464450000251430ustar00rootroot00000000000000hlsl.samplecmp.basic.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r00' ( temp float) 0:42 texture ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DShadow) 0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec2 ( temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: 0:42 0.750000 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r02' ( temp float) 0:43 texture ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DShadow) 0:43 'g_tTex1di4' ( uniform itexture1DShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec2 ( temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: 0:43 0.750000 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r04' ( temp float) 0:44 texture ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DShadow) 0:44 'g_tTex1du4' ( uniform utexture1DShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec2 ( temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: 0:44 0.750000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r20' ( temp float) 0:47 texture ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DShadow) 0:47 'g_tTex2df4' ( uniform texture2DShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:47 Constant: 0:47 0.750000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r22' ( temp float) 0:48 texture ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DShadow) 0:48 'g_tTex2di4' ( uniform itexture2DShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:48 Constant: 0:48 0.750000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r24' ( temp float) 0:49 texture ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DShadow) 0:49 'g_tTex2du4' ( uniform utexture2DShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:49 Constant: 0:49 0.750000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'r50' ( temp float) 0:53 texture ( temp float) 0:53 Construct combined texture-sampler ( temp samplerCubeShadow) 0:53 'g_tTexcdf4' ( uniform textureCubeShadow) 0:53 'g_sSamp' (layout( binding=0) uniform sampler) 0:53 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:53 Constant: 0:53 0.750000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'r52' ( temp float) 0:54 texture ( temp float) 0:54 Construct combined texture-sampler ( temp isamplerCubeShadow) 0:54 'g_tTexcdi4' ( uniform itextureCubeShadow) 0:54 'g_sSamp' (layout( binding=0) uniform sampler) 0:54 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:54 Constant: 0:54 0.750000 0:55 Sequence 0:55 move second child to first child ( temp float) 0:55 'r54' ( temp float) 0:55 texture ( temp float) 0:55 Construct combined texture-sampler ( temp usamplerCubeShadow) 0:55 'g_tTexcdu4' ( uniform utextureCubeShadow) 0:55 'g_sSamp' (layout( binding=0) uniform sampler) 0:55 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:55 Constant: 0:55 0.750000 0:57 move second child to first child ( temp 4-component vector of float) 0:57 Color: direct index for structure ( temp 4-component vector of float) 0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1.000000 0:57 1.000000 0:57 1.000000 0:57 1.000000 0:58 move second child to first child ( temp float) 0:58 Depth: direct index for structure ( temp float) 0:58 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Branch: Return with expression 0:60 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:? 'g_tTex1di4' ( uniform itexture1DShadow) 0:? 'g_tTex1du4' ( uniform utexture1DShadow) 0:? 'g_tTex2df4' ( uniform texture2DShadow) 0:? 'g_tTex2di4' ( uniform itexture2DShadow) 0:? 'g_tTex2du4' ( uniform utexture2DShadow) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCubeShadow) 0:? 'g_tTexcdi4' ( uniform itextureCubeShadow) 0:? 'g_tTexcdu4' ( uniform utextureCubeShadow) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r00' ( temp float) 0:42 texture ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DShadow) 0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec2 ( temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: 0:42 0.750000 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r02' ( temp float) 0:43 texture ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DShadow) 0:43 'g_tTex1di4' ( uniform itexture1DShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec2 ( temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: 0:43 0.750000 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r04' ( temp float) 0:44 texture ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DShadow) 0:44 'g_tTex1du4' ( uniform utexture1DShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec2 ( temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: 0:44 0.750000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r20' ( temp float) 0:47 texture ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DShadow) 0:47 'g_tTex2df4' ( uniform texture2DShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:47 Constant: 0:47 0.750000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r22' ( temp float) 0:48 texture ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DShadow) 0:48 'g_tTex2di4' ( uniform itexture2DShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:48 Constant: 0:48 0.750000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r24' ( temp float) 0:49 texture ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DShadow) 0:49 'g_tTex2du4' ( uniform utexture2DShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:49 Constant: 0:49 0.750000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'r50' ( temp float) 0:53 texture ( temp float) 0:53 Construct combined texture-sampler ( temp samplerCubeShadow) 0:53 'g_tTexcdf4' ( uniform textureCubeShadow) 0:53 'g_sSamp' (layout( binding=0) uniform sampler) 0:53 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:53 Constant: 0:53 0.750000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'r52' ( temp float) 0:54 texture ( temp float) 0:54 Construct combined texture-sampler ( temp isamplerCubeShadow) 0:54 'g_tTexcdi4' ( uniform itextureCubeShadow) 0:54 'g_sSamp' (layout( binding=0) uniform sampler) 0:54 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:54 Constant: 0:54 0.750000 0:55 Sequence 0:55 move second child to first child ( temp float) 0:55 'r54' ( temp float) 0:55 texture ( temp float) 0:55 Construct combined texture-sampler ( temp usamplerCubeShadow) 0:55 'g_tTexcdu4' ( uniform utextureCubeShadow) 0:55 'g_sSamp' (layout( binding=0) uniform sampler) 0:55 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:55 Constant: 0:55 0.750000 0:57 move second child to first child ( temp 4-component vector of float) 0:57 Color: direct index for structure ( temp 4-component vector of float) 0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1.000000 0:57 1.000000 0:57 1.000000 0:57 1.000000 0:58 move second child to first child ( temp float) 0:58 Depth: direct index for structure ( temp float) 0:58 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Branch: Return with expression 0:60 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:? 'g_tTex1di4' ( uniform itexture1DShadow) 0:? 'g_tTex1du4' ( uniform utexture1DShadow) 0:? 'g_tTex2df4' ( uniform texture2DShadow) 0:? 'g_tTex2di4' ( uniform itexture2DShadow) 0:? 'g_tTex2du4' ( uniform utexture2DShadow) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCubeShadow) 0:? 'g_tTexcdi4' ( uniform itextureCubeShadow) 0:? 'g_tTexcdu4' ( uniform utextureCubeShadow) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 46(g_tTex1du4) DescriptorSet 0 Decorate 46(g_tTex1du4) Binding 0 Decorate 57(g_tTex2df4) DescriptorSet 0 Decorate 57(g_tTex2df4) Binding 0 Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 73(g_tTex2di4) Binding 0 Decorate 86(g_tTex2du4) DescriptorSet 0 Decorate 86(g_tTex2du4) Binding 0 Decorate 99(g_tTexcdf4) DescriptorSet 0 Decorate 99(g_tTexcdf4) Binding 0 Decorate 115(g_tTexcdi4) DescriptorSet 0 Decorate 115(g_tTexcdi4) Binding 0 Decorate 129(g_tTexcdu4) DescriptorSet 0 Decorate 129(g_tTexcdu4) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.samplecmp.dualmode.frag.out000066400000000000000000000157541360464450000251130ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.samplecmp.negative.frag.out000066400000000000000000000066051360464450000251160ustar00rootroot00000000000000hlsl.samplecmp.negative.frag ERROR: 0:10: '' : expected: SamplerComparisonState ERROR: 1 compilation errors. No code generated. Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:8 Function Definition: @main( ( temp 4-component vector of float) 0:8 Function Parameters: 0:? Sequence 0:9 texture ( temp float) 0:9 Construct combined texture-sampler ( temp sampler2DShadow) 0:9 'g_shadowTex' ( uniform texture2DShadow) 0:9 'g_shadowSamplerComp' ( uniform sampler) 0:9 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:9 Constant: 0:9 0.000000 0:10 ERROR: Bad aggregation op ( temp float) 0:10 'g_nonShadowTex' ( uniform texture2D) 0:10 'g_shadowSampler' ( uniform sampler) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:10 Constant: 0:10 0.000000 0:12 Branch: Return with expression 0:12 Constant: 0:12 0.000000 0:12 0.000000 0:12 0.000000 0:12 0.000000 0:8 Function Definition: main( ( temp void) 0:8 Function Parameters: 0:? Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:8 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_nonShadowTex' ( uniform texture2D) 0:? 'g_shadowTex' ( uniform texture2DShadow) 0:? 'g_shadowSampler' ( uniform sampler) 0:? 'g_shadowSamplerComp' ( uniform sampler) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:8 Function Definition: @main( ( temp 4-component vector of float) 0:8 Function Parameters: 0:? Sequence 0:9 texture ( temp float) 0:9 Construct combined texture-sampler ( temp sampler2DShadow) 0:9 'g_shadowTex' ( uniform texture2DShadow) 0:9 'g_shadowSamplerComp' ( uniform sampler) 0:9 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:9 Constant: 0:9 0.000000 0:10 ERROR: Bad aggregation op ( temp float) 0:10 'g_nonShadowTex' ( uniform texture2D) 0:10 'g_shadowSampler' ( uniform sampler) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:10 Constant: 0:10 0.000000 0:12 Branch: Return with expression 0:12 Constant: 0:12 0.000000 0:12 0.000000 0:12 0.000000 0:12 0.000000 0:8 Function Definition: main( ( temp void) 0:8 Function Parameters: 0:? Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:8 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_nonShadowTex' ( uniform texture2D) 0:? 'g_shadowTex' ( uniform texture2DShadow) 0:? 'g_shadowSampler' ( uniform sampler) 0:? 'g_shadowSamplerComp' ( uniform sampler) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/hlsl.samplecmp.negative2.frag.out000066400000000000000000000051271360464450000251760ustar00rootroot00000000000000hlsl.samplecmp.negative2.frag ERROR: 0:7: '' : expected: SamplerComparisonState ERROR: 1 compilation errors. No code generated. Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:6 Function Definition: @main( ( temp 4-component vector of float) 0:6 Function Parameters: 0:? Sequence 0:7 ERROR: Bad aggregation op ( temp 4-component vector of float) 0:7 'g_shadowTex' ( uniform texture2D) 0:7 'g_shadowSampler' ( uniform sampler) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:7 Constant: 0:7 0.000000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:9 Branch: Return with expression 0:9 Constant: 0:9 0.000000 0:9 0.000000 0:9 0.000000 0:9 0.000000 0:6 Function Definition: main( ( temp void) 0:6 Function Parameters: 0:? Sequence 0:6 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:6 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_shadowTex' ( uniform texture2D) 0:? 'g_shadowSampler' ( uniform sampler) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:6 Function Definition: @main( ( temp 4-component vector of float) 0:6 Function Parameters: 0:? Sequence 0:7 ERROR: Bad aggregation op ( temp 4-component vector of float) 0:7 'g_shadowTex' ( uniform texture2D) 0:7 'g_shadowSampler' ( uniform sampler) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:7 Constant: 0:7 0.000000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:9 Branch: Return with expression 0:9 Constant: 0:9 0.000000 0:9 0.000000 0:9 0.000000 0:9 0.000000 0:6 Function Definition: main( ( temp void) 0:6 Function Parameters: 0:? Sequence 0:6 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:6 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_shadowTex' ( uniform texture2D) 0:? 'g_shadowSampler' ( uniform sampler) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out000066400000000000000000000735311360464450000253570ustar00rootroot00000000000000hlsl.samplecmp.offset.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r01' ( temp float) 0:42 textureOffset ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DShadow) 0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec2 ( temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 2 (const int) 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r03' ( temp float) 0:43 textureOffset ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DShadow) 0:43 'g_tTex1di4' ( uniform itexture1DShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec2 ( temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 2 (const int) 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r05' ( temp float) 0:44 textureOffset ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DShadow) 0:44 'g_tTex1du4' ( uniform utexture1DShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec2 ( temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 2 (const int) 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r21' ( temp float) 0:47 textureOffset ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DShadow) 0:47 'g_tTex2df4' ( uniform texture2DShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:47 Constant: 0:47 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r23' ( temp float) 0:48 textureOffset ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DShadow) 0:48 'g_tTex2di4' ( uniform itexture2DShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:48 Constant: 0:48 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r25' ( temp float) 0:49 textureOffset ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DShadow) 0:49 'g_tTex2du4' ( uniform utexture2DShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:49 Constant: 0:49 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child ( temp 4-component vector of float) 0:62 Color: direct index for structure ( temp 4-component vector of float) 0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: 0:62 1.000000 0:62 1.000000 0:62 1.000000 0:62 1.000000 0:63 move second child to first child ( temp float) 0:63 Depth: direct index for structure ( temp float) 0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Branch: Return with expression 0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:? 'g_tTex1di4' ( uniform itexture1DShadow) 0:? 'g_tTex1du4' ( uniform utexture1DShadow) 0:? 'g_tTex2df4' ( uniform texture2DShadow) 0:? 'g_tTex2di4' ( uniform itexture2DShadow) 0:? 'g_tTex2du4' ( uniform utexture2DShadow) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r01' ( temp float) 0:42 textureOffset ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DShadow) 0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec2 ( temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 2 (const int) 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r03' ( temp float) 0:43 textureOffset ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DShadow) 0:43 'g_tTex1di4' ( uniform itexture1DShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec2 ( temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 2 (const int) 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r05' ( temp float) 0:44 textureOffset ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DShadow) 0:44 'g_tTex1du4' ( uniform utexture1DShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec2 ( temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 2 (const int) 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r21' ( temp float) 0:47 textureOffset ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DShadow) 0:47 'g_tTex2df4' ( uniform texture2DShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:47 Constant: 0:47 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r23' ( temp float) 0:48 textureOffset ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DShadow) 0:48 'g_tTex2di4' ( uniform itexture2DShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:48 Constant: 0:48 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r25' ( temp float) 0:49 textureOffset ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DShadow) 0:49 'g_tTex2du4' ( uniform utexture2DShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:49 Constant: 0:49 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child ( temp 4-component vector of float) 0:62 Color: direct index for structure ( temp 4-component vector of float) 0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: 0:62 1.000000 0:62 1.000000 0:62 1.000000 0:62 1.000000 0:63 move second child to first child ( temp float) 0:63 Depth: direct index for structure ( temp float) 0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Branch: Return with expression 0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:? 'g_tTex1di4' ( uniform itexture1DShadow) 0:? 'g_tTex1du4' ( uniform utexture1DShadow) 0:? 'g_tTex2df4' ( uniform texture2DShadow) 0:? 'g_tTex2di4' ( uniform itexture2DShadow) 0:? 'g_tTex2du4' ( uniform utexture2DShadow) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 47(g_tTex1du4) DescriptorSet 0 Decorate 47(g_tTex1du4) Binding 0 Decorate 58(g_tTex2df4) DescriptorSet 0 Decorate 58(g_tTex2df4) Binding 0 Decorate 77(g_tTex2di4) DescriptorSet 0 Decorate 77(g_tTex2di4) Binding 0 Decorate 90(g_tTex2du4) DescriptorSet 0 Decorate 90(g_tTex2du4) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out000066400000000000000000000755771360464450000264320ustar00rootroot00000000000000hlsl.samplecmp.offsetarray.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r11' ( temp float) 0:42 textureOffset ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 2 (const int) 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r13' ( temp float) 0:43 textureOffset ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 2 (const int) 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r15' ( temp float) 0:44 textureOffset ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 2 (const int) 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r31' ( temp float) 0:47 textureOffset ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:47 Constant: 0:47 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r33' ( temp float) 0:48 textureOffset ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:48 Constant: 0:48 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r35' ( temp float) 0:49 textureOffset ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:49 Constant: 0:49 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child ( temp 4-component vector of float) 0:63 Color: direct index for structure ( temp 4-component vector of float) 0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1.000000 0:63 1.000000 0:63 1.000000 0:63 1.000000 0:64 move second child to first child ( temp float) 0:64 Depth: direct index for structure ( temp float) 0:64 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Branch: Return with expression 0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r11' ( temp float) 0:42 textureOffset ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 2 (const int) 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r13' ( temp float) 0:43 textureOffset ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 2 (const int) 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r15' ( temp float) 0:44 textureOffset ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 2 (const int) 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r31' ( temp float) 0:47 textureOffset ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:47 Constant: 0:47 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r33' ( temp float) 0:48 textureOffset ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:48 Constant: 0:48 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r35' ( temp float) 0:49 textureOffset ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:49 Constant: 0:49 0.750000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child ( temp 4-component vector of float) 0:63 Color: direct index for structure ( temp 4-component vector of float) 0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1.000000 0:63 1.000000 0:63 1.000000 0:63 1.000000 0:64 move second child to first child ( temp float) 0:64 Depth: direct index for structure ( temp float) 0:64 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Branch: Return with expression 0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 Decorate 40(g_tTex1di4a) DescriptorSet 0 Decorate 40(g_tTex1di4a) Binding 0 Decorate 54(g_tTex1du4a) DescriptorSet 0 Decorate 54(g_tTex1du4a) Binding 0 Decorate 67(g_tTex2df4a) DescriptorSet 0 Decorate 67(g_tTex2df4a) Binding 0 Decorate 86(g_tTex2di4a) DescriptorSet 0 Decorate 86(g_tTex2di4a) Binding 0 Decorate 100(g_tTex2du4a) DescriptorSet 0 Decorate 100(g_tTex2du4a) Binding 0 Decorate 126(@entryPointOutput.Color) Location 0 Decorate 130(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 135(g_tTex1df4) DescriptorSet 0 Decorate 135(g_tTex1df4) Binding 0 Decorate 138(g_tTex1di4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out000066400000000000000000001111451360464450000271310ustar00rootroot00000000000000hlsl.samplecmplevelzero.array.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r10' ( temp float) 0:42 textureLod ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 0.000000 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r12' ( temp float) 0:43 textureLod ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 0.000000 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r14' ( temp float) 0:44 textureLod ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 0.000000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r30' ( temp float) 0:47 textureLod ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:47 Constant: 0:47 0.750000 0:47 Constant: 0:47 0.000000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r32' ( temp float) 0:48 textureLod ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:48 Constant: 0:48 0.750000 0:48 Constant: 0:48 0.000000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r34' ( temp float) 0:49 textureLod ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:49 Constant: 0:49 0.750000 0:49 Constant: 0:49 0.000000 0:52 Sequence 0:52 move second child to first child ( temp float) 0:52 'r60' ( temp float) 0:52 textureLod ( temp float) 0:52 Construct combined texture-sampler ( temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) 0:52 'g_sSamp' (layout( binding=0) uniform sampler) 0:52 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:52 Constant: 0:52 0.750000 0:52 Constant: 0:52 0.000000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'r62' ( temp float) 0:53 textureLod ( temp float) 0:53 Construct combined texture-sampler ( temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) 0:53 'g_sSamp' (layout( binding=0) uniform sampler) 0:53 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:53 Constant: 0:53 0.750000 0:53 Constant: 0:53 0.000000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'r64' ( temp float) 0:54 textureLod ( temp float) 0:54 Construct combined texture-sampler ( temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) 0:54 'g_sSamp' (layout( binding=0) uniform sampler) 0:54 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:54 Constant: 0:54 0.750000 0:54 Constant: 0:54 0.000000 0:56 move second child to first child ( temp 4-component vector of float) 0:56 Color: direct index for structure ( temp 4-component vector of float) 0:56 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: 0:56 1.000000 0:56 1.000000 0:56 1.000000 0:56 1.000000 0:57 move second child to first child ( temp float) 0:57 Depth: direct index for structure ( temp float) 0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Branch: Return with expression 0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:? 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r10' ( temp float) 0:42 textureLod ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 0.000000 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r12' ( temp float) 0:43 textureLod ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 0.000000 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r14' ( temp float) 0:44 textureLod ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 0.000000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r30' ( temp float) 0:47 textureLod ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:47 Constant: 0:47 0.750000 0:47 Constant: 0:47 0.000000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r32' ( temp float) 0:48 textureLod ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:48 Constant: 0:48 0.750000 0:48 Constant: 0:48 0.000000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r34' ( temp float) 0:49 textureLod ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:49 Constant: 0:49 0.750000 0:49 Constant: 0:49 0.000000 0:52 Sequence 0:52 move second child to first child ( temp float) 0:52 'r60' ( temp float) 0:52 textureLod ( temp float) 0:52 Construct combined texture-sampler ( temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) 0:52 'g_sSamp' (layout( binding=0) uniform sampler) 0:52 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:52 Constant: 0:52 0.750000 0:52 Constant: 0:52 0.000000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'r62' ( temp float) 0:53 textureLod ( temp float) 0:53 Construct combined texture-sampler ( temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) 0:53 'g_sSamp' (layout( binding=0) uniform sampler) 0:53 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:53 Constant: 0:53 0.750000 0:53 Constant: 0:53 0.000000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'r64' ( temp float) 0:54 textureLod ( temp float) 0:54 Construct combined texture-sampler ( temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) 0:54 'g_sSamp' (layout( binding=0) uniform sampler) 0:54 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:54 Constant: 0:54 0.750000 0:54 Constant: 0:54 0.000000 0:56 move second child to first child ( temp 4-component vector of float) 0:56 Color: direct index for structure ( temp 4-component vector of float) 0:56 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:56 Constant: 0:56 0 (const int) 0:56 Constant: 0:56 1.000000 0:56 1.000000 0:56 1.000000 0:56 1.000000 0:57 move second child to first child ( temp float) 0:57 Depth: direct index for structure ( temp float) 0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 0:59 Branch: Return with expression 0:59 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:? 'g_tTexcdf4a' ( uniform textureCubeArrayShadow) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArrayShadow) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArrayShadow) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 Decorate 40(g_tTex1di4a) DescriptorSet 0 Decorate 40(g_tTex1di4a) Binding 0 Decorate 54(g_tTex1du4a) DescriptorSet 0 Decorate 54(g_tTex1du4a) Binding 0 Decorate 67(g_tTex2df4a) DescriptorSet 0 Decorate 67(g_tTex2df4a) Binding 0 Decorate 83(g_tTex2di4a) DescriptorSet 0 Decorate 83(g_tTex2di4a) Binding 0 Decorate 97(g_tTex2du4a) DescriptorSet 0 Decorate 97(g_tTex2du4a) Binding 0 Decorate 111(g_tTexcdf4a) DescriptorSet 0 Decorate 111(g_tTexcdf4a) Binding 0 Decorate 127(g_tTexcdi4a) DescriptorSet 0 Decorate 127(g_tTexcdi4a) Binding 0 Decorate 141(g_tTexcdu4a) DescriptorSet 0 Decorate 141(g_tTexcdu4a) Binding 0 Decorate 167(@entryPointOutput.Color) Location 0 Decorate 171(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 176(g_tTex1df4) DescriptorSet 0 Decorate 176(g_tTex1df4) Binding 0 Decorate 179(g_tTex1di4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out000066400000000000000000001065501360464450000271000ustar00rootroot00000000000000hlsl.samplecmplevelzero.basic.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r00' ( temp float) 0:42 textureLod ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DShadow) 0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec2 ( temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 0.000000 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r02' ( temp float) 0:43 textureLod ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DShadow) 0:43 'g_tTex1di4' ( uniform itexture1DShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec2 ( temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 0.000000 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r04' ( temp float) 0:44 textureLod ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DShadow) 0:44 'g_tTex1du4' ( uniform utexture1DShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec2 ( temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 0.000000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r20' ( temp float) 0:47 textureLod ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DShadow) 0:47 'g_tTex2df4' ( uniform texture2DShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:47 Constant: 0:47 0.750000 0:47 Constant: 0:47 0.000000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r22' ( temp float) 0:48 textureLod ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DShadow) 0:48 'g_tTex2di4' ( uniform itexture2DShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:48 Constant: 0:48 0.750000 0:48 Constant: 0:48 0.000000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r24' ( temp float) 0:49 textureLod ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DShadow) 0:49 'g_tTex2du4' ( uniform utexture2DShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:49 Constant: 0:49 0.750000 0:49 Constant: 0:49 0.000000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'r50' ( temp float) 0:53 textureLod ( temp float) 0:53 Construct combined texture-sampler ( temp samplerCubeShadow) 0:53 'g_tTexcdf4' ( uniform textureCubeShadow) 0:53 'g_sSamp' (layout( binding=0) uniform sampler) 0:53 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:53 Constant: 0:53 0.750000 0:53 Constant: 0:53 0.000000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'r52' ( temp float) 0:54 textureLod ( temp float) 0:54 Construct combined texture-sampler ( temp isamplerCubeShadow) 0:54 'g_tTexcdi4' ( uniform itextureCubeShadow) 0:54 'g_sSamp' (layout( binding=0) uniform sampler) 0:54 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:54 Constant: 0:54 0.750000 0:54 Constant: 0:54 0.000000 0:55 Sequence 0:55 move second child to first child ( temp float) 0:55 'r54' ( temp float) 0:55 textureLod ( temp float) 0:55 Construct combined texture-sampler ( temp usamplerCubeShadow) 0:55 'g_tTexcdu4' ( uniform utextureCubeShadow) 0:55 'g_sSamp' (layout( binding=0) uniform sampler) 0:55 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:55 Constant: 0:55 0.750000 0:55 Constant: 0:55 0.000000 0:57 move second child to first child ( temp 4-component vector of float) 0:57 Color: direct index for structure ( temp 4-component vector of float) 0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1.000000 0:57 1.000000 0:57 1.000000 0:57 1.000000 0:58 move second child to first child ( temp float) 0:58 Depth: direct index for structure ( temp float) 0:58 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Branch: Return with expression 0:60 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:? 'g_tTex1di4' ( uniform itexture1DShadow) 0:? 'g_tTex1du4' ( uniform utexture1DShadow) 0:? 'g_tTex2df4' ( uniform texture2DShadow) 0:? 'g_tTex2di4' ( uniform itexture2DShadow) 0:? 'g_tTex2du4' ( uniform utexture2DShadow) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCubeShadow) 0:? 'g_tTexcdi4' ( uniform itextureCubeShadow) 0:? 'g_tTexcdu4' ( uniform utextureCubeShadow) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r00' ( temp float) 0:42 textureLod ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DShadow) 0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec2 ( temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 0.000000 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r02' ( temp float) 0:43 textureLod ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DShadow) 0:43 'g_tTex1di4' ( uniform itexture1DShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec2 ( temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 0.000000 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r04' ( temp float) 0:44 textureLod ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DShadow) 0:44 'g_tTex1du4' ( uniform utexture1DShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec2 ( temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 0.000000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r20' ( temp float) 0:47 textureLod ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DShadow) 0:47 'g_tTex2df4' ( uniform texture2DShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:47 Constant: 0:47 0.750000 0:47 Constant: 0:47 0.000000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r22' ( temp float) 0:48 textureLod ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DShadow) 0:48 'g_tTex2di4' ( uniform itexture2DShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:48 Constant: 0:48 0.750000 0:48 Constant: 0:48 0.000000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r24' ( temp float) 0:49 textureLod ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DShadow) 0:49 'g_tTex2du4' ( uniform utexture2DShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:49 Constant: 0:49 0.750000 0:49 Constant: 0:49 0.000000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'r50' ( temp float) 0:53 textureLod ( temp float) 0:53 Construct combined texture-sampler ( temp samplerCubeShadow) 0:53 'g_tTexcdf4' ( uniform textureCubeShadow) 0:53 'g_sSamp' (layout( binding=0) uniform sampler) 0:53 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:53 Constant: 0:53 0.750000 0:53 Constant: 0:53 0.000000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'r52' ( temp float) 0:54 textureLod ( temp float) 0:54 Construct combined texture-sampler ( temp isamplerCubeShadow) 0:54 'g_tTexcdi4' ( uniform itextureCubeShadow) 0:54 'g_sSamp' (layout( binding=0) uniform sampler) 0:54 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:54 Constant: 0:54 0.750000 0:54 Constant: 0:54 0.000000 0:55 Sequence 0:55 move second child to first child ( temp float) 0:55 'r54' ( temp float) 0:55 textureLod ( temp float) 0:55 Construct combined texture-sampler ( temp usamplerCubeShadow) 0:55 'g_tTexcdu4' ( uniform utextureCubeShadow) 0:55 'g_sSamp' (layout( binding=0) uniform sampler) 0:55 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:55 Constant: 0:55 0.750000 0:55 Constant: 0:55 0.000000 0:57 move second child to first child ( temp 4-component vector of float) 0:57 Color: direct index for structure ( temp 4-component vector of float) 0:57 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1.000000 0:57 1.000000 0:57 1.000000 0:57 1.000000 0:58 move second child to first child ( temp float) 0:58 Depth: direct index for structure ( temp float) 0:58 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:58 Constant: 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 0:60 Branch: Return with expression 0:60 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:? 'g_tTex1di4' ( uniform itexture1DShadow) 0:? 'g_tTex1du4' ( uniform utexture1DShadow) 0:? 'g_tTex2df4' ( uniform texture2DShadow) 0:? 'g_tTex2di4' ( uniform itexture2DShadow) 0:? 'g_tTex2du4' ( uniform utexture2DShadow) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCubeShadow) 0:? 'g_tTexcdi4' ( uniform itextureCubeShadow) 0:? 'g_tTexcdu4' ( uniform utextureCubeShadow) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 47(g_tTex1du4) DescriptorSet 0 Decorate 47(g_tTex1du4) Binding 0 Decorate 58(g_tTex2df4) DescriptorSet 0 Decorate 58(g_tTex2df4) Binding 0 Decorate 74(g_tTex2di4) DescriptorSet 0 Decorate 74(g_tTex2di4) Binding 0 Decorate 87(g_tTex2du4) DescriptorSet 0 Decorate 87(g_tTex2du4) Binding 0 Decorate 100(g_tTexcdf4) DescriptorSet 0 Decorate 100(g_tTexcdf4) Binding 0 Decorate 116(g_tTexcdi4) DescriptorSet 0 Decorate 116(g_tTexcdi4) Binding 0 Decorate 130(g_tTexcdu4) DescriptorSet 0 Decorate 130(g_tTexcdu4) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out000066400000000000000000000751261360464450000273110ustar00rootroot00000000000000hlsl.samplecmplevelzero.offset.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r01' ( temp float) 0:42 textureLodOffset ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DShadow) 0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec2 ( temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 0.000000 0:42 Constant: 0:42 2 (const int) 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r03' ( temp float) 0:43 textureLodOffset ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DShadow) 0:43 'g_tTex1di4' ( uniform itexture1DShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec2 ( temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 0.000000 0:43 Constant: 0:43 2 (const int) 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r05' ( temp float) 0:44 textureLodOffset ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DShadow) 0:44 'g_tTex1du4' ( uniform utexture1DShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec2 ( temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 0.000000 0:44 Constant: 0:44 2 (const int) 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r21' ( temp float) 0:47 textureLodOffset ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DShadow) 0:47 'g_tTex2df4' ( uniform texture2DShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:47 Constant: 0:47 0.750000 0:47 Constant: 0:47 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r23' ( temp float) 0:48 textureLodOffset ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DShadow) 0:48 'g_tTex2di4' ( uniform itexture2DShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:48 Constant: 0:48 0.750000 0:48 Constant: 0:48 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r25' ( temp float) 0:49 textureLodOffset ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DShadow) 0:49 'g_tTex2du4' ( uniform utexture2DShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:49 Constant: 0:49 0.750000 0:49 Constant: 0:49 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child ( temp 4-component vector of float) 0:62 Color: direct index for structure ( temp 4-component vector of float) 0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: 0:62 1.000000 0:62 1.000000 0:62 1.000000 0:62 1.000000 0:63 move second child to first child ( temp float) 0:63 Depth: direct index for structure ( temp float) 0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Branch: Return with expression 0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:? 'g_tTex1di4' ( uniform itexture1DShadow) 0:? 'g_tTex1du4' ( uniform utexture1DShadow) 0:? 'g_tTex2df4' ( uniform texture2DShadow) 0:? 'g_tTex2di4' ( uniform itexture2DShadow) 0:? 'g_tTex2du4' ( uniform utexture2DShadow) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r01' ( temp float) 0:42 textureLodOffset ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DShadow) 0:42 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec2 ( temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 0.000000 0:42 Constant: 0:42 2 (const int) 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r03' ( temp float) 0:43 textureLodOffset ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DShadow) 0:43 'g_tTex1di4' ( uniform itexture1DShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec2 ( temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 0.000000 0:43 Constant: 0:43 2 (const int) 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r05' ( temp float) 0:44 textureLodOffset ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DShadow) 0:44 'g_tTex1du4' ( uniform utexture1DShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec2 ( temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 0.000000 0:44 Constant: 0:44 2 (const int) 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r21' ( temp float) 0:47 textureLodOffset ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DShadow) 0:47 'g_tTex2df4' ( uniform texture2DShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:47 Constant: 0:47 0.750000 0:47 Constant: 0:47 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r23' ( temp float) 0:48 textureLodOffset ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DShadow) 0:48 'g_tTex2di4' ( uniform itexture2DShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:48 Constant: 0:48 0.750000 0:48 Constant: 0:48 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r25' ( temp float) 0:49 textureLodOffset ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DShadow) 0:49 'g_tTex2du4' ( uniform utexture2DShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:49 Constant: 0:49 0.750000 0:49 Constant: 0:49 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:62 move second child to first child ( temp 4-component vector of float) 0:62 Color: direct index for structure ( temp 4-component vector of float) 0:62 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: 0:62 1.000000 0:62 1.000000 0:62 1.000000 0:62 1.000000 0:63 move second child to first child ( temp float) 0:63 Depth: direct index for structure ( temp float) 0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 0:65 Branch: Return with expression 0:65 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DShadow) 0:? 'g_tTex1di4' ( uniform itexture1DShadow) 0:? 'g_tTex1du4' ( uniform utexture1DShadow) 0:? 'g_tTex2df4' ( uniform texture2DShadow) 0:? 'g_tTex2di4' ( uniform itexture2DShadow) 0:? 'g_tTex2du4' ( uniform utexture2DShadow) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 48(g_tTex1du4) DescriptorSet 0 Decorate 48(g_tTex1du4) Binding 0 Decorate 59(g_tTex2df4) DescriptorSet 0 Decorate 59(g_tTex2df4) Binding 0 Decorate 78(g_tTex2di4) DescriptorSet 0 Decorate 78(g_tTex2di4) Binding 0 Decorate 91(g_tTex2du4) DescriptorSet 0 Decorate 91(g_tTex2du4) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out000066400000000000000000000771731360464450000303540ustar00rootroot00000000000000hlsl.samplecmplevelzero.offsetarray.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r11' ( temp float) 0:42 textureLodOffset ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 0.000000 0:42 Constant: 0:42 2 (const int) 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r13' ( temp float) 0:43 textureLodOffset ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 0.000000 0:43 Constant: 0:43 2 (const int) 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r15' ( temp float) 0:44 textureLodOffset ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 0.000000 0:44 Constant: 0:44 2 (const int) 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r31' ( temp float) 0:47 textureLodOffset ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:47 Constant: 0:47 0.750000 0:47 Constant: 0:47 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r33' ( temp float) 0:48 textureLodOffset ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:48 Constant: 0:48 0.750000 0:48 Constant: 0:48 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r35' ( temp float) 0:49 textureLodOffset ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:49 Constant: 0:49 0.750000 0:49 Constant: 0:49 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child ( temp 4-component vector of float) 0:63 Color: direct index for structure ( temp 4-component vector of float) 0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1.000000 0:63 1.000000 0:63 1.000000 0:63 1.000000 0:64 move second child to first child ( temp float) 0:64 Depth: direct index for structure ( temp float) 0:64 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Branch: Return with expression 0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:38 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child ( temp float) 0:42 'r11' ( temp float) 0:42 textureLodOffset ( temp float) 0:42 Construct combined texture-sampler ( temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:42 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:42 Constant: 0:42 0.750000 0:42 Constant: 0:42 0.000000 0:42 Constant: 0:42 2 (const int) 0:43 Sequence 0:43 move second child to first child ( temp float) 0:43 'r13' ( temp float) 0:43 textureLodOffset ( temp float) 0:43 Construct combined texture-sampler ( temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:43 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:43 Constant: 0:43 0.750000 0:43 Constant: 0:43 0.000000 0:43 Constant: 0:43 2 (const int) 0:44 Sequence 0:44 move second child to first child ( temp float) 0:44 'r15' ( temp float) 0:44 textureLodOffset ( temp float) 0:44 Construct combined texture-sampler ( temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:44 Construct vec3 ( temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:44 Constant: 0:44 0.750000 0:44 Constant: 0:44 0.000000 0:44 Constant: 0:44 2 (const int) 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'r31' ( temp float) 0:47 textureLodOffset ( temp float) 0:47 Construct combined texture-sampler ( temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:47 'g_sSamp' (layout( binding=0) uniform sampler) 0:47 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:47 Constant: 0:47 0.750000 0:47 Constant: 0:47 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'r33' ( temp float) 0:48 textureLodOffset ( temp float) 0:48 Construct combined texture-sampler ( temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:48 'g_sSamp' (layout( binding=0) uniform sampler) 0:48 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:48 Constant: 0:48 0.750000 0:48 Constant: 0:48 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'r35' ( temp float) 0:49 textureLodOffset ( temp float) 0:49 Construct combined texture-sampler ( temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:49 'g_sSamp' (layout( binding=0) uniform sampler) 0:49 Construct vec4 ( temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:49 Constant: 0:49 0.750000 0:49 Constant: 0:49 0.000000 0:? Constant: 0:? 2 (const int) 0:? 3 (const int) 0:63 move second child to first child ( temp 4-component vector of float) 0:63 Color: direct index for structure ( temp 4-component vector of float) 0:63 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:63 Constant: 0:63 0 (const int) 0:63 Constant: 0:63 1.000000 0:63 1.000000 0:63 1.000000 0:63 1.000000 0:64 move second child to first child ( temp float) 0:64 Depth: direct index for structure ( temp float) 0:64 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:64 Constant: 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 0:66 Branch: Return with expression 0:66 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Definition: main( ( temp void) 0:38 Function Parameters: 0:? Sequence 0:38 Sequence 0:38 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:38 Color: direct index for structure ( temp 4-component vector of float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 0 (const int) 0:38 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:38 Depth: direct index for structure ( temp float) 0:38 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:38 Constant: 0:38 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? 'g_tTex1df4a' ( uniform texture1DArrayShadow) 0:? 'g_tTex1di4a' ( uniform itexture1DArrayShadow) 0:? 'g_tTex1du4a' ( uniform utexture1DArrayShadow) 0:? 'g_tTex2df4a' ( uniform texture2DArrayShadow) 0:? 'g_tTex2di4a' ( uniform itexture2DArrayShadow) 0:? 'g_tTex2du4a' ( uniform utexture2DArrayShadow) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 20(g_sSamp) DescriptorSet 0 Decorate 20(g_sSamp) Binding 0 Decorate 41(g_tTex1di4a) DescriptorSet 0 Decorate 41(g_tTex1di4a) Binding 0 Decorate 55(g_tTex1du4a) DescriptorSet 0 Decorate 55(g_tTex1du4a) Binding 0 Decorate 68(g_tTex2df4a) DescriptorSet 0 Decorate 68(g_tTex2df4a) Binding 0 Decorate 87(g_tTex2di4a) DescriptorSet 0 Decorate 87(g_tTex2di4a) Binding 0 Decorate 101(g_tTex2du4a) DescriptorSet 0 Decorate 101(g_tTex2du4a) Binding 0 Decorate 127(@entryPointOutput.Color) Location 0 Decorate 131(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 136(g_tTex1df4) DescriptorSet 0 Decorate 136(g_tTex1df4) Binding 0 Decorate 139(g_tTex1di4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out000066400000000000000000000740251360464450000253440ustar00rootroot00000000000000hlsl.samplegrad.array.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval10' ( temp 4-component vector of float) 0:27 textureGrad ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler1DArray) 0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:27 Constant: 0:27 1.100000 0:27 Constant: 0:27 1.200000 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval11' ( temp 4-component vector of int) 0:28 textureGrad ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler1DArray) 0:28 'g_tTex1di4' ( uniform itexture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:28 Constant: 0:28 1.100000 0:28 Constant: 0:28 1.200000 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval12' ( temp 4-component vector of uint) 0:29 textureGrad ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler1DArray) 0:29 'g_tTex1du4' ( uniform utexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:29 Constant: 0:29 1.100000 0:29 Constant: 0:29 1.200000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval20' ( temp 4-component vector of float) 0:31 textureGrad ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2DArray) 0:31 'g_tTex2df4' ( uniform texture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval21' ( temp 4-component vector of int) 0:32 textureGrad ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler2DArray) 0:32 'g_tTex2di4' ( uniform itexture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval22' ( temp 4-component vector of uint) 0:33 textureGrad ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler2DArray) 0:33 'g_tTex2du4' ( uniform utexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval40' ( temp 4-component vector of float) 0:35 textureGrad ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp samplerCubeArray) 0:35 'g_tTexcdf4' ( uniform textureCubeArray) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval41' ( temp 4-component vector of int) 0:36 textureGrad ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isamplerCubeArray) 0:36 'g_tTexcdi4' ( uniform itextureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval42' ( temp 4-component vector of uint) 0:37 textureGrad ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usamplerCubeArray) 0:37 'g_tTexcdu4' ( uniform utextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:39 move second child to first child ( temp 4-component vector of float) 0:39 Color: direct index for structure ( temp 4-component vector of float) 0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp float) 0:40 Depth: direct index for structure ( temp float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Branch: Return with expression 0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? 'g_tTexcdf4' ( uniform textureCubeArray) 0:? 'g_tTexcdi4' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval10' ( temp 4-component vector of float) 0:27 textureGrad ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler1DArray) 0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:27 Constant: 0:27 1.100000 0:27 Constant: 0:27 1.200000 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval11' ( temp 4-component vector of int) 0:28 textureGrad ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler1DArray) 0:28 'g_tTex1di4' ( uniform itexture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:28 Constant: 0:28 1.100000 0:28 Constant: 0:28 1.200000 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval12' ( temp 4-component vector of uint) 0:29 textureGrad ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler1DArray) 0:29 'g_tTex1du4' ( uniform utexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:29 Constant: 0:29 1.100000 0:29 Constant: 0:29 1.200000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval20' ( temp 4-component vector of float) 0:31 textureGrad ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2DArray) 0:31 'g_tTex2df4' ( uniform texture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval21' ( temp 4-component vector of int) 0:32 textureGrad ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler2DArray) 0:32 'g_tTex2di4' ( uniform itexture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval22' ( temp 4-component vector of uint) 0:33 textureGrad ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler2DArray) 0:33 'g_tTex2du4' ( uniform utexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval40' ( temp 4-component vector of float) 0:35 textureGrad ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp samplerCubeArray) 0:35 'g_tTexcdf4' ( uniform textureCubeArray) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval41' ( temp 4-component vector of int) 0:36 textureGrad ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isamplerCubeArray) 0:36 'g_tTexcdi4' ( uniform itextureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval42' ( temp 4-component vector of uint) 0:37 textureGrad ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usamplerCubeArray) 0:37 'g_tTexcdu4' ( uniform utextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:39 move second child to first child ( temp 4-component vector of float) 0:39 Color: direct index for structure ( temp 4-component vector of float) 0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp float) 0:40 Depth: direct index for structure ( temp float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Branch: Return with expression 0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? 'g_tTexcdf4' ( uniform textureCubeArray) 0:? 'g_tTexcdi4' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 49(g_tTex1du4) DescriptorSet 0 Decorate 49(g_tTex1du4) Binding 0 Decorate 58(g_tTex2df4) DescriptorSet 0 Decorate 58(g_tTex2df4) Binding 0 Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 71(g_tTex2di4) Binding 0 Decorate 80(g_tTex2du4) DescriptorSet 0 Decorate 80(g_tTex2du4) Binding 0 Decorate 89(g_tTexcdf4) DescriptorSet 0 Decorate 89(g_tTexcdf4) Binding 0 Decorate 102(g_tTexcdi4) DescriptorSet 0 Decorate 102(g_tTexcdi4) Binding 0 Decorate 111(g_tTexcdu4) DescriptorSet 0 Decorate 111(g_tTexcdu4) Binding 0 Decorate 132(@entryPointOutput.Color) Location 0 Decorate 136(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 139(g_tTex1df4a) DescriptorSet 0 Decorate 139(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D array sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: TypeVector 6(float) 2 25: 6(float) Constant 1036831949 26: 6(float) Constant 1045220557 27: 24(fvec2) ConstantComposite 25 26 28: 6(float) Constant 1066192077 29: 6(float) Constant 1067030938 31: TypeInt 32 1 32: TypeVector 31(int) 4 33: TypePointer Function 32(ivec4) 35: TypeImage 31(int) 1D array sampled format:Unknown 36: TypePointer UniformConstant 35 37(g_tTex1di4): 36(ptr) Variable UniformConstant 40: TypeSampledImage 35 43: TypeInt 32 0 44: TypeVector 43(int) 4 45: TypePointer Function 44(ivec4) 47: TypeImage 43(int) 1D array sampled format:Unknown 48: TypePointer UniformConstant 47 49(g_tTex1du4): 48(ptr) Variable UniformConstant 52: TypeSampledImage 47 56: TypeImage 6(float) 2D array sampled format:Unknown 57: TypePointer UniformConstant 56 58(g_tTex2df4): 57(ptr) Variable UniformConstant 61: TypeSampledImage 56 63: TypeVector 6(float) 3 64: 6(float) Constant 1050253722 65: 63(fvec3) ConstantComposite 25 26 64 66: 24(fvec2) ConstantComposite 28 29 69: TypeImage 31(int) 2D array sampled format:Unknown 70: TypePointer UniformConstant 69 71(g_tTex2di4): 70(ptr) Variable UniformConstant 74: TypeSampledImage 69 78: TypeImage 43(int) 2D array sampled format:Unknown 79: TypePointer UniformConstant 78 80(g_tTex2du4): 79(ptr) Variable UniformConstant 83: TypeSampledImage 78 87: TypeImage 6(float) Cube array sampled format:Unknown 88: TypePointer UniformConstant 87 89(g_tTexcdf4): 88(ptr) Variable UniformConstant 92: TypeSampledImage 87 94: 6(float) Constant 1053609165 95: 7(fvec4) ConstantComposite 25 26 64 94 96: 6(float) Constant 1067869798 97: 63(fvec3) ConstantComposite 28 29 96 100: TypeImage 31(int) Cube array sampled format:Unknown 101: TypePointer UniformConstant 100 102(g_tTexcdi4): 101(ptr) Variable UniformConstant 105: TypeSampledImage 100 109: TypeImage 43(int) Cube array sampled format:Unknown 110: TypePointer UniformConstant 109 111(g_tTexcdu4): 110(ptr) Variable UniformConstant 114: TypeSampledImage 109 117: TypePointer Function 8(PS_OUTPUT) 119: 31(int) Constant 0 120: 6(float) Constant 1065353216 121: 7(fvec4) ConstantComposite 120 120 120 120 123: 31(int) Constant 1 124: TypePointer Function 6(float) 131: TypePointer Output 7(fvec4) 132(@entryPointOutput.Color): 131(ptr) Variable Output 135: TypePointer Output 6(float) 136(@entryPointOutput.Depth): 135(ptr) Variable Output 139(g_tTex1df4a): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 129(flattenTemp): 117(ptr) Variable Function 130:8(PS_OUTPUT) FunctionCall 10(@main() Store 129(flattenTemp) 130 133: 12(ptr) AccessChain 129(flattenTemp) 119 134: 7(fvec4) Load 133 Store 132(@entryPointOutput.Color) 134 137: 124(ptr) AccessChain 129(flattenTemp) 123 138: 6(float) Load 137 Store 136(@entryPointOutput.Depth) 138 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 34(txval11): 33(ptr) Variable Function 46(txval12): 45(ptr) Variable Function 55(txval20): 12(ptr) Variable Function 68(txval21): 33(ptr) Variable Function 77(txval22): 45(ptr) Variable Function 86(txval40): 12(ptr) Variable Function 99(txval41): 33(ptr) Variable Function 108(txval42): 45(ptr) Variable Function 118(psout): 117(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 30: 7(fvec4) ImageSampleExplicitLod 23 27 Grad 28 29 Store 13(txval10) 30 38: 35 Load 37(g_tTex1di4) 39: 18 Load 20(g_sSamp) 41: 40 SampledImage 38 39 42: 32(ivec4) ImageSampleExplicitLod 41 27 Grad 28 29 Store 34(txval11) 42 50: 47 Load 49(g_tTex1du4) 51: 18 Load 20(g_sSamp) 53: 52 SampledImage 50 51 54: 44(ivec4) ImageSampleExplicitLod 53 27 Grad 28 29 Store 46(txval12) 54 59: 56 Load 58(g_tTex2df4) 60: 18 Load 20(g_sSamp) 62: 61 SampledImage 59 60 67: 7(fvec4) ImageSampleExplicitLod 62 65 Grad 66 66 Store 55(txval20) 67 72: 69 Load 71(g_tTex2di4) 73: 18 Load 20(g_sSamp) 75: 74 SampledImage 72 73 76: 32(ivec4) ImageSampleExplicitLod 75 65 Grad 66 66 Store 68(txval21) 76 81: 78 Load 80(g_tTex2du4) 82: 18 Load 20(g_sSamp) 84: 83 SampledImage 81 82 85: 44(ivec4) ImageSampleExplicitLod 84 65 Grad 66 66 Store 77(txval22) 85 90: 87 Load 89(g_tTexcdf4) 91: 18 Load 20(g_sSamp) 93: 92 SampledImage 90 91 98: 7(fvec4) ImageSampleExplicitLod 93 95 Grad 97 97 Store 86(txval40) 98 103: 100 Load 102(g_tTexcdi4) 104: 18 Load 20(g_sSamp) 106: 105 SampledImage 103 104 107: 32(ivec4) ImageSampleExplicitLod 106 95 Grad 97 97 Store 99(txval41) 107 112: 109 Load 111(g_tTexcdu4) 113: 18 Load 20(g_sSamp) 115: 114 SampledImage 112 113 116: 44(ivec4) ImageSampleExplicitLod 115 95 Grad 97 97 Store 108(txval42) 116 122: 12(ptr) AccessChain 118(psout) 119 Store 122 121 125: 124(ptr) AccessChain 118(psout) 123 Store 125 120 126:8(PS_OUTPUT) Load 118(psout) ReturnValue 126 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out000066400000000000000000001107141360464450000253030ustar00rootroot00000000000000hlsl.samplegrad.basic.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 textureGrad ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 1.100000 0:31 Constant: 0:31 1.200000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 textureGrad ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 1.100000 0:32 Constant: 0:32 1.200000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 textureGrad ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 1.100000 0:33 Constant: 0:33 1.200000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 textureGrad ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 textureGrad ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 textureGrad ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 textureGrad ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 textureGrad ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 textureGrad ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of float) 0:43 'txval40' ( temp 4-component vector of float) 0:43 textureGrad ( temp 4-component vector of float) 0:43 Construct combined texture-sampler ( temp samplerCube) 0:43 'g_tTexcdf4' ( uniform textureCube) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of int) 0:44 'txval41' ( temp 4-component vector of int) 0:44 textureGrad ( temp 4-component vector of int) 0:44 Construct combined texture-sampler ( temp isamplerCube) 0:44 'g_tTexcdi4' ( uniform itextureCube) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of uint) 0:45 'txval42' ( temp 4-component vector of uint) 0:45 textureGrad ( temp 4-component vector of uint) 0:45 Construct combined texture-sampler ( temp usamplerCube) 0:45 'g_tTexcdu4' ( uniform utextureCube) 0:45 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:47 move second child to first child ( temp 4-component vector of float) 0:47 Color: direct index for structure ( temp 4-component vector of float) 0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: 0:47 1.000000 0:47 1.000000 0:47 1.000000 0:47 1.000000 0:48 move second child to first child ( temp float) 0:48 Depth: direct index for structure ( temp float) 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Branch: Return with expression 0:50 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 textureGrad ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 1.100000 0:31 Constant: 0:31 1.200000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 textureGrad ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 1.100000 0:32 Constant: 0:32 1.200000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 textureGrad ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 1.100000 0:33 Constant: 0:33 1.200000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 textureGrad ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 textureGrad ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 textureGrad ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 textureGrad ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 textureGrad ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 textureGrad ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of float) 0:43 'txval40' ( temp 4-component vector of float) 0:43 textureGrad ( temp 4-component vector of float) 0:43 Construct combined texture-sampler ( temp samplerCube) 0:43 'g_tTexcdf4' ( uniform textureCube) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of int) 0:44 'txval41' ( temp 4-component vector of int) 0:44 textureGrad ( temp 4-component vector of int) 0:44 Construct combined texture-sampler ( temp isamplerCube) 0:44 'g_tTexcdi4' ( uniform itextureCube) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of uint) 0:45 'txval42' ( temp 4-component vector of uint) 0:45 textureGrad ( temp 4-component vector of uint) 0:45 Construct combined texture-sampler ( temp usamplerCube) 0:45 'g_tTexcdu4' ( uniform utextureCube) 0:45 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:47 move second child to first child ( temp 4-component vector of float) 0:47 Color: direct index for structure ( temp 4-component vector of float) 0:47 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:47 Constant: 0:47 0 (const int) 0:47 Constant: 0:47 1.000000 0:47 1.000000 0:47 1.000000 0:47 1.000000 0:48 move second child to first child ( temp float) 0:48 Depth: direct index for structure ( temp float) 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 0:50 Branch: Return with expression 0:50 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 47(g_tTex1du4) DescriptorSet 0 Decorate 47(g_tTex1du4) Binding 0 Decorate 57(g_tTex2df4) DescriptorSet 0 Decorate 57(g_tTex2df4) Binding 0 Decorate 69(g_tTex2di4) DescriptorSet 0 Decorate 69(g_tTex2di4) Binding 0 Decorate 80(g_tTex2du4) DescriptorSet 0 Decorate 80(g_tTex2du4) Binding 0 Decorate 92(g_tTex3df4) DescriptorSet 0 Decorate 92(g_tTex3df4) Binding 0 Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 105(g_tTex3di4) Binding 0 Decorate 115(g_tTex3du4) DescriptorSet 0 Decorate 115(g_tTex3du4) Binding 0 Decorate 128(g_tTexcdf4) DescriptorSet 0 Decorate 128(g_tTexcdf4) Binding 0 Decorate 137(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdi4) Binding 0 Decorate 146(g_tTexcdu4) DescriptorSet 0 Decorate 146(g_tTexcdu4) Binding 0 Decorate 167(@entryPointOutput.Color) Location 0 Decorate 171(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 174(g_tTex1df4a) DescriptorSet 0 Decorate 174(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: 6(float) Constant 1036831949 25: 6(float) Constant 1066192077 26: 6(float) Constant 1067030938 28: TypeInt 32 1 29: TypeVector 28(int) 4 30: TypePointer Function 29(ivec4) 32: TypeImage 28(int) 1D sampled format:Unknown 33: TypePointer UniformConstant 32 34(g_tTex1di4): 33(ptr) Variable UniformConstant 37: TypeSampledImage 32 39: 6(float) Constant 1045220557 41: TypeInt 32 0 42: TypeVector 41(int) 4 43: TypePointer Function 42(ivec4) 45: TypeImage 41(int) 1D sampled format:Unknown 46: TypePointer UniformConstant 45 47(g_tTex1du4): 46(ptr) Variable UniformConstant 50: TypeSampledImage 45 52: 6(float) Constant 1050253722 55: TypeImage 6(float) 2D sampled format:Unknown 56: TypePointer UniformConstant 55 57(g_tTex2df4): 56(ptr) Variable UniformConstant 60: TypeSampledImage 55 62: TypeVector 6(float) 2 63: 62(fvec2) ConstantComposite 24 39 64: 62(fvec2) ConstantComposite 25 26 67: TypeImage 28(int) 2D sampled format:Unknown 68: TypePointer UniformConstant 67 69(g_tTex2di4): 68(ptr) Variable UniformConstant 72: TypeSampledImage 67 74: 6(float) Constant 1053609165 75: 62(fvec2) ConstantComposite 52 74 78: TypeImage 41(int) 2D sampled format:Unknown 79: TypePointer UniformConstant 78 80(g_tTex2du4): 79(ptr) Variable UniformConstant 83: TypeSampledImage 78 85: 6(float) Constant 1056964608 86: 6(float) Constant 1058642330 87: 62(fvec2) ConstantComposite 85 86 90: TypeImage 6(float) 3D sampled format:Unknown 91: TypePointer UniformConstant 90 92(g_tTex3df4): 91(ptr) Variable UniformConstant 95: TypeSampledImage 90 97: TypeVector 6(float) 3 98: 97(fvec3) ConstantComposite 24 39 52 99: 6(float) Constant 1067869798 100: 97(fvec3) ConstantComposite 25 26 99 103: TypeImage 28(int) 3D sampled format:Unknown 104: TypePointer UniformConstant 103 105(g_tTex3di4): 104(ptr) Variable UniformConstant 108: TypeSampledImage 103 110: 97(fvec3) ConstantComposite 74 85 86 113: TypeImage 41(int) 3D sampled format:Unknown 114: TypePointer UniformConstant 113 115(g_tTex3du4): 114(ptr) Variable UniformConstant 118: TypeSampledImage 113 120: 6(float) Constant 1060320051 121: 6(float) Constant 1061997773 122: 6(float) Constant 1063675494 123: 97(fvec3) ConstantComposite 120 121 122 126: TypeImage 6(float) Cube sampled format:Unknown 127: TypePointer UniformConstant 126 128(g_tTexcdf4): 127(ptr) Variable UniformConstant 131: TypeSampledImage 126 135: TypeImage 28(int) Cube sampled format:Unknown 136: TypePointer UniformConstant 135 137(g_tTexcdi4): 136(ptr) Variable UniformConstant 140: TypeSampledImage 135 144: TypeImage 41(int) Cube sampled format:Unknown 145: TypePointer UniformConstant 144 146(g_tTexcdu4): 145(ptr) Variable UniformConstant 149: TypeSampledImage 144 152: TypePointer Function 8(PS_OUTPUT) 154: 28(int) Constant 0 155: 6(float) Constant 1065353216 156: 7(fvec4) ConstantComposite 155 155 155 155 158: 28(int) Constant 1 159: TypePointer Function 6(float) 166: TypePointer Output 7(fvec4) 167(@entryPointOutput.Color): 166(ptr) Variable Output 170: TypePointer Output 6(float) 171(@entryPointOutput.Depth): 170(ptr) Variable Output 174(g_tTex1df4a): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 164(flattenTemp): 152(ptr) Variable Function 165:8(PS_OUTPUT) FunctionCall 10(@main() Store 164(flattenTemp) 165 168: 12(ptr) AccessChain 164(flattenTemp) 154 169: 7(fvec4) Load 168 Store 167(@entryPointOutput.Color) 169 172: 159(ptr) AccessChain 164(flattenTemp) 158 173: 6(float) Load 172 Store 171(@entryPointOutput.Depth) 173 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 31(txval11): 30(ptr) Variable Function 44(txval12): 43(ptr) Variable Function 54(txval20): 12(ptr) Variable Function 66(txval21): 30(ptr) Variable Function 77(txval22): 43(ptr) Variable Function 89(txval30): 12(ptr) Variable Function 102(txval31): 30(ptr) Variable Function 112(txval32): 43(ptr) Variable Function 125(txval40): 12(ptr) Variable Function 134(txval41): 30(ptr) Variable Function 143(txval42): 43(ptr) Variable Function 153(psout): 152(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 27: 7(fvec4) ImageSampleExplicitLod 23 24 Grad 25 26 Store 13(txval10) 27 35: 32 Load 34(g_tTex1di4) 36: 18 Load 20(g_sSamp) 38: 37 SampledImage 35 36 40: 29(ivec4) ImageSampleExplicitLod 38 39 Grad 25 26 Store 31(txval11) 40 48: 45 Load 47(g_tTex1du4) 49: 18 Load 20(g_sSamp) 51: 50 SampledImage 48 49 53: 42(ivec4) ImageSampleExplicitLod 51 52 Grad 25 26 Store 44(txval12) 53 58: 55 Load 57(g_tTex2df4) 59: 18 Load 20(g_sSamp) 61: 60 SampledImage 58 59 65: 7(fvec4) ImageSampleExplicitLod 61 63 Grad 64 64 Store 54(txval20) 65 70: 67 Load 69(g_tTex2di4) 71: 18 Load 20(g_sSamp) 73: 72 SampledImage 70 71 76: 29(ivec4) ImageSampleExplicitLod 73 75 Grad 64 64 Store 66(txval21) 76 81: 78 Load 80(g_tTex2du4) 82: 18 Load 20(g_sSamp) 84: 83 SampledImage 81 82 88: 42(ivec4) ImageSampleExplicitLod 84 87 Grad 64 64 Store 77(txval22) 88 93: 90 Load 92(g_tTex3df4) 94: 18 Load 20(g_sSamp) 96: 95 SampledImage 93 94 101: 7(fvec4) ImageSampleExplicitLod 96 98 Grad 100 100 Store 89(txval30) 101 106: 103 Load 105(g_tTex3di4) 107: 18 Load 20(g_sSamp) 109: 108 SampledImage 106 107 111: 29(ivec4) ImageSampleExplicitLod 109 110 Grad 100 100 Store 102(txval31) 111 116: 113 Load 115(g_tTex3du4) 117: 18 Load 20(g_sSamp) 119: 118 SampledImage 116 117 124: 42(ivec4) ImageSampleExplicitLod 119 123 Grad 100 100 Store 112(txval32) 124 129: 126 Load 128(g_tTexcdf4) 130: 18 Load 20(g_sSamp) 132: 131 SampledImage 129 130 133: 7(fvec4) ImageSampleExplicitLod 132 98 Grad 100 100 Store 125(txval40) 133 138: 135 Load 137(g_tTexcdi4) 139: 18 Load 20(g_sSamp) 141: 140 SampledImage 138 139 142: 29(ivec4) ImageSampleExplicitLod 141 110 Grad 100 100 Store 134(txval41) 142 147: 144 Load 146(g_tTexcdu4) 148: 18 Load 20(g_sSamp) 150: 149 SampledImage 147 148 151: 42(ivec4) ImageSampleExplicitLod 150 123 Grad 100 100 Store 143(txval42) 151 157: 12(ptr) AccessChain 153(psout) 154 Store 157 156 160: 159(ptr) AccessChain 153(psout) 158 Store 160 155 161:8(PS_OUTPUT) Load 153(psout) ReturnValue 161 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out000066400000000000000000001020311360464450000253350ustar00rootroot00000000000000hlsl.samplegrad.basic.dx10.vert Shader version: 500 0:? Sequence 0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of float) 0:30 'txval10' ( temp 4-component vector of float) 0:30 textureGrad ( temp 4-component vector of float) 0:30 Construct combined texture-sampler ( temp sampler1D) 0:30 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:30 'g_sSamp' (layout( binding=0) uniform sampler) 0:30 Constant: 0:30 0.100000 0:30 Constant: 0:30 1.100000 0:30 Constant: 0:30 1.200000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of int) 0:31 'txval11' ( temp 4-component vector of int) 0:31 textureGrad ( temp 4-component vector of int) 0:31 Construct combined texture-sampler ( temp isampler1D) 0:31 'g_tTex1di4' ( uniform itexture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.200000 0:31 Constant: 0:31 1.100000 0:31 Constant: 0:31 1.200000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of uint) 0:32 'txval12' ( temp 4-component vector of uint) 0:32 textureGrad ( temp 4-component vector of uint) 0:32 Construct combined texture-sampler ( temp usampler1D) 0:32 'g_tTex1du4' ( uniform utexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.300000 0:32 Constant: 0:32 1.100000 0:32 Constant: 0:32 1.200000 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of float) 0:34 'txval20' ( temp 4-component vector of float) 0:34 textureGrad ( temp 4-component vector of float) 0:34 Construct combined texture-sampler ( temp sampler2D) 0:34 'g_tTex2df4' ( uniform texture2D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of int) 0:35 'txval21' ( temp 4-component vector of int) 0:35 textureGrad ( temp 4-component vector of int) 0:35 Construct combined texture-sampler ( temp isampler2D) 0:35 'g_tTex2di4' ( uniform itexture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of uint) 0:36 'txval22' ( temp 4-component vector of uint) 0:36 textureGrad ( temp 4-component vector of uint) 0:36 Construct combined texture-sampler ( temp usampler2D) 0:36 'g_tTex2du4' ( uniform utexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:38 Sequence 0:38 move second child to first child ( temp 4-component vector of float) 0:38 'txval30' ( temp 4-component vector of float) 0:38 textureGrad ( temp 4-component vector of float) 0:38 Construct combined texture-sampler ( temp sampler3D) 0:38 'g_tTex3df4' ( uniform texture3D) 0:38 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of int) 0:39 'txval31' ( temp 4-component vector of int) 0:39 textureGrad ( temp 4-component vector of int) 0:39 Construct combined texture-sampler ( temp isampler3D) 0:39 'g_tTex3di4' ( uniform itexture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of uint) 0:40 'txval32' ( temp 4-component vector of uint) 0:40 textureGrad ( temp 4-component vector of uint) 0:40 Construct combined texture-sampler ( temp usampler3D) 0:40 'g_tTex3du4' ( uniform utexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:42 Sequence 0:42 move second child to first child ( temp 4-component vector of float) 0:42 'txval40' ( temp 4-component vector of float) 0:42 textureGrad ( temp 4-component vector of float) 0:42 Construct combined texture-sampler ( temp samplerCube) 0:42 'g_tTexcdf4' ( uniform textureCube) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of int) 0:43 'txval41' ( temp 4-component vector of int) 0:43 textureGrad ( temp 4-component vector of int) 0:43 Construct combined texture-sampler ( temp isamplerCube) 0:43 'g_tTexcdi4' ( uniform itextureCube) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of uint) 0:44 'txval42' ( temp 4-component vector of uint) 0:44 textureGrad ( temp 4-component vector of uint) 0:44 Construct combined texture-sampler ( temp usamplerCube) 0:44 'g_tTexcdu4' ( uniform utextureCube) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:46 move second child to first child ( temp 4-component vector of float) 0:46 Pos: direct index for structure ( temp 4-component vector of float) 0:46 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:48 Branch: Return with expression 0:48 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Definition: main( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) 0:27 Pos: direct index for structure ( temp 4-component vector of float) 0:27 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Constant: 0:27 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) Linked vertex stage: Shader version: 500 0:? Sequence 0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of float) 0:30 'txval10' ( temp 4-component vector of float) 0:30 textureGrad ( temp 4-component vector of float) 0:30 Construct combined texture-sampler ( temp sampler1D) 0:30 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:30 'g_sSamp' (layout( binding=0) uniform sampler) 0:30 Constant: 0:30 0.100000 0:30 Constant: 0:30 1.100000 0:30 Constant: 0:30 1.200000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of int) 0:31 'txval11' ( temp 4-component vector of int) 0:31 textureGrad ( temp 4-component vector of int) 0:31 Construct combined texture-sampler ( temp isampler1D) 0:31 'g_tTex1di4' ( uniform itexture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.200000 0:31 Constant: 0:31 1.100000 0:31 Constant: 0:31 1.200000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of uint) 0:32 'txval12' ( temp 4-component vector of uint) 0:32 textureGrad ( temp 4-component vector of uint) 0:32 Construct combined texture-sampler ( temp usampler1D) 0:32 'g_tTex1du4' ( uniform utexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.300000 0:32 Constant: 0:32 1.100000 0:32 Constant: 0:32 1.200000 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of float) 0:34 'txval20' ( temp 4-component vector of float) 0:34 textureGrad ( temp 4-component vector of float) 0:34 Construct combined texture-sampler ( temp sampler2D) 0:34 'g_tTex2df4' ( uniform texture2D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of int) 0:35 'txval21' ( temp 4-component vector of int) 0:35 textureGrad ( temp 4-component vector of int) 0:35 Construct combined texture-sampler ( temp isampler2D) 0:35 'g_tTex2di4' ( uniform itexture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of uint) 0:36 'txval22' ( temp 4-component vector of uint) 0:36 textureGrad ( temp 4-component vector of uint) 0:36 Construct combined texture-sampler ( temp usampler2D) 0:36 'g_tTex2du4' ( uniform utexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:38 Sequence 0:38 move second child to first child ( temp 4-component vector of float) 0:38 'txval30' ( temp 4-component vector of float) 0:38 textureGrad ( temp 4-component vector of float) 0:38 Construct combined texture-sampler ( temp sampler3D) 0:38 'g_tTex3df4' ( uniform texture3D) 0:38 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of int) 0:39 'txval31' ( temp 4-component vector of int) 0:39 textureGrad ( temp 4-component vector of int) 0:39 Construct combined texture-sampler ( temp isampler3D) 0:39 'g_tTex3di4' ( uniform itexture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of uint) 0:40 'txval32' ( temp 4-component vector of uint) 0:40 textureGrad ( temp 4-component vector of uint) 0:40 Construct combined texture-sampler ( temp usampler3D) 0:40 'g_tTex3du4' ( uniform utexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:42 Sequence 0:42 move second child to first child ( temp 4-component vector of float) 0:42 'txval40' ( temp 4-component vector of float) 0:42 textureGrad ( temp 4-component vector of float) 0:42 Construct combined texture-sampler ( temp samplerCube) 0:42 'g_tTexcdf4' ( uniform textureCube) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of int) 0:43 'txval41' ( temp 4-component vector of int) 0:43 textureGrad ( temp 4-component vector of int) 0:43 Construct combined texture-sampler ( temp isamplerCube) 0:43 'g_tTexcdi4' ( uniform itextureCube) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of uint) 0:44 'txval42' ( temp 4-component vector of uint) 0:44 textureGrad ( temp 4-component vector of uint) 0:44 Construct combined texture-sampler ( temp usamplerCube) 0:44 'g_tTexcdu4' ( uniform utextureCube) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:46 move second child to first child ( temp 4-component vector of float) 0:46 Pos: direct index for structure ( temp 4-component vector of float) 0:46 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:48 Branch: Return with expression 0:48 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Definition: main( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) 0:27 Pos: direct index for structure ( temp 4-component vector of float) 0:27 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Constant: 0:27 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 47(g_tTex1du4) DescriptorSet 0 Decorate 47(g_tTex1du4) Binding 0 Decorate 57(g_tTex2df4) DescriptorSet 0 Decorate 57(g_tTex2df4) Binding 0 Decorate 69(g_tTex2di4) DescriptorSet 0 Decorate 69(g_tTex2di4) Binding 0 Decorate 80(g_tTex2du4) DescriptorSet 0 Decorate 80(g_tTex2du4) Binding 0 Decorate 92(g_tTex3df4) DescriptorSet 0 Decorate 92(g_tTex3df4) Binding 0 Decorate 105(g_tTex3di4) DescriptorSet 0 Decorate 105(g_tTex3di4) Binding 0 Decorate 115(g_tTex3du4) DescriptorSet 0 Decorate 115(g_tTex3du4) Binding 0 Decorate 128(g_tTexcdf4) DescriptorSet 0 Decorate 128(g_tTexcdf4) Binding 0 Decorate 137(g_tTexcdi4) DescriptorSet 0 Decorate 137(g_tTexcdi4) Binding 0 Decorate 146(g_tTexcdu4) DescriptorSet 0 Decorate 146(g_tTexcdu4) Binding 0 Decorate 162(@entryPointOutput.Pos) BuiltIn Position Decorate 165(g_tTex1df4a) DescriptorSet 0 Decorate 165(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(VS_OUTPUT): TypeStruct 7(fvec4) 9: TypeFunction 8(VS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: 6(float) Constant 1036831949 25: 6(float) Constant 1066192077 26: 6(float) Constant 1067030938 28: TypeInt 32 1 29: TypeVector 28(int) 4 30: TypePointer Function 29(ivec4) 32: TypeImage 28(int) 1D sampled format:Unknown 33: TypePointer UniformConstant 32 34(g_tTex1di4): 33(ptr) Variable UniformConstant 37: TypeSampledImage 32 39: 6(float) Constant 1045220557 41: TypeInt 32 0 42: TypeVector 41(int) 4 43: TypePointer Function 42(ivec4) 45: TypeImage 41(int) 1D sampled format:Unknown 46: TypePointer UniformConstant 45 47(g_tTex1du4): 46(ptr) Variable UniformConstant 50: TypeSampledImage 45 52: 6(float) Constant 1050253722 55: TypeImage 6(float) 2D sampled format:Unknown 56: TypePointer UniformConstant 55 57(g_tTex2df4): 56(ptr) Variable UniformConstant 60: TypeSampledImage 55 62: TypeVector 6(float) 2 63: 62(fvec2) ConstantComposite 24 39 64: 62(fvec2) ConstantComposite 25 26 67: TypeImage 28(int) 2D sampled format:Unknown 68: TypePointer UniformConstant 67 69(g_tTex2di4): 68(ptr) Variable UniformConstant 72: TypeSampledImage 67 74: 6(float) Constant 1053609165 75: 62(fvec2) ConstantComposite 52 74 78: TypeImage 41(int) 2D sampled format:Unknown 79: TypePointer UniformConstant 78 80(g_tTex2du4): 79(ptr) Variable UniformConstant 83: TypeSampledImage 78 85: 6(float) Constant 1056964608 86: 6(float) Constant 1058642330 87: 62(fvec2) ConstantComposite 85 86 90: TypeImage 6(float) 3D sampled format:Unknown 91: TypePointer UniformConstant 90 92(g_tTex3df4): 91(ptr) Variable UniformConstant 95: TypeSampledImage 90 97: TypeVector 6(float) 3 98: 97(fvec3) ConstantComposite 24 39 52 99: 6(float) Constant 1067869798 100: 97(fvec3) ConstantComposite 25 26 99 103: TypeImage 28(int) 3D sampled format:Unknown 104: TypePointer UniformConstant 103 105(g_tTex3di4): 104(ptr) Variable UniformConstant 108: TypeSampledImage 103 110: 97(fvec3) ConstantComposite 74 85 86 113: TypeImage 41(int) 3D sampled format:Unknown 114: TypePointer UniformConstant 113 115(g_tTex3du4): 114(ptr) Variable UniformConstant 118: TypeSampledImage 113 120: 6(float) Constant 1060320051 121: 6(float) Constant 1061997773 122: 6(float) Constant 1063675494 123: 97(fvec3) ConstantComposite 120 121 122 126: TypeImage 6(float) Cube sampled format:Unknown 127: TypePointer UniformConstant 126 128(g_tTexcdf4): 127(ptr) Variable UniformConstant 131: TypeSampledImage 126 135: TypeImage 28(int) Cube sampled format:Unknown 136: TypePointer UniformConstant 135 137(g_tTexcdi4): 136(ptr) Variable UniformConstant 140: TypeSampledImage 135 144: TypeImage 41(int) Cube sampled format:Unknown 145: TypePointer UniformConstant 144 146(g_tTexcdu4): 145(ptr) Variable UniformConstant 149: TypeSampledImage 144 152: TypePointer Function 8(VS_OUTPUT) 154: 28(int) Constant 0 155: 6(float) Constant 0 156: 7(fvec4) ConstantComposite 155 155 155 155 161: TypePointer Output 7(fvec4) 162(@entryPointOutput.Pos): 161(ptr) Variable Output 165(g_tTex1df4a): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 163:8(VS_OUTPUT) FunctionCall 10(@main() 164: 7(fvec4) CompositeExtract 163 0 Store 162(@entryPointOutput.Pos) 164 Return FunctionEnd 10(@main():8(VS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 31(txval11): 30(ptr) Variable Function 44(txval12): 43(ptr) Variable Function 54(txval20): 12(ptr) Variable Function 66(txval21): 30(ptr) Variable Function 77(txval22): 43(ptr) Variable Function 89(txval30): 12(ptr) Variable Function 102(txval31): 30(ptr) Variable Function 112(txval32): 43(ptr) Variable Function 125(txval40): 12(ptr) Variable Function 134(txval41): 30(ptr) Variable Function 143(txval42): 43(ptr) Variable Function 153(vsout): 152(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 27: 7(fvec4) ImageSampleExplicitLod 23 24 Grad 25 26 Store 13(txval10) 27 35: 32 Load 34(g_tTex1di4) 36: 18 Load 20(g_sSamp) 38: 37 SampledImage 35 36 40: 29(ivec4) ImageSampleExplicitLod 38 39 Grad 25 26 Store 31(txval11) 40 48: 45 Load 47(g_tTex1du4) 49: 18 Load 20(g_sSamp) 51: 50 SampledImage 48 49 53: 42(ivec4) ImageSampleExplicitLod 51 52 Grad 25 26 Store 44(txval12) 53 58: 55 Load 57(g_tTex2df4) 59: 18 Load 20(g_sSamp) 61: 60 SampledImage 58 59 65: 7(fvec4) ImageSampleExplicitLod 61 63 Grad 64 64 Store 54(txval20) 65 70: 67 Load 69(g_tTex2di4) 71: 18 Load 20(g_sSamp) 73: 72 SampledImage 70 71 76: 29(ivec4) ImageSampleExplicitLod 73 75 Grad 64 64 Store 66(txval21) 76 81: 78 Load 80(g_tTex2du4) 82: 18 Load 20(g_sSamp) 84: 83 SampledImage 81 82 88: 42(ivec4) ImageSampleExplicitLod 84 87 Grad 64 64 Store 77(txval22) 88 93: 90 Load 92(g_tTex3df4) 94: 18 Load 20(g_sSamp) 96: 95 SampledImage 93 94 101: 7(fvec4) ImageSampleExplicitLod 96 98 Grad 100 100 Store 89(txval30) 101 106: 103 Load 105(g_tTex3di4) 107: 18 Load 20(g_sSamp) 109: 108 SampledImage 106 107 111: 29(ivec4) ImageSampleExplicitLod 109 110 Grad 100 100 Store 102(txval31) 111 116: 113 Load 115(g_tTex3du4) 117: 18 Load 20(g_sSamp) 119: 118 SampledImage 116 117 124: 42(ivec4) ImageSampleExplicitLod 119 123 Grad 100 100 Store 112(txval32) 124 129: 126 Load 128(g_tTexcdf4) 130: 18 Load 20(g_sSamp) 132: 131 SampledImage 129 130 133: 7(fvec4) ImageSampleExplicitLod 132 98 Grad 100 100 Store 125(txval40) 133 138: 135 Load 137(g_tTexcdi4) 139: 18 Load 20(g_sSamp) 141: 140 SampledImage 138 139 142: 29(ivec4) ImageSampleExplicitLod 141 110 Grad 100 100 Store 134(txval41) 142 147: 144 Load 146(g_tTexcdu4) 148: 18 Load 20(g_sSamp) 150: 149 SampledImage 147 148 151: 42(ivec4) ImageSampleExplicitLod 150 123 Grad 100 100 Store 143(txval42) 151 157: 12(ptr) AccessChain 153(vsout) 154 Store 157 156 158:8(VS_OUTPUT) Load 153(vsout) ReturnValue 158 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out000066400000000000000000001023431360464450000255070ustar00rootroot00000000000000hlsl.samplegrad.offset.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 textureGradOffset ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 1.100000 0:31 Constant: 0:31 1.200000 0:31 Constant: 0:31 1 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 textureGradOffset ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 1.100000 0:32 Constant: 0:32 1.200000 0:32 Constant: 0:32 1 (const int) 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 textureGradOffset ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 1.100000 0:33 Constant: 0:33 1.200000 0:33 Constant: 0:33 1 (const int) 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 textureGradOffset ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 textureGradOffset ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 textureGradOffset ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 textureGradOffset ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 textureGradOffset ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 textureGradOffset ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child ( temp 4-component vector of float) 0:45 Color: direct index for structure ( temp 4-component vector of float) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:46 move second child to first child ( temp float) 0:46 Depth: direct index for structure ( temp float) 0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Branch: Return with expression 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 textureGradOffset ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 1.100000 0:31 Constant: 0:31 1.200000 0:31 Constant: 0:31 1 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 textureGradOffset ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 1.100000 0:32 Constant: 0:32 1.200000 0:32 Constant: 0:32 1 (const int) 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 textureGradOffset ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 1.100000 0:33 Constant: 0:33 1.200000 0:33 Constant: 0:33 1 (const int) 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 textureGradOffset ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 textureGradOffset ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 textureGradOffset ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 textureGradOffset ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 textureGradOffset ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 textureGradOffset ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? 1.300000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child ( temp 4-component vector of float) 0:45 Color: direct index for structure ( temp 4-component vector of float) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:46 move second child to first child ( temp float) 0:46 Depth: direct index for structure ( temp float) 0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Branch: Return with expression 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 48(g_tTex1du4) DescriptorSet 0 Decorate 48(g_tTex1du4) Binding 0 Decorate 58(g_tTex2df4) DescriptorSet 0 Decorate 58(g_tTex2df4) Binding 0 Decorate 73(g_tTex2di4) DescriptorSet 0 Decorate 73(g_tTex2di4) Binding 0 Decorate 85(g_tTex2du4) DescriptorSet 0 Decorate 85(g_tTex2du4) Binding 0 Decorate 99(g_tTex3df4) DescriptorSet 0 Decorate 99(g_tTex3df4) Binding 0 Decorate 114(g_tTex3di4) DescriptorSet 0 Decorate 114(g_tTex3di4) Binding 0 Decorate 125(g_tTex3du4) DescriptorSet 0 Decorate 125(g_tTex3du4) Binding 0 Decorate 149(@entryPointOutput.Color) Location 0 Decorate 153(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 156(g_tTex1df4a) DescriptorSet 0 Decorate 156(g_tTex1df4a) Binding 1 Decorate 159(g_tTexcdf4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out000066400000000000000000000623161360464450000265530ustar00rootroot00000000000000hlsl.samplegrad.offsetarray.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval10' ( temp 4-component vector of float) 0:27 textureGradOffset ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler1DArray) 0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:27 Constant: 0:27 1.100000 0:27 Constant: 0:27 1.200000 0:27 Constant: 0:27 1 (const int) 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval11' ( temp 4-component vector of int) 0:28 textureGradOffset ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler1DArray) 0:28 'g_tTex1di4' ( uniform itexture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:28 Constant: 0:28 1.100000 0:28 Constant: 0:28 1.200000 0:28 Constant: 0:28 1 (const int) 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval12' ( temp 4-component vector of uint) 0:29 textureGradOffset ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler1DArray) 0:29 'g_tTex1du4' ( uniform utexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:29 Constant: 0:29 1.100000 0:29 Constant: 0:29 1.200000 0:29 Constant: 0:29 1 (const int) 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval20' ( temp 4-component vector of float) 0:31 textureGradOffset ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2DArray) 0:31 'g_tTex2df4' ( uniform texture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval21' ( temp 4-component vector of int) 0:32 textureGradOffset ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler2DArray) 0:32 'g_tTex2di4' ( uniform itexture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval22' ( temp 4-component vector of uint) 0:33 textureGradOffset ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler2DArray) 0:33 'g_tTex2du4' ( uniform utexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:35 move second child to first child ( temp 4-component vector of float) 0:35 Color: direct index for structure ( temp 4-component vector of float) 0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 0 (const int) 0:35 Constant: 0:35 1.000000 0:35 1.000000 0:35 1.000000 0:35 1.000000 0:36 move second child to first child ( temp float) 0:36 Depth: direct index for structure ( temp float) 0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 0:38 Branch: Return with expression 0:38 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? 'g_tTexcdf4' ( uniform textureCubeArray) 0:? 'g_tTexcdi4' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval10' ( temp 4-component vector of float) 0:27 textureGradOffset ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler1DArray) 0:27 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:27 Constant: 0:27 1.100000 0:27 Constant: 0:27 1.200000 0:27 Constant: 0:27 1 (const int) 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval11' ( temp 4-component vector of int) 0:28 textureGradOffset ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler1DArray) 0:28 'g_tTex1di4' ( uniform itexture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:28 Constant: 0:28 1.100000 0:28 Constant: 0:28 1.200000 0:28 Constant: 0:28 1 (const int) 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval12' ( temp 4-component vector of uint) 0:29 textureGradOffset ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler1DArray) 0:29 'g_tTex1du4' ( uniform utexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:29 Constant: 0:29 1.100000 0:29 Constant: 0:29 1.200000 0:29 Constant: 0:29 1 (const int) 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval20' ( temp 4-component vector of float) 0:31 textureGradOffset ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2DArray) 0:31 'g_tTex2df4' ( uniform texture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval21' ( temp 4-component vector of int) 0:32 textureGradOffset ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler2DArray) 0:32 'g_tTex2di4' ( uniform itexture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval22' ( temp 4-component vector of uint) 0:33 textureGradOffset ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler2DArray) 0:33 'g_tTex2du4' ( uniform utexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1.100000 0:? 1.200000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:35 move second child to first child ( temp 4-component vector of float) 0:35 Color: direct index for structure ( temp 4-component vector of float) 0:35 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:35 Constant: 0:35 0 (const int) 0:35 Constant: 0:35 1.000000 0:35 1.000000 0:35 1.000000 0:35 1.000000 0:36 move second child to first child ( temp float) 0:36 Depth: direct index for structure ( temp float) 0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:36 Constant: 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 0:38 Branch: Return with expression 0:38 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? 'g_tTexcdf4' ( uniform textureCubeArray) 0:? 'g_tTexcdi4' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 50(g_tTex1du4) DescriptorSet 0 Decorate 50(g_tTex1du4) Binding 0 Decorate 59(g_tTex2df4) DescriptorSet 0 Decorate 59(g_tTex2df4) Binding 0 Decorate 75(g_tTex2di4) DescriptorSet 0 Decorate 75(g_tTex2di4) Binding 0 Decorate 84(g_tTex2du4) DescriptorSet 0 Decorate 84(g_tTex2du4) Binding 0 Decorate 103(@entryPointOutput.Color) Location 0 Decorate 107(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 110(g_tTex1df4a) DescriptorSet 0 Decorate 110(g_tTex1df4a) Binding 1 Decorate 113(g_tTexcdf4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out000066400000000000000000000710431360464450000255330ustar00rootroot00000000000000hlsl.samplelevel.array.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval10' ( temp 4-component vector of float) 0:27 textureLod ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler1DArray) 0:27 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:27 Constant: 0:27 0.750000 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval11' ( temp 4-component vector of int) 0:28 textureLod ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler1DArray) 0:28 'g_tTex1di4a' ( uniform itexture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:28 Constant: 0:28 0.750000 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval12' ( temp 4-component vector of uint) 0:29 textureLod ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler1DArray) 0:29 'g_tTex1du4a' ( uniform utexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:29 Constant: 0:29 0.750000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval20' ( temp 4-component vector of float) 0:31 textureLod ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2DArray) 0:31 'g_tTex2df4a' ( uniform texture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:31 Constant: 0:31 0.750000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval21' ( temp 4-component vector of int) 0:32 textureLod ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler2DArray) 0:32 'g_tTex2di4a' ( uniform itexture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:32 Constant: 0:32 0.750000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval22' ( temp 4-component vector of uint) 0:33 textureLod ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler2DArray) 0:33 'g_tTex2du4a' ( uniform utexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:33 Constant: 0:33 0.750000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval40' ( temp 4-component vector of float) 0:35 textureLod ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp samplerCubeArray) 0:35 'g_tTexcdf4a' ( uniform textureCubeArray) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:35 Constant: 0:35 0.750000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval41' ( temp 4-component vector of int) 0:36 textureLod ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isamplerCubeArray) 0:36 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:36 Constant: 0:36 0.750000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval42' ( temp 4-component vector of uint) 0:37 textureLod ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usamplerCubeArray) 0:37 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? 1.000000 0:37 Constant: 0:37 0.750000 0:39 move second child to first child ( temp 4-component vector of float) 0:39 Color: direct index for structure ( temp 4-component vector of float) 0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp float) 0:40 Depth: direct index for structure ( temp float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Branch: Return with expression 0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:24 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval10' ( temp 4-component vector of float) 0:27 textureLod ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler1DArray) 0:27 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:27 Constant: 0:27 0.750000 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval11' ( temp 4-component vector of int) 0:28 textureLod ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler1DArray) 0:28 'g_tTex1di4a' ( uniform itexture1DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:28 Constant: 0:28 0.750000 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval12' ( temp 4-component vector of uint) 0:29 textureLod ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler1DArray) 0:29 'g_tTex1du4a' ( uniform utexture1DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:29 Constant: 0:29 0.750000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval20' ( temp 4-component vector of float) 0:31 textureLod ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler2DArray) 0:31 'g_tTex2df4a' ( uniform texture2DArray) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:31 Constant: 0:31 0.750000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval21' ( temp 4-component vector of int) 0:32 textureLod ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler2DArray) 0:32 'g_tTex2di4a' ( uniform itexture2DArray) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:32 Constant: 0:32 0.750000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval22' ( temp 4-component vector of uint) 0:33 textureLod ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler2DArray) 0:33 'g_tTex2du4a' ( uniform utexture2DArray) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:33 Constant: 0:33 0.750000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval40' ( temp 4-component vector of float) 0:35 textureLod ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp samplerCubeArray) 0:35 'g_tTexcdf4a' ( uniform textureCubeArray) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:? 0.400000 0:35 Constant: 0:35 0.750000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval41' ( temp 4-component vector of int) 0:36 textureLod ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isamplerCubeArray) 0:36 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:36 Constant: 0:36 0.750000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval42' ( temp 4-component vector of uint) 0:37 textureLod ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usamplerCubeArray) 0:37 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:? 1.000000 0:37 Constant: 0:37 0.750000 0:39 move second child to first child ( temp 4-component vector of float) 0:39 Color: direct index for structure ( temp 4-component vector of float) 0:39 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:39 Constant: 0:39 0 (const int) 0:39 Constant: 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:39 1.000000 0:40 move second child to first child ( temp float) 0:40 Depth: direct index for structure ( temp float) 0:40 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:40 Constant: 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 0:42 Branch: Return with expression 0:42 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:24 Color: direct index for structure ( temp 4-component vector of float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:24 Depth: direct index for structure ( temp float) 0:24 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:24 Constant: 0:24 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4a' ( uniform itexture1DArray) 0:? 'g_tTex1du4a' ( uniform utexture1DArray) 0:? 'g_tTex2df4a' ( uniform texture2DArray) 0:? 'g_tTex2di4a' ( uniform itexture2DArray) 0:? 'g_tTex2du4a' ( uniform utexture2DArray) 0:? 'g_tTexcdf4a' ( uniform textureCubeArray) 0:? 'g_tTexcdi4a' ( uniform itextureCubeArray) 0:? 'g_tTexcdu4a' ( uniform utextureCubeArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 50(g_tTex1du4a) DescriptorSet 0 Decorate 50(g_tTex1du4a) Binding 0 Decorate 61(g_tTex2df4a) DescriptorSet 0 Decorate 61(g_tTex2df4a) Binding 0 Decorate 72(g_tTex2di4a) DescriptorSet 0 Decorate 72(g_tTex2di4a) Binding 0 Decorate 83(g_tTex2du4a) DescriptorSet 0 Decorate 83(g_tTex2du4a) Binding 0 Decorate 95(g_tTexcdf4a) DescriptorSet 0 Decorate 95(g_tTexcdf4a) Binding 0 Decorate 105(g_tTexcdi4a) DescriptorSet 0 Decorate 105(g_tTexcdi4a) Binding 0 Decorate 115(g_tTexcdu4a) DescriptorSet 0 Decorate 115(g_tTexcdu4a) Binding 0 Decorate 139(@entryPointOutput.Color) Location 0 Decorate 143(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 146(g_tTex1df4) DescriptorSet 0 Decorate 146(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D array sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4a): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: TypeVector 6(float) 2 25: 6(float) Constant 1036831949 26: 6(float) Constant 1045220557 27: 24(fvec2) ConstantComposite 25 26 28: 6(float) Constant 1061158912 30: TypeInt 32 1 31: TypeVector 30(int) 4 32: TypePointer Function 31(ivec4) 34: TypeImage 30(int) 1D array sampled format:Unknown 35: TypePointer UniformConstant 34 36(g_tTex1di4a): 35(ptr) Variable UniformConstant 39: TypeSampledImage 34 41: 6(float) Constant 1050253722 42: 24(fvec2) ConstantComposite 26 41 44: TypeInt 32 0 45: TypeVector 44(int) 4 46: TypePointer Function 45(ivec4) 48: TypeImage 44(int) 1D array sampled format:Unknown 49: TypePointer UniformConstant 48 50(g_tTex1du4a): 49(ptr) Variable UniformConstant 53: TypeSampledImage 48 55: 6(float) Constant 1053609165 56: 24(fvec2) ConstantComposite 41 55 59: TypeImage 6(float) 2D array sampled format:Unknown 60: TypePointer UniformConstant 59 61(g_tTex2df4a): 60(ptr) Variable UniformConstant 64: TypeSampledImage 59 66: TypeVector 6(float) 3 67: 66(fvec3) ConstantComposite 25 26 41 70: TypeImage 30(int) 2D array sampled format:Unknown 71: TypePointer UniformConstant 70 72(g_tTex2di4a): 71(ptr) Variable UniformConstant 75: TypeSampledImage 70 77: 6(float) Constant 1056964608 78: 66(fvec3) ConstantComposite 41 55 77 81: TypeImage 44(int) 2D array sampled format:Unknown 82: TypePointer UniformConstant 81 83(g_tTex2du4a): 82(ptr) Variable UniformConstant 86: TypeSampledImage 81 88: 6(float) Constant 1058642330 89: 6(float) Constant 1060320051 90: 66(fvec3) ConstantComposite 77 88 89 93: TypeImage 6(float) Cube array sampled format:Unknown 94: TypePointer UniformConstant 93 95(g_tTexcdf4a): 94(ptr) Variable UniformConstant 98: TypeSampledImage 93 100: 7(fvec4) ConstantComposite 25 26 41 55 103: TypeImage 30(int) Cube array sampled format:Unknown 104: TypePointer UniformConstant 103 105(g_tTexcdi4a): 104(ptr) Variable UniformConstant 108: TypeSampledImage 103 110: 7(fvec4) ConstantComposite 55 77 88 89 113: TypeImage 44(int) Cube array sampled format:Unknown 114: TypePointer UniformConstant 113 115(g_tTexcdu4a): 114(ptr) Variable UniformConstant 118: TypeSampledImage 113 120: 6(float) Constant 1061997773 121: 6(float) Constant 1063675494 122: 6(float) Constant 1065353216 123: 7(fvec4) ConstantComposite 89 120 121 122 125: TypePointer Function 8(PS_OUTPUT) 127: 30(int) Constant 0 128: 7(fvec4) ConstantComposite 122 122 122 122 130: 30(int) Constant 1 131: TypePointer Function 6(float) 138: TypePointer Output 7(fvec4) 139(@entryPointOutput.Color): 138(ptr) Variable Output 142: TypePointer Output 6(float) 143(@entryPointOutput.Depth): 142(ptr) Variable Output 146(g_tTex1df4): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 136(flattenTemp): 125(ptr) Variable Function 137:8(PS_OUTPUT) FunctionCall 10(@main() Store 136(flattenTemp) 137 140: 12(ptr) AccessChain 136(flattenTemp) 127 141: 7(fvec4) Load 140 Store 139(@entryPointOutput.Color) 141 144: 131(ptr) AccessChain 136(flattenTemp) 130 145: 6(float) Load 144 Store 143(@entryPointOutput.Depth) 145 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 33(txval11): 32(ptr) Variable Function 47(txval12): 46(ptr) Variable Function 58(txval20): 12(ptr) Variable Function 69(txval21): 32(ptr) Variable Function 80(txval22): 46(ptr) Variable Function 92(txval40): 12(ptr) Variable Function 102(txval41): 32(ptr) Variable Function 112(txval42): 46(ptr) Variable Function 126(psout): 125(ptr) Variable Function 17: 14 Load 16(g_tTex1df4a) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 29: 7(fvec4) ImageSampleExplicitLod 23 27 Lod 28 Store 13(txval10) 29 37: 34 Load 36(g_tTex1di4a) 38: 18 Load 20(g_sSamp) 40: 39 SampledImage 37 38 43: 31(ivec4) ImageSampleExplicitLod 40 42 Lod 28 Store 33(txval11) 43 51: 48 Load 50(g_tTex1du4a) 52: 18 Load 20(g_sSamp) 54: 53 SampledImage 51 52 57: 45(ivec4) ImageSampleExplicitLod 54 56 Lod 28 Store 47(txval12) 57 62: 59 Load 61(g_tTex2df4a) 63: 18 Load 20(g_sSamp) 65: 64 SampledImage 62 63 68: 7(fvec4) ImageSampleExplicitLod 65 67 Lod 28 Store 58(txval20) 68 73: 70 Load 72(g_tTex2di4a) 74: 18 Load 20(g_sSamp) 76: 75 SampledImage 73 74 79: 31(ivec4) ImageSampleExplicitLod 76 78 Lod 28 Store 69(txval21) 79 84: 81 Load 83(g_tTex2du4a) 85: 18 Load 20(g_sSamp) 87: 86 SampledImage 84 85 91: 45(ivec4) ImageSampleExplicitLod 87 90 Lod 28 Store 80(txval22) 91 96: 93 Load 95(g_tTexcdf4a) 97: 18 Load 20(g_sSamp) 99: 98 SampledImage 96 97 101: 7(fvec4) ImageSampleExplicitLod 99 100 Lod 28 Store 92(txval40) 101 106: 103 Load 105(g_tTexcdi4a) 107: 18 Load 20(g_sSamp) 109: 108 SampledImage 106 107 111: 31(ivec4) ImageSampleExplicitLod 109 110 Lod 28 Store 102(txval41) 111 116: 113 Load 115(g_tTexcdu4a) 117: 18 Load 20(g_sSamp) 119: 118 SampledImage 116 117 124: 45(ivec4) ImageSampleExplicitLod 119 123 Lod 28 Store 112(txval42) 124 129: 12(ptr) AccessChain 126(psout) 127 Store 129 128 132: 131(ptr) AccessChain 126(psout) 130 Store 132 122 133:8(PS_OUTPUT) Load 126(psout) ReturnValue 133 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out000066400000000000000000001032241360464450000254730ustar00rootroot00000000000000hlsl.samplelevel.basic.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of float) 0:32 'txval10' ( temp 4-component vector of float) 0:32 textureLod ( temp 4-component vector of float) 0:32 Construct combined texture-sampler ( temp sampler1D) 0:32 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.100000 0:32 Constant: 0:32 0.750000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of int) 0:33 'txval11' ( temp 4-component vector of int) 0:33 textureLod ( temp 4-component vector of int) 0:33 Construct combined texture-sampler ( temp isampler1D) 0:33 'g_tTex1di4' ( uniform itexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.200000 0:33 Constant: 0:33 0.750000 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of uint) 0:34 'txval12' ( temp 4-component vector of uint) 0:34 textureLod ( temp 4-component vector of uint) 0:34 Construct combined texture-sampler ( temp usampler1D) 0:34 'g_tTex1du4' ( uniform utexture1D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:34 Constant: 0:34 0.300000 0:34 Constant: 0:34 0.750000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of float) 0:36 'txval20' ( temp 4-component vector of float) 0:36 textureLod ( temp 4-component vector of float) 0:36 Construct combined texture-sampler ( temp sampler2D) 0:36 'g_tTex2df4' ( uniform texture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:36 Constant: 0:36 0.750000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of int) 0:37 'txval21' ( temp 4-component vector of int) 0:37 textureLod ( temp 4-component vector of int) 0:37 Construct combined texture-sampler ( temp isampler2D) 0:37 'g_tTex2di4' ( uniform itexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:37 Constant: 0:37 0.750000 0:38 Sequence 0:38 move second child to first child ( temp 4-component vector of uint) 0:38 'txval22' ( temp 4-component vector of uint) 0:38 textureLod ( temp 4-component vector of uint) 0:38 Construct combined texture-sampler ( temp usampler2D) 0:38 'g_tTex2du4' ( uniform utexture2D) 0:38 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:38 Constant: 0:38 0.750000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of float) 0:40 'txval30' ( temp 4-component vector of float) 0:40 textureLod ( temp 4-component vector of float) 0:40 Construct combined texture-sampler ( temp sampler3D) 0:40 'g_tTex3df4' ( uniform texture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:40 Constant: 0:40 0.750000 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of int) 0:41 'txval31' ( temp 4-component vector of int) 0:41 textureLod ( temp 4-component vector of int) 0:41 Construct combined texture-sampler ( temp isampler3D) 0:41 'g_tTex3di4' ( uniform itexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:41 Constant: 0:41 0.750000 0:42 Sequence 0:42 move second child to first child ( temp 4-component vector of uint) 0:42 'txval32' ( temp 4-component vector of uint) 0:42 textureLod ( temp 4-component vector of uint) 0:42 Construct combined texture-sampler ( temp usampler3D) 0:42 'g_tTex3du4' ( uniform utexture3D) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:42 Constant: 0:42 0.750000 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of float) 0:44 'txval40' ( temp 4-component vector of float) 0:44 textureLod ( temp 4-component vector of float) 0:44 Construct combined texture-sampler ( temp samplerCube) 0:44 'g_tTexcdf4' ( uniform textureCube) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:44 Constant: 0:44 0.750000 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of int) 0:45 'txval41' ( temp 4-component vector of int) 0:45 textureLod ( temp 4-component vector of int) 0:45 Construct combined texture-sampler ( temp isamplerCube) 0:45 'g_tTexcdi4' ( uniform itextureCube) 0:45 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:45 Constant: 0:45 0.750000 0:46 Sequence 0:46 move second child to first child ( temp 4-component vector of uint) 0:46 'txval42' ( temp 4-component vector of uint) 0:46 textureLod ( temp 4-component vector of uint) 0:46 Construct combined texture-sampler ( temp usamplerCube) 0:46 'g_tTexcdu4' ( uniform utextureCube) 0:46 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:46 Constant: 0:46 0.750000 0:48 move second child to first child ( temp 4-component vector of float) 0:48 Color: direct index for structure ( temp 4-component vector of float) 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 Constant: 0:48 1.000000 0:48 1.000000 0:48 1.000000 0:48 1.000000 0:49 move second child to first child ( temp float) 0:49 Depth: direct index for structure ( temp float) 0:49 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:49 Constant: 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 0:51 Branch: Return with expression 0:51 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Definition: main( ( temp void) 0:29 Function Parameters: 0:? Sequence 0:29 Sequence 0:29 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:29 Color: direct index for structure ( temp 4-component vector of float) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Constant: 0:29 0 (const int) 0:29 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:29 Depth: direct index for structure ( temp float) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Constant: 0:29 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_sSamp2d' ( uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:29 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of float) 0:32 'txval10' ( temp 4-component vector of float) 0:32 textureLod ( temp 4-component vector of float) 0:32 Construct combined texture-sampler ( temp sampler1D) 0:32 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.100000 0:32 Constant: 0:32 0.750000 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of int) 0:33 'txval11' ( temp 4-component vector of int) 0:33 textureLod ( temp 4-component vector of int) 0:33 Construct combined texture-sampler ( temp isampler1D) 0:33 'g_tTex1di4' ( uniform itexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.200000 0:33 Constant: 0:33 0.750000 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of uint) 0:34 'txval12' ( temp 4-component vector of uint) 0:34 textureLod ( temp 4-component vector of uint) 0:34 Construct combined texture-sampler ( temp usampler1D) 0:34 'g_tTex1du4' ( uniform utexture1D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:34 Constant: 0:34 0.300000 0:34 Constant: 0:34 0.750000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of float) 0:36 'txval20' ( temp 4-component vector of float) 0:36 textureLod ( temp 4-component vector of float) 0:36 Construct combined texture-sampler ( temp sampler2D) 0:36 'g_tTex2df4' ( uniform texture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:36 Constant: 0:36 0.750000 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of int) 0:37 'txval21' ( temp 4-component vector of int) 0:37 textureLod ( temp 4-component vector of int) 0:37 Construct combined texture-sampler ( temp isampler2D) 0:37 'g_tTex2di4' ( uniform itexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:37 Constant: 0:37 0.750000 0:38 Sequence 0:38 move second child to first child ( temp 4-component vector of uint) 0:38 'txval22' ( temp 4-component vector of uint) 0:38 textureLod ( temp 4-component vector of uint) 0:38 Construct combined texture-sampler ( temp usampler2D) 0:38 'g_tTex2du4' ( uniform utexture2D) 0:38 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:38 Constant: 0:38 0.750000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of float) 0:40 'txval30' ( temp 4-component vector of float) 0:40 textureLod ( temp 4-component vector of float) 0:40 Construct combined texture-sampler ( temp sampler3D) 0:40 'g_tTex3df4' ( uniform texture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:40 Constant: 0:40 0.750000 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of int) 0:41 'txval31' ( temp 4-component vector of int) 0:41 textureLod ( temp 4-component vector of int) 0:41 Construct combined texture-sampler ( temp isampler3D) 0:41 'g_tTex3di4' ( uniform itexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:41 Constant: 0:41 0.750000 0:42 Sequence 0:42 move second child to first child ( temp 4-component vector of uint) 0:42 'txval32' ( temp 4-component vector of uint) 0:42 textureLod ( temp 4-component vector of uint) 0:42 Construct combined texture-sampler ( temp usampler3D) 0:42 'g_tTex3du4' ( uniform utexture3D) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:42 Constant: 0:42 0.750000 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of float) 0:44 'txval40' ( temp 4-component vector of float) 0:44 textureLod ( temp 4-component vector of float) 0:44 Construct combined texture-sampler ( temp samplerCube) 0:44 'g_tTexcdf4' ( uniform textureCube) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:44 Constant: 0:44 0.750000 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of int) 0:45 'txval41' ( temp 4-component vector of int) 0:45 textureLod ( temp 4-component vector of int) 0:45 Construct combined texture-sampler ( temp isamplerCube) 0:45 'g_tTexcdi4' ( uniform itextureCube) 0:45 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:45 Constant: 0:45 0.750000 0:46 Sequence 0:46 move second child to first child ( temp 4-component vector of uint) 0:46 'txval42' ( temp 4-component vector of uint) 0:46 textureLod ( temp 4-component vector of uint) 0:46 Construct combined texture-sampler ( temp usamplerCube) 0:46 'g_tTexcdu4' ( uniform utextureCube) 0:46 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:46 Constant: 0:46 0.750000 0:48 move second child to first child ( temp 4-component vector of float) 0:48 Color: direct index for structure ( temp 4-component vector of float) 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:48 Constant: 0:48 0 (const int) 0:48 Constant: 0:48 1.000000 0:48 1.000000 0:48 1.000000 0:48 1.000000 0:49 move second child to first child ( temp float) 0:49 Depth: direct index for structure ( temp float) 0:49 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:49 Constant: 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 0:51 Branch: Return with expression 0:51 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Definition: main( ( temp void) 0:29 Function Parameters: 0:? Sequence 0:29 Sequence 0:29 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:29 Color: direct index for structure ( temp 4-component vector of float) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Constant: 0:29 0 (const int) 0:29 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:29 Depth: direct index for structure ( temp float) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:29 Constant: 0:29 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_sSamp2d' ( uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 46(g_tTex1du4) DescriptorSet 0 Decorate 46(g_tTex1du4) Binding 0 Decorate 56(g_tTex2df4) DescriptorSet 0 Decorate 56(g_tTex2df4) Binding 0 Decorate 67(g_tTex2di4) DescriptorSet 0 Decorate 67(g_tTex2di4) Binding 0 Decorate 78(g_tTex2du4) DescriptorSet 0 Decorate 78(g_tTex2du4) Binding 0 Decorate 90(g_tTex3df4) DescriptorSet 0 Decorate 90(g_tTex3df4) Binding 0 Decorate 101(g_tTex3di4) DescriptorSet 0 Decorate 101(g_tTex3di4) Binding 0 Decorate 111(g_tTex3du4) DescriptorSet 0 Decorate 111(g_tTex3du4) Binding 0 Decorate 124(g_tTexcdf4) DescriptorSet 0 Decorate 124(g_tTexcdf4) Binding 0 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 133(g_tTexcdi4) Binding 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 Decorate 142(g_tTexcdu4) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out000066400000000000000000000736421360464450000255460ustar00rootroot00000000000000hlsl.samplelevel.basic.dx10.vert Shader version: 500 0:? Sequence 0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of float) 0:30 'txval10' ( temp 4-component vector of float) 0:30 textureLod ( temp 4-component vector of float) 0:30 Construct combined texture-sampler ( temp sampler1D) 0:30 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:30 'g_sSamp' (layout( binding=0) uniform sampler) 0:30 Constant: 0:30 0.100000 0:30 Constant: 0:30 0.750000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of int) 0:31 'txval11' ( temp 4-component vector of int) 0:31 textureLod ( temp 4-component vector of int) 0:31 Construct combined texture-sampler ( temp isampler1D) 0:31 'g_tTex1di4' ( uniform itexture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.200000 0:31 Constant: 0:31 0.750000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of uint) 0:32 'txval12' ( temp 4-component vector of uint) 0:32 textureLod ( temp 4-component vector of uint) 0:32 Construct combined texture-sampler ( temp usampler1D) 0:32 'g_tTex1du4' ( uniform utexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.300000 0:32 Constant: 0:32 0.750000 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of float) 0:34 'txval20' ( temp 4-component vector of float) 0:34 textureLod ( temp 4-component vector of float) 0:34 Construct combined texture-sampler ( temp sampler2D) 0:34 'g_tTex2df4' ( uniform texture2D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:34 Constant: 0:34 0.750000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of int) 0:35 'txval21' ( temp 4-component vector of int) 0:35 textureLod ( temp 4-component vector of int) 0:35 Construct combined texture-sampler ( temp isampler2D) 0:35 'g_tTex2di4' ( uniform itexture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:35 Constant: 0:35 0.750000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of uint) 0:36 'txval22' ( temp 4-component vector of uint) 0:36 textureLod ( temp 4-component vector of uint) 0:36 Construct combined texture-sampler ( temp usampler2D) 0:36 'g_tTex2du4' ( uniform utexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:36 Constant: 0:36 0.750000 0:38 Sequence 0:38 move second child to first child ( temp 4-component vector of float) 0:38 'txval30' ( temp 4-component vector of float) 0:38 textureLod ( temp 4-component vector of float) 0:38 Construct combined texture-sampler ( temp sampler3D) 0:38 'g_tTex3df4' ( uniform texture3D) 0:38 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:38 Constant: 0:38 0.750000 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of int) 0:39 'txval31' ( temp 4-component vector of int) 0:39 textureLod ( temp 4-component vector of int) 0:39 Construct combined texture-sampler ( temp isampler3D) 0:39 'g_tTex3di4' ( uniform itexture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:39 Constant: 0:39 0.750000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of uint) 0:40 'txval32' ( temp 4-component vector of uint) 0:40 textureLod ( temp 4-component vector of uint) 0:40 Construct combined texture-sampler ( temp usampler3D) 0:40 'g_tTex3du4' ( uniform utexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:40 Constant: 0:40 0.750000 0:42 Sequence 0:42 move second child to first child ( temp 4-component vector of float) 0:42 'txval40' ( temp 4-component vector of float) 0:42 textureLod ( temp 4-component vector of float) 0:42 Construct combined texture-sampler ( temp samplerCube) 0:42 'g_tTexcdf4' ( uniform textureCube) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:42 Constant: 0:42 0.750000 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of int) 0:43 'txval41' ( temp 4-component vector of int) 0:43 textureLod ( temp 4-component vector of int) 0:43 Construct combined texture-sampler ( temp isamplerCube) 0:43 'g_tTexcdi4' ( uniform itextureCube) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:43 Constant: 0:43 0.750000 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of uint) 0:44 'txval42' ( temp 4-component vector of uint) 0:44 textureLod ( temp 4-component vector of uint) 0:44 Construct combined texture-sampler ( temp usamplerCube) 0:44 'g_tTexcdu4' ( uniform utextureCube) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:44 Constant: 0:44 0.750000 0:46 move second child to first child ( temp 4-component vector of float) 0:46 Pos: direct index for structure ( temp 4-component vector of float) 0:46 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:48 Branch: Return with expression 0:48 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Definition: main( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) 0:27 Pos: direct index for structure ( temp 4-component vector of float) 0:27 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Constant: 0:27 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) Linked vertex stage: Shader version: 500 0:? Sequence 0:27 Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence 0:30 move second child to first child ( temp 4-component vector of float) 0:30 'txval10' ( temp 4-component vector of float) 0:30 textureLod ( temp 4-component vector of float) 0:30 Construct combined texture-sampler ( temp sampler1D) 0:30 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:30 'g_sSamp' (layout( binding=0) uniform sampler) 0:30 Constant: 0:30 0.100000 0:30 Constant: 0:30 0.750000 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of int) 0:31 'txval11' ( temp 4-component vector of int) 0:31 textureLod ( temp 4-component vector of int) 0:31 Construct combined texture-sampler ( temp isampler1D) 0:31 'g_tTex1di4' ( uniform itexture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.200000 0:31 Constant: 0:31 0.750000 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of uint) 0:32 'txval12' ( temp 4-component vector of uint) 0:32 textureLod ( temp 4-component vector of uint) 0:32 Construct combined texture-sampler ( temp usampler1D) 0:32 'g_tTex1du4' ( uniform utexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.300000 0:32 Constant: 0:32 0.750000 0:34 Sequence 0:34 move second child to first child ( temp 4-component vector of float) 0:34 'txval20' ( temp 4-component vector of float) 0:34 textureLod ( temp 4-component vector of float) 0:34 Construct combined texture-sampler ( temp sampler2D) 0:34 'g_tTex2df4' ( uniform texture2D) 0:34 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:34 Constant: 0:34 0.750000 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of int) 0:35 'txval21' ( temp 4-component vector of int) 0:35 textureLod ( temp 4-component vector of int) 0:35 Construct combined texture-sampler ( temp isampler2D) 0:35 'g_tTex2di4' ( uniform itexture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:35 Constant: 0:35 0.750000 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of uint) 0:36 'txval22' ( temp 4-component vector of uint) 0:36 textureLod ( temp 4-component vector of uint) 0:36 Construct combined texture-sampler ( temp usampler2D) 0:36 'g_tTex2du4' ( uniform utexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:36 Constant: 0:36 0.750000 0:38 Sequence 0:38 move second child to first child ( temp 4-component vector of float) 0:38 'txval30' ( temp 4-component vector of float) 0:38 textureLod ( temp 4-component vector of float) 0:38 Construct combined texture-sampler ( temp sampler3D) 0:38 'g_tTex3df4' ( uniform texture3D) 0:38 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:38 Constant: 0:38 0.750000 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of int) 0:39 'txval31' ( temp 4-component vector of int) 0:39 textureLod ( temp 4-component vector of int) 0:39 Construct combined texture-sampler ( temp isampler3D) 0:39 'g_tTex3di4' ( uniform itexture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:39 Constant: 0:39 0.750000 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of uint) 0:40 'txval32' ( temp 4-component vector of uint) 0:40 textureLod ( temp 4-component vector of uint) 0:40 Construct combined texture-sampler ( temp usampler3D) 0:40 'g_tTex3du4' ( uniform utexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:40 Constant: 0:40 0.750000 0:42 Sequence 0:42 move second child to first child ( temp 4-component vector of float) 0:42 'txval40' ( temp 4-component vector of float) 0:42 textureLod ( temp 4-component vector of float) 0:42 Construct combined texture-sampler ( temp samplerCube) 0:42 'g_tTexcdf4' ( uniform textureCube) 0:42 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:42 Constant: 0:42 0.750000 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of int) 0:43 'txval41' ( temp 4-component vector of int) 0:43 textureLod ( temp 4-component vector of int) 0:43 Construct combined texture-sampler ( temp isamplerCube) 0:43 'g_tTexcdi4' ( uniform itextureCube) 0:43 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:43 Constant: 0:43 0.750000 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of uint) 0:44 'txval42' ( temp 4-component vector of uint) 0:44 textureLod ( temp 4-component vector of uint) 0:44 Construct combined texture-sampler ( temp usamplerCube) 0:44 'g_tTexcdu4' ( uniform utextureCube) 0:44 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:44 Constant: 0:44 0.750000 0:46 move second child to first child ( temp 4-component vector of float) 0:46 Pos: direct index for structure ( temp 4-component vector of float) 0:46 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:46 Constant: 0:46 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:48 Branch: Return with expression 0:48 'vsout' ( temp structure{ temp 4-component vector of float Pos}) 0:27 Function Definition: main( ( temp void) 0:27 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) 0:27 Pos: direct index for structure ( temp 4-component vector of float) 0:27 Function Call: @main( ( temp structure{ temp 4-component vector of float Pos}) 0:27 Constant: 0:27 0 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 46(g_tTex1du4) DescriptorSet 0 Decorate 46(g_tTex1du4) Binding 0 Decorate 56(g_tTex2df4) DescriptorSet 0 Decorate 56(g_tTex2df4) Binding 0 Decorate 67(g_tTex2di4) DescriptorSet 0 Decorate 67(g_tTex2di4) Binding 0 Decorate 78(g_tTex2du4) DescriptorSet 0 Decorate 78(g_tTex2du4) Binding 0 Decorate 90(g_tTex3df4) DescriptorSet 0 Decorate 90(g_tTex3df4) Binding 0 Decorate 101(g_tTex3di4) DescriptorSet 0 Decorate 101(g_tTex3di4) Binding 0 Decorate 111(g_tTex3du4) DescriptorSet 0 Decorate 111(g_tTex3du4) Binding 0 Decorate 124(g_tTexcdf4) DescriptorSet 0 Decorate 124(g_tTexcdf4) Binding 0 Decorate 133(g_tTexcdi4) DescriptorSet 0 Decorate 133(g_tTexcdi4) Binding 0 Decorate 142(g_tTexcdu4) DescriptorSet 0 Decorate 142(g_tTexcdu4) Binding 0 Decorate 158(@entryPointOutput.Pos) BuiltIn Position Decorate 161(g_tTex1df4a) DescriptorSet 0 Decorate 161(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(VS_OUTPUT): TypeStruct 7(fvec4) 9: TypeFunction 8(VS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: 6(float) Constant 1036831949 25: 6(float) Constant 1061158912 27: TypeInt 32 1 28: TypeVector 27(int) 4 29: TypePointer Function 28(ivec4) 31: TypeImage 27(int) 1D sampled format:Unknown 32: TypePointer UniformConstant 31 33(g_tTex1di4): 32(ptr) Variable UniformConstant 36: TypeSampledImage 31 38: 6(float) Constant 1045220557 40: TypeInt 32 0 41: TypeVector 40(int) 4 42: TypePointer Function 41(ivec4) 44: TypeImage 40(int) 1D sampled format:Unknown 45: TypePointer UniformConstant 44 46(g_tTex1du4): 45(ptr) Variable UniformConstant 49: TypeSampledImage 44 51: 6(float) Constant 1050253722 54: TypeImage 6(float) 2D sampled format:Unknown 55: TypePointer UniformConstant 54 56(g_tTex2df4): 55(ptr) Variable UniformConstant 59: TypeSampledImage 54 61: TypeVector 6(float) 2 62: 61(fvec2) ConstantComposite 24 38 65: TypeImage 27(int) 2D sampled format:Unknown 66: TypePointer UniformConstant 65 67(g_tTex2di4): 66(ptr) Variable UniformConstant 70: TypeSampledImage 65 72: 6(float) Constant 1053609165 73: 61(fvec2) ConstantComposite 51 72 76: TypeImage 40(int) 2D sampled format:Unknown 77: TypePointer UniformConstant 76 78(g_tTex2du4): 77(ptr) Variable UniformConstant 81: TypeSampledImage 76 83: 6(float) Constant 1056964608 84: 6(float) Constant 1058642330 85: 61(fvec2) ConstantComposite 83 84 88: TypeImage 6(float) 3D sampled format:Unknown 89: TypePointer UniformConstant 88 90(g_tTex3df4): 89(ptr) Variable UniformConstant 93: TypeSampledImage 88 95: TypeVector 6(float) 3 96: 95(fvec3) ConstantComposite 24 38 51 99: TypeImage 27(int) 3D sampled format:Unknown 100: TypePointer UniformConstant 99 101(g_tTex3di4): 100(ptr) Variable UniformConstant 104: TypeSampledImage 99 106: 95(fvec3) ConstantComposite 72 83 84 109: TypeImage 40(int) 3D sampled format:Unknown 110: TypePointer UniformConstant 109 111(g_tTex3du4): 110(ptr) Variable UniformConstant 114: TypeSampledImage 109 116: 6(float) Constant 1060320051 117: 6(float) Constant 1061997773 118: 6(float) Constant 1063675494 119: 95(fvec3) ConstantComposite 116 117 118 122: TypeImage 6(float) Cube sampled format:Unknown 123: TypePointer UniformConstant 122 124(g_tTexcdf4): 123(ptr) Variable UniformConstant 127: TypeSampledImage 122 131: TypeImage 27(int) Cube sampled format:Unknown 132: TypePointer UniformConstant 131 133(g_tTexcdi4): 132(ptr) Variable UniformConstant 136: TypeSampledImage 131 140: TypeImage 40(int) Cube sampled format:Unknown 141: TypePointer UniformConstant 140 142(g_tTexcdu4): 141(ptr) Variable UniformConstant 145: TypeSampledImage 140 148: TypePointer Function 8(VS_OUTPUT) 150: 27(int) Constant 0 151: 6(float) Constant 0 152: 7(fvec4) ConstantComposite 151 151 151 151 157: TypePointer Output 7(fvec4) 158(@entryPointOutput.Pos): 157(ptr) Variable Output 161(g_tTex1df4a): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 159:8(VS_OUTPUT) FunctionCall 10(@main() 160: 7(fvec4) CompositeExtract 159 0 Store 158(@entryPointOutput.Pos) 160 Return FunctionEnd 10(@main():8(VS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 30(txval11): 29(ptr) Variable Function 43(txval12): 42(ptr) Variable Function 53(txval20): 12(ptr) Variable Function 64(txval21): 29(ptr) Variable Function 75(txval22): 42(ptr) Variable Function 87(txval30): 12(ptr) Variable Function 98(txval31): 29(ptr) Variable Function 108(txval32): 42(ptr) Variable Function 121(txval40): 12(ptr) Variable Function 130(txval41): 29(ptr) Variable Function 139(txval42): 42(ptr) Variable Function 149(vsout): 148(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 26: 7(fvec4) ImageSampleExplicitLod 23 24 Lod 25 Store 13(txval10) 26 34: 31 Load 33(g_tTex1di4) 35: 18 Load 20(g_sSamp) 37: 36 SampledImage 34 35 39: 28(ivec4) ImageSampleExplicitLod 37 38 Lod 25 Store 30(txval11) 39 47: 44 Load 46(g_tTex1du4) 48: 18 Load 20(g_sSamp) 50: 49 SampledImage 47 48 52: 41(ivec4) ImageSampleExplicitLod 50 51 Lod 25 Store 43(txval12) 52 57: 54 Load 56(g_tTex2df4) 58: 18 Load 20(g_sSamp) 60: 59 SampledImage 57 58 63: 7(fvec4) ImageSampleExplicitLod 60 62 Lod 25 Store 53(txval20) 63 68: 65 Load 67(g_tTex2di4) 69: 18 Load 20(g_sSamp) 71: 70 SampledImage 68 69 74: 28(ivec4) ImageSampleExplicitLod 71 73 Lod 25 Store 64(txval21) 74 79: 76 Load 78(g_tTex2du4) 80: 18 Load 20(g_sSamp) 82: 81 SampledImage 79 80 86: 41(ivec4) ImageSampleExplicitLod 82 85 Lod 25 Store 75(txval22) 86 91: 88 Load 90(g_tTex3df4) 92: 18 Load 20(g_sSamp) 94: 93 SampledImage 91 92 97: 7(fvec4) ImageSampleExplicitLod 94 96 Lod 25 Store 87(txval30) 97 102: 99 Load 101(g_tTex3di4) 103: 18 Load 20(g_sSamp) 105: 104 SampledImage 102 103 107: 28(ivec4) ImageSampleExplicitLod 105 106 Lod 25 Store 98(txval31) 107 112: 109 Load 111(g_tTex3du4) 113: 18 Load 20(g_sSamp) 115: 114 SampledImage 112 113 120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 25 Store 108(txval32) 120 125: 122 Load 124(g_tTexcdf4) 126: 18 Load 20(g_sSamp) 128: 127 SampledImage 125 126 129: 7(fvec4) ImageSampleExplicitLod 128 96 Lod 25 Store 121(txval40) 129 134: 131 Load 133(g_tTexcdi4) 135: 18 Load 20(g_sSamp) 137: 136 SampledImage 134 135 138: 28(ivec4) ImageSampleExplicitLod 137 106 Lod 25 Store 130(txval41) 138 143: 140 Load 142(g_tTexcdu4) 144: 18 Load 20(g_sSamp) 146: 145 SampledImage 143 144 147: 41(ivec4) ImageSampleExplicitLod 146 119 Lod 25 Store 139(txval42) 147 153: 12(ptr) AccessChain 149(vsout) 150 Store 153 152 154:8(VS_OUTPUT) Load 149(vsout) ReturnValue 154 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out000066400000000000000000000761141360464450000257070ustar00rootroot00000000000000hlsl.samplelevel.offset.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 textureLodOffset ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 0.750000 0:31 Constant: 0:31 1 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 textureLodOffset ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 0.750000 0:32 Constant: 0:32 1 (const int) 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 textureLodOffset ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 0.750000 0:33 Constant: 0:33 1 (const int) 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 textureLodOffset ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:35 Constant: 0:35 0.750000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 textureLodOffset ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:36 Constant: 0:36 0.750000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 textureLodOffset ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:37 Constant: 0:37 0.750000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 textureLodOffset ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:39 Constant: 0:39 0.750000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 textureLodOffset ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:40 Constant: 0:40 0.750000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 textureLodOffset ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:41 Constant: 0:41 0.750000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child ( temp 4-component vector of float) 0:45 Color: direct index for structure ( temp 4-component vector of float) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:46 move second child to first child ( temp float) 0:46 Depth: direct index for structure ( temp float) 0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Branch: Return with expression 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:28 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child ( temp 4-component vector of float) 0:31 'txval10' ( temp 4-component vector of float) 0:31 textureLodOffset ( temp 4-component vector of float) 0:31 Construct combined texture-sampler ( temp sampler1D) 0:31 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:31 'g_sSamp' (layout( binding=0) uniform sampler) 0:31 Constant: 0:31 0.100000 0:31 Constant: 0:31 0.750000 0:31 Constant: 0:31 1 (const int) 0:32 Sequence 0:32 move second child to first child ( temp 4-component vector of int) 0:32 'txval11' ( temp 4-component vector of int) 0:32 textureLodOffset ( temp 4-component vector of int) 0:32 Construct combined texture-sampler ( temp isampler1D) 0:32 'g_tTex1di4' ( uniform itexture1D) 0:32 'g_sSamp' (layout( binding=0) uniform sampler) 0:32 Constant: 0:32 0.200000 0:32 Constant: 0:32 0.750000 0:32 Constant: 0:32 1 (const int) 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of uint) 0:33 'txval12' ( temp 4-component vector of uint) 0:33 textureLodOffset ( temp 4-component vector of uint) 0:33 Construct combined texture-sampler ( temp usampler1D) 0:33 'g_tTex1du4' ( uniform utexture1D) 0:33 'g_sSamp' (layout( binding=0) uniform sampler) 0:33 Constant: 0:33 0.300000 0:33 Constant: 0:33 0.750000 0:33 Constant: 0:33 1 (const int) 0:35 Sequence 0:35 move second child to first child ( temp 4-component vector of float) 0:35 'txval20' ( temp 4-component vector of float) 0:35 textureLodOffset ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df4' ( uniform texture2D) 0:35 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:35 Constant: 0:35 0.750000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:36 Sequence 0:36 move second child to first child ( temp 4-component vector of int) 0:36 'txval21' ( temp 4-component vector of int) 0:36 textureLodOffset ( temp 4-component vector of int) 0:36 Construct combined texture-sampler ( temp isampler2D) 0:36 'g_tTex2di4' ( uniform itexture2D) 0:36 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:36 Constant: 0:36 0.750000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:37 Sequence 0:37 move second child to first child ( temp 4-component vector of uint) 0:37 'txval22' ( temp 4-component vector of uint) 0:37 textureLodOffset ( temp 4-component vector of uint) 0:37 Construct combined texture-sampler ( temp usampler2D) 0:37 'g_tTex2du4' ( uniform utexture2D) 0:37 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:37 Constant: 0:37 0.750000 0:? Constant: 0:? 1 (const int) 0:? -1 (const int) 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 'txval30' ( temp 4-component vector of float) 0:39 textureLodOffset ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler3D) 0:39 'g_tTex3df4' ( uniform texture3D) 0:39 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:39 Constant: 0:39 0.750000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? 1 (const int) 0:40 Sequence 0:40 move second child to first child ( temp 4-component vector of int) 0:40 'txval31' ( temp 4-component vector of int) 0:40 textureLodOffset ( temp 4-component vector of int) 0:40 Construct combined texture-sampler ( temp isampler3D) 0:40 'g_tTex3di4' ( uniform itexture3D) 0:40 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.500000 0:? 0.600000 0:40 Constant: 0:40 0.750000 0:? Constant: 0:? 1 (const int) 0:? 1 (const int) 0:? 1 (const int) 0:41 Sequence 0:41 move second child to first child ( temp 4-component vector of uint) 0:41 'txval32' ( temp 4-component vector of uint) 0:41 textureLodOffset ( temp 4-component vector of uint) 0:41 Construct combined texture-sampler ( temp usampler3D) 0:41 'g_tTex3du4' ( uniform utexture3D) 0:41 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.700000 0:? 0.800000 0:? 0.900000 0:41 Constant: 0:41 0.750000 0:? Constant: 0:? 1 (const int) 0:? 0 (const int) 0:? -1 (const int) 0:45 move second child to first child ( temp 4-component vector of float) 0:45 Color: direct index for structure ( temp 4-component vector of float) 0:45 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:45 Constant: 0:45 0 (const int) 0:45 Constant: 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:45 1.000000 0:46 move second child to first child ( temp float) 0:46 Depth: direct index for structure ( temp float) 0:46 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:46 Constant: 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 0:48 Branch: Return with expression 0:48 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Definition: main( ( temp void) 0:28 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:28 Color: direct index for structure ( temp 4-component vector of float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 0 (const int) 0:28 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:28 Depth: direct index for structure ( temp float) 0:28 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:28 Constant: 0:28 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1D) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1D) 0:? 'g_tTex1di4' ( uniform itexture1D) 0:? 'g_tTex1du4' ( uniform utexture1D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_tTex2di4' ( uniform itexture2D) 0:? 'g_tTex2du4' ( uniform utexture2D) 0:? 'g_tTex3df4' ( uniform texture3D) 0:? 'g_tTex3di4' ( uniform itexture3D) 0:? 'g_tTex3du4' ( uniform utexture3D) 0:? 'g_tTexcdf4' ( uniform textureCube) 0:? 'g_tTexcdi4' ( uniform itextureCube) 0:? 'g_tTexcdu4' ( uniform utextureCube) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 47(g_tTex1du4) DescriptorSet 0 Decorate 47(g_tTex1du4) Binding 0 Decorate 57(g_tTex2df4) DescriptorSet 0 Decorate 57(g_tTex2df4) Binding 0 Decorate 71(g_tTex2di4) DescriptorSet 0 Decorate 71(g_tTex2di4) Binding 0 Decorate 83(g_tTex2du4) DescriptorSet 0 Decorate 83(g_tTex2du4) Binding 0 Decorate 97(g_tTex3df4) DescriptorSet 0 Decorate 97(g_tTex3df4) Binding 0 Decorate 110(g_tTex3di4) DescriptorSet 0 Decorate 110(g_tTex3di4) Binding 0 Decorate 121(g_tTex3du4) DescriptorSet 0 Decorate 121(g_tTex3du4) Binding 0 Decorate 145(@entryPointOutput.Color) Location 0 Decorate 149(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 152(g_tTex1df4a) DescriptorSet 0 Decorate 152(g_tTex1df4a) Binding 1 Decorate 155(g_tTexcdf4) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out000066400000000000000000000562401360464450000267440ustar00rootroot00000000000000hlsl.samplelevel.offsetarray.dx10.frag Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child ( temp 4-component vector of float) 0:23 'txval10' ( temp 4-component vector of float) 0:23 textureLodOffset ( temp 4-component vector of float) 0:23 Construct combined texture-sampler ( temp sampler1DArray) 0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:23 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:23 Constant: 0:23 0.750000 0:23 Constant: 0:23 0 (const int) 0:24 Sequence 0:24 move second child to first child ( temp 4-component vector of int) 0:24 'txval11' ( temp 4-component vector of int) 0:24 textureLodOffset ( temp 4-component vector of int) 0:24 Construct combined texture-sampler ( temp isampler1DArray) 0:24 'g_tTex1di4' ( uniform itexture1DArray) 0:24 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:24 Constant: 0:24 0.750000 0:24 Constant: 0:24 1 (const int) 0:25 Sequence 0:25 move second child to first child ( temp 4-component vector of uint) 0:25 'txval12' ( temp 4-component vector of uint) 0:25 textureLodOffset ( temp 4-component vector of uint) 0:25 Construct combined texture-sampler ( temp usampler1DArray) 0:25 'g_tTex1du4' ( uniform utexture1DArray) 0:25 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:25 Constant: 0:25 0.750000 0:25 Constant: 0:25 2 (const int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval20' ( temp 4-component vector of float) 0:27 textureLodOffset ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler2DArray) 0:27 'g_tTex2df4' ( uniform texture2DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:27 Constant: 0:27 0.750000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval21' ( temp 4-component vector of int) 0:28 textureLodOffset ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler2DArray) 0:28 'g_tTex2di4' ( uniform itexture2DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:28 Constant: 0:28 0.750000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval22' ( temp 4-component vector of uint) 0:29 textureLodOffset ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler2DArray) 0:29 'g_tTex2du4' ( uniform utexture2DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:29 Constant: 0:29 0.750000 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child ( temp 4-component vector of float) 0:33 Color: direct index for structure ( temp 4-component vector of float) 0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:34 move second child to first child ( temp float) 0:34 Depth: direct index for structure ( temp float) 0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Branch: Return with expression 0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Definition: main( ( temp void) 0:20 Function Parameters: 0:? Sequence 0:20 Sequence 0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:20 Color: direct index for structure ( temp 4-component vector of float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 0 (const int) 0:20 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:20 Depth: direct index for structure ( temp float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left using depth_any 0:? Sequence 0:20 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child ( temp 4-component vector of float) 0:23 'txval10' ( temp 4-component vector of float) 0:23 textureLodOffset ( temp 4-component vector of float) 0:23 Construct combined texture-sampler ( temp sampler1DArray) 0:23 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:23 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:23 Constant: 0:23 0.750000 0:23 Constant: 0:23 0 (const int) 0:24 Sequence 0:24 move second child to first child ( temp 4-component vector of int) 0:24 'txval11' ( temp 4-component vector of int) 0:24 textureLodOffset ( temp 4-component vector of int) 0:24 Construct combined texture-sampler ( temp isampler1DArray) 0:24 'g_tTex1di4' ( uniform itexture1DArray) 0:24 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.300000 0:24 Constant: 0:24 0.750000 0:24 Constant: 0:24 1 (const int) 0:25 Sequence 0:25 move second child to first child ( temp 4-component vector of uint) 0:25 'txval12' ( temp 4-component vector of uint) 0:25 textureLodOffset ( temp 4-component vector of uint) 0:25 Construct combined texture-sampler ( temp usampler1DArray) 0:25 'g_tTex1du4' ( uniform utexture1DArray) 0:25 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:25 Constant: 0:25 0.750000 0:25 Constant: 0:25 2 (const int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'txval20' ( temp 4-component vector of float) 0:27 textureLodOffset ( temp 4-component vector of float) 0:27 Construct combined texture-sampler ( temp sampler2DArray) 0:27 'g_tTex2df4' ( uniform texture2DArray) 0:27 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:? 0.300000 0:27 Constant: 0:27 0.750000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of int) 0:28 'txval21' ( temp 4-component vector of int) 0:28 textureLodOffset ( temp 4-component vector of int) 0:28 Construct combined texture-sampler ( temp isampler2DArray) 0:28 'g_tTex2di4' ( uniform itexture2DArray) 0:28 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.400000 0:? 0.500000 0:28 Constant: 0:28 0.750000 0:? Constant: 0:? 0 (const int) 0:? 0 (const int) 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'txval22' ( temp 4-component vector of uint) 0:29 textureLodOffset ( temp 4-component vector of uint) 0:29 Construct combined texture-sampler ( temp usampler2DArray) 0:29 'g_tTex2du4' ( uniform utexture2DArray) 0:29 'g_sSamp' (layout( binding=0) uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.600000 0:? 0.700000 0:29 Constant: 0:29 0.750000 0:? Constant: 0:? 0 (const int) 0:? 1 (const int) 0:33 move second child to first child ( temp 4-component vector of float) 0:33 Color: direct index for structure ( temp 4-component vector of float) 0:33 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:33 1.000000 0:34 move second child to first child ( temp float) 0:34 Depth: direct index for structure ( temp float) 0:34 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:34 Constant: 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 0:36 Branch: Return with expression 0:36 'psout' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Definition: main( ( temp void) 0:20 Function Parameters: 0:? Sequence 0:20 Sequence 0:20 move second child to first child ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Function Call: @main( ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:20 Color: direct index for structure ( temp 4-component vector of float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 0 (const int) 0:20 move second child to first child ( temp float) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:20 Depth: direct index for structure ( temp float) 0:20 'flattenTemp' ( temp structure{ temp 4-component vector of float Color, temp float Depth}) 0:20 Constant: 0:20 1 (const int) 0:? Linker Objects 0:? 'g_sSamp' (layout( binding=0) uniform sampler) 0:? 'g_tTex1df4a' (layout( binding=1) uniform texture1DArray) 0:? 'g_tTex1df4' (layout( binding=0) uniform texture1DArray) 0:? 'g_tTex1di4' ( uniform itexture1DArray) 0:? 'g_tTex1du4' ( uniform utexture1DArray) 0:? 'g_tTex2df4' ( uniform texture2DArray) 0:? 'g_tTex2di4' ( uniform itexture2DArray) 0:? 'g_tTex2du4' ( uniform utexture2DArray) 0:? '@entryPointOutput.Depth' ( out float FragDepth) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 52(g_tTex1du4) DescriptorSet 0 Decorate 52(g_tTex1du4) Binding 0 Decorate 64(g_tTex2df4) DescriptorSet 0 Decorate 64(g_tTex2df4) Binding 0 Decorate 77(g_tTex2di4) DescriptorSet 0 Decorate 77(g_tTex2di4) Binding 0 Decorate 88(g_tTex2du4) DescriptorSet 0 Decorate 88(g_tTex2du4) Binding 0 Decorate 111(@entryPointOutput.Color) Location 0 Decorate 115(@entryPointOutput.Depth) BuiltIn FragDepth Decorate 118(g_tTex1df4a) DescriptorSet 0 Decorate 118(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 7(fvec4) 14: TypeImage 6(float) 1D array sampled format:Unknown 15: TypePointer UniformConstant 14 16(g_tTex1df4): 15(ptr) Variable UniformConstant 18: TypeSampler 19: TypePointer UniformConstant 18 20(g_sSamp): 19(ptr) Variable UniformConstant 22: TypeSampledImage 14 24: TypeVector 6(float) 2 25: 6(float) Constant 1036831949 26: 6(float) Constant 1045220557 27: 24(fvec2) ConstantComposite 25 26 28: 6(float) Constant 1061158912 29: TypeInt 32 1 30: 29(int) Constant 0 32: TypeVector 29(int) 4 33: TypePointer Function 32(ivec4) 35: TypeImage 29(int) 1D array sampled format:Unknown 36: TypePointer UniformConstant 35 37(g_tTex1di4): 36(ptr) Variable UniformConstant 40: TypeSampledImage 35 42: 6(float) Constant 1050253722 43: 24(fvec2) ConstantComposite 26 42 44: 29(int) Constant 1 46: TypeInt 32 0 47: TypeVector 46(int) 4 48: TypePointer Function 47(ivec4) 50: TypeImage 46(int) 1D array sampled format:Unknown 51: TypePointer UniformConstant 50 52(g_tTex1du4): 51(ptr) Variable UniformConstant 55: TypeSampledImage 50 57: 6(float) Constant 1053609165 58: 24(fvec2) ConstantComposite 42 57 59: 29(int) Constant 2 62: TypeImage 6(float) 2D array sampled format:Unknown 63: TypePointer UniformConstant 62 64(g_tTex2df4): 63(ptr) Variable UniformConstant 67: TypeSampledImage 62 69: TypeVector 6(float) 3 70: 69(fvec3) ConstantComposite 25 26 42 71: TypeVector 29(int) 2 72: 71(ivec2) ConstantComposite 30 30 75: TypeImage 29(int) 2D array sampled format:Unknown 76: TypePointer UniformConstant 75 77(g_tTex2di4): 76(ptr) Variable UniformConstant 80: TypeSampledImage 75 82: 6(float) Constant 1056964608 83: 69(fvec3) ConstantComposite 42 57 82 86: TypeImage 46(int) 2D array sampled format:Unknown 87: TypePointer UniformConstant 86 88(g_tTex2du4): 87(ptr) Variable UniformConstant 91: TypeSampledImage 86 93: 6(float) Constant 1058642330 94: 6(float) Constant 1060320051 95: 69(fvec3) ConstantComposite 82 93 94 96: 71(ivec2) ConstantComposite 30 44 98: TypePointer Function 8(PS_OUTPUT) 100: 6(float) Constant 1065353216 101: 7(fvec4) ConstantComposite 100 100 100 100 103: TypePointer Function 6(float) 110: TypePointer Output 7(fvec4) 111(@entryPointOutput.Color): 110(ptr) Variable Output 114: TypePointer Output 6(float) 115(@entryPointOutput.Depth): 114(ptr) Variable Output 118(g_tTex1df4a): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 108(flattenTemp): 98(ptr) Variable Function 109:8(PS_OUTPUT) FunctionCall 10(@main() Store 108(flattenTemp) 109 112: 12(ptr) AccessChain 108(flattenTemp) 30 113: 7(fvec4) Load 112 Store 111(@entryPointOutput.Color) 113 116: 103(ptr) AccessChain 108(flattenTemp) 44 117: 6(float) Load 116 Store 115(@entryPointOutput.Depth) 117 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(txval10): 12(ptr) Variable Function 34(txval11): 33(ptr) Variable Function 49(txval12): 48(ptr) Variable Function 61(txval20): 12(ptr) Variable Function 74(txval21): 33(ptr) Variable Function 85(txval22): 48(ptr) Variable Function 99(psout): 98(ptr) Variable Function 17: 14 Load 16(g_tTex1df4) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 31: 7(fvec4) ImageSampleExplicitLod 23 27 Lod ConstOffset 28 30 Store 13(txval10) 31 38: 35 Load 37(g_tTex1di4) 39: 18 Load 20(g_sSamp) 41: 40 SampledImage 38 39 45: 32(ivec4) ImageSampleExplicitLod 41 43 Lod ConstOffset 28 44 Store 34(txval11) 45 53: 50 Load 52(g_tTex1du4) 54: 18 Load 20(g_sSamp) 56: 55 SampledImage 53 54 60: 47(ivec4) ImageSampleExplicitLod 56 58 Lod ConstOffset 28 59 Store 49(txval12) 60 65: 62 Load 64(g_tTex2df4) 66: 18 Load 20(g_sSamp) 68: 67 SampledImage 65 66 73: 7(fvec4) ImageSampleExplicitLod 68 70 Lod ConstOffset 28 72 Store 61(txval20) 73 78: 75 Load 77(g_tTex2di4) 79: 18 Load 20(g_sSamp) 81: 80 SampledImage 78 79 84: 32(ivec4) ImageSampleExplicitLod 81 83 Lod ConstOffset 28 72 Store 74(txval21) 84 89: 86 Load 88(g_tTex2du4) 90: 18 Load 20(g_sSamp) 92: 91 SampledImage 89 90 97: 47(ivec4) ImageSampleExplicitLod 92 95 Lod ConstOffset 28 96 Store 85(txval22) 97 102: 12(ptr) AccessChain 99(psout) 30 Store 102 101 104: 103(ptr) AccessChain 99(psout) 44 Store 104 100 105:8(PS_OUTPUT) Load 99(psout) ReturnValue 105 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.scalar-length.frag.out000066400000000000000000000110651360464450000240540ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.scalar2matrix.frag.out000066400000000000000000000427011360464450000241050ustar00rootroot00000000000000hlsl.scalar2matrix.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:2 Function Definition: Fn1(mf44; ( temp void) 0:2 Function Parameters: 0:2 'p' ( in 4X4 matrix of float) 0:5 Function Definition: @main( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence 0:10 Sequence 0:10 move second child to first child ( temp 4X4 matrix of float) 0:10 'mat1' ( temp 4X4 matrix of float) 0:10 Constant: 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:11 Sequence 0:11 move second child to first child ( temp 4X4 matrix of float) 0:11 'mat2' ( temp 4X4 matrix of float) 0:11 Constant: 0:11 3.000000 0:11 3.100000 0:11 3.200000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:12 Sequence 0:12 move second child to first child ( temp 4X4 matrix of float) 0:12 'mat3' ( temp 4X4 matrix of float) 0:12 Constant: 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:16 move second child to first child ( temp 4X4 matrix of float) 0:16 'mat4' ( temp 4X4 matrix of float) 0:16 Constant: 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:17 move second child to first child ( temp 4X4 matrix of float) 0:17 'mat4' ( temp 4X4 matrix of float) 0:? Constant: 0:? 4.000000 0:? 4.100000 0:? 4.200000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:18 move second child to first child ( temp 4X4 matrix of float) 0:18 'mat4' ( temp 4X4 matrix of float) 0:18 Constant: 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:20 matrix scale second child into first child ( temp 4X4 matrix of float) 0:20 'mat4' ( temp 4X4 matrix of float) 0:20 Constant: 0:20 0.750000 0:21 add second child into first child ( temp 4X4 matrix of float) 0:21 'mat4' ( temp 4X4 matrix of float) 0:21 Constant: 0:21 0.750000 0:22 subtract second child into first child ( temp 4X4 matrix of float) 0:22 'mat4' ( temp 4X4 matrix of float) 0:22 Constant: 0:22 0.500000 0:23 divide second child into first child ( temp 4X4 matrix of float) 0:23 'mat4' ( temp 4X4 matrix of float) 0:23 Constant: 0:23 2.000000 0:25 Function Call: Fn1(mf44; ( temp void) 0:25 Constant: 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:27 Branch: Return with expression 0:27 add ( temp 4-component vector of float) 0:27 add ( temp 4-component vector of float) 0:27 Constant: 0:27 0.300000 0:27 0.300000 0:27 0.300000 0:27 0.300000 0:27 direct index ( temp 4-component vector of float) 0:27 'mat1' ( temp 4X4 matrix of float) 0:27 Constant: 0:27 1 (const int) 0:27 direct index ( temp 4-component vector of float) 0:27 'mat4' ( temp 4X4 matrix of float) 0:27 Constant: 0:27 2 (const int) 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:5 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:2 Function Definition: Fn1(mf44; ( temp void) 0:2 Function Parameters: 0:2 'p' ( in 4X4 matrix of float) 0:5 Function Definition: @main( ( temp 4-component vector of float) 0:5 Function Parameters: 0:? Sequence 0:10 Sequence 0:10 move second child to first child ( temp 4X4 matrix of float) 0:10 'mat1' ( temp 4X4 matrix of float) 0:10 Constant: 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:10 0.250000 0:11 Sequence 0:11 move second child to first child ( temp 4X4 matrix of float) 0:11 'mat2' ( temp 4X4 matrix of float) 0:11 Constant: 0:11 3.000000 0:11 3.100000 0:11 3.200000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:12 Sequence 0:12 move second child to first child ( temp 4X4 matrix of float) 0:12 'mat3' ( temp 4X4 matrix of float) 0:12 Constant: 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:12 0.375000 0:16 move second child to first child ( temp 4X4 matrix of float) 0:16 'mat4' ( temp 4X4 matrix of float) 0:16 Constant: 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:16 0.750000 0:17 move second child to first child ( temp 4X4 matrix of float) 0:17 'mat4' ( temp 4X4 matrix of float) 0:? Constant: 0:? 4.000000 0:? 4.100000 0:? 4.200000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:18 move second child to first child ( temp 4X4 matrix of float) 0:18 'mat4' ( temp 4X4 matrix of float) 0:18 Constant: 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:18 0.500000 0:20 matrix scale second child into first child ( temp 4X4 matrix of float) 0:20 'mat4' ( temp 4X4 matrix of float) 0:20 Constant: 0:20 0.750000 0:21 add second child into first child ( temp 4X4 matrix of float) 0:21 'mat4' ( temp 4X4 matrix of float) 0:21 Constant: 0:21 0.750000 0:22 subtract second child into first child ( temp 4X4 matrix of float) 0:22 'mat4' ( temp 4X4 matrix of float) 0:22 Constant: 0:22 0.500000 0:23 divide second child into first child ( temp 4X4 matrix of float) 0:23 'mat4' ( temp 4X4 matrix of float) 0:23 Constant: 0:23 2.000000 0:25 Function Call: Fn1(mf44; ( temp void) 0:25 Constant: 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:25 5.000000 0:27 Branch: Return with expression 0:27 add ( temp 4-component vector of float) 0:27 add ( temp 4-component vector of float) 0:27 Constant: 0:27 0.300000 0:27 0.300000 0:27 0.300000 0:27 0.300000 0:27 direct index ( temp 4-component vector of float) 0:27 'mat1' ( temp 4X4 matrix of float) 0:27 Constant: 0:27 1 (const int) 0:27 direct index ( temp 4-component vector of float) 0:27 'mat4' ( temp 4X4 matrix of float) 0:27 Constant: 0:27 2 (const int) 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:5 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.scalarCast.vert.out000066400000000000000000000642031360464450000234530ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.scope.frag.out000066400000000000000000000166141360464450000224460ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.self_cast.frag.out000066400000000000000000000122621360464450000232730ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.semantic-1.vert.out000066400000000000000000000572261360464450000233430ustar00rootroot00000000000000hlsl.semantic-1.vert Shader version: 500 0:? Sequence 0:16 Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Function Parameters: 0:16 'v' ( in 4-component vector of float) 0:? Sequence 0:18 move second child to first child ( temp 4-component vector of float) 0:18 pos: direct index for structure ( temp 4-component vector of float) 0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:18 Constant: 0:18 0 (const int) 0:18 'v' ( in 4-component vector of float) 0:19 move second child to first child ( temp 2-component vector of float) 0:19 UV0: direct index for structure ( temp 2-component vector of float) 0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:19 Constant: 0:19 1 (const int) 0:? Construct vec2 ( temp 2-component vector of float) 0:19 direct index ( temp float) 0:19 'v' ( in 4-component vector of float) 0:19 Constant: 0:19 0 (const int) 0:19 direct index ( temp float) 0:19 'v' ( in 4-component vector of float) 0:19 Constant: 0:19 0 (const int) 0:20 move second child to first child ( temp 2-component vector of float) 0:20 UV1: direct index for structure ( temp 2-component vector of float) 0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:20 Constant: 0:20 2 (const int) 0:? Construct vec2 ( temp 2-component vector of float) 0:20 direct index ( temp float) 0:20 'v' ( in 4-component vector of float) 0:20 Constant: 0:20 1 (const int) 0:20 direct index ( temp float) 0:20 'v' ( in 4-component vector of float) 0:20 Constant: 0:20 1 (const int) 0:21 move second child to first child ( temp 2-component vector of float) 0:21 UV2: direct index for structure ( temp 2-component vector of float) 0:21 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:21 Constant: 0:21 3 (const int) 0:? Construct vec2 ( temp 2-component vector of float) 0:21 direct index ( temp float) 0:21 'v' ( in 4-component vector of float) 0:21 Constant: 0:21 2 (const int) 0:21 direct index ( temp float) 0:21 'v' ( in 4-component vector of float) 0:21 Constant: 0:21 2 (const int) 0:22 move second child to first child ( temp 2-component vector of float) 0:22 UV3: direct index for structure ( temp 2-component vector of float) 0:22 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:22 Constant: 0:22 4 (const int) 0:? Construct vec2 ( temp 2-component vector of float) 0:22 direct index ( temp float) 0:22 'v' ( in 4-component vector of float) 0:22 Constant: 0:22 3 (const int) 0:22 direct index ( temp float) 0:22 'v' ( in 4-component vector of float) 0:22 Constant: 0:22 3 (const int) 0:23 Branch: Return with expression 0:23 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 move second child to first child ( temp 4-component vector of float) 0:? 'v' ( temp 4-component vector of float) 0:? 'v' (layout( location=0) in 4-component vector of float) 0:16 Sequence 0:16 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:? 'v' ( temp 4-component vector of float) 0:16 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:16 pos: direct index for structure ( temp 4-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Constant: 0:16 0 (const int) 0:16 move second child to first child ( temp 2-component vector of float) 0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) 0:16 UV0: direct index for structure ( temp 2-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Constant: 0:16 1 (const int) 0:16 move second child to first child ( temp 2-component vector of float) 0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) 0:16 UV1: direct index for structure ( temp 2-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Constant: 0:16 2 (const int) 0:16 move second child to first child ( temp 2-component vector of float) 0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) 0:16 UV2: direct index for structure ( temp 2-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Constant: 0:16 3 (const int) 0:16 move second child to first child ( temp 2-component vector of float) 0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) 0:16 UV3: direct index for structure ( temp 2-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Constant: 0:16 4 (const int) 0:? Linker Objects 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) 0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) 0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) 0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) 0:? 'v' (layout( location=0) in 4-component vector of float) Linked vertex stage: Shader version: 500 0:? Sequence 0:16 Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Function Parameters: 0:16 'v' ( in 4-component vector of float) 0:? Sequence 0:18 move second child to first child ( temp 4-component vector of float) 0:18 pos: direct index for structure ( temp 4-component vector of float) 0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:18 Constant: 0:18 0 (const int) 0:18 'v' ( in 4-component vector of float) 0:19 move second child to first child ( temp 2-component vector of float) 0:19 UV0: direct index for structure ( temp 2-component vector of float) 0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:19 Constant: 0:19 1 (const int) 0:? Construct vec2 ( temp 2-component vector of float) 0:19 direct index ( temp float) 0:19 'v' ( in 4-component vector of float) 0:19 Constant: 0:19 0 (const int) 0:19 direct index ( temp float) 0:19 'v' ( in 4-component vector of float) 0:19 Constant: 0:19 0 (const int) 0:20 move second child to first child ( temp 2-component vector of float) 0:20 UV1: direct index for structure ( temp 2-component vector of float) 0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:20 Constant: 0:20 2 (const int) 0:? Construct vec2 ( temp 2-component vector of float) 0:20 direct index ( temp float) 0:20 'v' ( in 4-component vector of float) 0:20 Constant: 0:20 1 (const int) 0:20 direct index ( temp float) 0:20 'v' ( in 4-component vector of float) 0:20 Constant: 0:20 1 (const int) 0:21 move second child to first child ( temp 2-component vector of float) 0:21 UV2: direct index for structure ( temp 2-component vector of float) 0:21 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:21 Constant: 0:21 3 (const int) 0:? Construct vec2 ( temp 2-component vector of float) 0:21 direct index ( temp float) 0:21 'v' ( in 4-component vector of float) 0:21 Constant: 0:21 2 (const int) 0:21 direct index ( temp float) 0:21 'v' ( in 4-component vector of float) 0:21 Constant: 0:21 2 (const int) 0:22 move second child to first child ( temp 2-component vector of float) 0:22 UV3: direct index for structure ( temp 2-component vector of float) 0:22 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:22 Constant: 0:22 4 (const int) 0:? Construct vec2 ( temp 2-component vector of float) 0:22 direct index ( temp float) 0:22 'v' ( in 4-component vector of float) 0:22 Constant: 0:22 3 (const int) 0:22 direct index ( temp float) 0:22 'v' ( in 4-component vector of float) 0:22 Constant: 0:22 3 (const int) 0:23 Branch: Return with expression 0:23 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 move second child to first child ( temp 4-component vector of float) 0:? 'v' ( temp 4-component vector of float) 0:? 'v' (layout( location=0) in 4-component vector of float) 0:16 Sequence 0:16 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:? 'v' ( temp 4-component vector of float) 0:16 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:16 pos: direct index for structure ( temp 4-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Constant: 0:16 0 (const int) 0:16 move second child to first child ( temp 2-component vector of float) 0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) 0:16 UV0: direct index for structure ( temp 2-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Constant: 0:16 1 (const int) 0:16 move second child to first child ( temp 2-component vector of float) 0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) 0:16 UV1: direct index for structure ( temp 2-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Constant: 0:16 2 (const int) 0:16 move second child to first child ( temp 2-component vector of float) 0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) 0:16 UV2: direct index for structure ( temp 2-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Constant: 0:16 3 (const int) 0:16 move second child to first child ( temp 2-component vector of float) 0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) 0:16 UV3: direct index for structure ( temp 2-component vector of float) 0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3}) 0:16 Constant: 0:16 4 (const int) 0:? Linker Objects 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float) 0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float) 0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float) 0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float) 0:? 'v' (layout( location=0) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.semantic.geom.out000066400000000000000000000352221360464450000231440ustar00rootroot00000000000000hlsl.semantic.geom Shader version: 500 invocations = -1 max_vertices = 4 input primitive = triangles output primitive = line_strip 0:? Sequence 0:13 Function Definition: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) 0:13 Function Parameters: 0:13 'VertexID' ( in 3-element array of uint) 0:13 'OutputStream' ( out structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:? Sequence 0:15 Sequence 0:15 Sequence 0:15 move second child to first child ( temp float) 0:? 'OutputStream.clip0' ( out float Position) 0:15 clip0: direct index for structure ( temp float) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 0 (const int) 0:? Sequence 0:15 move second child to first child ( temp float) 0:15 direct index ( out float ClipDistance) 0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) 0:15 Constant: 0:15 0 (const int) 0:15 clip0: direct index for structure ( temp float) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 1 (const int) 0:? Sequence 0:15 move second child to first child ( temp float) 0:15 direct index ( out float CullDistance) 0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) 0:15 Constant: 0:15 0 (const int) 0:15 cull0: direct index for structure ( temp float) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 2 (const int) 0:15 move second child to first child ( temp uint) 0:? 'OutputStream.vpai' ( out uint ViewportIndex) 0:15 vpai: direct index for structure ( temp uint) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 3 (const int) 0:15 move second child to first child ( temp uint) 0:? 'OutputStream.rtai' ( out uint Layer) 0:15 rtai: direct index for structure ( temp uint) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 4 (const int) 0:15 move second child to first child ( temp int) 0:? 'OutputStream.ii' (layout( location=0) out int) 0:15 ii: direct index for structure ( temp int) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 5 (const int) 0:15 EmitVertex ( temp void) 0:13 Function Definition: main( ( temp void) 0:13 Function Parameters: 0:? Sequence 0:13 move second child to first child ( temp 3-element array of uint) 0:? 'VertexID' ( temp 3-element array of uint) 0:? 'VertexID' (layout( location=0) in 3-element array of uint) 0:13 Function Call: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) 0:? 'VertexID' ( temp 3-element array of uint) 0:? 'OutputStream' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:? Linker Objects 0:? 'VertexID' (layout( location=0) in 3-element array of uint) 0:? 'OutputStream.clip0' ( out float Position) 0:? 'OutputStream.vpai' ( out uint ViewportIndex) 0:? 'OutputStream.rtai' ( out uint Layer) 0:? 'OutputStream.ii' (layout( location=0) out int) 0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) 0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) Linked geometry stage: Shader version: 500 invocations = 1 max_vertices = 4 input primitive = triangles output primitive = line_strip 0:? Sequence 0:13 Function Definition: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) 0:13 Function Parameters: 0:13 'VertexID' ( in 3-element array of uint) 0:13 'OutputStream' ( out structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:? Sequence 0:15 Sequence 0:15 Sequence 0:15 move second child to first child ( temp float) 0:? 'OutputStream.clip0' ( out float Position) 0:15 clip0: direct index for structure ( temp float) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 0 (const int) 0:? Sequence 0:15 move second child to first child ( temp float) 0:15 direct index ( out float ClipDistance) 0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) 0:15 Constant: 0:15 0 (const int) 0:15 clip0: direct index for structure ( temp float) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 1 (const int) 0:? Sequence 0:15 move second child to first child ( temp float) 0:15 direct index ( out float CullDistance) 0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) 0:15 Constant: 0:15 0 (const int) 0:15 cull0: direct index for structure ( temp float) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 2 (const int) 0:15 move second child to first child ( temp uint) 0:? 'OutputStream.vpai' ( out uint ViewportIndex) 0:15 vpai: direct index for structure ( temp uint) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 3 (const int) 0:15 move second child to first child ( temp uint) 0:? 'OutputStream.rtai' ( out uint Layer) 0:15 rtai: direct index for structure ( temp uint) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 4 (const int) 0:15 move second child to first child ( temp int) 0:? 'OutputStream.ii' (layout( location=0) out int) 0:15 ii: direct index for structure ( temp int) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 Constant: 0:15 5 (const int) 0:15 EmitVertex ( temp void) 0:13 Function Definition: main( ( temp void) 0:13 Function Parameters: 0:? Sequence 0:13 move second child to first child ( temp 3-element array of uint) 0:? 'VertexID' ( temp 3-element array of uint) 0:? 'VertexID' (layout( location=0) in 3-element array of uint) 0:13 Function Call: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void) 0:? 'VertexID' ( temp 3-element array of uint) 0:? 'OutputStream' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:? Linker Objects 0:? 'VertexID' (layout( location=0) in 3-element array of uint) 0:? 'OutputStream.clip0' ( out float Position) 0:? 'OutputStream.vpai' ( out uint ViewportIndex) 0:? 'OutputStream.rtai' ( out uint Layer) 0:? 'OutputStream.ii' (layout( location=0) out int) 0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) 0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 65 Capability Geometry Capability ClipDistance Capability CullDistance Capability MultiViewport 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Geometry 4 "main" 20 29 34 40 45 50 57 ExecutionMode 4 Triangles ExecutionMode 4 Invocations 1 ExecutionMode 4 OutputLineStrip ExecutionMode 4 OutputVertices 4 Source HLSL 500 Name 4 "main" Name 12 "S" MemberName 12(S) 0 "clip0" MemberName 12(S) 1 "clip0" MemberName 12(S) 2 "cull0" MemberName 12(S) 3 "vpai" MemberName 12(S) 4 "rtai" MemberName 12(S) 5 "ii" Name 17 "@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;" Name 15 "VertexID" Name 16 "OutputStream" Name 20 "OutputStream.clip0" Name 21 "s" Name 29 "OutputStream.clip0" Name 34 "OutputStream.cull0" Name 40 "OutputStream.vpai" Name 45 "OutputStream.rtai" Name 50 "OutputStream.ii" Name 55 "VertexID" Name 57 "VertexID" Name 59 "OutputStream" Name 60 "param" Name 62 "param" Decorate 20(OutputStream.clip0) BuiltIn Position Decorate 29(OutputStream.clip0) BuiltIn ClipDistance Decorate 34(OutputStream.cull0) BuiltIn CullDistance Decorate 40(OutputStream.vpai) BuiltIn ViewportIndex Decorate 45(OutputStream.rtai) BuiltIn Layer Decorate 50(OutputStream.ii) Location 0 Decorate 57(VertexID) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: 6(int) Constant 3 8: TypeArray 6(int) 7 9: TypePointer Function 8 10: TypeFloat 32 11: TypeInt 32 1 12(S): TypeStruct 10(float) 10(float) 10(float) 6(int) 6(int) 11(int) 13: TypePointer Function 12(S) 14: TypeFunction 2 9(ptr) 13(ptr) 19: TypePointer Output 10(float) 20(OutputStream.clip0): 19(ptr) Variable Output 22: 11(int) Constant 0 23: TypePointer Function 10(float) 26: 6(int) Constant 1 27: TypeArray 10(float) 26 28: TypePointer Output 27 29(OutputStream.clip0): 28(ptr) Variable Output 30: 11(int) Constant 1 34(OutputStream.cull0): 28(ptr) Variable Output 35: 11(int) Constant 2 39: TypePointer Output 6(int) 40(OutputStream.vpai): 39(ptr) Variable Output 41: 11(int) Constant 3 42: TypePointer Function 6(int) 45(OutputStream.rtai): 39(ptr) Variable Output 46: 11(int) Constant 4 49: TypePointer Output 11(int) 50(OutputStream.ii): 49(ptr) Variable Output 51: 11(int) Constant 5 52: TypePointer Function 11(int) 56: TypePointer Input 8 57(VertexID): 56(ptr) Variable Input 4(main): 2 Function None 3 5: Label 55(VertexID): 9(ptr) Variable Function 59(OutputStream): 13(ptr) Variable Function 60(param): 9(ptr) Variable Function 62(param): 13(ptr) Variable Function 58: 8 Load 57(VertexID) Store 55(VertexID) 58 61: 8 Load 55(VertexID) Store 60(param) 61 63: 2 FunctionCall 17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;) 60(param) 62(param) 64: 12(S) Load 62(param) Store 59(OutputStream) 64 Return FunctionEnd 17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;): 2 Function None 14 15(VertexID): 9(ptr) FunctionParameter 16(OutputStream): 13(ptr) FunctionParameter 18: Label 21(s): 13(ptr) Variable Function 24: 23(ptr) AccessChain 21(s) 22 25: 10(float) Load 24 Store 20(OutputStream.clip0) 25 31: 23(ptr) AccessChain 21(s) 30 32: 10(float) Load 31 33: 19(ptr) AccessChain 29(OutputStream.clip0) 22 Store 33 32 36: 23(ptr) AccessChain 21(s) 35 37: 10(float) Load 36 38: 19(ptr) AccessChain 34(OutputStream.cull0) 22 Store 38 37 43: 42(ptr) AccessChain 21(s) 41 44: 6(int) Load 43 Store 40(OutputStream.vpai) 44 47: 42(ptr) AccessChain 21(s) 46 48: 6(int) Load 47 Store 45(OutputStream.rtai) 48 53: 52(ptr) AccessChain 21(s) 51 54: 11(int) Load 53 Store 50(OutputStream.ii) 54 EmitVertex Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.semantic.vert.out000066400000000000000000000442721360464450000232020ustar00rootroot00000000000000hlsl.semantic.vert Shader version: 500 0:? Sequence 0:10 Function Definition: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Function Parameters: 0:10 'ins' ( in structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:? Sequence 0:12 Branch: Return with expression 0:12 's' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Function Definition: main( ( temp void) 0:10 Function Parameters: 0:? Sequence 0:10 Sequence 0:10 move second child to first child ( temp float) 0:10 clip0: direct index for structure ( temp float) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 0 (const int) 0:? 'ins.clip0' (layout( location=0) in float) 0:10 move second child to first child ( temp float) 0:10 clip1: direct index for structure ( temp float) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 1 (const int) 0:? 'ins.clip1' (layout( location=1) in float) 0:10 move second child to first child ( temp float) 0:10 cull0: direct index for structure ( temp float) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 2 (const int) 0:? 'ins.cull0' (layout( location=0) in float) 0:10 move second child to first child ( temp float) 0:10 cull1: direct index for structure ( temp float) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 3 (const int) 0:? 'ins.cull1' (layout( location=1) in float) 0:10 move second child to first child ( temp int) 0:10 ii: direct index for structure ( temp int) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 4 (const int) 0:? 'ins.ii' ( in int InstanceIndex) 0:10 Sequence 0:10 move second child to first child ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Function Call: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:? Sequence 0:10 move second child to first child ( temp float) 0:10 direct index ( out float ClipDistance) 0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) 0:10 Constant: 0:10 0 (const int) 0:10 clip0: direct index for structure ( temp float) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 0 (const int) 0:? Sequence 0:10 move second child to first child ( temp float) 0:10 direct index ( out float ClipDistance) 0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) 0:10 Constant: 0:10 1 (const int) 0:10 clip1: direct index for structure ( temp float) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 1 (const int) 0:? Sequence 0:10 move second child to first child ( temp float) 0:10 direct index ( out float CullDistance) 0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) 0:10 Constant: 0:10 0 (const int) 0:10 cull0: direct index for structure ( temp float) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 2 (const int) 0:? Sequence 0:10 move second child to first child ( temp float) 0:10 direct index ( out float CullDistance) 0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) 0:10 Constant: 0:10 1 (const int) 0:10 cull1: direct index for structure ( temp float) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 3 (const int) 0:10 move second child to first child ( temp int) 0:? '@entryPointOutput.ii' (layout( location=0) out int) 0:10 ii: direct index for structure ( temp int) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 4 (const int) 0:? Linker Objects 0:? '@entryPointOutput.ii' (layout( location=0) out int) 0:? 'ins.ii' ( in int InstanceIndex) 0:? 'ins.clip0' (layout( location=0) in float) 0:? 'ins.clip1' (layout( location=1) in float) 0:? 'ins.cull0' (layout( location=0) in float) 0:? 'ins.cull1' (layout( location=1) in float) 0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) 0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) Linked vertex stage: Shader version: 500 0:? Sequence 0:10 Function Definition: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Function Parameters: 0:10 'ins' ( in structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:? Sequence 0:12 Branch: Return with expression 0:12 's' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Function Definition: main( ( temp void) 0:10 Function Parameters: 0:? Sequence 0:10 Sequence 0:10 move second child to first child ( temp float) 0:10 clip0: direct index for structure ( temp float) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 0 (const int) 0:? 'ins.clip0' (layout( location=0) in float) 0:10 move second child to first child ( temp float) 0:10 clip1: direct index for structure ( temp float) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 1 (const int) 0:? 'ins.clip1' (layout( location=1) in float) 0:10 move second child to first child ( temp float) 0:10 cull0: direct index for structure ( temp float) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 2 (const int) 0:? 'ins.cull0' (layout( location=0) in float) 0:10 move second child to first child ( temp float) 0:10 cull1: direct index for structure ( temp float) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 3 (const int) 0:? 'ins.cull1' (layout( location=1) in float) 0:10 move second child to first child ( temp int) 0:10 ii: direct index for structure ( temp int) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 4 (const int) 0:? 'ins.ii' ( in int InstanceIndex) 0:10 Sequence 0:10 move second child to first child ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Function Call: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:? Sequence 0:10 move second child to first child ( temp float) 0:10 direct index ( out float ClipDistance) 0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) 0:10 Constant: 0:10 0 (const int) 0:10 clip0: direct index for structure ( temp float) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 0 (const int) 0:? Sequence 0:10 move second child to first child ( temp float) 0:10 direct index ( out float ClipDistance) 0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) 0:10 Constant: 0:10 1 (const int) 0:10 clip1: direct index for structure ( temp float) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 1 (const int) 0:? Sequence 0:10 move second child to first child ( temp float) 0:10 direct index ( out float CullDistance) 0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) 0:10 Constant: 0:10 0 (const int) 0:10 cull0: direct index for structure ( temp float) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 2 (const int) 0:? Sequence 0:10 move second child to first child ( temp float) 0:10 direct index ( out float CullDistance) 0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) 0:10 Constant: 0:10 1 (const int) 0:10 cull1: direct index for structure ( temp float) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 3 (const int) 0:10 move second child to first child ( temp int) 0:? '@entryPointOutput.ii' (layout( location=0) out int) 0:10 ii: direct index for structure ( temp int) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 Constant: 0:10 4 (const int) 0:? Linker Objects 0:? '@entryPointOutput.ii' (layout( location=0) out int) 0:? 'ins.ii' ( in int InstanceIndex) 0:? 'ins.clip0' (layout( location=0) in float) 0:? 'ins.clip1' (layout( location=1) in float) 0:? 'ins.cull0' (layout( location=0) in float) 0:? 'ins.cull1' (layout( location=1) in float) 0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance) 0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.semicolons.frag.out000066400000000000000000000132371360464450000235060ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.shapeConv.frag.out000066400000000000000000000527071360464450000232660ustar00rootroot00000000000000hlsl.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): 80008 // Id's are bound by 127 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 13 "PixelShaderFunction(vf4;f1;" Name 11 "input" Name 12 "f" Name 15 "v" Name 24 "u" Name 31 "w" Name 33 "V" Name 34 "MyVal" Name 37 "foo" Name 70 "f1" Name 83 "ui" Name 88 "ui3" Name 103 "mixed" Name 115 "sf" Name 118 "sf1" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypePointer Function 6(float) 10: TypeFunction 7(fvec4) 8(ptr) 9(ptr) 16: 6(float) Constant 1065353216 17: 7(fvec4) ConstantComposite 16 16 16 16 18: 6(float) Constant 1073741824 19: 7(fvec4) ConstantComposite 18 18 18 18 22: TypeVector 6(float) 3 23: TypePointer Function 22(fvec3) 25: 22(fvec3) ConstantComposite 16 16 16 26: 22(fvec3) ConstantComposite 18 18 18 29: TypeVector 6(float) 2 30: TypePointer Function 29(fvec2) 32: 29(fvec2) ConstantComposite 18 18 39: 6(float) Constant 1082130432 40: 22(fvec3) ConstantComposite 39 39 39 41: TypeBool 42: TypeVector 41(bool) 3 45: 6(float) Constant 1084227584 46: 22(fvec3) ConstantComposite 45 45 45 48: 6(float) Constant 1086324736 49: 22(fvec3) ConstantComposite 48 48 48 52: 6(float) Constant 1088421888 53: 22(fvec3) ConstantComposite 52 52 52 56: TypeInt 32 0 57: 56(int) Constant 0 62: TypeVector 41(bool) 4 82: TypePointer Function 56(int) 85: TypeVector 56(int) 3 87: TypePointer Function 85(ivec3) 122: 6(float) Constant 1077936128 123: 7(fvec4) ConstantComposite 122 122 122 122 4(main): 2 Function None 3 5: Label Return FunctionEnd 13(PixelShaderFunction(vf4;f1;): 7(fvec4) Function None 10 11(input): 8(ptr) FunctionParameter 12(f): 9(ptr) FunctionParameter 14: Label 15(v): 8(ptr) Variable Function 24(u): 23(ptr) Variable Function 31(w): 30(ptr) Variable Function 33(V): 9(ptr) Variable Function 34(MyVal): 23(ptr) Variable Function 37(foo): 23(ptr) Variable Function 70(f1): 9(ptr) Variable Function 83(ui): 82(ptr) Variable Function 88(ui3): 87(ptr) Variable Function 103(mixed): 23(ptr) Variable Function 115(sf): 9(ptr) Variable Function 118(sf1): 9(ptr) Variable Function Store 15(v) 17 Store 15(v) 19 20: 6(float) Load 12(f) 21: 7(fvec4) CompositeConstruct 20 20 20 20 Store 15(v) 21 Store 24(u) 25 Store 24(u) 26 27: 6(float) Load 12(f) 28: 22(fvec3) CompositeConstruct 27 27 27 Store 24(u) 28 Store 31(w) 32 Store 33(V) 16 35: 6(float) Load 33(V) 36: 22(fvec3) CompositeConstruct 35 35 35 Store 34(MyVal) 36 38: 22(fvec3) Load 37(foo) 43: 42(bvec3) FOrdGreaterThan 38 40 44: 22(fvec3) Load 37(foo) 47: 42(bvec3) FOrdGreaterThanEqual 44 46 50: 22(fvec3) Load 37(foo) 51: 42(bvec3) FOrdLessThan 49 50 54: 22(fvec3) Load 37(foo) 55: 42(bvec3) FOrdLessThanEqual 53 54 58: 9(ptr) AccessChain 15(v) 57 59: 6(float) Load 58 60: 7(fvec4) CompositeConstruct 59 59 59 59 61: 7(fvec4) Load 15(v) 63: 62(bvec4) FOrdEqual 60 61 64: 41(bool) All 63 65: 6(float) Load 12(f) 66: 7(fvec4) CompositeConstruct 65 65 65 65 67: 7(fvec4) Load 15(v) 68: 62(bvec4) FOrdNotEqual 66 67 69: 41(bool) Any 68 71: 6(float) Load 70(f1) 72: 7(fvec4) CompositeConstruct 71 71 71 71 73: 7(fvec4) Load 15(v) 74: 62(bvec4) FOrdEqual 72 73 75: 7(fvec4) Load 15(v) 76: 6(float) Load 70(f1) 77: 7(fvec4) CompositeConstruct 76 76 76 76 78: 62(bvec4) FOrdLessThan 75 77 79: 6(float) Load 70(f1) 80: 6(float) Load 70(f1) 81: 22(fvec3) CompositeConstruct 80 80 80 84: 56(int) Load 83(ui) 86: 85(ivec3) CompositeConstruct 84 84 84 89: 85(ivec3) Load 88(ui3) 90: 85(ivec3) ShiftRightLogical 86 89 91: 85(ivec3) Load 88(ui3) 92: 56(int) Load 83(ui) 93: 85(ivec3) CompositeConstruct 92 92 92 94: 85(ivec3) ShiftRightLogical 91 93 95: 6(float) Load 70(f1) 96: 7(fvec4) Load 15(v) 97: 7(fvec4) CompositeConstruct 95 95 95 95 98: 7(fvec4) FMul 96 97 Store 15(v) 98 99: 7(fvec4) Load 15(v) 100: 6(float) CompositeExtract 99 0 101: 6(float) Load 70(f1) 102: 6(float) FMul 101 100 Store 70(f1) 102 104: 22(fvec3) Load 24(u) 105: 7(fvec4) Load 15(v) 106: 6(float) CompositeExtract 105 0 107: 6(float) CompositeExtract 105 1 108: 6(float) CompositeExtract 105 2 109: 22(fvec3) CompositeConstruct 106 107 108 110: 22(fvec3) FMul 104 109 Store 103(mixed) 110 111: 22(fvec3) Load 24(u) 112: 6(float) CompositeExtract 111 0 Store 12(f) 112 113: 22(fvec3) Load 24(u) 114: 6(float) CompositeExtract 113 0 Store 70(f1) 114 116: 7(fvec4) Load 15(v) 117: 6(float) CompositeExtract 116 0 Store 115(sf) 117 119: 7(fvec4) Load 15(v) 120: 6(float) CompositeExtract 119 0 Store 118(sf1) 120 121: 7(fvec4) Load 11(input) 124: 7(fvec4) FMul 121 123 ReturnValue 124 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.shapeConvRet.frag.out000066400000000000000000000122151360464450000237270ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.shift.per-set.frag.out000066400000000000000000000340621360464450000240250ustar00rootroot00000000000000hlsl.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 0, index -1, binding 21, stages 16, numMembers 1 t5: offset -1, type ffffffff, size 0, index -1, binding 22, stages 16, numMembers 1 u5: offset -1, type ffffffff, size 0, index -1, binding 44, stages 16, numMembers 1 u6: offset -1, type ffffffff, size 0, index -1, binding 34, stages 16, numMembers 1 cb: offset -1, type ffffffff, size 4, index -1, binding 51, stages 16, numMembers 1 tb: offset -1, type ffffffff, size 4, index -1, 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 glslang-8.13.3559/Test/baseResults/hlsl.sin.frag.out000066400000000000000000000113261360464450000221210ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.snorm.uav.comp.out000066400000000000000000000245551360464450000233070ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 34(ResultOutS) DescriptorSet 0 Decorate 34(ResultOutS) Binding 1 Decorate 39(ResultInU) DescriptorSet 0 Decorate 39(ResultInU) Binding 0 Decorate 43(ResultOutU) DescriptorSet 0 Decorate 43(ResultOutU) Binding 0 Decorate 49(tid) BuiltIn GlobalInvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypeVector 6(int) 3 8: TypePointer Function 7(ivec3) 9: TypeFunction 2 8(ptr) 13: TypeFloat 32 14: TypeVector 13(float) 4 15: TypePointer Function 14(fvec4) 17: TypeImage 13(float) 3D sampled format:Unknown 18: TypePointer UniformConstant 17 19(ResultInS): 18(ptr) Variable UniformConstant 22: TypeInt 32 1 23: 22(int) Constant 0 25($Global): TypeStruct 14(fvec4) 26: TypePointer Uniform 25($Global) 27: 26(ptr) Variable Uniform 28: TypePointer Uniform 14(fvec4) 32: TypeImage 13(float) 3D nonsampled format:Rgba32f 33: TypePointer UniformConstant 32 34(ResultOutS): 33(ptr) Variable UniformConstant 39(ResultInU): 18(ptr) Variable UniformConstant 43(ResultOutU): 33(ptr) Variable UniformConstant 48: TypePointer Input 7(ivec3) 49(tid): 48(ptr) Variable Input 4(main): 2 Function None 3 5: Label 47(tid): 8(ptr) Variable Function 51(param): 8(ptr) Variable Function 50: 7(ivec3) Load 49(tid) Store 47(tid) 50 52: 7(ivec3) Load 47(tid) Store 51(param) 52 53: 2 FunctionCall 11(@main(vu3;) 51(param) Return FunctionEnd 11(@main(vu3;): 2 Function None 9 10(tid): 8(ptr) FunctionParameter 12: Label 16(storeTemp): 15(ptr) Variable Function 38(storeTemp): 15(ptr) Variable Function 20: 17 Load 19(ResultInS) 21: 7(ivec3) Load 10(tid) 24: 14(fvec4) ImageFetch 20 21 Lod 23 29: 28(ptr) AccessChain 27 23 30: 14(fvec4) Load 29 31: 14(fvec4) FAdd 24 30 Store 16(storeTemp) 31 35: 32 Load 34(ResultOutS) 36: 7(ivec3) Load 10(tid) 37: 14(fvec4) Load 16(storeTemp) ImageWrite 35 36 37 40: 17 Load 39(ResultInU) 41: 7(ivec3) Load 10(tid) 42: 14(fvec4) ImageFetch 40 41 Lod 23 Store 38(storeTemp) 42 44: 32 Load 43(ResultOutU) 45: 7(ivec3) Load 10(tid) 46: 14(fvec4) Load 38(storeTemp) ImageWrite 44 45 46 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.specConstant.frag.out000077500000000000000000000234061360464450000240010ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.staticFuncInit.frag.out000066400000000000000000000206511360464450000242600ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.staticMemberFunction.frag.out000066400000000000000000000205661360464450000254630ustar00rootroot00000000000000hlsl.staticMemberFunction.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: Test::staticMemFun(vf4; ( global 4-component vector of float) 0:5 Function Parameters: 0:5 'a' ( in 4-component vector of float) 0:? Sequence 0:6 Branch: Return with expression 0:6 vector-scale ( temp 4-component vector of float) 0:6 Constant: 0:6 2.000000 0:6 'a' ( in 4-component vector of float) 0:9 Function Definition: Test::staticMemFun(i1; ( global int) 0:9 Function Parameters: 0:9 'a' ( in int) 0:? Sequence 0:10 Branch: Return with expression 0:10 add ( temp int) 0:10 Constant: 0:10 2 (const int) 0:10 'a' ( in int) 0:16 Function Definition: @main( ( temp 4-component vector of float) 0:16 Function Parameters: 0:? Sequence 0:18 Sequence 0:18 move second child to first child ( temp 4-component vector of float) 0:18 'f4' ( temp 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:19 add second child into first child ( temp 4-component vector of float) 0:19 'f4' ( temp 4-component vector of float) 0:19 Function Call: Test::staticMemFun(vf4; ( global 4-component vector of float) 0:? Constant: 0:? 5.000000 0:? 5.000000 0:? 5.000000 0:? 5.000000 0:20 add second child into first child ( temp 4-component vector of float) 0:20 'f4' ( temp 4-component vector of float) 0:20 Convert int to float ( temp float) 0:20 Function Call: Test::staticMemFun(i1; ( global int) 0:20 Constant: 0:20 7 (const int) 0:21 Branch: Return with expression 0:21 'f4' ( temp 4-component vector of float) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:16 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: Test::staticMemFun(vf4; ( global 4-component vector of float) 0:5 Function Parameters: 0:5 'a' ( in 4-component vector of float) 0:? Sequence 0:6 Branch: Return with expression 0:6 vector-scale ( temp 4-component vector of float) 0:6 Constant: 0:6 2.000000 0:6 'a' ( in 4-component vector of float) 0:9 Function Definition: Test::staticMemFun(i1; ( global int) 0:9 Function Parameters: 0:9 'a' ( in int) 0:? Sequence 0:10 Branch: Return with expression 0:10 add ( temp int) 0:10 Constant: 0:10 2 (const int) 0:10 'a' ( in int) 0:16 Function Definition: @main( ( temp 4-component vector of float) 0:16 Function Parameters: 0:? Sequence 0:18 Sequence 0:18 move second child to first child ( temp 4-component vector of float) 0:18 'f4' ( temp 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:? 1.000000 0:19 add second child into first child ( temp 4-component vector of float) 0:19 'f4' ( temp 4-component vector of float) 0:19 Function Call: Test::staticMemFun(vf4; ( global 4-component vector of float) 0:? Constant: 0:? 5.000000 0:? 5.000000 0:? 5.000000 0:? 5.000000 0:20 add second child into first child ( temp 4-component vector of float) 0:20 'f4' ( temp 4-component vector of float) 0:20 Convert int to float ( temp float) 0:20 Function Call: Test::staticMemFun(i1; ( global int) 0:20 Constant: 0:20 7 (const int) 0:21 Branch: Return with expression 0:21 'f4' ( temp 4-component vector of float) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:16 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out000066400000000000000000000175101360464450000275370ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.string.frag.out000066400000000000000000000073731360464450000226450ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.stringtoken.frag.out000066400000000000000000000142241360464450000236770ustar00rootroot00000000000000hlsl.stringtoken.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:16 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child ( temp 4-component vector of float) 0:18 Color: direct index for structure ( temp 4-component vector of float) 0:18 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:18 Constant: 0:18 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:19 Branch: Return with expression 0:19 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 Sequence 0:16 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:16 Color: direct index for structure ( temp 4-component vector of float) 0:16 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:16 Constant: 0:16 0 (const int) 0:? Linker Objects 0:? 'TestTexture' ( uniform texture2D) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float TestUF}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:16 Function Definition: @main( ( temp structure{ temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child ( temp 4-component vector of float) 0:18 Color: direct index for structure ( temp 4-component vector of float) 0:18 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:18 Constant: 0:18 0 (const int) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 1.000000 0:19 Branch: Return with expression 0:19 'psout' ( temp structure{ temp 4-component vector of float Color}) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 Sequence 0:16 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) 0:16 Color: direct index for structure ( temp 4-component vector of float) 0:16 Function Call: @main( ( temp structure{ temp 4-component vector of float Color}) 0:16 Constant: 0:16 0 (const int) 0:? Linker Objects 0:? 'TestTexture' ( uniform texture2D) 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float TestUF}) 0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.struct.frag.out000066400000000000000000000633061360464450000226610ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.struct.split-1.vert.out000066400000000000000000000443111360464450000242050ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.struct.split.array.geom.out000066400000000000000000000373341360464450000251420ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.struct.split.assign.frag.out000066400000000000000000000415251360464450000252750ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.struct.split.call.vert.out000066400000000000000000000501711360464450000247620ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.struct.split.nested.geom.out000066400000000000000000001134431360464450000253020ustar00rootroot00000000000000hlsl.struct.split.nested.geom Shader version: 500 invocations = -1 max_vertices = 3 input primitive = triangles output primitive = triangle_strip 0:? Sequence 0:24 Function Definition: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) 0:24 Function Parameters: 0:24 'tin' ( in 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 'ts' ( out structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:? Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 pos: direct index for structure ( temp 4-component vector of float) 0:27 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:27 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:27 Constant: 0:27 0 (const int) 0:27 Constant: 0:27 0 (const int) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:28 move second child to first child ( temp 2-component vector of float) 0:28 tc: direct index for structure ( temp 2-component vector of float) 0:28 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:28 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 1 (const int) 0:? Constant: 0:? 5.000000 0:? 6.000000 0:29 move second child to first child ( temp float) 0:29 direct index ( temp float) 0:29 m0_array: direct index for structure ( temp 2-element array of float) 0:29 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:29 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:29 Constant: 0:29 1 (const int) 0:29 Constant: 0:29 0 (const int) 0:29 Constant: 0:29 0 (const int) 0:29 Constant: 0:29 2.300000 0:30 move second child to first child ( temp float) 0:30 direct index ( temp float) 0:30 m0_array: direct index for structure ( temp 2-element array of float) 0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:30 Constant: 0:30 1 (const int) 0:30 Constant: 0:30 0 (const int) 0:30 Constant: 0:30 1 (const int) 0:30 Constant: 0:30 2.300000 0:31 move second child to first child ( temp int) 0:31 m1: direct index for structure ( temp int) 0:31 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:31 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:31 Constant: 0:31 1 (const int) 0:31 Constant: 0:31 1 (const int) 0:31 Constant: 0:31 2 (const int) 0:33 Sequence 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of float) 0:? 'ts.pos' ( out 4-component vector of float Position) 0:33 pos: direct index for structure ( temp 4-component vector of float) 0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 0 (const int) 0:33 move second child to first child ( temp 2-component vector of float) 0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) 0:33 tc: direct index for structure ( temp 2-component vector of float) 0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 1 (const int) 0:33 move second child to first child ( temp float) 0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) 0:33 direct index ( temp float) 0:33 m0_array: direct index for structure ( temp 2-element array of float) 0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 0 (const int) 0:33 move second child to first child ( temp float) 0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) 0:33 direct index ( temp float) 0:33 m0_array: direct index for structure ( temp 2-element array of float) 0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 1 (const int) 0:33 move second child to first child ( temp int) 0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) 0:33 m1: direct index for structure ( temp int) 0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1 (const int) 0:33 EmitVertex ( temp void) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp 4-component vector of float) 0:24 pos: direct index for structure ( temp 4-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 direct index ( in 4-component vector of float Position) 0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp 2-component vector of float) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 1 (const int) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) 0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp 4-component vector of float) 0:24 pos: direct index for structure ( temp 4-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 1 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 direct index ( in 4-component vector of float Position) 0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) 0:24 Constant: 0:24 1 (const int) 0:24 move second child to first child ( temp 2-component vector of float) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 1 (const int) 0:24 Constant: 0:24 1 (const int) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) 0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) 0:24 Constant: 0:24 1 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp 4-component vector of float) 0:24 pos: direct index for structure ( temp 4-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 2 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 direct index ( in 4-component vector of float Position) 0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) 0:24 Constant: 0:24 2 (const int) 0:24 move second child to first child ( temp 2-component vector of float) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 2 (const int) 0:24 Constant: 0:24 1 (const int) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) 0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) 0:24 Constant: 0:24 2 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 Function Call: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'ts' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:? Linker Objects 0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) 0:? 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) 0:? 'ts.pos' ( out 4-component vector of float Position) 0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) 0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) 0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) 0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) Linked geometry stage: Shader version: 500 invocations = 1 max_vertices = 3 input primitive = triangles output primitive = triangle_strip 0:? Sequence 0:24 Function Definition: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) 0:24 Function Parameters: 0:24 'tin' ( in 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 'ts' ( out structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:? Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 pos: direct index for structure ( temp 4-component vector of float) 0:27 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:27 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:27 Constant: 0:27 0 (const int) 0:27 Constant: 0:27 0 (const int) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:28 move second child to first child ( temp 2-component vector of float) 0:28 tc: direct index for structure ( temp 2-component vector of float) 0:28 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:28 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:28 Constant: 0:28 0 (const int) 0:28 Constant: 0:28 1 (const int) 0:? Constant: 0:? 5.000000 0:? 6.000000 0:29 move second child to first child ( temp float) 0:29 direct index ( temp float) 0:29 m0_array: direct index for structure ( temp 2-element array of float) 0:29 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:29 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:29 Constant: 0:29 1 (const int) 0:29 Constant: 0:29 0 (const int) 0:29 Constant: 0:29 0 (const int) 0:29 Constant: 0:29 2.300000 0:30 move second child to first child ( temp float) 0:30 direct index ( temp float) 0:30 m0_array: direct index for structure ( temp 2-element array of float) 0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:30 Constant: 0:30 1 (const int) 0:30 Constant: 0:30 0 (const int) 0:30 Constant: 0:30 1 (const int) 0:30 Constant: 0:30 2.300000 0:31 move second child to first child ( temp int) 0:31 m1: direct index for structure ( temp int) 0:31 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:31 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:31 Constant: 0:31 1 (const int) 0:31 Constant: 0:31 1 (const int) 0:31 Constant: 0:31 2 (const int) 0:33 Sequence 0:33 Sequence 0:33 move second child to first child ( temp 4-component vector of float) 0:? 'ts.pos' ( out 4-component vector of float Position) 0:33 pos: direct index for structure ( temp 4-component vector of float) 0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 0 (const int) 0:33 move second child to first child ( temp 2-component vector of float) 0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) 0:33 tc: direct index for structure ( temp 2-component vector of float) 0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 1 (const int) 0:33 move second child to first child ( temp float) 0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) 0:33 direct index ( temp float) 0:33 m0_array: direct index for structure ( temp 2-element array of float) 0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 0 (const int) 0:33 move second child to first child ( temp float) 0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) 0:33 direct index ( temp float) 0:33 m0_array: direct index for structure ( temp 2-element array of float) 0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 0 (const int) 0:33 Constant: 0:33 1 (const int) 0:33 move second child to first child ( temp int) 0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) 0:33 m1: direct index for structure ( temp int) 0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:33 Constant: 0:33 1 (const int) 0:33 Constant: 0:33 1 (const int) 0:33 EmitVertex ( temp void) 0:24 Function Definition: main( ( temp void) 0:24 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp 4-component vector of float) 0:24 pos: direct index for structure ( temp 4-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 direct index ( in 4-component vector of float Position) 0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp 2-component vector of float) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 1 (const int) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) 0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) 0:24 Constant: 0:24 0 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp 4-component vector of float) 0:24 pos: direct index for structure ( temp 4-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 1 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 direct index ( in 4-component vector of float Position) 0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) 0:24 Constant: 0:24 1 (const int) 0:24 move second child to first child ( temp 2-component vector of float) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 1 (const int) 0:24 Constant: 0:24 1 (const int) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) 0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) 0:24 Constant: 0:24 1 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp 4-component vector of float) 0:24 pos: direct index for structure ( temp 4-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 2 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 direct index ( in 4-component vector of float Position) 0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) 0:24 Constant: 0:24 2 (const int) 0:24 move second child to first child ( temp 2-component vector of float) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:24 Constant: 0:24 2 (const int) 0:24 Constant: 0:24 1 (const int) 0:24 tc: direct index for structure ( temp 2-component vector of float) 0:24 direct index (layout( location=0) in structure{ temp 2-component vector of float tc}) 0:24 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) 0:24 Constant: 0:24 2 (const int) 0:24 Constant: 0:24 0 (const int) 0:24 Function Call: @main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111; ( temp void) 0:? 'tin' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 2-component vector of float tc}) 0:? 'ts' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io}) 0:? Linker Objects 0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) 0:? 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) 0:? 'ts.pos' ( out 4-component vector of float Position) 0:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float) 0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float) 0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float) 0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 100 Capability Geometry 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Geometry 4 "main" 48 52 56 59 63 69 77 ExecutionMode 4 Triangles ExecutionMode 4 Invocations 1 ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputVertices 3 Source HLSL 500 Name 4 "main" Name 9 "PS_IN" MemberName 9(PS_IN) 0 "pos" MemberName 9(PS_IN) 1 "tc" Name 17 "STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO" MemberName 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 0 "m0_array" MemberName 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 1 "m1" Name 18 "GS_OUT" MemberName 18(GS_OUT) 0 "psIn" MemberName 18(GS_OUT) 1 "contains_no_builtin_io" Name 23 "@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;" Name 21 "tin" Name 22 "ts" Name 25 "o" Name 48 "ts.pos" Name 52 "ts.psIn.tc" Name 56 "ts.contains_no_builtin_io.m0_array[0]" Name 59 "ts.contains_no_builtin_io.m0_array[1]" Name 63 "ts.contains_no_builtin_io.m1" Name 66 "tin" Name 69 "tin.pos" Name 74 "PS_IN" MemberName 74(PS_IN) 0 "tc" Name 77 "tin" Name 94 "ts" Name 95 "param" Name 97 "param" Decorate 48(ts.pos) BuiltIn Position Decorate 52(ts.psIn.tc) Location 0 Decorate 56(ts.contains_no_builtin_io.m0_array[0]) Location 1 Decorate 59(ts.contains_no_builtin_io.m0_array[1]) Location 2 Decorate 63(ts.contains_no_builtin_io.m1) Location 3 Decorate 69(tin.pos) BuiltIn Position Decorate 77(tin) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeVector 6(float) 2 9(PS_IN): TypeStruct 7(fvec4) 8(fvec2) 10: TypeInt 32 0 11: 10(int) Constant 3 12: TypeArray 9(PS_IN) 11 13: TypePointer Function 12 14: 10(int) Constant 2 15: TypeArray 6(float) 14 16: TypeInt 32 1 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO): TypeStruct 15 16(int) 18(GS_OUT): TypeStruct 9(PS_IN) 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 19: TypePointer Function 18(GS_OUT) 20: TypeFunction 2 13(ptr) 19(ptr) 26: 16(int) Constant 0 27: 6(float) Constant 1065353216 28: 6(float) Constant 1073741824 29: 6(float) Constant 1077936128 30: 6(float) Constant 1082130432 31: 7(fvec4) ConstantComposite 27 28 29 30 32: TypePointer Function 7(fvec4) 34: 16(int) Constant 1 35: 6(float) Constant 1084227584 36: 6(float) Constant 1086324736 37: 8(fvec2) ConstantComposite 35 36 38: TypePointer Function 8(fvec2) 40: 6(float) Constant 1075000115 41: TypePointer Function 6(float) 44: 16(int) Constant 2 45: TypePointer Function 16(int) 47: TypePointer Output 7(fvec4) 48(ts.pos): 47(ptr) Variable Output 51: TypePointer Output 8(fvec2) 52(ts.psIn.tc): 51(ptr) Variable Output 55: TypePointer Output 6(float) 56(ts.contains_no_builtin_io.m0_array[0]): 55(ptr) Variable Output 59(ts.contains_no_builtin_io.m0_array[1]): 55(ptr) Variable Output 62: TypePointer Output 16(int) 63(ts.contains_no_builtin_io.m1): 62(ptr) Variable Output 67: TypeArray 7(fvec4) 11 68: TypePointer Input 67 69(tin.pos): 68(ptr) Variable Input 70: TypePointer Input 7(fvec4) 74(PS_IN): TypeStruct 8(fvec2) 75: TypeArray 74(PS_IN) 11 76: TypePointer Input 75 77(tin): 76(ptr) Variable Input 78: TypePointer Input 8(fvec2) 4(main): 2 Function None 3 5: Label 66(tin): 13(ptr) Variable Function 94(ts): 19(ptr) Variable Function 95(param): 13(ptr) Variable Function 97(param): 19(ptr) Variable Function 71: 70(ptr) AccessChain 69(tin.pos) 26 72: 7(fvec4) Load 71 73: 32(ptr) AccessChain 66(tin) 26 26 Store 73 72 79: 78(ptr) AccessChain 77(tin) 26 26 80: 8(fvec2) Load 79 81: 38(ptr) AccessChain 66(tin) 26 34 Store 81 80 82: 70(ptr) AccessChain 69(tin.pos) 34 83: 7(fvec4) Load 82 84: 32(ptr) AccessChain 66(tin) 34 26 Store 84 83 85: 78(ptr) AccessChain 77(tin) 34 26 86: 8(fvec2) Load 85 87: 38(ptr) AccessChain 66(tin) 34 34 Store 87 86 88: 70(ptr) AccessChain 69(tin.pos) 44 89: 7(fvec4) Load 88 90: 32(ptr) AccessChain 66(tin) 44 26 Store 90 89 91: 78(ptr) AccessChain 77(tin) 44 26 92: 8(fvec2) Load 91 93: 38(ptr) AccessChain 66(tin) 44 34 Store 93 92 96: 12 Load 66(tin) Store 95(param) 96 98: 2 FunctionCall 23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;) 95(param) 97(param) 99: 18(GS_OUT) Load 97(param) Store 94(ts) 99 Return FunctionEnd 23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;): 2 Function None 20 21(tin): 13(ptr) FunctionParameter 22(ts): 19(ptr) FunctionParameter 24: Label 25(o): 19(ptr) Variable Function 33: 32(ptr) AccessChain 25(o) 26 26 Store 33 31 39: 38(ptr) AccessChain 25(o) 26 34 Store 39 37 42: 41(ptr) AccessChain 25(o) 34 26 26 Store 42 40 43: 41(ptr) AccessChain 25(o) 34 26 34 Store 43 40 46: 45(ptr) AccessChain 25(o) 34 34 Store 46 44 49: 32(ptr) AccessChain 25(o) 26 26 50: 7(fvec4) Load 49 Store 48(ts.pos) 50 53: 38(ptr) AccessChain 25(o) 26 34 54: 8(fvec2) Load 53 Store 52(ts.psIn.tc) 54 57: 41(ptr) AccessChain 25(o) 34 26 26 58: 6(float) Load 57 Store 56(ts.contains_no_builtin_io.m0_array[0]) 58 60: 41(ptr) AccessChain 25(o) 34 26 34 61: 6(float) Load 60 Store 59(ts.contains_no_builtin_io.m0_array[1]) 61 64: 45(ptr) AccessChain 25(o) 34 34 65: 16(int) Load 64 Store 63(ts.contains_no_builtin_io.m1) 65 EmitVertex Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.struct.split.trivial.geom.out000066400000000000000000000353211360464450000254700ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.struct.split.trivial.vert.out000066400000000000000000000221121360464450000255130ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.structIoFourWay.frag.out000066400000000000000000000426511360464450000244660ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.structStructName.frag.out000066400000000000000000000063131360464450000246620ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.structarray.flatten.frag.out000066400000000000000000000424211360464450000253470ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 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 0 Decorate 30(g_texdata_array[1].samp) DescriptorSet 0 Decorate 30(g_texdata_array[1].samp) Binding 0 Decorate 40(g_texdata_array2[1].tex) DescriptorSet 0 Decorate 40(g_texdata_array2[1].tex) Binding 0 Decorate 45(g_texdata_array2[1].samp) DescriptorSet 0 Decorate 45(g_texdata_array2[1].samp) Binding 0 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 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 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 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 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 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 glslang-8.13.3559/Test/baseResults/hlsl.structarray.flatten.geom.out000066400000000000000000000441751360464450000253670ustar00rootroot00000000000000hlsl.structarray.flatten.geom Shader version: 500 invocations = -1 max_vertices = 4 input primitive = lines output primitive = triangle_strip 0:? Sequence 0:16 Function Definition: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void) 0:16 Function Parameters: 0:16 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:16 'outStream' ( out structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? Sequence 0:19 move second child to first child ( temp 4-component vector of float) 0:19 color: direct index for structure ( temp 4-component vector of float) 0:19 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:19 Constant: 0:19 1 (const int) 0:19 color: direct index for structure ( temp 4-component vector of float) 0:19 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:19 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:19 Constant: 0:19 1 (const int) 0:19 Constant: 0:19 1 (const int) 0:20 move second child to first child ( temp 2-component vector of float) 0:20 uv: direct index for structure ( temp 2-component vector of float) 0:20 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:20 Constant: 0:20 2 (const int) 0:20 uv: direct index for structure ( temp 2-component vector of float) 0:20 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:20 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:20 Constant: 0:20 1 (const int) 0:20 Constant: 0:20 2 (const int) 0:21 move second child to first child ( temp 4-component vector of float) 0:21 position: direct index for structure ( temp 4-component vector of float) 0:21 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:21 Constant: 0:21 0 (const int) 0:21 position: direct index for structure ( temp 4-component vector of float) 0:21 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:21 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:21 Constant: 0:21 1 (const int) 0:21 Constant: 0:21 0 (const int) 0:22 Sequence 0:22 Sequence 0:22 move second child to first child ( temp 4-component vector of float) 0:? 'outStream.position' ( out 4-component vector of float Position) 0:22 position: direct index for structure ( temp 4-component vector of float) 0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:22 Constant: 0:22 0 (const int) 0:22 move second child to first child ( temp 4-component vector of float) 0:? 'outStream.color' (layout( location=0) out 4-component vector of float) 0:22 color: direct index for structure ( temp 4-component vector of float) 0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:22 Constant: 0:22 1 (const int) 0:22 move second child to first child ( temp 2-component vector of float) 0:? 'outStream.uv' (layout( location=1) out 2-component vector of float) 0:22 uv: direct index for structure ( temp 2-component vector of float) 0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:22 Constant: 0:22 2 (const int) 0:22 EmitVertex ( temp void) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'vin' ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:16 Function Call: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void) 0:? 'vin' ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'outStream' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? Linker Objects 0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'outStream.position' ( out 4-component vector of float Position) 0:? 'outStream.color' (layout( location=0) out 4-component vector of float) 0:? 'outStream.uv' (layout( location=1) out 2-component vector of float) Linked geometry stage: Shader version: 500 invocations = 1 max_vertices = 4 input primitive = lines output primitive = triangle_strip 0:? Sequence 0:16 Function Definition: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void) 0:16 Function Parameters: 0:16 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:16 'outStream' ( out structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? Sequence 0:19 move second child to first child ( temp 4-component vector of float) 0:19 color: direct index for structure ( temp 4-component vector of float) 0:19 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:19 Constant: 0:19 1 (const int) 0:19 color: direct index for structure ( temp 4-component vector of float) 0:19 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:19 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:19 Constant: 0:19 1 (const int) 0:19 Constant: 0:19 1 (const int) 0:20 move second child to first child ( temp 2-component vector of float) 0:20 uv: direct index for structure ( temp 2-component vector of float) 0:20 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:20 Constant: 0:20 2 (const int) 0:20 uv: direct index for structure ( temp 2-component vector of float) 0:20 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:20 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:20 Constant: 0:20 1 (const int) 0:20 Constant: 0:20 2 (const int) 0:21 move second child to first child ( temp 4-component vector of float) 0:21 position: direct index for structure ( temp 4-component vector of float) 0:21 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:21 Constant: 0:21 0 (const int) 0:21 position: direct index for structure ( temp 4-component vector of float) 0:21 direct index ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:21 'vin' ( in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:21 Constant: 0:21 1 (const int) 0:21 Constant: 0:21 0 (const int) 0:22 Sequence 0:22 Sequence 0:22 move second child to first child ( temp 4-component vector of float) 0:? 'outStream.position' ( out 4-component vector of float Position) 0:22 position: direct index for structure ( temp 4-component vector of float) 0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:22 Constant: 0:22 0 (const int) 0:22 move second child to first child ( temp 4-component vector of float) 0:? 'outStream.color' (layout( location=0) out 4-component vector of float) 0:22 color: direct index for structure ( temp 4-component vector of float) 0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:22 Constant: 0:22 1 (const int) 0:22 move second child to first child ( temp 2-component vector of float) 0:? 'outStream.uv' (layout( location=1) out 2-component vector of float) 0:22 uv: direct index for structure ( temp 2-component vector of float) 0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:22 Constant: 0:22 2 (const int) 0:22 EmitVertex ( temp void) 0:16 Function Definition: main( ( temp void) 0:16 Function Parameters: 0:? Sequence 0:16 move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'vin' ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:16 Function Call: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; ( temp void) 0:? 'vin' ( temp 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'outStream' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? Linker Objects 0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'outStream.position' ( out 4-component vector of float Position) 0:? 'outStream.color' (layout( location=0) out 4-component vector of float) 0:? 'outStream.uv' (layout( location=1) out 2-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 58 Capability Geometry 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Geometry 4 "main" 38 41 45 50 ExecutionMode 4 InputLines ExecutionMode 4 Invocations 1 ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputVertices 4 Source HLSL 500 Name 4 "main" Name 9 "VertexData" MemberName 9(VertexData) 0 "position" MemberName 9(VertexData) 1 "color" MemberName 9(VertexData) 2 "uv" Name 14 "PS_IN" MemberName 14(PS_IN) 0 "position" MemberName 14(PS_IN) 1 "color" MemberName 14(PS_IN) 2 "uv" Name 19 "@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;" Name 17 "vin" Name 18 "outStream" Name 21 "vout" Name 38 "outStream.position" Name 41 "outStream.color" Name 45 "outStream.uv" Name 48 "vin" Name 50 "vin" Name 52 "outStream" Name 53 "param" Name 55 "param" Decorate 38(outStream.position) BuiltIn Position Decorate 41(outStream.color) Location 0 Decorate 45(outStream.uv) Location 1 Decorate 50(vin) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeVector 6(float) 2 9(VertexData): TypeStruct 7(fvec4) 7(fvec4) 8(fvec2) 10: TypeInt 32 0 11: 10(int) Constant 2 12: TypeArray 9(VertexData) 11 13: TypePointer Function 12 14(PS_IN): TypeStruct 7(fvec4) 7(fvec4) 8(fvec2) 15: TypePointer Function 14(PS_IN) 16: TypeFunction 2 13(ptr) 15(ptr) 22: TypeInt 32 1 23: 22(int) Constant 1 24: TypePointer Function 7(fvec4) 28: 22(int) Constant 2 29: TypePointer Function 8(fvec2) 33: 22(int) Constant 0 37: TypePointer Output 7(fvec4) 38(outStream.position): 37(ptr) Variable Output 41(outStream.color): 37(ptr) Variable Output 44: TypePointer Output 8(fvec2) 45(outStream.uv): 44(ptr) Variable Output 49: TypePointer Input 12 50(vin): 49(ptr) Variable Input 4(main): 2 Function None 3 5: Label 48(vin): 13(ptr) Variable Function 52(outStream): 15(ptr) Variable Function 53(param): 13(ptr) Variable Function 55(param): 15(ptr) Variable Function 51: 12 Load 50(vin) Store 48(vin) 51 54: 12 Load 48(vin) Store 53(param) 54 56: 2 FunctionCall 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;) 53(param) 55(param) 57: 14(PS_IN) Load 55(param) Store 52(outStream) 57 Return FunctionEnd 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;): 2 Function None 16 17(vin): 13(ptr) FunctionParameter 18(outStream): 15(ptr) FunctionParameter 20: Label 21(vout): 15(ptr) Variable Function 25: 24(ptr) AccessChain 17(vin) 23 23 26: 7(fvec4) Load 25 27: 24(ptr) AccessChain 21(vout) 23 Store 27 26 30: 29(ptr) AccessChain 17(vin) 23 28 31: 8(fvec2) Load 30 32: 29(ptr) AccessChain 21(vout) 28 Store 32 31 34: 24(ptr) AccessChain 17(vin) 23 33 35: 7(fvec4) Load 34 36: 24(ptr) AccessChain 21(vout) 33 Store 36 35 39: 24(ptr) AccessChain 21(vout) 33 40: 7(fvec4) Load 39 Store 38(outStream.position) 40 42: 24(ptr) AccessChain 21(vout) 23 43: 7(fvec4) Load 42 Store 41(outStream.color) 43 46: 29(ptr) AccessChain 21(vout) 28 47: 8(fvec2) Load 46 Store 45(outStream.uv) 47 EmitVertex Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.append.fn.frag.out000066400000000000000000000375011360464450000257210ustar00rootroot00000000000000hlsl.structbuffer.append.fn.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) 0:8 Function Parameters: 0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:8 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:8 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:? Sequence 0:9 move second child to first child ( temp 4-component vector of float) 0:9 indirect index ( buffer 4-component vector of float) 0:9 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) 0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:9 Constant: 0:9 0 (const uint) 0:9 AtomicAdd ( temp uint) 0:9 @count: direct index for structure ( temp uint) 0:9 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:9 Constant: 0:9 0 (const int) 0:9 Constant: 0:9 1 (const uint) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:10 Branch: Return with expression 0:10 indirect index ( buffer 4-component vector of float) 0:10 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) 0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 add ( temp uint) 0:10 AtomicAdd ( temp uint) 0:10 @count: direct index for structure ( temp uint) 0:10 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:10 Constant: 0:10 0 (const int) 0:10 Constant: 0:10 4294967295 (const uint) 0:10 Constant: 0:10 -1 (const int) 0:19 Function Definition: @main(u1; ( temp 4-component vector of float) 0:19 Function Parameters: 0:19 'pos' ( in uint) 0:? Sequence 0:22 Branch: Return with expression 0:22 Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) 0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:22 'sbuf_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:22 'sbuf_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:19 Function Definition: main( ( temp void) 0:19 Function Parameters: 0:? Sequence 0:19 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:19 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:19 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) 0:8 Function Parameters: 0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:8 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:8 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:? Sequence 0:9 move second child to first child ( temp 4-component vector of float) 0:9 indirect index ( buffer 4-component vector of float) 0:9 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) 0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:9 Constant: 0:9 0 (const uint) 0:9 AtomicAdd ( temp uint) 0:9 @count: direct index for structure ( temp uint) 0:9 'arg_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:9 Constant: 0:9 0 (const int) 0:9 Constant: 0:9 1 (const uint) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:10 Branch: Return with expression 0:10 indirect index ( buffer 4-component vector of float) 0:10 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of float) 0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 add ( temp uint) 0:10 AtomicAdd ( temp uint) 0:10 @count: direct index for structure ( temp uint) 0:10 'arg_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:10 Constant: 0:10 0 (const int) 0:10 Constant: 0:10 4294967295 (const uint) 0:10 Constant: 0:10 -1 (const int) 0:19 Function Definition: @main(u1; ( temp 4-component vector of float) 0:19 Function Parameters: 0:19 'pos' ( in uint) 0:? Sequence 0:22 Branch: Return with expression 0:22 Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float) 0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:22 'sbuf_a@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:22 'sbuf_c@count' ( buffer block{layout( row_major std430) buffer uint @count}) 0:19 Function Definition: main( ( temp void) 0:19 Function Parameters: 0:? Sequence 0:19 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:19 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:19 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.append.frag.out000066400000000000000000000301121360464450000253060ustar00rootroot00000000000000hlsl.structbuffer.append.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: @main(u1; ( temp 4-component vector of float) 0:7 Function Parameters: 0:7 'pos' ( in uint) 0:? Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:8 indirect index (layout( row_major std430) buffer 4-component vector of float) 0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) 0:8 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:8 Constant: 0:8 0 (const uint) 0:8 AtomicAdd ( temp uint) 0:8 @count: direct index for structure ( temp uint) 0:8 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 1 (const uint) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:10 Branch: Return with expression 0:10 indirect index (layout( row_major std430) buffer 4-component vector of float) 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) 0:10 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 add ( temp uint) 0:10 AtomicAdd ( temp uint) 0:10 @count: direct index for structure ( temp uint) 0:10 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:10 Constant: 0:10 0 (const int) 0:10 Constant: 0:10 4294967295 (const uint) 0:10 Constant: 0:10 -1 (const int) 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: @main(u1; ( temp 4-component vector of float) 0:7 Function Parameters: 0:7 'pos' ( in uint) 0:? Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:8 indirect index (layout( row_major std430) buffer 4-component vector of float) 0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) 0:8 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:8 Constant: 0:8 0 (const uint) 0:8 AtomicAdd ( temp uint) 0:8 @count: direct index for structure ( temp uint) 0:8 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 1 (const uint) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:10 Branch: Return with expression 0:10 indirect index (layout( row_major std430) buffer 4-component vector of float) 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) 0:10 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 add ( temp uint) 0:10 AtomicAdd ( temp uint) 0:10 @count: direct index for structure ( temp uint) 0:10 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:10 Constant: 0:10 0 (const int) 0:10 Constant: 0:10 4294967295 (const uint) 0:10 Constant: 0:10 -1 (const int) 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 35(sbuf_c) DescriptorSet 0 Decorate 35(sbuf_c) Binding 0 Decorate 36(sbuf_c@count) DescriptorSet 0 Decorate 36(sbuf_c@count) Binding 0 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.atomics.frag.out000066400000000000000000000706031360464450000255070ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.byte.frag.out000066400000000000000000000630301360464450000250070ustar00rootroot00000000000000hlsl.structbuffer.byte.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: @main(u1; ( temp 4-component vector of float) 0:5 Function Parameters: 0:5 'pos' ( in uint) 0:? Sequence 0:7 Sequence 0:7 move second child to first child ( temp uint) 0:7 'size' ( temp uint) 0:7 array length ( temp uint) 0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:7 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:7 Constant: 0:7 0 (const uint) 0:12 Branch: Return with expression 0:11 add ( temp 4-component vector of float) 0:10 add ( temp 4-component vector of float) 0:9 add ( temp 4-component vector of float) 0:9 Convert uint to float ( temp float) 0:9 indirect index (layout( row_major std430) buffer uint) 0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:9 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:9 Constant: 0:9 0 (const uint) 0:9 right-shift ( temp int) 0:9 'pos' ( in uint) 0:9 Constant: 0:9 2 (const int) 0:? Construct vec4 ( temp 4-component vector of float) 0:? Convert uint to float ( temp 2-component vector of float) 0:? Sequence 0:10 move second child to first child ( temp int) 0:10 'byteAddrTemp' ( temp int) 0:10 right-shift ( temp int) 0:10 add ( temp uint) 0:10 'pos' ( in uint) 0:10 Constant: 0:10 4 (const uint) 0:10 Constant: 0:10 2 (const int) 0:? Construct vec2 ( temp 2-component vector of uint) 0:10 indirect index ( temp uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 'byteAddrTemp' ( temp int) 0:10 indirect index ( temp uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 add ( temp int) 0:10 'byteAddrTemp' ( temp int) 0:10 Constant: 0:10 1 (const int) 0:10 Constant: 0:10 0.000000 0:10 Constant: 0:10 0.000000 0:? Construct vec4 ( temp 4-component vector of float) 0:? Convert uint to float ( temp 3-component vector of float) 0:? Sequence 0:11 move second child to first child ( temp int) 0:11 'byteAddrTemp' ( temp int) 0:11 right-shift ( temp int) 0:11 add ( temp uint) 0:11 'pos' ( in uint) 0:11 Constant: 0:11 8 (const uint) 0:11 Constant: 0:11 2 (const int) 0:? Construct vec3 ( temp 3-component vector of uint) 0:11 indirect index ( temp uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 'byteAddrTemp' ( temp int) 0:11 indirect index ( temp uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 add ( temp int) 0:11 'byteAddrTemp' ( temp int) 0:11 Constant: 0:11 1 (const int) 0:11 indirect index ( temp uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 add ( temp int) 0:11 'byteAddrTemp' ( temp int) 0:11 Constant: 0:11 2 (const int) 0:11 Constant: 0:11 0.000000 0:? Convert uint to float ( temp 4-component vector of float) 0:? Sequence 0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) 0:12 right-shift ( temp int) 0:12 add ( temp uint) 0:12 'pos' ( in uint) 0:12 Constant: 0:12 12 (const uint) 0:12 Constant: 0:12 2 (const int) 0:? Construct vec4 ( temp 4-component vector of uint) 0:12 indirect index ( temp uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) 0:12 indirect index ( temp uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 add ( temp int) 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 1 (const int) 0:12 indirect index ( temp uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 add ( temp int) 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 2 (const int) 0:12 indirect index ( temp uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 add ( temp int) 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 3 (const int) 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:5 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: @main(u1; ( temp 4-component vector of float) 0:5 Function Parameters: 0:5 'pos' ( in uint) 0:? Sequence 0:7 Sequence 0:7 move second child to first child ( temp uint) 0:7 'size' ( temp uint) 0:7 array length ( temp uint) 0:7 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:7 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:7 Constant: 0:7 0 (const uint) 0:12 Branch: Return with expression 0:11 add ( temp 4-component vector of float) 0:10 add ( temp 4-component vector of float) 0:9 add ( temp 4-component vector of float) 0:9 Convert uint to float ( temp float) 0:9 indirect index (layout( row_major std430) buffer uint) 0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:9 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:9 Constant: 0:9 0 (const uint) 0:9 right-shift ( temp int) 0:9 'pos' ( in uint) 0:9 Constant: 0:9 2 (const int) 0:? Construct vec4 ( temp 4-component vector of float) 0:? Convert uint to float ( temp 2-component vector of float) 0:? Sequence 0:10 move second child to first child ( temp int) 0:10 'byteAddrTemp' ( temp int) 0:10 right-shift ( temp int) 0:10 add ( temp uint) 0:10 'pos' ( in uint) 0:10 Constant: 0:10 4 (const uint) 0:10 Constant: 0:10 2 (const int) 0:? Construct vec2 ( temp 2-component vector of uint) 0:10 indirect index ( temp uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 'byteAddrTemp' ( temp int) 0:10 indirect index ( temp uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:10 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 add ( temp int) 0:10 'byteAddrTemp' ( temp int) 0:10 Constant: 0:10 1 (const int) 0:10 Constant: 0:10 0.000000 0:10 Constant: 0:10 0.000000 0:? Construct vec4 ( temp 4-component vector of float) 0:? Convert uint to float ( temp 3-component vector of float) 0:? Sequence 0:11 move second child to first child ( temp int) 0:11 'byteAddrTemp' ( temp int) 0:11 right-shift ( temp int) 0:11 add ( temp uint) 0:11 'pos' ( in uint) 0:11 Constant: 0:11 8 (const uint) 0:11 Constant: 0:11 2 (const int) 0:? Construct vec3 ( temp 3-component vector of uint) 0:11 indirect index ( temp uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 'byteAddrTemp' ( temp int) 0:11 indirect index ( temp uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 add ( temp int) 0:11 'byteAddrTemp' ( temp int) 0:11 Constant: 0:11 1 (const int) 0:11 indirect index ( temp uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:11 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 add ( temp int) 0:11 'byteAddrTemp' ( temp int) 0:11 Constant: 0:11 2 (const int) 0:11 Constant: 0:11 0.000000 0:? Convert uint to float ( temp 4-component vector of float) 0:? Sequence 0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) 0:12 right-shift ( temp int) 0:12 add ( temp uint) 0:12 'pos' ( in uint) 0:12 Constant: 0:12 12 (const uint) 0:12 Constant: 0:12 2 (const int) 0:? Construct vec4 ( temp 4-component vector of uint) 0:12 indirect index ( temp uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) 0:12 indirect index ( temp uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 add ( temp int) 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 1 (const int) 0:12 indirect index ( temp uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 add ( temp int) 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 2 (const int) 0:12 indirect index ( temp uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 0:12 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 add ( temp int) 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 3 (const int) 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:5 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.coherent.frag.out000066400000000000000000000412021360464450000256500ustar00rootroot00000000000000hlsl.structbuffer.coherent.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(u1; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'pos' ( in uint) 0:? Sequence 0:13 move second child to first child ( temp float) 0:13 indirect index (layout( row_major std430) buffer float) 0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:13 Constant: 0:13 0 (const uint) 0:13 add ( temp uint) 0:13 'pos' ( in uint) 0:13 Constant: 0:13 1 (const uint) 0:13 Constant: 0:13 42.000000 0:17 Sequence 0:17 move second child to first child ( temp uint) 0:17 'size' ( temp uint) 0:17 array length ( temp uint) 0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:17 Constant: 0:17 0 (const uint) 0:17 move second child to first child ( temp uint) 0:17 'stride' ( temp uint) 0:17 Constant: 0:17 16 (const uint) 0:19 Test condition and select ( temp void) 0:19 Condition 0:19 test: direct index for structure ( temp bool) 0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:19 Constant: 0:19 0 (const uint) 0:19 'pos' ( in uint) 0:19 Constant: 0:19 1 (const int) 0:19 true case 0:20 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:20 add ( temp 3-component vector of float) 0:20 color: direct index for structure ( temp 3-component vector of float) 0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0 (const int) 0:20 indirect index (layout( row_major std430) buffer float) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0.000000 0:19 false case 0:22 Branch: Return with expression 0:22 Construct vec4 ( temp 4-component vector of float) 0:22 Convert uint to float ( temp float) 0:22 add ( temp uint) 0:22 'size' ( temp uint) 0:22 'stride' ( temp uint) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:12 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(u1; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'pos' ( in uint) 0:? Sequence 0:13 move second child to first child ( temp float) 0:13 indirect index (layout( row_major std430) buffer float) 0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:13 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:13 Constant: 0:13 0 (const uint) 0:13 add ( temp uint) 0:13 'pos' ( in uint) 0:13 Constant: 0:13 1 (const uint) 0:13 Constant: 0:13 42.000000 0:17 Sequence 0:17 move second child to first child ( temp uint) 0:17 'size' ( temp uint) 0:17 array length ( temp uint) 0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:17 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:17 Constant: 0:17 0 (const uint) 0:17 move second child to first child ( temp uint) 0:17 'stride' ( temp uint) 0:17 Constant: 0:17 16 (const uint) 0:19 Test condition and select ( temp void) 0:19 Condition 0:19 test: direct index for structure ( temp bool) 0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:19 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:19 Constant: 0:19 0 (const uint) 0:19 'pos' ( in uint) 0:19 Constant: 0:19 1 (const int) 0:19 true case 0:20 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:20 add ( temp 3-component vector of float) 0:20 color: direct index for structure ( temp 3-component vector of float) 0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:20 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0 (const int) 0:20 indirect index (layout( row_major std430) buffer float) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:20 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0.000000 0:19 false case 0:22 Branch: Return with expression 0:22 Construct vec4 ( temp 4-component vector of float) 0:22 Convert uint to float ( temp float) 0:22 add ( temp uint) 0:22 'size' ( temp uint) 0:22 'stride' ( temp uint) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:12 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:? 'sbuf2' (layout( row_major std430) coherent buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 MemberDecorate 28(sb_t) 0 Offset 0 MemberDecorate 28(sb_t) 1 Offset 12 Decorate 29 ArrayStride 16 MemberDecorate 30(sbuf) 0 Coherent MemberDecorate 30(sbuf) 0 Offset 0 Decorate 30(sbuf) BufferBlock Decorate 32(sbuf) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.floatidx.comp.out000066400000000000000000000447231360464450000257050ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 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 0 Decorate 80(nThreadId) BuiltIn GlobalInvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypeVector 6(int) 3 8: TypePointer Function 7(ivec3) 9: TypeFunction 2 8(ptr) 13: TypeFloat 32 14: TypeVector 13(float) 4 15: TypeVector 6(int) 2 16(sb_t): TypeStruct 14(fvec4) 15(ivec2) 17: TypePointer Function 16(sb_t) 19(sb_t): TypeStruct 14(fvec4) 15(ivec2) 20: TypeRuntimeArray 19(sb_t) 21(csb): TypeStruct 20 22: TypePointer Uniform 21(csb) 23(csb): 22(ptr) Variable Uniform 24: TypeInt 32 1 25: 24(int) Constant 0 26(csb@count): TypeStruct 6(int) 27: TypePointer Uniform 26(csb@count) 28(csb@count): 27(ptr) Variable Uniform 29: TypePointer Uniform 6(int) 31: 6(int) Constant 4294967295 32: 6(int) Constant 1 33: 6(int) Constant 0 35: 24(int) Constant 4294967295 37: TypePointer Uniform 19(sb_t) 41: TypePointer Function 14(fvec4) 44: 24(int) Constant 1 45: TypePointer Function 15(ivec2) 47: TypeVector 13(float) 2 48: TypePointer Function 47(fvec2) 56: TypeImage 13(float) 2D nonsampled format:Rgba32f 57: TypePointer UniformConstant 56 58(outtx): 57(ptr) Variable UniformConstant 63: TypeRuntimeArray 14(fvec4) 64(rwsb): TypeStruct 63 65: TypePointer Uniform 64(rwsb) 66(rwsb): 65(ptr) Variable Uniform 67: TypePointer Function 13(float) 74: TypePointer Uniform 14(fvec4) 79: TypePointer Input 7(ivec3) 80(nThreadId): 79(ptr) Variable Input 4(main): 2 Function None 3 5: Label 78(nThreadId): 8(ptr) Variable Function 82(param): 8(ptr) Variable Function 81: 7(ivec3) Load 80(nThreadId) Store 78(nThreadId) 81 83: 7(ivec3) Load 78(nThreadId) Store 82(param) 83 84: 2 FunctionCall 11(@main(vu3;) 82(param) Return FunctionEnd 11(@main(vu3;): 2 Function None 9 10(nThreadId): 8(ptr) FunctionParameter 12: Label 18(data): 17(ptr) Variable Function 49(coord): 48(ptr) Variable Function 53(storeTemp): 41(ptr) Variable Function 30: 29(ptr) AccessChain 28(csb@count) 25 34: 6(int) AtomicIAdd 30 32 33 31 36: 6(int) IAdd 34 35 38: 37(ptr) AccessChain 23(csb) 25 36 39: 19(sb_t) Load 38 40: 14(fvec4) CompositeExtract 39 0 42: 41(ptr) AccessChain 18(data) 25 Store 42 40 43: 15(ivec2) CompositeExtract 39 1 46: 45(ptr) AccessChain 18(data) 44 Store 46 43 50: 45(ptr) AccessChain 18(data) 44 51: 15(ivec2) Load 50 52: 47(fvec2) ConvertUToF 51 Store 49(coord) 52 54: 41(ptr) AccessChain 18(data) 25 55: 14(fvec4) Load 54 Store 53(storeTemp) 55 59: 56 Load 58(outtx) 60: 47(fvec2) Load 49(coord) 61: 15(ivec2) ConvertFToU 60 62: 14(fvec4) Load 53(storeTemp) ImageWrite 59 61 62 68: 67(ptr) AccessChain 49(coord) 33 69: 13(float) Load 68 70: 6(int) ConvertFToU 69 71: 67(ptr) AccessChain 49(coord) 32 72: 13(float) Load 71 73: 6(int) ConvertFToU 72 75: 74(ptr) AccessChain 66(rwsb) 25 73 76: 14(fvec4) Load 75 77: 74(ptr) AccessChain 66(rwsb) 25 70 Store 77 76 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.fn.frag.out000066400000000000000000000402711360464450000244510ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.fn2.comp.out000066400000000000000000000305131360464450000245500ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.frag.out000066400000000000000000000501621360464450000240470ustar00rootroot00000000000000hlsl.structbuffer.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(u1; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'pos' ( in uint) 0:? Sequence 0:13 Sequence 0:13 move second child to first child ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:13 Constant: 0:13 0 (const uint) 0:13 'pos' ( in uint) 0:17 Sequence 0:17 move second child to first child ( temp uint) 0:17 'size' ( temp uint) 0:17 array length ( temp uint) 0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:17 Constant: 0:17 0 (const uint) 0:17 move second child to first child ( temp uint) 0:17 'stride' ( temp uint) 0:17 Constant: 0:17 32 (const uint) 0:19 Test condition and select ( temp void) 0:19 Condition 0:19 test: direct index for structure ( temp bool) 0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:19 Constant: 0:19 0 (const uint) 0:19 'pos' ( in uint) 0:19 Constant: 0:19 1 (const int) 0:19 true case 0:20 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:20 add ( temp 3-component vector of float) 0:20 color: direct index for structure ( temp 3-component vector of float) 0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0 (const int) 0:20 indirect index (layout( row_major std430) buffer float) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0.000000 0:19 false case 0:22 Branch: Return with expression 0:22 Construct vec4 ( temp 4-component vector of float) 0:22 add ( temp float) 0:22 add ( temp float) 0:22 direct index ( temp float) 0:22 color: direct index for structure ( temp 3-component vector of float) 0:22 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:22 Constant: 0:22 0 (const int) 0:22 Constant: 0:22 0 (const int) 0:22 Convert uint to float ( temp float) 0:22 'size' ( temp uint) 0:22 Convert uint to float ( temp float) 0:22 'stride' ( temp uint) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:12 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(u1; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'pos' ( in uint) 0:? Sequence 0:13 Sequence 0:13 move second child to first child ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:13 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:13 Constant: 0:13 0 (const uint) 0:13 'pos' ( in uint) 0:17 Sequence 0:17 move second child to first child ( temp uint) 0:17 'size' ( temp uint) 0:17 array length ( temp uint) 0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:17 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:17 Constant: 0:17 0 (const uint) 0:17 move second child to first child ( temp uint) 0:17 'stride' ( temp uint) 0:17 Constant: 0:17 32 (const uint) 0:19 Test condition and select ( temp void) 0:19 Condition 0:19 test: direct index for structure ( temp bool) 0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:19 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:19 Constant: 0:19 0 (const uint) 0:19 'pos' ( in uint) 0:19 Constant: 0:19 1 (const int) 0:19 true case 0:20 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:20 add ( temp 3-component vector of float) 0:20 color: direct index for structure ( temp 3-component vector of float) 0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:20 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0 (const int) 0:20 indirect index (layout( row_major std430) buffer float) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:20 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0.000000 0:19 false case 0:22 Branch: Return with expression 0:22 Construct vec4 ( temp 4-component vector of float) 0:22 add ( temp float) 0:22 add ( temp float) 0:22 direct index ( temp float) 0:22 color: direct index for structure ( temp 3-component vector of float) 0:22 'mydata' ( temp structure{ temp 3-component vector of float color, temp bool test, temp bool test2}) 0:22 Constant: 0:22 0 (const int) 0:22 Constant: 0:22 0 (const int) 0:22 Convert uint to float ( temp float) 0:22 'size' ( temp uint) 0:22 Convert uint to float ( temp float) 0:22 'stride' ( temp uint) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:12 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test, temp bool test2} @data}) 0:? 'sbuf2' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out000066400000000000000000000154661360464450000270360ustar00rootroot00000000000000hlsl.structbuffer.incdec.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.incdec.frag.out000066400000000000000000000412311360464450000252700ustar00rootroot00000000000000hlsl.structbuffer.incdec.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: @main(u1; ( temp 4-component vector of float) 0:7 Function Parameters: 0:7 'pos' ( in uint) 0:? Sequence 0:8 Sequence 0:8 move second child to first child ( temp 4-component vector of uint) 0:8 'result' ( temp 4-component vector of uint) 0:8 Constant: 0:8 0 (const uint) 0:8 0 (const uint) 0:8 0 (const uint) 0:8 0 (const uint) 0:10 direct index (layout( row_major std430) buffer 4-component vector of uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) 0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 Constant: 0:10 7 (const int) 0:11 direct index (layout( row_major std430) buffer 4-component vector of uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) 0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 Constant: 0:11 7 (const int) 0:13 move second child to first child ( temp 4-component vector of uint) 0:13 direct index (layout( row_major std430) buffer 4-component vector of uint) 0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) 0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:13 Constant: 0:13 0 (const uint) 0:13 Constant: 0:13 5 (const int) 0:13 Constant: 0:13 2 (const uint) 0:13 2 (const uint) 0:13 2 (const uint) 0:13 2 (const uint) 0:15 Sequence 0:15 move second child to first child ( temp uint) 0:15 'c1' ( temp uint) 0:15 AtomicAdd ( temp uint) 0:15 @count: direct index for structure ( temp uint) 0:15 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:15 Constant: 0:15 0 (const int) 0:15 Constant: 0:15 1 (const uint) 0:16 Sequence 0:16 move second child to first child ( temp uint) 0:16 'c2' ( temp uint) 0:16 add ( temp uint) 0:16 AtomicAdd ( temp uint) 0:16 @count: direct index for structure ( temp uint) 0:16 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:16 Constant: 0:16 0 (const int) 0:16 Constant: 0:16 4294967295 (const uint) 0:16 Constant: 0:16 -1 (const int) 0:18 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:18 Convert uint to float ( temp float) 0:18 direct index ( temp uint) 0:18 'result' ( temp 4-component vector of uint) 0:18 Constant: 0:18 0 (const int) 0:18 Convert uint to float ( temp float) 0:18 direct index ( temp uint) 0:18 'result' ( temp 4-component vector of uint) 0:18 Constant: 0:18 1 (const int) 0:18 Convert uint to float ( temp float) 0:18 'c1' ( temp uint) 0:18 Convert uint to float ( temp float) 0:18 'c2' ( temp uint) 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:? 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:? 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: @main(u1; ( temp 4-component vector of float) 0:7 Function Parameters: 0:7 'pos' ( in uint) 0:? Sequence 0:8 Sequence 0:8 move second child to first child ( temp 4-component vector of uint) 0:8 'result' ( temp 4-component vector of uint) 0:8 Constant: 0:8 0 (const uint) 0:8 0 (const uint) 0:8 0 (const uint) 0:8 0 (const uint) 0:10 direct index (layout( row_major std430) buffer 4-component vector of uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) 0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 Constant: 0:10 7 (const int) 0:11 direct index (layout( row_major std430) buffer 4-component vector of uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) 0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 Constant: 0:11 7 (const int) 0:13 move second child to first child ( temp 4-component vector of uint) 0:13 direct index (layout( row_major std430) buffer 4-component vector of uint) 0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) 0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:13 Constant: 0:13 0 (const uint) 0:13 Constant: 0:13 5 (const int) 0:13 Constant: 0:13 2 (const uint) 0:13 2 (const uint) 0:13 2 (const uint) 0:13 2 (const uint) 0:15 Sequence 0:15 move second child to first child ( temp uint) 0:15 'c1' ( temp uint) 0:15 AtomicAdd ( temp uint) 0:15 @count: direct index for structure ( temp uint) 0:15 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:15 Constant: 0:15 0 (const int) 0:15 Constant: 0:15 1 (const uint) 0:16 Sequence 0:16 move second child to first child ( temp uint) 0:16 'c2' ( temp uint) 0:16 add ( temp uint) 0:16 AtomicAdd ( temp uint) 0:16 @count: direct index for structure ( temp uint) 0:16 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:16 Constant: 0:16 0 (const int) 0:16 Constant: 0:16 4294967295 (const uint) 0:16 Constant: 0:16 -1 (const int) 0:18 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:18 Convert uint to float ( temp float) 0:18 direct index ( temp uint) 0:18 'result' ( temp 4-component vector of uint) 0:18 Constant: 0:18 0 (const int) 0:18 Convert uint to float ( temp float) 0:18 direct index ( temp uint) 0:18 'result' ( temp 4-component vector of uint) 0:18 Constant: 0:18 1 (const int) 0:18 Convert uint to float ( temp float) 0:18 'c1' ( temp uint) 0:18 Convert uint to float ( temp float) 0:18 'c2' ( temp uint) 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:? 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:? 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 // Generated by (magic number): 80008 // 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 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 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.rw.frag.out000066400000000000000000000405731360464450000245030ustar00rootroot00000000000000hlsl.structbuffer.rw.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(u1; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'pos' ( in uint) 0:? Sequence 0:13 move second child to first child ( temp float) 0:13 indirect index (layout( row_major std430) buffer float) 0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:13 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:13 Constant: 0:13 0 (const uint) 0:13 add ( temp uint) 0:13 'pos' ( in uint) 0:13 Constant: 0:13 1 (const uint) 0:13 Constant: 0:13 42.000000 0:17 Sequence 0:17 move second child to first child ( temp uint) 0:17 'size' ( temp uint) 0:17 array length ( temp uint) 0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:17 Constant: 0:17 0 (const uint) 0:17 move second child to first child ( temp uint) 0:17 'stride' ( temp uint) 0:17 Constant: 0:17 16 (const uint) 0:19 Test condition and select ( temp void) 0:19 Condition 0:19 test: direct index for structure ( temp bool) 0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:19 Constant: 0:19 0 (const uint) 0:19 'pos' ( in uint) 0:19 Constant: 0:19 1 (const int) 0:19 true case 0:20 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:20 add ( temp 3-component vector of float) 0:20 color: direct index for structure ( temp 3-component vector of float) 0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0 (const int) 0:20 indirect index (layout( row_major std430) buffer float) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:20 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0.000000 0:19 false case 0:22 Branch: Return with expression 0:22 Construct vec4 ( temp 4-component vector of float) 0:22 Convert uint to float ( temp float) 0:22 add ( temp uint) 0:22 'size' ( temp uint) 0:22 'stride' ( temp uint) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:12 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(u1; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'pos' ( in uint) 0:? Sequence 0:13 move second child to first child ( temp float) 0:13 indirect index (layout( row_major std430) buffer float) 0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:13 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:13 Constant: 0:13 0 (const uint) 0:13 add ( temp uint) 0:13 'pos' ( in uint) 0:13 Constant: 0:13 1 (const uint) 0:13 Constant: 0:13 42.000000 0:17 Sequence 0:17 move second child to first child ( temp uint) 0:17 'size' ( temp uint) 0:17 array length ( temp uint) 0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:17 Constant: 0:17 0 (const uint) 0:17 move second child to first child ( temp uint) 0:17 'stride' ( temp uint) 0:17 Constant: 0:17 16 (const uint) 0:19 Test condition and select ( temp void) 0:19 Condition 0:19 test: direct index for structure ( temp bool) 0:19 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:19 Constant: 0:19 0 (const uint) 0:19 'pos' ( in uint) 0:19 Constant: 0:19 1 (const int) 0:19 true case 0:20 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:20 add ( temp 3-component vector of float) 0:20 color: direct index for structure ( temp 3-component vector of float) 0:20 indirect index (layout( row_major std430) buffer structure{ temp 3-component vector of float color, temp bool test}) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test}) 0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0 (const int) 0:20 indirect index (layout( row_major std430) buffer float) 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of float) 0:20 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 'pos' ( in uint) 0:20 Constant: 0:20 0.000000 0:19 false case 0:22 Branch: Return with expression 0:22 Construct vec4 ( temp 4-component vector of float) 0:22 Convert uint to float ( temp float) 0:22 add ( temp uint) 0:22 'size' ( temp uint) 0:22 'stride' ( temp uint) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:12 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 3-component vector of float color, temp bool test} @data}) 0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of float @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 MemberDecorate 28(sb_t) 0 Offset 0 MemberDecorate 28(sb_t) 1 Offset 12 Decorate 29 ArrayStride 16 MemberDecorate 30(sbuf) 0 Offset 0 Decorate 30(sbuf) BufferBlock Decorate 32(sbuf) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out000066400000000000000000002133601360464450000253630ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.structin.vert.out000066400000000000000000000740421360464450000232500ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.subpass.frag.out000066400000000000000000001223011360464450000230040ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 36(subpass_u4) InputAttachmentIndex 3 Decorate 42(subpass_ms_f4) DescriptorSet 0 Decorate 42(subpass_ms_f4) Binding 0 Decorate 42(subpass_ms_f4) InputAttachmentIndex 4 Decorate 49(subpass_ms_i4) DescriptorSet 0 Decorate 49(subpass_ms_i4) Binding 0 Decorate 49(subpass_ms_i4) InputAttachmentIndex 5 Decorate 55(subpass_ms_u4) DescriptorSet 0 Decorate 55(subpass_ms_u4) Binding 0 Decorate 55(subpass_ms_u4) InputAttachmentIndex 6 Decorate 61(subpass_f3) DescriptorSet 0 Decorate 61(subpass_f3) Binding 0 Decorate 61(subpass_f3) InputAttachmentIndex 1 Decorate 71(subpass_i3) DescriptorSet 0 Decorate 71(subpass_i3) Binding 0 Decorate 71(subpass_i3) InputAttachmentIndex 2 Decorate 81(subpass_u3) DescriptorSet 0 Decorate 81(subpass_u3) Binding 0 Decorate 81(subpass_u3) InputAttachmentIndex 3 Decorate 89(subpass_ms_f3) DescriptorSet 0 Decorate 89(subpass_ms_f3) Binding 0 Decorate 89(subpass_ms_f3) InputAttachmentIndex 4 Decorate 97(subpass_ms_i3) DescriptorSet 0 Decorate 97(subpass_ms_i3) Binding 0 Decorate 97(subpass_ms_i3) InputAttachmentIndex 5 Decorate 105(subpass_ms_u3) DescriptorSet 0 Decorate 105(subpass_ms_u3) Binding 0 Decorate 105(subpass_ms_u3) InputAttachmentIndex 6 Decorate 115(subpass_f2) DescriptorSet 0 Decorate 115(subpass_f2) Binding 0 Decorate 115(subpass_f2) InputAttachmentIndex 1 Decorate 123(subpass_i2) DescriptorSet 0 Decorate 123(subpass_i2) Binding 0 Decorate 123(subpass_i2) InputAttachmentIndex 2 Decorate 132(subpass_u2) DescriptorSet 0 Decorate 132(subpass_u2) Binding 0 Decorate 132(subpass_u2) InputAttachmentIndex 3 Decorate 139(subpass_ms_f2) DescriptorSet 0 Decorate 139(subpass_ms_f2) Binding 0 Decorate 139(subpass_ms_f2) InputAttachmentIndex 4 Decorate 147(subpass_ms_i2) DescriptorSet 0 Decorate 147(subpass_ms_i2) Binding 0 Decorate 147(subpass_ms_i2) InputAttachmentIndex 5 Decorate 154(subpass_ms_u2) DescriptorSet 0 Decorate 154(subpass_ms_u2) Binding 0 Decorate 154(subpass_ms_u2) InputAttachmentIndex 6 Decorate 162(subpass_f) DescriptorSet 0 Decorate 162(subpass_f) Binding 0 Decorate 162(subpass_f) InputAttachmentIndex 1 Decorate 168(subpass_i) DescriptorSet 0 Decorate 168(subpass_i) Binding 0 Decorate 168(subpass_i) InputAttachmentIndex 2 Decorate 174(subpass_u) DescriptorSet 0 Decorate 174(subpass_u) Binding 0 Decorate 174(subpass_u) InputAttachmentIndex 3 Decorate 179(subpass_ms_f) DescriptorSet 0 Decorate 179(subpass_ms_f) Binding 0 Decorate 179(subpass_ms_f) InputAttachmentIndex 4 Decorate 184(subpass_ms_i) DescriptorSet 0 Decorate 184(subpass_ms_i) Binding 0 Decorate 184(subpass_ms_i) InputAttachmentIndex 5 Decorate 189(subpass_ms_u) DescriptorSet 0 Decorate 189(subpass_ms_u) Binding 0 Decorate 189(subpass_ms_u) InputAttachmentIndex 6 Decorate 194(subpass_2) DescriptorSet 0 Decorate 194(subpass_2) Binding 0 Decorate 194(subpass_2) InputAttachmentIndex 7 Decorate 202(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeFunction 7(fvec4) 11: TypePointer Function 7(fvec4) 13: TypeImage 6(float) SubpassData nonsampled format:Unknown 14: TypePointer UniformConstant 13 15(subpass_f4): 14(ptr) Variable UniformConstant 17: TypeInt 32 1 18: 17(int) Constant 0 19: TypeVector 17(int) 2 20: 19(ivec2) ConstantComposite 18 18 22: TypeVector 17(int) 4 23: TypePointer Function 22(ivec4) 25: TypeImage 17(int) SubpassData nonsampled format:Unknown 26: TypePointer UniformConstant 25 27(subpass_i4): 26(ptr) Variable UniformConstant 30: TypeInt 32 0 31: TypeVector 30(int) 4 32: TypePointer Function 31(ivec4) 34: TypeImage 30(int) SubpassData nonsampled format:Unknown 35: TypePointer UniformConstant 34 36(subpass_u4): 35(ptr) Variable UniformConstant 40: TypeImage 6(float) SubpassData multi-sampled nonsampled format:Unknown 41: TypePointer UniformConstant 40 42(subpass_ms_f4): 41(ptr) Variable UniformConstant 44: 17(int) Constant 3 47: TypeImage 17(int) SubpassData multi-sampled nonsampled format:Unknown 48: TypePointer UniformConstant 47 49(subpass_ms_i4): 48(ptr) Variable UniformConstant 53: TypeImage 30(int) SubpassData multi-sampled nonsampled format:Unknown 54: TypePointer UniformConstant 53 55(subpass_ms_u4): 54(ptr) Variable UniformConstant 58: TypeVector 6(float) 3 59: TypePointer Function 58(fvec3) 61(subpass_f3): 14(ptr) Variable UniformConstant 68: TypeVector 17(int) 3 69: TypePointer Function 68(ivec3) 71(subpass_i3): 26(ptr) Variable UniformConstant 78: TypeVector 30(int) 3 79: TypePointer Function 78(ivec3) 81(subpass_u3): 35(ptr) Variable UniformConstant 89(subpass_ms_f3): 41(ptr) Variable UniformConstant 97(subpass_ms_i3): 48(ptr) Variable UniformConstant 105(subpass_ms_u3): 54(ptr) Variable UniformConstant 112: TypeVector 6(float) 2 113: TypePointer Function 112(fvec2) 115(subpass_f2): 14(ptr) Variable UniformConstant 121: TypePointer Function 19(ivec2) 123(subpass_i2): 26(ptr) Variable UniformConstant 129: TypeVector 30(int) 2 130: TypePointer Function 129(ivec2) 132(subpass_u2): 35(ptr) Variable UniformConstant 139(subpass_ms_f2): 41(ptr) Variable UniformConstant 141: 17(int) Constant 2 147(subpass_ms_i2): 48(ptr) Variable UniformConstant 154(subpass_ms_u2): 54(ptr) Variable UniformConstant 160: TypePointer Function 6(float) 162(subpass_f): 14(ptr) Variable UniformConstant 166: TypePointer Function 17(int) 168(subpass_i): 26(ptr) Variable UniformConstant 172: TypePointer Function 30(int) 174(subpass_u): 35(ptr) Variable UniformConstant 179(subpass_ms_f): 41(ptr) Variable UniformConstant 184(subpass_ms_i): 48(ptr) Variable UniformConstant 189(subpass_ms_u): 54(ptr) Variable UniformConstant 194(subpass_2): 14(ptr) Variable UniformConstant 197: 6(float) Constant 0 198: 7(fvec4) ConstantComposite 197 197 197 197 201: TypePointer Output 7(fvec4) 202(@entryPointOutput): 201(ptr) Variable Output 4(main): 2 Function None 3 5: Label 203: 7(fvec4) FunctionCall 9(@main() Store 202(@entryPointOutput) 203 Return FunctionEnd 9(@main(): 7(fvec4) Function None 8 10: Label 12(result00): 11(ptr) Variable Function 24(result01): 23(ptr) Variable Function 33(result02): 32(ptr) Variable Function 39(result10): 11(ptr) Variable Function 46(result11): 23(ptr) Variable Function 52(result12): 32(ptr) Variable Function 60(result20): 59(ptr) Variable Function 70(result21): 69(ptr) Variable Function 80(result22): 79(ptr) Variable Function 88(result30): 59(ptr) Variable Function 96(result31): 69(ptr) Variable Function 104(result32): 79(ptr) Variable Function 114(result40): 113(ptr) Variable Function 122(result41): 121(ptr) Variable Function 131(result42): 130(ptr) Variable Function 138(result50): 113(ptr) Variable Function 146(result51): 121(ptr) Variable Function 153(result52): 130(ptr) Variable Function 161(result60): 160(ptr) Variable Function 167(result61): 166(ptr) Variable Function 173(result62): 172(ptr) Variable Function 178(result70): 160(ptr) Variable Function 183(result71): 166(ptr) Variable Function 188(result72): 172(ptr) Variable Function 193(result73): 11(ptr) Variable Function 16: 13 Load 15(subpass_f4) 21: 7(fvec4) ImageRead 16 20 Store 12(result00) 21 28: 25 Load 27(subpass_i4) 29: 22(ivec4) ImageRead 28 20 Store 24(result01) 29 37: 34 Load 36(subpass_u4) 38: 31(ivec4) ImageRead 37 20 Store 33(result02) 38 43: 40 Load 42(subpass_ms_f4) 45: 7(fvec4) ImageRead 43 20 Sample 44 Store 39(result10) 45 50: 47 Load 49(subpass_ms_i4) 51: 22(ivec4) ImageRead 50 20 Sample 44 Store 46(result11) 51 56: 53 Load 55(subpass_ms_u4) 57: 31(ivec4) ImageRead 56 20 Sample 44 Store 52(result12) 57 62: 13 Load 61(subpass_f3) 63: 7(fvec4) ImageRead 62 20 64: 6(float) CompositeExtract 63 0 65: 6(float) CompositeExtract 63 1 66: 6(float) CompositeExtract 63 2 67: 58(fvec3) CompositeConstruct 64 65 66 Store 60(result20) 67 72: 25 Load 71(subpass_i3) 73: 22(ivec4) ImageRead 72 20 74: 17(int) CompositeExtract 73 0 75: 17(int) CompositeExtract 73 1 76: 17(int) CompositeExtract 73 2 77: 68(ivec3) CompositeConstruct 74 75 76 Store 70(result21) 77 82: 34 Load 81(subpass_u3) 83: 31(ivec4) ImageRead 82 20 84: 30(int) CompositeExtract 83 0 85: 30(int) CompositeExtract 83 1 86: 30(int) CompositeExtract 83 2 87: 78(ivec3) CompositeConstruct 84 85 86 Store 80(result22) 87 90: 40 Load 89(subpass_ms_f3) 91: 7(fvec4) ImageRead 90 20 Sample 44 92: 6(float) CompositeExtract 91 0 93: 6(float) CompositeExtract 91 1 94: 6(float) CompositeExtract 91 2 95: 58(fvec3) CompositeConstruct 92 93 94 Store 88(result30) 95 98: 47 Load 97(subpass_ms_i3) 99: 22(ivec4) ImageRead 98 20 Sample 44 100: 17(int) CompositeExtract 99 0 101: 17(int) CompositeExtract 99 1 102: 17(int) CompositeExtract 99 2 103: 68(ivec3) CompositeConstruct 100 101 102 Store 96(result31) 103 106: 53 Load 105(subpass_ms_u3) 107: 31(ivec4) ImageRead 106 20 Sample 44 108: 30(int) CompositeExtract 107 0 109: 30(int) CompositeExtract 107 1 110: 30(int) CompositeExtract 107 2 111: 78(ivec3) CompositeConstruct 108 109 110 Store 104(result32) 111 116: 13 Load 115(subpass_f2) 117: 7(fvec4) ImageRead 116 20 118: 6(float) CompositeExtract 117 0 119: 6(float) CompositeExtract 117 1 120: 112(fvec2) CompositeConstruct 118 119 Store 114(result40) 120 124: 25 Load 123(subpass_i2) 125: 22(ivec4) ImageRead 124 20 126: 17(int) CompositeExtract 125 0 127: 17(int) CompositeExtract 125 1 128: 19(ivec2) CompositeConstruct 126 127 Store 122(result41) 128 133: 34 Load 132(subpass_u2) 134: 31(ivec4) ImageRead 133 20 135: 30(int) CompositeExtract 134 0 136: 30(int) CompositeExtract 134 1 137: 129(ivec2) CompositeConstruct 135 136 Store 131(result42) 137 140: 40 Load 139(subpass_ms_f2) 142: 7(fvec4) ImageRead 140 20 Sample 141 143: 6(float) CompositeExtract 142 0 144: 6(float) CompositeExtract 142 1 145: 112(fvec2) CompositeConstruct 143 144 Store 138(result50) 145 148: 47 Load 147(subpass_ms_i2) 149: 22(ivec4) ImageRead 148 20 Sample 141 150: 17(int) CompositeExtract 149 0 151: 17(int) CompositeExtract 149 1 152: 19(ivec2) CompositeConstruct 150 151 Store 146(result51) 152 155: 53 Load 154(subpass_ms_u2) 156: 31(ivec4) ImageRead 155 20 Sample 141 157: 30(int) CompositeExtract 156 0 158: 30(int) CompositeExtract 156 1 159: 129(ivec2) CompositeConstruct 157 158 Store 153(result52) 159 163: 13 Load 162(subpass_f) 164: 7(fvec4) ImageRead 163 20 165: 6(float) CompositeExtract 164 0 Store 161(result60) 165 169: 25 Load 168(subpass_i) 170: 22(ivec4) ImageRead 169 20 171: 17(int) CompositeExtract 170 0 Store 167(result61) 171 175: 34 Load 174(subpass_u) 176: 31(ivec4) ImageRead 175 20 177: 30(int) CompositeExtract 176 0 Store 173(result62) 177 180: 40 Load 179(subpass_ms_f) 181: 7(fvec4) ImageRead 180 20 Sample 141 182: 6(float) CompositeExtract 181 0 Store 178(result70) 182 185: 47 Load 184(subpass_ms_i) 186: 22(ivec4) ImageRead 185 20 Sample 141 187: 17(int) CompositeExtract 186 0 Store 183(result71) 187 190: 53 Load 189(subpass_ms_u) 191: 31(ivec4) ImageRead 190 20 Sample 141 192: 30(int) CompositeExtract 191 0 Store 188(result72) 192 195: 13 Load 194(subpass_2) 196: 7(fvec4) ImageRead 195 20 Store 193(result73) 196 ReturnValue 198 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.switch.frag.out000066400000000000000000000447511360464450000226410ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.swizzle.frag.out000066400000000000000000000114331360464450000230360ustar00rootroot00000000000000hlsl.swizzle.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence 0:1 move second child to first child ( temp 4-component vector of float) 0:1 'AmbientColor' ( global 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 0.500000 0:? 0.000000 0:? 1.000000 0:4 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) 0:4 Function Parameters: 0:4 'input' ( in 4-component vector of float) 0:? Sequence 0:5 Branch: Return with expression 0:5 component-wise multiply ( temp 4-component vector of float) 0:5 vector swizzle ( temp 4-component vector of float) 0:5 'input' ( in 4-component vector of float) 0:5 Sequence 0:5 Constant: 0:5 3 (const int) 0:5 Constant: 0:5 3 (const int) 0:5 Constant: 0:5 1 (const int) 0:5 Constant: 0:5 0 (const int) 0:5 Construct vec4 ( temp 4-component vector of float) 0:5 direct index ( temp float) 0:5 'AmbientColor' ( global 4-component vector of float) 0:5 Constant: 0:5 2 (const int) 0:? Linker Objects 0:? 'AmbientColor' ( global 4-component vector of float) Linked fragment stage: WARNING: Linking fragment stage: Entry point not found Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence 0:1 move second child to first child ( temp 4-component vector of float) 0:1 'AmbientColor' ( global 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 0.500000 0:? 0.000000 0:? 1.000000 0:4 Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float) 0:4 Function Parameters: 0:4 'input' ( in 4-component vector of float) 0:? Sequence 0:5 Branch: Return with expression 0:5 component-wise multiply ( temp 4-component vector of float) 0:5 vector swizzle ( temp 4-component vector of float) 0:5 'input' ( in 4-component vector of float) 0:5 Sequence 0:5 Constant: 0:5 3 (const int) 0:5 Constant: 0:5 3 (const int) 0:5 Constant: 0:5 1 (const int) 0:5 Constant: 0:5 0 (const int) 0:5 Construct vec4 ( temp 4-component vector of float) 0:5 direct index ( temp float) 0:5 'AmbientColor' ( global 4-component vector of float) 0:5 Constant: 0:5 2 (const int) 0:? Linker Objects 0:? 'AmbientColor' ( global 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.synthesizeInput.frag.out000066400000000000000000000200431360464450000245510ustar00rootroot00000000000000hlsl.synthesizeInput.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) 0:7 Function Parameters: 0:7 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:? Sequence 0:8 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:8 Convert uint to float ( temp float) 0:8 no_interp: direct index for structure ( temp uint) 0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:8 Constant: 0:8 1 (const int) 0:8 interp: direct index for structure ( temp float) 0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 0.000000 0:8 Constant: 0:8 1.000000 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 Sequence 0:7 move second child to first child ( temp float) 0:7 interp: direct index for structure ( temp float) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:7 Constant: 0:7 0 (const int) 0:? 'input.interp' (layout( location=0) in float) 0:7 move second child to first child ( temp uint) 0:7 no_interp: direct index for structure ( temp uint) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:7 Constant: 0:7 1 (const int) 0:? 'input.no_interp' (layout( location=1) flat in uint) 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'input.interp' (layout( location=0) in float) 0:? 'input.no_interp' (layout( location=1) flat in uint) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) 0:7 Function Parameters: 0:7 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:? Sequence 0:8 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:8 Convert uint to float ( temp float) 0:8 no_interp: direct index for structure ( temp uint) 0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:8 Constant: 0:8 1 (const int) 0:8 interp: direct index for structure ( temp float) 0:8 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:8 Constant: 0:8 0 (const int) 0:8 Constant: 0:8 0.000000 0:8 Constant: 0:8 1.000000 0:7 Function Definition: main( ( temp void) 0:7 Function Parameters: 0:? Sequence 0:7 Sequence 0:7 move second child to first child ( temp float) 0:7 interp: direct index for structure ( temp float) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:7 Constant: 0:7 0 (const int) 0:? 'input.interp' (layout( location=0) in float) 0:7 move second child to first child ( temp uint) 0:7 no_interp: direct index for structure ( temp uint) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:7 Constant: 0:7 1 (const int) 0:? 'input.no_interp' (layout( location=1) flat in uint) 0:7 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:7 Function Call: @main(struct-PSInput-f1-u11; ( temp 4-component vector of float) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'input.interp' (layout( location=0) in float) 0:? 'input.no_interp' (layout( location=1) flat in uint) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.target.frag.out000066400000000000000000000232051360464450000226150ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.targetStruct1.frag.out000066400000000000000000000366741360464450000241210ustar00rootroot00000000000000hlsl.targetStruct1.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Parameters: 0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:12 'po' ( out 4-component vector of float) 0:? Sequence 0:14 move second child to first child ( temp 4-component vector of float) 0:14 o1: direct index for structure ( temp 4-component vector of float) 0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:14 Constant: 0:14 0 (const int) 0:? Construct vec4 ( temp 4-component vector of float) 0:14 Convert uint to float ( temp float) 0:14 no_interp: direct index for structure ( temp uint) 0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:14 Constant: 0:14 1 (const int) 0:14 interp: direct index for structure ( temp float) 0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:14 Constant: 0:14 0 (const int) 0:14 Constant: 0:14 0.000000 0:14 Constant: 0:14 1.000000 0:15 move second child to first child ( temp 4-component vector of float) 0:15 o2: direct index for structure ( temp 4-component vector of float) 0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:15 Constant: 0:15 1 (const int) 0:15 Constant: 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:16 move second child to first child ( temp 4-component vector of float) 0:16 'po' ( out 4-component vector of float) 0:16 Constant: 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:18 Branch: Return with expression 0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 Sequence 0:12 move second child to first child ( temp float) 0:12 interp: direct index for structure ( temp float) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:12 Constant: 0:12 0 (const int) 0:? 'input.interp' (layout( location=0) in float) 0:12 move second child to first child ( temp uint) 0:12 no_interp: direct index for structure ( temp uint) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:12 Constant: 0:12 1 (const int) 0:? 'input.no_interp' (layout( location=1) flat in uint) 0:12 Sequence 0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:? 'po' ( temp 4-component vector of float) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) 0:12 o1: direct index for structure ( temp 4-component vector of float) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Constant: 0:12 0 (const int) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) 0:12 o2: direct index for structure ( temp 4-component vector of float) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Constant: 0:12 1 (const int) 0:12 move second child to first child ( temp 4-component vector of float) 0:? 'po' (layout( location=0) out 4-component vector of float) 0:? 'po' ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) 0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) 0:? 'input.interp' (layout( location=0) in float) 0:? 'input.no_interp' (layout( location=1) flat in uint) 0:? 'po' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Parameters: 0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:12 'po' ( out 4-component vector of float) 0:? Sequence 0:14 move second child to first child ( temp 4-component vector of float) 0:14 o1: direct index for structure ( temp 4-component vector of float) 0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:14 Constant: 0:14 0 (const int) 0:? Construct vec4 ( temp 4-component vector of float) 0:14 Convert uint to float ( temp float) 0:14 no_interp: direct index for structure ( temp uint) 0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:14 Constant: 0:14 1 (const int) 0:14 interp: direct index for structure ( temp float) 0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:14 Constant: 0:14 0 (const int) 0:14 Constant: 0:14 0.000000 0:14 Constant: 0:14 1.000000 0:15 move second child to first child ( temp 4-component vector of float) 0:15 o2: direct index for structure ( temp 4-component vector of float) 0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:15 Constant: 0:15 1 (const int) 0:15 Constant: 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:16 move second child to first child ( temp 4-component vector of float) 0:16 'po' ( out 4-component vector of float) 0:16 Constant: 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:18 Branch: Return with expression 0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 Sequence 0:12 move second child to first child ( temp float) 0:12 interp: direct index for structure ( temp float) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:12 Constant: 0:12 0 (const int) 0:? 'input.interp' (layout( location=0) in float) 0:12 move second child to first child ( temp uint) 0:12 no_interp: direct index for structure ( temp uint) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:12 Constant: 0:12 1 (const int) 0:? 'input.no_interp' (layout( location=1) flat in uint) 0:12 Sequence 0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:? 'po' ( temp 4-component vector of float) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) 0:12 o1: direct index for structure ( temp 4-component vector of float) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Constant: 0:12 0 (const int) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) 0:12 o2: direct index for structure ( temp 4-component vector of float) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Constant: 0:12 1 (const int) 0:12 move second child to first child ( temp 4-component vector of float) 0:? 'po' (layout( location=0) out 4-component vector of float) 0:? 'po' ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) 0:? '@entryPointOutput.o2' (layout( location=1) out 4-component vector of float) 0:? 'input.interp' (layout( location=0) in float) 0:? 'input.no_interp' (layout( location=1) flat in uint) 0:? 'po' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.targetStruct2.frag.out000066400000000000000000000366741360464450000241220ustar00rootroot00000000000000hlsl.targetStruct2.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Parameters: 0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:12 'po' ( out 4-component vector of float) 0:? Sequence 0:14 move second child to first child ( temp 4-component vector of float) 0:14 o1: direct index for structure ( temp 4-component vector of float) 0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:14 Constant: 0:14 0 (const int) 0:? Construct vec4 ( temp 4-component vector of float) 0:14 Convert uint to float ( temp float) 0:14 no_interp: direct index for structure ( temp uint) 0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:14 Constant: 0:14 1 (const int) 0:14 interp: direct index for structure ( temp float) 0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:14 Constant: 0:14 0 (const int) 0:14 Constant: 0:14 0.000000 0:14 Constant: 0:14 1.000000 0:15 move second child to first child ( temp 4-component vector of float) 0:15 o2: direct index for structure ( temp 4-component vector of float) 0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:15 Constant: 0:15 1 (const int) 0:15 Constant: 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:16 move second child to first child ( temp 4-component vector of float) 0:16 'po' ( out 4-component vector of float) 0:16 Constant: 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:18 Branch: Return with expression 0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 Sequence 0:12 move second child to first child ( temp float) 0:12 interp: direct index for structure ( temp float) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:12 Constant: 0:12 0 (const int) 0:? 'input.interp' (layout( location=0) in float) 0:12 move second child to first child ( temp uint) 0:12 no_interp: direct index for structure ( temp uint) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:12 Constant: 0:12 1 (const int) 0:? 'input.no_interp' (layout( location=1) flat in uint) 0:12 Sequence 0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:? 'po' ( temp 4-component vector of float) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) 0:12 o1: direct index for structure ( temp 4-component vector of float) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Constant: 0:12 0 (const int) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) 0:12 o2: direct index for structure ( temp 4-component vector of float) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Constant: 0:12 1 (const int) 0:12 move second child to first child ( temp 4-component vector of float) 0:? 'po' (layout( location=0) out 4-component vector of float) 0:? 'po' ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) 0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) 0:? 'input.interp' (layout( location=0) in float) 0:? 'input.no_interp' (layout( location=1) flat in uint) 0:? 'po' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Parameters: 0:12 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:12 'po' ( out 4-component vector of float) 0:? Sequence 0:14 move second child to first child ( temp 4-component vector of float) 0:14 o1: direct index for structure ( temp 4-component vector of float) 0:14 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:14 Constant: 0:14 0 (const int) 0:? Construct vec4 ( temp 4-component vector of float) 0:14 Convert uint to float ( temp float) 0:14 no_interp: direct index for structure ( temp uint) 0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:14 Constant: 0:14 1 (const int) 0:14 interp: direct index for structure ( temp float) 0:14 'input' ( in structure{ temp float interp, temp uint no_interp}) 0:14 Constant: 0:14 0 (const int) 0:14 Constant: 0:14 0.000000 0:14 Constant: 0:14 1.000000 0:15 move second child to first child ( temp 4-component vector of float) 0:15 o2: direct index for structure ( temp 4-component vector of float) 0:15 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:15 Constant: 0:15 1 (const int) 0:15 Constant: 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:15 1.000000 0:16 move second child to first child ( temp 4-component vector of float) 0:16 'po' ( out 4-component vector of float) 0:16 Constant: 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:16 0.000000 0:18 Branch: Return with expression 0:18 'pso' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Definition: main( ( temp void) 0:12 Function Parameters: 0:? Sequence 0:12 Sequence 0:12 move second child to first child ( temp float) 0:12 interp: direct index for structure ( temp float) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:12 Constant: 0:12 0 (const int) 0:? 'input.interp' (layout( location=0) in float) 0:12 move second child to first child ( temp uint) 0:12 no_interp: direct index for structure ( temp uint) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:12 Constant: 0:12 1 (const int) 0:? 'input.no_interp' (layout( location=1) flat in uint) 0:12 Sequence 0:12 move second child to first child ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Function Call: @main(struct-PSInput-f1-u11;vf4; ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:? 'input' ( temp structure{ temp float interp, temp uint no_interp}) 0:? 'po' ( temp 4-component vector of float) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) 0:12 o1: direct index for structure ( temp 4-component vector of float) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Constant: 0:12 0 (const int) 0:12 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) 0:12 o2: direct index for structure ( temp 4-component vector of float) 0:12 'flattenTemp' ( temp structure{ temp 4-component vector of float o1, temp 4-component vector of float o2}) 0:12 Constant: 0:12 1 (const int) 0:12 move second child to first child ( temp 4-component vector of float) 0:? 'po' (layout( location=0) out 4-component vector of float) 0:? 'po' ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput.o1' (layout( location=2) out 4-component vector of float) 0:? '@entryPointOutput.o2' (layout( location=3) out 4-component vector of float) 0:? 'input.interp' (layout( location=0) in float) 0:? 'input.no_interp' (layout( location=1) flat in uint) 0:? 'po' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.templatetypes.frag.out000066400000000000000000000706001360464450000242300ustar00rootroot00000000000000hlsl.templatetypes.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: @PixelShaderFunction( ( temp float) 0:3 Function Parameters: 0:? Sequence 0:4 Sequence 0:4 move second child to first child ( temp 4-component vector of float) 0:4 'r00' ( temp 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:5 Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:5 'r01' ( temp 4-component vector of float) 0:? Constant: 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:7 Sequence 0:7 move second child to first child ( temp 1-component vector of bool) 0:7 'r12' ( temp 1-component vector of bool) 0:7 Constant: 0:7 false (const bool) 0:8 Sequence 0:8 move second child to first child ( temp 1-component vector of int) 0:8 'r13' ( temp 1-component vector of int) 0:8 Constant: 0:8 1 (const int) 0:9 Sequence 0:9 move second child to first child ( temp 1-component vector of float) 0:9 'r14' ( temp 1-component vector of float) 0:9 Constant: 0:9 1.000000 0:10 Sequence 0:10 move second child to first child ( temp 1-component vector of double) 0:10 'r15' ( temp 1-component vector of double) 0:10 Constant: 0:10 1.000000 0:11 Sequence 0:11 move second child to first child ( temp 1-component vector of uint) 0:11 'r16' ( temp 1-component vector of uint) 0:11 Constant: 0:11 1 (const uint) 0:13 Sequence 0:13 move second child to first child ( temp 2-component vector of bool) 0:13 'r20' ( temp 2-component vector of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:14 Sequence 0:14 move second child to first child ( temp 2-component vector of int) 0:14 'r21' ( temp 2-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:15 Sequence 0:15 move second child to first child ( temp 2-component vector of float) 0:15 'r22' ( temp 2-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:16 Sequence 0:16 move second child to first child ( temp 2-component vector of double) 0:16 'r23' ( temp 2-component vector of double) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:17 Sequence 0:17 move second child to first child ( temp 2-component vector of uint) 0:17 'r24' ( temp 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:19 Sequence 0:19 move second child to first child ( temp 3-component vector of bool) 0:19 'r30' ( temp 3-component vector of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:? true (const bool) 0:20 Sequence 0:20 move second child to first child ( temp 3-component vector of int) 0:20 'r31' ( temp 3-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:21 Sequence 0:21 move second child to first child ( temp 3-component vector of float) 0:21 'r32' ( temp 3-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:22 Sequence 0:22 move second child to first child ( temp 3-component vector of double) 0:22 'r33' ( temp 3-component vector of double) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:23 Sequence 0:23 move second child to first child ( temp 3-component vector of uint) 0:23 'r34' ( temp 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:25 Sequence 0:25 move second child to first child ( temp 4-component vector of bool) 0:25 'r40' ( temp 4-component vector of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:? true (const bool) 0:? false (const bool) 0:26 Sequence 0:26 move second child to first child ( temp 4-component vector of int) 0:26 'r41' ( temp 4-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'r42' ( temp 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of double) 0:28 'r43' ( temp 4-component vector of double) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'r44' ( temp 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) 0:31 Sequence 0:31 move second child to first child ( temp 4X4 matrix of float) 0:31 'r50' ( temp 4X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:? 7.000000 0:? 8.000000 0:? 9.000000 0:? 10.000000 0:? 11.000000 0:? 12.000000 0:? 13.000000 0:? 14.000000 0:? 15.000000 0:32 Sequence 0:32 move second child to first child ( temp 4X4 matrix of float) 0:32 'r51' ( temp 4X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:? 7.000000 0:? 8.000000 0:? 9.000000 0:? 10.000000 0:? 11.000000 0:? 12.000000 0:? 13.000000 0:? 14.000000 0:? 15.000000 0:35 Sequence 0:35 move second child to first child ( temp 2X3 matrix of float) 0:35 'r61' ( temp 2X3 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:36 Sequence 0:36 move second child to first child ( temp 3X2 matrix of float) 0:36 'r62' ( temp 3X2 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:39 Sequence 0:39 move second child to first child ( temp 4X2 matrix of float) 0:39 'r65' ( temp 4X2 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:? 7.000000 0:? 8.000000 0:40 Sequence 0:40 move second child to first child ( temp 4X3 matrix of float) 0:40 'r66' ( temp 4X3 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:? 7.000000 0:? 8.000000 0:? 9.000000 0:? 10.000000 0:? 11.000000 0:? 12.000000 0:45 Branch: Return with expression 0:45 Constant: 0:45 0.000000 0:3 Function Definition: PixelShaderFunction( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:3 move second child to first child ( temp float) 0:? '@entryPointOutput' (layout( location=0) out float) 0:3 Function Call: @PixelShaderFunction( ( temp float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: @PixelShaderFunction( ( temp float) 0:3 Function Parameters: 0:? Sequence 0:4 Sequence 0:4 move second child to first child ( temp 4-component vector of float) 0:4 'r00' ( temp 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:5 Sequence 0:5 move second child to first child ( temp 4-component vector of float) 0:5 'r01' ( temp 4-component vector of float) 0:? Constant: 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:7 Sequence 0:7 move second child to first child ( temp 1-component vector of bool) 0:7 'r12' ( temp 1-component vector of bool) 0:7 Constant: 0:7 false (const bool) 0:8 Sequence 0:8 move second child to first child ( temp 1-component vector of int) 0:8 'r13' ( temp 1-component vector of int) 0:8 Constant: 0:8 1 (const int) 0:9 Sequence 0:9 move second child to first child ( temp 1-component vector of float) 0:9 'r14' ( temp 1-component vector of float) 0:9 Constant: 0:9 1.000000 0:10 Sequence 0:10 move second child to first child ( temp 1-component vector of double) 0:10 'r15' ( temp 1-component vector of double) 0:10 Constant: 0:10 1.000000 0:11 Sequence 0:11 move second child to first child ( temp 1-component vector of uint) 0:11 'r16' ( temp 1-component vector of uint) 0:11 Constant: 0:11 1 (const uint) 0:13 Sequence 0:13 move second child to first child ( temp 2-component vector of bool) 0:13 'r20' ( temp 2-component vector of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:14 Sequence 0:14 move second child to first child ( temp 2-component vector of int) 0:14 'r21' ( temp 2-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:15 Sequence 0:15 move second child to first child ( temp 2-component vector of float) 0:15 'r22' ( temp 2-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:16 Sequence 0:16 move second child to first child ( temp 2-component vector of double) 0:16 'r23' ( temp 2-component vector of double) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:17 Sequence 0:17 move second child to first child ( temp 2-component vector of uint) 0:17 'r24' ( temp 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:19 Sequence 0:19 move second child to first child ( temp 3-component vector of bool) 0:19 'r30' ( temp 3-component vector of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:? true (const bool) 0:20 Sequence 0:20 move second child to first child ( temp 3-component vector of int) 0:20 'r31' ( temp 3-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:21 Sequence 0:21 move second child to first child ( temp 3-component vector of float) 0:21 'r32' ( temp 3-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:22 Sequence 0:22 move second child to first child ( temp 3-component vector of double) 0:22 'r33' ( temp 3-component vector of double) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:23 Sequence 0:23 move second child to first child ( temp 3-component vector of uint) 0:23 'r34' ( temp 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:25 Sequence 0:25 move second child to first child ( temp 4-component vector of bool) 0:25 'r40' ( temp 4-component vector of bool) 0:? Constant: 0:? false (const bool) 0:? true (const bool) 0:? true (const bool) 0:? false (const bool) 0:26 Sequence 0:26 move second child to first child ( temp 4-component vector of int) 0:26 'r41' ( temp 4-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:? 4 (const int) 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'r42' ( temp 4-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:28 Sequence 0:28 move second child to first child ( temp 4-component vector of double) 0:28 'r43' ( temp 4-component vector of double) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:29 Sequence 0:29 move second child to first child ( temp 4-component vector of uint) 0:29 'r44' ( temp 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) 0:31 Sequence 0:31 move second child to first child ( temp 4X4 matrix of float) 0:31 'r50' ( temp 4X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:? 7.000000 0:? 8.000000 0:? 9.000000 0:? 10.000000 0:? 11.000000 0:? 12.000000 0:? 13.000000 0:? 14.000000 0:? 15.000000 0:32 Sequence 0:32 move second child to first child ( temp 4X4 matrix of float) 0:32 'r51' ( temp 4X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:? 7.000000 0:? 8.000000 0:? 9.000000 0:? 10.000000 0:? 11.000000 0:? 12.000000 0:? 13.000000 0:? 14.000000 0:? 15.000000 0:35 Sequence 0:35 move second child to first child ( temp 2X3 matrix of float) 0:35 'r61' ( temp 2X3 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:36 Sequence 0:36 move second child to first child ( temp 3X2 matrix of float) 0:36 'r62' ( temp 3X2 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:39 Sequence 0:39 move second child to first child ( temp 4X2 matrix of float) 0:39 'r65' ( temp 4X2 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:? 7.000000 0:? 8.000000 0:40 Sequence 0:40 move second child to first child ( temp 4X3 matrix of float) 0:40 'r66' ( temp 4X3 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:? 5.000000 0:? 6.000000 0:? 7.000000 0:? 8.000000 0:? 9.000000 0:? 10.000000 0:? 11.000000 0:? 12.000000 0:45 Branch: Return with expression 0:45 Constant: 0:45 0.000000 0:3 Function Definition: PixelShaderFunction( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:3 move second child to first child ( temp float) 0:? '@entryPointOutput' (layout( location=0) out float) 0:3 Function Call: @PixelShaderFunction( ( temp float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.texture.struct.frag.out000066400000000000000000002001501360464450000243460ustar00rootroot00000000000000hlsl.texture.struct.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:38 Function Definition: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:38 Function Parameters: 0:38 't1' ( in texture2D) 0:? Sequence 0:38 Branch: Return with expression 0:38 Sequence 0:38 move second child to first child ( temp 4-component vector of float) 0:38 '@sampleResultShadow' ( temp 4-component vector of float) 0:? texture ( temp 4-component vector of float) 0:38 Construct combined texture-sampler ( temp sampler2D) 0:38 't1' ( in texture2D) 0:38 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.600000 0:? 0.610000 0:38 move second child to first child ( temp float) 0:38 c0: direct index for structure ( temp float) 0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:38 Constant: 0:38 0 (const uint) 0:38 direct index ( temp float) 0:38 '@sampleResultShadow' ( temp 4-component vector of float) 0:38 Constant: 0:38 0 (const uint) 0:38 move second child to first child ( temp float) 0:38 direct index ( temp float) 0:38 c1: direct index for structure ( temp 2-component vector of float) 0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:38 Constant: 0:38 1 (const uint) 0:38 Constant: 0:38 0 (const int) 0:38 direct index ( temp float) 0:38 '@sampleResultShadow' ( temp 4-component vector of float) 0:38 Constant: 0:38 1 (const uint) 0:38 move second child to first child ( temp float) 0:38 direct index ( temp float) 0:38 c1: direct index for structure ( temp 2-component vector of float) 0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:38 Constant: 0:38 1 (const uint) 0:38 Constant: 0:38 1 (const int) 0:38 direct index ( temp float) 0:38 '@sampleResultShadow' ( temp 4-component vector of float) 0:38 Constant: 0:38 2 (const uint) 0:38 move second child to first child ( temp float) 0:38 c2: direct index for structure ( temp float) 0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:38 Constant: 0:38 2 (const uint) 0:38 direct index ( temp float) 0:38 '@sampleResultShadow' ( temp 4-component vector of float) 0:38 Constant: 0:38 3 (const uint) 0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:39 Function Definition: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:39 Function Parameters: 0:39 't2' ( in texture2D) 0:? Sequence 0:39 Branch: Return with expression 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 '@sampleResultShadow' ( temp 4-component vector of float) 0:? texture ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler2D) 0:39 't2' ( in texture2D) 0:39 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.600000 0:? 0.610000 0:39 move second child to first child ( temp float) 0:39 c0: direct index for structure ( temp float) 0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:39 Constant: 0:39 0 (const uint) 0:39 direct index ( temp float) 0:39 '@sampleResultShadow' ( temp 4-component vector of float) 0:39 Constant: 0:39 0 (const uint) 0:39 move second child to first child ( temp float) 0:39 direct index ( temp float) 0:39 c1: direct index for structure ( temp 3-component vector of float) 0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:39 Constant: 0:39 1 (const uint) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( temp float) 0:39 '@sampleResultShadow' ( temp 4-component vector of float) 0:39 Constant: 0:39 1 (const uint) 0:39 move second child to first child ( temp float) 0:39 direct index ( temp float) 0:39 c1: direct index for structure ( temp 3-component vector of float) 0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:39 Constant: 0:39 1 (const uint) 0:39 Constant: 0:39 1 (const int) 0:39 direct index ( temp float) 0:39 '@sampleResultShadow' ( temp 4-component vector of float) 0:39 Constant: 0:39 2 (const uint) 0:39 move second child to first child ( temp float) 0:39 direct index ( temp float) 0:39 c1: direct index for structure ( temp 3-component vector of float) 0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:39 Constant: 0:39 1 (const uint) 0:39 Constant: 0:39 2 (const int) 0:39 direct index ( temp float) 0:39 '@sampleResultShadow' ( temp 4-component vector of float) 0:39 Constant: 0:39 3 (const uint) 0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:42 Function Definition: @main( ( temp 4-component vector of float) 0:42 Function Parameters: 0:? Sequence 0:43 Sequence 0:43 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 's1' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of float) 0:43 '@sampleResultShadow' ( temp 4-component vector of float) 0:? texture ( temp 4-component vector of float) 0:43 Construct combined texture-sampler ( temp sampler2D) 0:43 'g_tTex2s1' ( uniform texture2D) 0:43 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.110000 0:43 move second child to first child ( temp float) 0:43 c0: direct index for structure ( temp float) 0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 Constant: 0:43 0 (const uint) 0:43 direct index ( temp float) 0:43 '@sampleResultShadow' ( temp 4-component vector of float) 0:43 Constant: 0:43 0 (const uint) 0:43 move second child to first child ( temp float) 0:43 direct index ( temp float) 0:43 c1: direct index for structure ( temp 2-component vector of float) 0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 Constant: 0:43 1 (const uint) 0:43 Constant: 0:43 0 (const int) 0:43 direct index ( temp float) 0:43 '@sampleResultShadow' ( temp 4-component vector of float) 0:43 Constant: 0:43 1 (const uint) 0:43 move second child to first child ( temp float) 0:43 direct index ( temp float) 0:43 c1: direct index for structure ( temp 2-component vector of float) 0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 Constant: 0:43 1 (const uint) 0:43 Constant: 0:43 1 (const int) 0:43 direct index ( temp float) 0:43 '@sampleResultShadow' ( temp 4-component vector of float) 0:43 Constant: 0:43 2 (const uint) 0:43 move second child to first child ( temp float) 0:43 c2: direct index for structure ( temp float) 0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 Constant: 0:43 2 (const uint) 0:43 direct index ( temp float) 0:43 '@sampleResultShadow' ( temp 4-component vector of float) 0:43 Constant: 0:43 3 (const uint) 0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:44 Sequence 0:44 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 's2' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of float) 0:44 '@sampleResultShadow' ( temp 4-component vector of float) 0:? texture ( temp 4-component vector of float) 0:44 Construct combined texture-sampler ( temp sampler2D) 0:44 'g_tTex2s2' ( uniform texture2D) 0:44 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.210000 0:44 move second child to first child ( temp float) 0:44 c0: direct index for structure ( temp float) 0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 Constant: 0:44 0 (const uint) 0:44 direct index ( temp float) 0:44 '@sampleResultShadow' ( temp 4-component vector of float) 0:44 Constant: 0:44 0 (const uint) 0:44 move second child to first child ( temp float) 0:44 direct index ( temp float) 0:44 c1: direct index for structure ( temp 3-component vector of float) 0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 Constant: 0:44 1 (const uint) 0:44 Constant: 0:44 0 (const int) 0:44 direct index ( temp float) 0:44 '@sampleResultShadow' ( temp 4-component vector of float) 0:44 Constant: 0:44 1 (const uint) 0:44 move second child to first child ( temp float) 0:44 direct index ( temp float) 0:44 c1: direct index for structure ( temp 3-component vector of float) 0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 Constant: 0:44 1 (const uint) 0:44 Constant: 0:44 1 (const int) 0:44 direct index ( temp float) 0:44 '@sampleResultShadow' ( temp 4-component vector of float) 0:44 Constant: 0:44 2 (const uint) 0:44 move second child to first child ( temp float) 0:44 direct index ( temp float) 0:44 c1: direct index for structure ( temp 3-component vector of float) 0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 Constant: 0:44 1 (const uint) 0:44 Constant: 0:44 2 (const int) 0:44 direct index ( temp float) 0:44 '@sampleResultShadow' ( temp 4-component vector of float) 0:44 Constant: 0:44 3 (const uint) 0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:45 Sequence 0:45 move second child to first child ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:45 's3' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of float) 0:45 '@sampleResultShadow' ( temp 4-component vector of float) 0:? texture ( temp 4-component vector of float) 0:45 Construct combined texture-sampler ( temp sampler2D) 0:45 'g_tTex2s3' ( uniform texture2D) 0:45 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.310000 0:45 move second child to first child ( temp float) 0:45 direct index ( temp float) 0:45 c0: direct index for structure ( temp 2-component vector of float) 0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:45 Constant: 0:45 0 (const uint) 0:45 Constant: 0:45 0 (const int) 0:45 direct index ( temp float) 0:45 '@sampleResultShadow' ( temp 4-component vector of float) 0:45 Constant: 0:45 0 (const uint) 0:45 move second child to first child ( temp float) 0:45 direct index ( temp float) 0:45 c0: direct index for structure ( temp 2-component vector of float) 0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:45 Constant: 0:45 0 (const uint) 0:45 Constant: 0:45 1 (const int) 0:45 direct index ( temp float) 0:45 '@sampleResultShadow' ( temp 4-component vector of float) 0:45 Constant: 0:45 1 (const uint) 0:45 move second child to first child ( temp float) 0:45 direct index ( temp float) 0:45 c1: direct index for structure ( temp 1-component vector of float) 0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:45 Constant: 0:45 1 (const uint) 0:45 Constant: 0:45 0 (const int) 0:45 direct index ( temp float) 0:45 '@sampleResultShadow' ( temp 4-component vector of float) 0:45 Constant: 0:45 2 (const uint) 0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:46 Sequence 0:46 move second child to first child ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 's4' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 Sequence 0:46 move second child to first child ( temp 4-component vector of int) 0:46 '@sampleResultShadow' ( temp 4-component vector of int) 0:? texture ( temp 4-component vector of int) 0:46 Construct combined texture-sampler ( temp isampler2D) 0:46 'g_tTex2s4' ( uniform itexture2D) 0:46 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.410000 0:46 move second child to first child ( temp int) 0:46 c0: direct index for structure ( temp int) 0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 Constant: 0:46 0 (const uint) 0:46 direct index ( temp int) 0:46 '@sampleResultShadow' ( temp 4-component vector of int) 0:46 Constant: 0:46 0 (const uint) 0:46 move second child to first child ( temp float) 0:46 direct index ( temp float) 0:46 c1: direct index for structure ( temp 2-component vector of int) 0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 Constant: 0:46 1 (const uint) 0:46 Constant: 0:46 0 (const int) 0:46 Convert int to float ( temp float) 0:46 direct index ( temp int) 0:46 '@sampleResultShadow' ( temp 4-component vector of int) 0:46 Constant: 0:46 1 (const uint) 0:46 move second child to first child ( temp float) 0:46 direct index ( temp float) 0:46 c1: direct index for structure ( temp 2-component vector of int) 0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 Constant: 0:46 1 (const uint) 0:46 Constant: 0:46 1 (const int) 0:46 Convert int to float ( temp float) 0:46 direct index ( temp int) 0:46 '@sampleResultShadow' ( temp 4-component vector of int) 0:46 Constant: 0:46 2 (const uint) 0:46 move second child to first child ( temp int) 0:46 c2: direct index for structure ( temp int) 0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 Constant: 0:46 2 (const uint) 0:46 direct index ( temp int) 0:46 '@sampleResultShadow' ( temp 4-component vector of int) 0:46 Constant: 0:46 3 (const uint) 0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:47 Sequence 0:47 move second child to first child ( temp structure{ temp uint c0, temp uint c1}) 0:47 's5' ( temp structure{ temp uint c0, temp uint c1}) 0:47 Sequence 0:47 move second child to first child ( temp 4-component vector of uint) 0:47 '@sampleResultShadow' ( temp 4-component vector of uint) 0:? texture ( temp 4-component vector of uint) 0:47 Construct combined texture-sampler ( temp usampler2D) 0:47 'g_tTex2s5' ( uniform utexture2D) 0:47 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.510000 0:47 move second child to first child ( temp uint) 0:47 c0: direct index for structure ( temp uint) 0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) 0:47 Constant: 0:47 0 (const uint) 0:47 direct index ( temp uint) 0:47 '@sampleResultShadow' ( temp 4-component vector of uint) 0:47 Constant: 0:47 0 (const uint) 0:47 move second child to first child ( temp uint) 0:47 c1: direct index for structure ( temp uint) 0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) 0:47 Constant: 0:47 1 (const uint) 0:47 direct index ( temp uint) 0:47 '@sampleResultShadow' ( temp 4-component vector of uint) 0:47 Constant: 0:47 1 (const uint) 0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) 0:49 Sequence 0:49 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:49 'r0' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:49 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:49 'g_tTex2s1' ( uniform texture2D) 0:50 Sequence 0:50 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:50 'r1' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:50 Function Call: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:50 'g_tTex2s2' ( uniform texture2D) 0:51 Sequence 0:51 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:51 'r2' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:51 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:51 'g_tTex2s1a' ( uniform texture2D) 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 0:53 0.000000 0:53 0.000000 0:53 0.000000 0:42 Function Definition: main( ( temp void) 0:42 Function Parameters: 0:? Sequence 0:42 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:42 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_sSamp' ( uniform sampler) 0:? 'g_tTex2s1' ( uniform texture2D) 0:? 'g_tTex2s2' ( uniform texture2D) 0:? 'g_tTex2s3' ( uniform texture2D) 0:? 'g_tTex2s4' ( uniform itexture2D) 0:? 'g_tTex2s5' ( uniform utexture2D) 0:? 'g_tTex2s1a' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:38 Function Definition: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:38 Function Parameters: 0:38 't1' ( in texture2D) 0:? Sequence 0:38 Branch: Return with expression 0:38 Sequence 0:38 move second child to first child ( temp 4-component vector of float) 0:38 '@sampleResultShadow' ( temp 4-component vector of float) 0:? texture ( temp 4-component vector of float) 0:38 Construct combined texture-sampler ( temp sampler2D) 0:38 't1' ( in texture2D) 0:38 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.600000 0:? 0.610000 0:38 move second child to first child ( temp float) 0:38 c0: direct index for structure ( temp float) 0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:38 Constant: 0:38 0 (const uint) 0:38 direct index ( temp float) 0:38 '@sampleResultShadow' ( temp 4-component vector of float) 0:38 Constant: 0:38 0 (const uint) 0:38 move second child to first child ( temp float) 0:38 direct index ( temp float) 0:38 c1: direct index for structure ( temp 2-component vector of float) 0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:38 Constant: 0:38 1 (const uint) 0:38 Constant: 0:38 0 (const int) 0:38 direct index ( temp float) 0:38 '@sampleResultShadow' ( temp 4-component vector of float) 0:38 Constant: 0:38 1 (const uint) 0:38 move second child to first child ( temp float) 0:38 direct index ( temp float) 0:38 c1: direct index for structure ( temp 2-component vector of float) 0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:38 Constant: 0:38 1 (const uint) 0:38 Constant: 0:38 1 (const int) 0:38 direct index ( temp float) 0:38 '@sampleResultShadow' ( temp 4-component vector of float) 0:38 Constant: 0:38 2 (const uint) 0:38 move second child to first child ( temp float) 0:38 c2: direct index for structure ( temp float) 0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:38 Constant: 0:38 2 (const uint) 0:38 direct index ( temp float) 0:38 '@sampleResultShadow' ( temp 4-component vector of float) 0:38 Constant: 0:38 3 (const uint) 0:38 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:39 Function Definition: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:39 Function Parameters: 0:39 't2' ( in texture2D) 0:? Sequence 0:39 Branch: Return with expression 0:39 Sequence 0:39 move second child to first child ( temp 4-component vector of float) 0:39 '@sampleResultShadow' ( temp 4-component vector of float) 0:? texture ( temp 4-component vector of float) 0:39 Construct combined texture-sampler ( temp sampler2D) 0:39 't2' ( in texture2D) 0:39 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.600000 0:? 0.610000 0:39 move second child to first child ( temp float) 0:39 c0: direct index for structure ( temp float) 0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:39 Constant: 0:39 0 (const uint) 0:39 direct index ( temp float) 0:39 '@sampleResultShadow' ( temp 4-component vector of float) 0:39 Constant: 0:39 0 (const uint) 0:39 move second child to first child ( temp float) 0:39 direct index ( temp float) 0:39 c1: direct index for structure ( temp 3-component vector of float) 0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:39 Constant: 0:39 1 (const uint) 0:39 Constant: 0:39 0 (const int) 0:39 direct index ( temp float) 0:39 '@sampleResultShadow' ( temp 4-component vector of float) 0:39 Constant: 0:39 1 (const uint) 0:39 move second child to first child ( temp float) 0:39 direct index ( temp float) 0:39 c1: direct index for structure ( temp 3-component vector of float) 0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:39 Constant: 0:39 1 (const uint) 0:39 Constant: 0:39 1 (const int) 0:39 direct index ( temp float) 0:39 '@sampleResultShadow' ( temp 4-component vector of float) 0:39 Constant: 0:39 2 (const uint) 0:39 move second child to first child ( temp float) 0:39 direct index ( temp float) 0:39 c1: direct index for structure ( temp 3-component vector of float) 0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:39 Constant: 0:39 1 (const uint) 0:39 Constant: 0:39 2 (const int) 0:39 direct index ( temp float) 0:39 '@sampleResultShadow' ( temp 4-component vector of float) 0:39 Constant: 0:39 3 (const uint) 0:39 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:42 Function Definition: @main( ( temp 4-component vector of float) 0:42 Function Parameters: 0:? Sequence 0:43 Sequence 0:43 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 's1' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 Sequence 0:43 move second child to first child ( temp 4-component vector of float) 0:43 '@sampleResultShadow' ( temp 4-component vector of float) 0:? texture ( temp 4-component vector of float) 0:43 Construct combined texture-sampler ( temp sampler2D) 0:43 'g_tTex2s1' ( uniform texture2D) 0:43 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.110000 0:43 move second child to first child ( temp float) 0:43 c0: direct index for structure ( temp float) 0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 Constant: 0:43 0 (const uint) 0:43 direct index ( temp float) 0:43 '@sampleResultShadow' ( temp 4-component vector of float) 0:43 Constant: 0:43 0 (const uint) 0:43 move second child to first child ( temp float) 0:43 direct index ( temp float) 0:43 c1: direct index for structure ( temp 2-component vector of float) 0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 Constant: 0:43 1 (const uint) 0:43 Constant: 0:43 0 (const int) 0:43 direct index ( temp float) 0:43 '@sampleResultShadow' ( temp 4-component vector of float) 0:43 Constant: 0:43 1 (const uint) 0:43 move second child to first child ( temp float) 0:43 direct index ( temp float) 0:43 c1: direct index for structure ( temp 2-component vector of float) 0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 Constant: 0:43 1 (const uint) 0:43 Constant: 0:43 1 (const int) 0:43 direct index ( temp float) 0:43 '@sampleResultShadow' ( temp 4-component vector of float) 0:43 Constant: 0:43 2 (const uint) 0:43 move second child to first child ( temp float) 0:43 c2: direct index for structure ( temp float) 0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:43 Constant: 0:43 2 (const uint) 0:43 direct index ( temp float) 0:43 '@sampleResultShadow' ( temp 4-component vector of float) 0:43 Constant: 0:43 3 (const uint) 0:43 '@sampleStructTemp' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:44 Sequence 0:44 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 's2' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of float) 0:44 '@sampleResultShadow' ( temp 4-component vector of float) 0:? texture ( temp 4-component vector of float) 0:44 Construct combined texture-sampler ( temp sampler2D) 0:44 'g_tTex2s2' ( uniform texture2D) 0:44 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.200000 0:? 0.210000 0:44 move second child to first child ( temp float) 0:44 c0: direct index for structure ( temp float) 0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 Constant: 0:44 0 (const uint) 0:44 direct index ( temp float) 0:44 '@sampleResultShadow' ( temp 4-component vector of float) 0:44 Constant: 0:44 0 (const uint) 0:44 move second child to first child ( temp float) 0:44 direct index ( temp float) 0:44 c1: direct index for structure ( temp 3-component vector of float) 0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 Constant: 0:44 1 (const uint) 0:44 Constant: 0:44 0 (const int) 0:44 direct index ( temp float) 0:44 '@sampleResultShadow' ( temp 4-component vector of float) 0:44 Constant: 0:44 1 (const uint) 0:44 move second child to first child ( temp float) 0:44 direct index ( temp float) 0:44 c1: direct index for structure ( temp 3-component vector of float) 0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 Constant: 0:44 1 (const uint) 0:44 Constant: 0:44 1 (const int) 0:44 direct index ( temp float) 0:44 '@sampleResultShadow' ( temp 4-component vector of float) 0:44 Constant: 0:44 2 (const uint) 0:44 move second child to first child ( temp float) 0:44 direct index ( temp float) 0:44 c1: direct index for structure ( temp 3-component vector of float) 0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:44 Constant: 0:44 1 (const uint) 0:44 Constant: 0:44 2 (const int) 0:44 direct index ( temp float) 0:44 '@sampleResultShadow' ( temp 4-component vector of float) 0:44 Constant: 0:44 3 (const uint) 0:44 '@sampleStructTemp' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:45 Sequence 0:45 move second child to first child ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:45 's3' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:45 Sequence 0:45 move second child to first child ( temp 4-component vector of float) 0:45 '@sampleResultShadow' ( temp 4-component vector of float) 0:? texture ( temp 4-component vector of float) 0:45 Construct combined texture-sampler ( temp sampler2D) 0:45 'g_tTex2s3' ( uniform texture2D) 0:45 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.300000 0:? 0.310000 0:45 move second child to first child ( temp float) 0:45 direct index ( temp float) 0:45 c0: direct index for structure ( temp 2-component vector of float) 0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:45 Constant: 0:45 0 (const uint) 0:45 Constant: 0:45 0 (const int) 0:45 direct index ( temp float) 0:45 '@sampleResultShadow' ( temp 4-component vector of float) 0:45 Constant: 0:45 0 (const uint) 0:45 move second child to first child ( temp float) 0:45 direct index ( temp float) 0:45 c0: direct index for structure ( temp 2-component vector of float) 0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:45 Constant: 0:45 0 (const uint) 0:45 Constant: 0:45 1 (const int) 0:45 direct index ( temp float) 0:45 '@sampleResultShadow' ( temp 4-component vector of float) 0:45 Constant: 0:45 1 (const uint) 0:45 move second child to first child ( temp float) 0:45 direct index ( temp float) 0:45 c1: direct index for structure ( temp 1-component vector of float) 0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:45 Constant: 0:45 1 (const uint) 0:45 Constant: 0:45 0 (const int) 0:45 direct index ( temp float) 0:45 '@sampleResultShadow' ( temp 4-component vector of float) 0:45 Constant: 0:45 2 (const uint) 0:45 '@sampleStructTemp' ( temp structure{ temp 2-component vector of float c0, temp 1-component vector of float c1}) 0:46 Sequence 0:46 move second child to first child ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 's4' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 Sequence 0:46 move second child to first child ( temp 4-component vector of int) 0:46 '@sampleResultShadow' ( temp 4-component vector of int) 0:? texture ( temp 4-component vector of int) 0:46 Construct combined texture-sampler ( temp isampler2D) 0:46 'g_tTex2s4' ( uniform itexture2D) 0:46 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.400000 0:? 0.410000 0:46 move second child to first child ( temp int) 0:46 c0: direct index for structure ( temp int) 0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 Constant: 0:46 0 (const uint) 0:46 direct index ( temp int) 0:46 '@sampleResultShadow' ( temp 4-component vector of int) 0:46 Constant: 0:46 0 (const uint) 0:46 move second child to first child ( temp float) 0:46 direct index ( temp float) 0:46 c1: direct index for structure ( temp 2-component vector of int) 0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 Constant: 0:46 1 (const uint) 0:46 Constant: 0:46 0 (const int) 0:46 Convert int to float ( temp float) 0:46 direct index ( temp int) 0:46 '@sampleResultShadow' ( temp 4-component vector of int) 0:46 Constant: 0:46 1 (const uint) 0:46 move second child to first child ( temp float) 0:46 direct index ( temp float) 0:46 c1: direct index for structure ( temp 2-component vector of int) 0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 Constant: 0:46 1 (const uint) 0:46 Constant: 0:46 1 (const int) 0:46 Convert int to float ( temp float) 0:46 direct index ( temp int) 0:46 '@sampleResultShadow' ( temp 4-component vector of int) 0:46 Constant: 0:46 2 (const uint) 0:46 move second child to first child ( temp int) 0:46 c2: direct index for structure ( temp int) 0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:46 Constant: 0:46 2 (const uint) 0:46 direct index ( temp int) 0:46 '@sampleResultShadow' ( temp 4-component vector of int) 0:46 Constant: 0:46 3 (const uint) 0:46 '@sampleStructTemp' ( temp structure{ temp int c0, temp 2-component vector of int c1, temp int c2}) 0:47 Sequence 0:47 move second child to first child ( temp structure{ temp uint c0, temp uint c1}) 0:47 's5' ( temp structure{ temp uint c0, temp uint c1}) 0:47 Sequence 0:47 move second child to first child ( temp 4-component vector of uint) 0:47 '@sampleResultShadow' ( temp 4-component vector of uint) 0:? texture ( temp 4-component vector of uint) 0:47 Construct combined texture-sampler ( temp usampler2D) 0:47 'g_tTex2s5' ( uniform utexture2D) 0:47 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.500000 0:? 0.510000 0:47 move second child to first child ( temp uint) 0:47 c0: direct index for structure ( temp uint) 0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) 0:47 Constant: 0:47 0 (const uint) 0:47 direct index ( temp uint) 0:47 '@sampleResultShadow' ( temp 4-component vector of uint) 0:47 Constant: 0:47 0 (const uint) 0:47 move second child to first child ( temp uint) 0:47 c1: direct index for structure ( temp uint) 0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) 0:47 Constant: 0:47 1 (const uint) 0:47 direct index ( temp uint) 0:47 '@sampleResultShadow' ( temp 4-component vector of uint) 0:47 Constant: 0:47 1 (const uint) 0:47 '@sampleStructTemp' ( temp structure{ temp uint c0, temp uint c1}) 0:49 Sequence 0:49 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:49 'r0' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:49 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:49 'g_tTex2s1' ( uniform texture2D) 0:50 Sequence 0:50 move second child to first child ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:50 'r1' ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:50 Function Call: fn1(t2-tx-struct1-1; ( temp structure{ temp float c0, temp 3-component vector of float c1}) 0:50 'g_tTex2s2' ( uniform texture2D) 0:51 Sequence 0:51 move second child to first child ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:51 'r2' ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:51 Function Call: fn1(t2-tx-struct0-1; ( temp structure{ temp float c0, temp 2-component vector of float c1, temp float c2}) 0:51 'g_tTex2s1a' ( uniform texture2D) 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 0:53 0.000000 0:53 0.000000 0:53 0.000000 0:42 Function Definition: main( ( temp void) 0:42 Function Parameters: 0:? Sequence 0:42 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:42 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_sSamp' ( uniform sampler) 0:? 'g_tTex2s1' ( uniform texture2D) 0:? 'g_tTex2s2' ( uniform texture2D) 0:? 'g_tTex2s3' ( uniform texture2D) 0:? 'g_tTex2s4' ( uniform itexture2D) 0:? 'g_tTex2s5' ( uniform utexture2D) 0:? 'g_tTex2s1a' ( uniform texture2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 114(g_tTex2s2) DescriptorSet 0 Decorate 114(g_tTex2s2) Binding 0 Decorate 140(g_tTex2s3) DescriptorSet 0 Decorate 140(g_tTex2s3) Binding 0 Decorate 168(g_tTex2s4) DescriptorSet 0 Decorate 168(g_tTex2s4) Binding 0 Decorate 202(g_tTex2s5) DescriptorSet 0 Decorate 202(g_tTex2s5) Binding 0 Decorate 229(g_tTex2s1a) DescriptorSet 0 Decorate 229(g_tTex2s1a) Binding 0 Decorate 238(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeImage 6(float) 2D sampled format:Unknown 8: TypePointer Function 7 9: TypeVector 6(float) 2 10(s1_t): TypeStruct 6(float) 9(fvec2) 6(float) 11: TypeFunction 10(s1_t) 8(ptr) 15: TypeVector 6(float) 3 16(s2_t): TypeStruct 6(float) 15(fvec3) 17: TypeFunction 16(s2_t) 8(ptr) 21: TypeVector 6(float) 4 22: TypeFunction 21(fvec4) 25: TypePointer Function 21(fvec4) 28: TypeSampler 29: TypePointer UniformConstant 28 30(g_sSamp): 29(ptr) Variable UniformConstant 32: TypeSampledImage 7 34: 6(float) Constant 1058642330 35: 6(float) Constant 1058810102 36: 9(fvec2) ConstantComposite 34 35 38: TypePointer Function 10(s1_t) 40: TypeInt 32 1 41: 40(int) Constant 0 42: TypeInt 32 0 43: 42(int) Constant 0 44: TypePointer Function 6(float) 48: 40(int) Constant 1 49: 42(int) Constant 1 53: 42(int) Constant 2 57: 40(int) Constant 2 58: 42(int) Constant 3 70: TypePointer Function 16(s2_t) 89: TypePointer UniformConstant 7 90(g_tTex2s1): 89(ptr) Variable UniformConstant 94: 6(float) Constant 1036831949 95: 6(float) Constant 1038174126 96: 9(fvec2) ConstantComposite 94 95 114(g_tTex2s2): 89(ptr) Variable UniformConstant 118: 6(float) Constant 1045220557 119: 6(float) Constant 1045891645 120: 9(fvec2) ConstantComposite 118 119 136(s3_t): TypeStruct 9(fvec2) 6(float) 137: TypePointer Function 136(s3_t) 140(g_tTex2s3): 89(ptr) Variable UniformConstant 144: 6(float) Constant 1050253722 145: 6(float) Constant 1050589266 146: 9(fvec2) ConstantComposite 144 145 159: TypeVector 40(int) 2 160(s4_t): TypeStruct 40(int) 159(ivec2) 40(int) 161: TypePointer Function 160(s4_t) 163: TypeVector 40(int) 4 164: TypePointer Function 163(ivec4) 166: TypeImage 40(int) 2D sampled format:Unknown 167: TypePointer UniformConstant 166 168(g_tTex2s4): 167(ptr) Variable UniformConstant 171: TypeSampledImage 166 173: 6(float) Constant 1053609165 174: 6(float) Constant 1053944709 175: 9(fvec2) ConstantComposite 173 174 178: TypePointer Function 40(int) 194(s5_t): TypeStruct 42(int) 42(int) 195: TypePointer Function 194(s5_t) 197: TypeVector 42(int) 4 198: TypePointer Function 197(ivec4) 200: TypeImage 42(int) 2D sampled format:Unknown 201: TypePointer UniformConstant 200 202(g_tTex2s5): 201(ptr) Variable UniformConstant 205: TypeSampledImage 200 207: 6(float) Constant 1056964608 208: 6(float) Constant 1057132380 209: 9(fvec2) ConstantComposite 207 208 212: TypePointer Function 42(int) 229(g_tTex2s1a): 89(ptr) Variable UniformConstant 233: 6(float) Constant 0 234: 21(fvec4) ConstantComposite 233 233 233 233 237: TypePointer Output 21(fvec4) 238(@entryPointOutput): 237(ptr) Variable Output 4(main): 2 Function None 3 5: Label 239: 21(fvec4) FunctionCall 23(@main() Store 238(@entryPointOutput) 239 Return FunctionEnd 13(fn1(t2-tx-struct0-1;): 10(s1_t) Function None 11 12(t1): 8(ptr) FunctionParameter 14: Label 26(@sampleResultShadow): 25(ptr) Variable Function 39(@sampleStructTemp): 38(ptr) Variable Function 27: 7 Load 12(t1) 31: 28 Load 30(g_sSamp) 33: 32 SampledImage 27 31 37: 21(fvec4) ImageSampleImplicitLod 33 36 Store 26(@sampleResultShadow) 37 45: 44(ptr) AccessChain 26(@sampleResultShadow) 43 46: 6(float) Load 45 47: 44(ptr) AccessChain 39(@sampleStructTemp) 41 Store 47 46 50: 44(ptr) AccessChain 26(@sampleResultShadow) 49 51: 6(float) Load 50 52: 44(ptr) AccessChain 39(@sampleStructTemp) 48 43 Store 52 51 54: 44(ptr) AccessChain 26(@sampleResultShadow) 53 55: 6(float) Load 54 56: 44(ptr) AccessChain 39(@sampleStructTemp) 48 49 Store 56 55 59: 44(ptr) AccessChain 26(@sampleResultShadow) 58 60: 6(float) Load 59 61: 44(ptr) AccessChain 39(@sampleStructTemp) 57 Store 61 60 62: 10(s1_t) Load 39(@sampleStructTemp) ReturnValue 62 FunctionEnd 19(fn1(t2-tx-struct1-1;): 16(s2_t) Function None 17 18(t2): 8(ptr) FunctionParameter 20: Label 65(@sampleResultShadow): 25(ptr) Variable Function 71(@sampleStructTemp): 70(ptr) Variable Function 66: 7 Load 18(t2) 67: 28 Load 30(g_sSamp) 68: 32 SampledImage 66 67 69: 21(fvec4) ImageSampleImplicitLod 68 36 Store 65(@sampleResultShadow) 69 72: 44(ptr) AccessChain 65(@sampleResultShadow) 43 73: 6(float) Load 72 74: 44(ptr) AccessChain 71(@sampleStructTemp) 41 Store 74 73 75: 44(ptr) AccessChain 65(@sampleResultShadow) 49 76: 6(float) Load 75 77: 44(ptr) AccessChain 71(@sampleStructTemp) 48 43 Store 77 76 78: 44(ptr) AccessChain 65(@sampleResultShadow) 53 79: 6(float) Load 78 80: 44(ptr) AccessChain 71(@sampleStructTemp) 48 49 Store 80 79 81: 44(ptr) AccessChain 65(@sampleResultShadow) 58 82: 6(float) Load 81 83: 44(ptr) AccessChain 71(@sampleStructTemp) 48 53 Store 83 82 84: 16(s2_t) Load 71(@sampleStructTemp) ReturnValue 84 FunctionEnd 23(@main(): 21(fvec4) Function None 22 24: Label 87(s1): 38(ptr) Variable Function 88(@sampleResultShadow): 25(ptr) Variable Function 98(@sampleStructTemp): 38(ptr) Variable Function 112(s2): 70(ptr) Variable Function 113(@sampleResultShadow): 25(ptr) Variable Function 122(@sampleStructTemp): 70(ptr) Variable Function 138(s3): 137(ptr) Variable Function 139(@sampleResultShadow): 25(ptr) Variable Function 148(@sampleStructTemp): 137(ptr) Variable Function 162(s4): 161(ptr) Variable Function 165(@sampleResultShadow): 164(ptr) Variable Function 177(@sampleStructTemp): 161(ptr) Variable Function 196(s5): 195(ptr) Variable Function 199(@sampleResultShadow): 198(ptr) Variable Function 211(@sampleStructTemp): 195(ptr) Variable Function 220(r0): 38(ptr) Variable Function 221(param): 8(ptr) Variable Function 224(r1): 70(ptr) Variable Function 225(param): 8(ptr) Variable Function 228(r2): 38(ptr) Variable Function 230(param): 8(ptr) Variable Function 91: 7 Load 90(g_tTex2s1) 92: 28 Load 30(g_sSamp) 93: 32 SampledImage 91 92 97: 21(fvec4) ImageSampleImplicitLod 93 96 Store 88(@sampleResultShadow) 97 99: 44(ptr) AccessChain 88(@sampleResultShadow) 43 100: 6(float) Load 99 101: 44(ptr) AccessChain 98(@sampleStructTemp) 41 Store 101 100 102: 44(ptr) AccessChain 88(@sampleResultShadow) 49 103: 6(float) Load 102 104: 44(ptr) AccessChain 98(@sampleStructTemp) 48 43 Store 104 103 105: 44(ptr) AccessChain 88(@sampleResultShadow) 53 106: 6(float) Load 105 107: 44(ptr) AccessChain 98(@sampleStructTemp) 48 49 Store 107 106 108: 44(ptr) AccessChain 88(@sampleResultShadow) 58 109: 6(float) Load 108 110: 44(ptr) AccessChain 98(@sampleStructTemp) 57 Store 110 109 111: 10(s1_t) Load 98(@sampleStructTemp) Store 87(s1) 111 115: 7 Load 114(g_tTex2s2) 116: 28 Load 30(g_sSamp) 117: 32 SampledImage 115 116 121: 21(fvec4) ImageSampleImplicitLod 117 120 Store 113(@sampleResultShadow) 121 123: 44(ptr) AccessChain 113(@sampleResultShadow) 43 124: 6(float) Load 123 125: 44(ptr) AccessChain 122(@sampleStructTemp) 41 Store 125 124 126: 44(ptr) AccessChain 113(@sampleResultShadow) 49 127: 6(float) Load 126 128: 44(ptr) AccessChain 122(@sampleStructTemp) 48 43 Store 128 127 129: 44(ptr) AccessChain 113(@sampleResultShadow) 53 130: 6(float) Load 129 131: 44(ptr) AccessChain 122(@sampleStructTemp) 48 49 Store 131 130 132: 44(ptr) AccessChain 113(@sampleResultShadow) 58 133: 6(float) Load 132 134: 44(ptr) AccessChain 122(@sampleStructTemp) 48 53 Store 134 133 135: 16(s2_t) Load 122(@sampleStructTemp) Store 112(s2) 135 141: 7 Load 140(g_tTex2s3) 142: 28 Load 30(g_sSamp) 143: 32 SampledImage 141 142 147: 21(fvec4) ImageSampleImplicitLod 143 146 Store 139(@sampleResultShadow) 147 149: 44(ptr) AccessChain 139(@sampleResultShadow) 43 150: 6(float) Load 149 151: 44(ptr) AccessChain 148(@sampleStructTemp) 41 43 Store 151 150 152: 44(ptr) AccessChain 139(@sampleResultShadow) 49 153: 6(float) Load 152 154: 44(ptr) AccessChain 148(@sampleStructTemp) 41 49 Store 154 153 155: 44(ptr) AccessChain 139(@sampleResultShadow) 53 156: 6(float) Load 155 157: 44(ptr) AccessChain 148(@sampleStructTemp) 48 Store 157 156 158: 136(s3_t) Load 148(@sampleStructTemp) Store 138(s3) 158 169: 166 Load 168(g_tTex2s4) 170: 28 Load 30(g_sSamp) 172: 171 SampledImage 169 170 176: 163(ivec4) ImageSampleImplicitLod 172 175 Store 165(@sampleResultShadow) 176 179: 178(ptr) AccessChain 165(@sampleResultShadow) 43 180: 40(int) Load 179 181: 178(ptr) AccessChain 177(@sampleStructTemp) 41 Store 181 180 182: 178(ptr) AccessChain 165(@sampleResultShadow) 49 183: 40(int) Load 182 184: 6(float) ConvertSToF 183 185: 178(ptr) AccessChain 177(@sampleStructTemp) 48 43 Store 185 184 186: 178(ptr) AccessChain 165(@sampleResultShadow) 53 187: 40(int) Load 186 188: 6(float) ConvertSToF 187 189: 178(ptr) AccessChain 177(@sampleStructTemp) 48 49 Store 189 188 190: 178(ptr) AccessChain 165(@sampleResultShadow) 58 191: 40(int) Load 190 192: 178(ptr) AccessChain 177(@sampleStructTemp) 57 Store 192 191 193: 160(s4_t) Load 177(@sampleStructTemp) Store 162(s4) 193 203: 200 Load 202(g_tTex2s5) 204: 28 Load 30(g_sSamp) 206: 205 SampledImage 203 204 210: 197(ivec4) ImageSampleImplicitLod 206 209 Store 199(@sampleResultShadow) 210 213: 212(ptr) AccessChain 199(@sampleResultShadow) 43 214: 42(int) Load 213 215: 212(ptr) AccessChain 211(@sampleStructTemp) 41 Store 215 214 216: 212(ptr) AccessChain 199(@sampleResultShadow) 49 217: 42(int) Load 216 218: 212(ptr) AccessChain 211(@sampleStructTemp) 48 Store 218 217 219: 194(s5_t) Load 211(@sampleStructTemp) Store 196(s5) 219 222: 7 Load 90(g_tTex2s1) Store 221(param) 222 223: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 221(param) Store 220(r0) 223 226: 7 Load 114(g_tTex2s2) Store 225(param) 226 227: 16(s2_t) FunctionCall 19(fn1(t2-tx-struct1-1;) 225(param) Store 224(r1) 227 231: 7 Load 229(g_tTex2s1a) Store 230(param) 231 232: 10(s1_t) FunctionCall 13(fn1(t2-tx-struct0-1;) 230(param) Store 228(r2) 232 ReturnValue 234 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.texture.subvec4.frag.out000066400000000000000000000621541360464450000244070ustar00rootroot00000000000000hlsl.texture.subvec4.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:15 Function Definition: @main( ( temp 4-component vector of float) 0:15 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp 2-component vector of uint) 0:24 'sizeQueryTemp' ( temp 2-component vector of uint) 0:24 textureSize ( temp 2-component vector of uint) 0:24 'g_tTex2dmsf1' ( uniform texture2DMS) 0:24 move second child to first child ( temp uint) 0:24 'WidthU' ( temp uint) 0:24 direct index ( temp uint) 0:24 'sizeQueryTemp' ( temp 2-component vector of uint) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp uint) 0:24 'HeightU' ( temp uint) 0:24 direct index ( temp uint) 0:24 'sizeQueryTemp' ( temp 2-component vector of uint) 0:24 Constant: 0:24 1 (const int) 0:24 move second child to first child ( temp uint) 0:24 'NumberOfSamplesU' ( temp uint) 0:24 imageQuerySamples ( temp uint) 0:24 'g_tTex2dmsf1' ( uniform texture2DMS) 0:25 Sequence 0:25 move second child to first child ( temp 2-component vector of uint) 0:25 'sizeQueryTemp' ( temp 2-component vector of uint) 0:25 textureSize ( temp 2-component vector of uint) 0:25 'g_tTex2dmsf2' ( uniform texture2DMS) 0:25 move second child to first child ( temp uint) 0:25 'WidthU' ( temp uint) 0:25 direct index ( temp uint) 0:25 'sizeQueryTemp' ( temp 2-component vector of uint) 0:25 Constant: 0:25 0 (const int) 0:25 move second child to first child ( temp uint) 0:25 'HeightU' ( temp uint) 0:25 direct index ( temp uint) 0:25 'sizeQueryTemp' ( temp 2-component vector of uint) 0:25 Constant: 0:25 1 (const int) 0:25 move second child to first child ( temp uint) 0:25 'NumberOfSamplesU' ( temp uint) 0:25 imageQuerySamples ( temp uint) 0:25 'g_tTex2dmsf2' ( uniform texture2DMS) 0:26 Sequence 0:26 move second child to first child ( temp 2-component vector of uint) 0:26 'sizeQueryTemp' ( temp 2-component vector of uint) 0:26 textureSize ( temp 2-component vector of uint) 0:26 'g_tTex2dmsf3' ( uniform texture2DMS) 0:26 move second child to first child ( temp uint) 0:26 'WidthU' ( temp uint) 0:26 direct index ( temp uint) 0:26 'sizeQueryTemp' ( temp 2-component vector of uint) 0:26 Constant: 0:26 0 (const int) 0:26 move second child to first child ( temp uint) 0:26 'HeightU' ( temp uint) 0:26 direct index ( temp uint) 0:26 'sizeQueryTemp' ( temp 2-component vector of uint) 0:26 Constant: 0:26 1 (const int) 0:26 move second child to first child ( temp uint) 0:26 'NumberOfSamplesU' ( temp uint) 0:26 imageQuerySamples ( temp uint) 0:26 'g_tTex2dmsf3' ( uniform texture2DMS) 0:27 Sequence 0:27 move second child to first child ( temp 2-component vector of uint) 0:27 'sizeQueryTemp' ( temp 2-component vector of uint) 0:27 textureSize ( temp 2-component vector of uint) 0:27 'g_tTex2dmsf4' ( uniform texture2DMS) 0:27 move second child to first child ( temp uint) 0:27 'WidthU' ( temp uint) 0:27 direct index ( temp uint) 0:27 'sizeQueryTemp' ( temp 2-component vector of uint) 0:27 Constant: 0:27 0 (const int) 0:27 move second child to first child ( temp uint) 0:27 'HeightU' ( temp uint) 0:27 direct index ( temp uint) 0:27 'sizeQueryTemp' ( temp 2-component vector of uint) 0:27 Constant: 0:27 1 (const int) 0:27 move second child to first child ( temp uint) 0:27 'NumberOfSamplesU' ( temp uint) 0:27 imageQuerySamples ( temp uint) 0:27 'g_tTex2dmsf4' ( uniform texture2DMS) 0:29 Construct float ( temp float) 0:? textureFetch ( temp 4-component vector of float) 0:29 'g_tTex2dmsf1' ( uniform texture2DMS) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:29 Constant: 0:29 3 (const int) 0:30 Construct vec2 ( temp 2-component vector of float) 0:? textureFetch ( temp 4-component vector of float) 0:30 'g_tTex2dmsf2' ( uniform texture2DMS) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:30 Constant: 0:30 3 (const int) 0:31 Construct vec3 ( temp 3-component vector of float) 0:? textureFetch ( temp 4-component vector of float) 0:31 'g_tTex2dmsf3' ( uniform texture2DMS) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:31 Constant: 0:31 3 (const int) 0:32 textureFetch ( temp 4-component vector of float) 0:32 'g_tTex2dmsf4' ( uniform texture2DMS) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:32 Constant: 0:32 3 (const int) 0:34 Construct float ( temp float) 0:? texture ( temp 4-component vector of float) 0:34 Construct combined texture-sampler ( temp sampler2D) 0:34 'g_tTex2df1' ( uniform texture2D) 0:34 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:35 Construct vec2 ( temp 2-component vector of float) 0:? texture ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df2' ( uniform texture2D) 0:35 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:36 Construct vec3 ( temp 3-component vector of float) 0:? texture ( temp 4-component vector of float) 0:36 Construct combined texture-sampler ( temp sampler2D) 0:36 'g_tTex2df3' ( uniform texture2D) 0:36 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:37 texture ( temp 4-component vector of float) 0:37 Construct combined texture-sampler ( temp sampler2D) 0:37 'g_tTex2df4' ( uniform texture2D) 0:37 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:39 Branch: Return with expression 0:39 Constant: 0:39 0.000000 0:39 0.000000 0:39 0.000000 0:39 0.000000 0:15 Function Definition: main( ( temp void) 0:15 Function Parameters: 0:? Sequence 0:15 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:15 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tTex2dmsf1' ( uniform texture2DMS) 0:? 'g_tTex2dmsf2' ( uniform texture2DMS) 0:? 'g_tTex2dmsf3' ( uniform texture2DMS) 0:? 'g_tTex2dmsf4' ( uniform texture2DMS) 0:? 'g_tTex2df1' ( uniform texture2D) 0:? 'g_tTex2df2' ( uniform texture2D) 0:? 'g_tTex2df3' ( uniform texture2D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_sSamp' ( uniform sampler) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:15 Function Definition: @main( ( temp 4-component vector of float) 0:15 Function Parameters: 0:? Sequence 0:24 Sequence 0:24 move second child to first child ( temp 2-component vector of uint) 0:24 'sizeQueryTemp' ( temp 2-component vector of uint) 0:24 textureSize ( temp 2-component vector of uint) 0:24 'g_tTex2dmsf1' ( uniform texture2DMS) 0:24 move second child to first child ( temp uint) 0:24 'WidthU' ( temp uint) 0:24 direct index ( temp uint) 0:24 'sizeQueryTemp' ( temp 2-component vector of uint) 0:24 Constant: 0:24 0 (const int) 0:24 move second child to first child ( temp uint) 0:24 'HeightU' ( temp uint) 0:24 direct index ( temp uint) 0:24 'sizeQueryTemp' ( temp 2-component vector of uint) 0:24 Constant: 0:24 1 (const int) 0:24 move second child to first child ( temp uint) 0:24 'NumberOfSamplesU' ( temp uint) 0:24 imageQuerySamples ( temp uint) 0:24 'g_tTex2dmsf1' ( uniform texture2DMS) 0:25 Sequence 0:25 move second child to first child ( temp 2-component vector of uint) 0:25 'sizeQueryTemp' ( temp 2-component vector of uint) 0:25 textureSize ( temp 2-component vector of uint) 0:25 'g_tTex2dmsf2' ( uniform texture2DMS) 0:25 move second child to first child ( temp uint) 0:25 'WidthU' ( temp uint) 0:25 direct index ( temp uint) 0:25 'sizeQueryTemp' ( temp 2-component vector of uint) 0:25 Constant: 0:25 0 (const int) 0:25 move second child to first child ( temp uint) 0:25 'HeightU' ( temp uint) 0:25 direct index ( temp uint) 0:25 'sizeQueryTemp' ( temp 2-component vector of uint) 0:25 Constant: 0:25 1 (const int) 0:25 move second child to first child ( temp uint) 0:25 'NumberOfSamplesU' ( temp uint) 0:25 imageQuerySamples ( temp uint) 0:25 'g_tTex2dmsf2' ( uniform texture2DMS) 0:26 Sequence 0:26 move second child to first child ( temp 2-component vector of uint) 0:26 'sizeQueryTemp' ( temp 2-component vector of uint) 0:26 textureSize ( temp 2-component vector of uint) 0:26 'g_tTex2dmsf3' ( uniform texture2DMS) 0:26 move second child to first child ( temp uint) 0:26 'WidthU' ( temp uint) 0:26 direct index ( temp uint) 0:26 'sizeQueryTemp' ( temp 2-component vector of uint) 0:26 Constant: 0:26 0 (const int) 0:26 move second child to first child ( temp uint) 0:26 'HeightU' ( temp uint) 0:26 direct index ( temp uint) 0:26 'sizeQueryTemp' ( temp 2-component vector of uint) 0:26 Constant: 0:26 1 (const int) 0:26 move second child to first child ( temp uint) 0:26 'NumberOfSamplesU' ( temp uint) 0:26 imageQuerySamples ( temp uint) 0:26 'g_tTex2dmsf3' ( uniform texture2DMS) 0:27 Sequence 0:27 move second child to first child ( temp 2-component vector of uint) 0:27 'sizeQueryTemp' ( temp 2-component vector of uint) 0:27 textureSize ( temp 2-component vector of uint) 0:27 'g_tTex2dmsf4' ( uniform texture2DMS) 0:27 move second child to first child ( temp uint) 0:27 'WidthU' ( temp uint) 0:27 direct index ( temp uint) 0:27 'sizeQueryTemp' ( temp 2-component vector of uint) 0:27 Constant: 0:27 0 (const int) 0:27 move second child to first child ( temp uint) 0:27 'HeightU' ( temp uint) 0:27 direct index ( temp uint) 0:27 'sizeQueryTemp' ( temp 2-component vector of uint) 0:27 Constant: 0:27 1 (const int) 0:27 move second child to first child ( temp uint) 0:27 'NumberOfSamplesU' ( temp uint) 0:27 imageQuerySamples ( temp uint) 0:27 'g_tTex2dmsf4' ( uniform texture2DMS) 0:29 Construct float ( temp float) 0:? textureFetch ( temp 4-component vector of float) 0:29 'g_tTex2dmsf1' ( uniform texture2DMS) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:29 Constant: 0:29 3 (const int) 0:30 Construct vec2 ( temp 2-component vector of float) 0:? textureFetch ( temp 4-component vector of float) 0:30 'g_tTex2dmsf2' ( uniform texture2DMS) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:30 Constant: 0:30 3 (const int) 0:31 Construct vec3 ( temp 3-component vector of float) 0:? textureFetch ( temp 4-component vector of float) 0:31 'g_tTex2dmsf3' ( uniform texture2DMS) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:31 Constant: 0:31 3 (const int) 0:32 textureFetch ( temp 4-component vector of float) 0:32 'g_tTex2dmsf4' ( uniform texture2DMS) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:32 Constant: 0:32 3 (const int) 0:34 Construct float ( temp float) 0:? texture ( temp 4-component vector of float) 0:34 Construct combined texture-sampler ( temp sampler2D) 0:34 'g_tTex2df1' ( uniform texture2D) 0:34 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:35 Construct vec2 ( temp 2-component vector of float) 0:? texture ( temp 4-component vector of float) 0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 'g_tTex2df2' ( uniform texture2D) 0:35 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:36 Construct vec3 ( temp 3-component vector of float) 0:? texture ( temp 4-component vector of float) 0:36 Construct combined texture-sampler ( temp sampler2D) 0:36 'g_tTex2df3' ( uniform texture2D) 0:36 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:37 texture ( temp 4-component vector of float) 0:37 Construct combined texture-sampler ( temp sampler2D) 0:37 'g_tTex2df4' ( uniform texture2D) 0:37 'g_sSamp' ( uniform sampler) 0:? Constant: 0:? 0.100000 0:? 0.200000 0:39 Branch: Return with expression 0:39 Constant: 0:39 0.000000 0:39 0.000000 0:39 0.000000 0:39 0.000000 0:15 Function Definition: main( ( temp void) 0:15 Function Parameters: 0:? Sequence 0:15 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:15 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'g_tTex2dmsf1' ( uniform texture2DMS) 0:? 'g_tTex2dmsf2' ( uniform texture2DMS) 0:? 'g_tTex2dmsf3' ( uniform texture2DMS) 0:? 'g_tTex2dmsf4' ( uniform texture2DMS) 0:? 'g_tTex2df1' ( uniform texture2D) 0:? 'g_tTex2df2' ( uniform texture2D) 0:? 'g_tTex2df3' ( uniform texture2D) 0:? 'g_tTex2df4' ( uniform texture2D) 0:? 'g_sSamp' ( uniform sampler) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 43(g_tTex2dmsf3) DescriptorSet 0 Decorate 43(g_tTex2dmsf3) Binding 0 Decorate 53(g_tTex2dmsf4) DescriptorSet 0 Decorate 53(g_tTex2dmsf4) Binding 0 Decorate 88(g_tTex2df1) DescriptorSet 0 Decorate 88(g_tTex2df1) Binding 0 Decorate 92(g_sSamp) DescriptorSet 0 Decorate 92(g_sSamp) Binding 0 Decorate 101(g_tTex2df2) DescriptorSet 0 Decorate 101(g_tTex2df2) Binding 0 Decorate 109(g_tTex2df3) DescriptorSet 0 Decorate 109(g_tTex2df3) Binding 0 Decorate 118(g_tTex2df4) DescriptorSet 0 Decorate 118(g_tTex2df4) Binding 0 Decorate 128(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeFunction 7(fvec4) 11: TypeInt 32 0 12: TypeVector 11(int) 2 13: TypePointer Function 12(ivec2) 15: TypeImage 6(float) 2D multi-sampled sampled format:Unknown 16: TypePointer UniformConstant 15 17(g_tTex2dmsf1): 16(ptr) Variable UniformConstant 20: TypePointer Function 11(int) 22: 11(int) Constant 0 26: 11(int) Constant 1 33(g_tTex2dmsf2): 16(ptr) Variable UniformConstant 43(g_tTex2dmsf3): 16(ptr) Variable UniformConstant 53(g_tTex2dmsf4): 16(ptr) Variable UniformConstant 63: TypeInt 32 1 64: TypeVector 63(int) 2 65: 63(int) Constant 1 66: 63(int) Constant 2 67: 64(ivec2) ConstantComposite 65 66 68: 63(int) Constant 3 73: TypeVector 6(float) 2 79: TypeVector 6(float) 3 86: TypeImage 6(float) 2D sampled format:Unknown 87: TypePointer UniformConstant 86 88(g_tTex2df1): 87(ptr) Variable UniformConstant 90: TypeSampler 91: TypePointer UniformConstant 90 92(g_sSamp): 91(ptr) Variable UniformConstant 94: TypeSampledImage 86 96: 6(float) Constant 1036831949 97: 6(float) Constant 1045220557 98: 73(fvec2) ConstantComposite 96 97 101(g_tTex2df2): 87(ptr) Variable UniformConstant 109(g_tTex2df3): 87(ptr) Variable UniformConstant 118(g_tTex2df4): 87(ptr) Variable UniformConstant 123: 6(float) Constant 0 124: 7(fvec4) ConstantComposite 123 123 123 123 127: TypePointer Output 7(fvec4) 128(@entryPointOutput): 127(ptr) Variable Output 4(main): 2 Function None 3 5: Label 129: 7(fvec4) FunctionCall 9(@main() Store 128(@entryPointOutput) 129 Return FunctionEnd 9(@main(): 7(fvec4) Function None 8 10: Label 14(sizeQueryTemp): 13(ptr) Variable Function 21(WidthU): 20(ptr) Variable Function 25(HeightU): 20(ptr) Variable Function 29(NumberOfSamplesU): 20(ptr) Variable Function 32(sizeQueryTemp): 13(ptr) Variable Function 42(sizeQueryTemp): 13(ptr) Variable Function 52(sizeQueryTemp): 13(ptr) Variable Function 18: 15 Load 17(g_tTex2dmsf1) 19: 12(ivec2) ImageQuerySize 18 Store 14(sizeQueryTemp) 19 23: 20(ptr) AccessChain 14(sizeQueryTemp) 22 24: 11(int) Load 23 Store 21(WidthU) 24 27: 20(ptr) AccessChain 14(sizeQueryTemp) 26 28: 11(int) Load 27 Store 25(HeightU) 28 30: 15 Load 17(g_tTex2dmsf1) 31: 11(int) ImageQuerySamples 30 Store 29(NumberOfSamplesU) 31 34: 15 Load 33(g_tTex2dmsf2) 35: 12(ivec2) ImageQuerySize 34 Store 32(sizeQueryTemp) 35 36: 20(ptr) AccessChain 32(sizeQueryTemp) 22 37: 11(int) Load 36 Store 21(WidthU) 37 38: 20(ptr) AccessChain 32(sizeQueryTemp) 26 39: 11(int) Load 38 Store 25(HeightU) 39 40: 15 Load 33(g_tTex2dmsf2) 41: 11(int) ImageQuerySamples 40 Store 29(NumberOfSamplesU) 41 44: 15 Load 43(g_tTex2dmsf3) 45: 12(ivec2) ImageQuerySize 44 Store 42(sizeQueryTemp) 45 46: 20(ptr) AccessChain 42(sizeQueryTemp) 22 47: 11(int) Load 46 Store 21(WidthU) 47 48: 20(ptr) AccessChain 42(sizeQueryTemp) 26 49: 11(int) Load 48 Store 25(HeightU) 49 50: 15 Load 43(g_tTex2dmsf3) 51: 11(int) ImageQuerySamples 50 Store 29(NumberOfSamplesU) 51 54: 15 Load 53(g_tTex2dmsf4) 55: 12(ivec2) ImageQuerySize 54 Store 52(sizeQueryTemp) 55 56: 20(ptr) AccessChain 52(sizeQueryTemp) 22 57: 11(int) Load 56 Store 21(WidthU) 57 58: 20(ptr) AccessChain 52(sizeQueryTemp) 26 59: 11(int) Load 58 Store 25(HeightU) 59 60: 15 Load 53(g_tTex2dmsf4) 61: 11(int) ImageQuerySamples 60 Store 29(NumberOfSamplesU) 61 62: 15 Load 17(g_tTex2dmsf1) 69: 7(fvec4) ImageFetch 62 67 Sample 68 70: 6(float) CompositeExtract 69 0 71: 15 Load 33(g_tTex2dmsf2) 72: 7(fvec4) ImageFetch 71 67 Sample 68 74: 6(float) CompositeExtract 72 0 75: 6(float) CompositeExtract 72 1 76: 73(fvec2) CompositeConstruct 74 75 77: 15 Load 43(g_tTex2dmsf3) 78: 7(fvec4) ImageFetch 77 67 Sample 68 80: 6(float) CompositeExtract 78 0 81: 6(float) CompositeExtract 78 1 82: 6(float) CompositeExtract 78 2 83: 79(fvec3) CompositeConstruct 80 81 82 84: 15 Load 53(g_tTex2dmsf4) 85: 7(fvec4) ImageFetch 84 67 Sample 68 89: 86 Load 88(g_tTex2df1) 93: 90 Load 92(g_sSamp) 95: 94 SampledImage 89 93 99: 7(fvec4) ImageSampleImplicitLod 95 98 100: 6(float) CompositeExtract 99 0 102: 86 Load 101(g_tTex2df2) 103: 90 Load 92(g_sSamp) 104: 94 SampledImage 102 103 105: 7(fvec4) ImageSampleImplicitLod 104 98 106: 6(float) CompositeExtract 105 0 107: 6(float) CompositeExtract 105 1 108: 73(fvec2) CompositeConstruct 106 107 110: 86 Load 109(g_tTex2df3) 111: 90 Load 92(g_sSamp) 112: 94 SampledImage 110 111 113: 7(fvec4) ImageSampleImplicitLod 112 98 114: 6(float) CompositeExtract 113 0 115: 6(float) CompositeExtract 113 1 116: 6(float) CompositeExtract 113 2 117: 79(fvec3) CompositeConstruct 114 115 116 119: 86 Load 118(g_tTex2df4) 120: 90 Load 92(g_sSamp) 121: 94 SampledImage 119 120 122: 7(fvec4) ImageSampleImplicitLod 121 98 ReturnValue 124 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.texturebuffer.frag.out000066400000000000000000000213771360464450000242310ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 32(pos) BuiltIn FragCoord Decorate 35(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) 13: TypeInt 32 1 14: TypeVector 13(int) 4 15(TextureBuffer_var): TypeStruct 7(fvec4) 14(ivec4) 16: TypePointer Uniform 15(TextureBuffer_var) 17(TextureBuffer_var): 16(ptr) Variable Uniform 18: 13(int) Constant 0 19: TypePointer Uniform 7(fvec4) 22(tbuf2): TypeStruct 7(fvec4) 14(ivec4) 23: TypePointer Uniform 22(tbuf2) 24: 23(ptr) Variable Uniform 31: TypePointer Input 7(fvec4) 32(pos): 31(ptr) Variable Input 34: TypePointer Output 7(fvec4) 35(@entryPointOutput): 34(ptr) Variable Output 4(main): 2 Function None 3 5: Label 30(pos): 8(ptr) Variable Function 36(param): 8(ptr) Variable Function 33: 7(fvec4) Load 32(pos) Store 30(pos) 33 37: 7(fvec4) Load 30(pos) Store 36(param) 37 38: 7(fvec4) FunctionCall 11(@main(vf4;) 36(param) Store 35(@entryPointOutput) 38 Return FunctionEnd 11(@main(vf4;): 7(fvec4) Function None 9 10(pos): 8(ptr) FunctionParameter 12: Label 20: 19(ptr) AccessChain 17(TextureBuffer_var) 18 21: 7(fvec4) Load 20 25: 19(ptr) AccessChain 24 18 26: 7(fvec4) Load 25 27: 7(fvec4) FAdd 21 26 ReturnValue 27 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.this.frag.out000066400000000000000000000420661360464450000223040ustar00rootroot00000000000000hlsl.this.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence 0:1 move second child to first child ( temp 2-component vector of float) 0:1 'var' ( global 2-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:6 Function Definition: type1::memFun1(vi3; ( temp int) 0:6 Function Parameters: 0:6 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:6 'var' ( in 3-component vector of int) 0:? Sequence 0:7 Branch: Return with expression 0:7 add ( temp int) 0:7 add ( temp int) 0:7 direct index ( temp int) 0:7 'var' ( in 3-component vector of int) 0:7 Constant: 0:7 2 (const int) 0:7 var: direct index for structure ( temp int) 0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:7 Constant: 0:7 1 (const int) 0:7 var2: direct index for structure ( temp int) 0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:7 Constant: 0:7 2 (const uint) 0:10 Function Definition: type1::memFun2(i1; ( temp int) 0:10 Function Parameters: 0:10 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:10 'a' ( in int) 0:? Sequence 0:11 Sequence 0:11 move second child to first child ( temp 3-component vector of int) 0:11 'var' ( temp 3-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:12 Branch: Return with expression 0:12 add ( temp int) 0:12 add ( temp int) 0:12 direct index ( temp int) 0:12 'var' ( temp 3-component vector of int) 0:12 Constant: 0:12 2 (const int) 0:12 Convert float to int ( temp int) 0:12 direct index ( temp float) 0:12 bar: direct index for structure ( temp 2-component vector of float) 0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:12 Constant: 0:12 0 (const uint) 0:12 Constant: 0:12 1 (const int) 0:12 var2: direct index for structure ( temp int) 0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:12 Constant: 0:12 2 (const int) 0:20 Function Definition: @main( ( temp 4-component vector of float) 0:20 Function Parameters: 0:? Sequence 0:22 move second child to first child ( temp 2-component vector of float) 0:22 bar: direct index for structure ( temp 2-component vector of float) 0:22 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:22 Constant: 0:22 0 (const int) 0:22 'var' ( global 2-component vector of float) 0:23 move second child to first child ( temp int) 0:23 var: direct index for structure ( temp int) 0:23 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:23 Constant: 0:23 1 (const int) 0:23 Constant: 0:23 7 (const int) 0:24 move second child to first child ( temp int) 0:24 var2: direct index for structure ( temp int) 0:24 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:24 Constant: 0:24 2 (const int) 0:24 Constant: 0:24 9 (const int) 0:25 Sequence 0:25 move second child to first child ( temp int) 0:25 'i' ( temp int) 0:25 Function Call: type1::memFun1(vi3; ( temp int) 0:25 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:? Constant: 0:? 10 (const int) 0:? 11 (const int) 0:? 12 (const int) 0:26 add second child into first child ( temp int) 0:26 'i' ( temp int) 0:26 Function Call: type1::memFun2(i1; ( temp int) 0:26 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:26 Constant: 0:26 17 (const int) 0:28 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:28 Convert int to float ( temp float) 0:28 'i' ( temp int) 0:28 Convert int to float ( temp float) 0:28 'i' ( temp int) 0:28 Convert int to float ( temp float) 0:28 'i' ( temp int) 0:28 Convert int to float ( temp float) 0:28 'i' ( temp int) 0:20 Function Definition: main( ( temp void) 0:20 Function Parameters: 0:? Sequence 0:20 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:20 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'var' ( global 2-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:1 Sequence 0:1 move second child to first child ( temp 2-component vector of float) 0:1 'var' ( global 2-component vector of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:6 Function Definition: type1::memFun1(vi3; ( temp int) 0:6 Function Parameters: 0:6 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:6 'var' ( in 3-component vector of int) 0:? Sequence 0:7 Branch: Return with expression 0:7 add ( temp int) 0:7 add ( temp int) 0:7 direct index ( temp int) 0:7 'var' ( in 3-component vector of int) 0:7 Constant: 0:7 2 (const int) 0:7 var: direct index for structure ( temp int) 0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:7 Constant: 0:7 1 (const int) 0:7 var2: direct index for structure ( temp int) 0:7 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:7 Constant: 0:7 2 (const uint) 0:10 Function Definition: type1::memFun2(i1; ( temp int) 0:10 Function Parameters: 0:10 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:10 'a' ( in int) 0:? Sequence 0:11 Sequence 0:11 move second child to first child ( temp 3-component vector of int) 0:11 'var' ( temp 3-component vector of int) 0:? Constant: 0:? 1 (const int) 0:? 2 (const int) 0:? 3 (const int) 0:12 Branch: Return with expression 0:12 add ( temp int) 0:12 add ( temp int) 0:12 direct index ( temp int) 0:12 'var' ( temp 3-component vector of int) 0:12 Constant: 0:12 2 (const int) 0:12 Convert float to int ( temp int) 0:12 direct index ( temp float) 0:12 bar: direct index for structure ( temp 2-component vector of float) 0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:12 Constant: 0:12 0 (const uint) 0:12 Constant: 0:12 1 (const int) 0:12 var2: direct index for structure ( temp int) 0:12 '@this' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:12 Constant: 0:12 2 (const int) 0:20 Function Definition: @main( ( temp 4-component vector of float) 0:20 Function Parameters: 0:? Sequence 0:22 move second child to first child ( temp 2-component vector of float) 0:22 bar: direct index for structure ( temp 2-component vector of float) 0:22 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:22 Constant: 0:22 0 (const int) 0:22 'var' ( global 2-component vector of float) 0:23 move second child to first child ( temp int) 0:23 var: direct index for structure ( temp int) 0:23 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:23 Constant: 0:23 1 (const int) 0:23 Constant: 0:23 7 (const int) 0:24 move second child to first child ( temp int) 0:24 var2: direct index for structure ( temp int) 0:24 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:24 Constant: 0:24 2 (const int) 0:24 Constant: 0:24 9 (const int) 0:25 Sequence 0:25 move second child to first child ( temp int) 0:25 'i' ( temp int) 0:25 Function Call: type1::memFun1(vi3; ( temp int) 0:25 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:? Constant: 0:? 10 (const int) 0:? 11 (const int) 0:? 12 (const int) 0:26 add second child into first child ( temp int) 0:26 'i' ( temp int) 0:26 Function Call: type1::memFun2(i1; ( temp int) 0:26 'T' ( temp structure{ temp 2-component vector of float bar, temp int var, temp int var2}) 0:26 Constant: 0:26 17 (const int) 0:28 Branch: Return with expression 0:? Construct vec4 ( temp 4-component vector of float) 0:28 Convert int to float ( temp float) 0:28 'i' ( temp int) 0:28 Convert int to float ( temp float) 0:28 'i' ( temp int) 0:28 Convert int to float ( temp float) 0:28 'i' ( temp int) 0:28 Convert int to float ( temp float) 0:28 'i' ( temp int) 0:20 Function Definition: main( ( temp void) 0:20 Function Parameters: 0:? Sequence 0:20 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:20 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'var' ( global 2-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.tristream-append.geom.out000066400000000000000000000230601360464450000246150ustar00rootroot00000000000000hlsl.tristream-append.geom Shader version: 500 invocations = -1 max_vertices = 3 input primitive = triangles output primitive = triangle_strip 0:? Sequence 0:8 Function Definition: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) 0:8 Function Parameters: 0:8 'output' ( in structure{}) 0:8 'TriStream' ( out structure{}) 0:? Sequence 0:9 Sequence 0:9 Sequence 0:9 move second child to first child ( temp structure{}) 0:9 'TriStream' ( out structure{}) 0:9 'output' ( in structure{}) 0:9 EmitVertex ( temp void) 0:14 Function Definition: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) 0:14 Function Parameters: 0:14 'input' ( in 3-element array of structure{}) 0:14 'TriStream' ( out structure{}) 0:? Sequence 0:15 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) 0:15 direct index ( temp structure{}) 0:15 'input' ( in 3-element array of structure{}) 0:15 Constant: 0:15 0 (const int) 0:15 'TriStream' ( out structure{}) 0:16 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) 0:16 direct index ( temp structure{}) 0:16 'input' ( in 3-element array of structure{}) 0:16 Constant: 0:16 1 (const int) 0:16 'TriStream' ( out structure{}) 0:17 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) 0:17 direct index ( temp structure{}) 0:17 'input' ( in 3-element array of structure{}) 0:17 Constant: 0:17 2 (const int) 0:17 'TriStream' ( out structure{}) 0:14 Function Definition: main( ( temp void) 0:14 Function Parameters: 0:? Sequence 0:14 move second child to first child ( temp 3-element array of structure{}) 0:? 'input' ( temp 3-element array of structure{}) 0:? 'input' ( in 3-element array of structure{}) 0:14 Function Call: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) 0:? 'input' ( temp 3-element array of structure{}) 0:? 'TriStream' ( temp structure{}) 0:? Linker Objects Linked geometry stage: Shader version: 500 invocations = 1 max_vertices = 3 input primitive = triangles output primitive = triangle_strip 0:? Sequence 0:8 Function Definition: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) 0:8 Function Parameters: 0:8 'output' ( in structure{}) 0:8 'TriStream' ( out structure{}) 0:? Sequence 0:9 Sequence 0:9 Sequence 0:9 move second child to first child ( temp structure{}) 0:9 'TriStream' ( out structure{}) 0:9 'output' ( in structure{}) 0:9 EmitVertex ( temp void) 0:14 Function Definition: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) 0:14 Function Parameters: 0:14 'input' ( in 3-element array of structure{}) 0:14 'TriStream' ( out structure{}) 0:? Sequence 0:15 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) 0:15 direct index ( temp structure{}) 0:15 'input' ( in 3-element array of structure{}) 0:15 Constant: 0:15 0 (const int) 0:15 'TriStream' ( out structure{}) 0:16 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) 0:16 direct index ( temp structure{}) 0:16 'input' ( in 3-element array of structure{}) 0:16 Constant: 0:16 1 (const int) 0:16 'TriStream' ( out structure{}) 0:17 Function Call: EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1; ( temp void) 0:17 direct index ( temp structure{}) 0:17 'input' ( in 3-element array of structure{}) 0:17 Constant: 0:17 2 (const int) 0:17 'TriStream' ( out structure{}) 0:14 Function Definition: main( ( temp void) 0:14 Function Parameters: 0:? Sequence 0:14 move second child to first child ( temp 3-element array of structure{}) 0:? 'input' ( temp 3-element array of structure{}) 0:? 'input' ( in 3-element array of structure{}) 0:14 Function Call: @main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1; ( temp void) 0:? 'input' ( temp 3-element array of structure{}) 0:? 'TriStream' ( temp structure{}) 0:? Linker Objects Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 57 Capability Geometry 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Geometry 4 "main" ExecutionMode 4 Triangles ExecutionMode 4 Invocations 1 ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputVertices 3 Source HLSL 500 Name 4 "main" Name 6 "GSPS_INPUT" Name 11 "EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;" Name 9 "output" Name 10 "TriStream" Name 20 "@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;" Name 18 "input" Name 19 "TriStream" Name 23 "TriStream" Name 27 "param" Name 30 "param" Name 34 "param" Name 37 "param" Name 41 "param" Name 44 "param" Name 47 "input" Name 49 "input" Name 51 "TriStream" Name 52 "param" Name 54 "param" 2: TypeVoid 3: TypeFunction 2 6(GSPS_INPUT): TypeStruct 7: TypePointer Function 6(GSPS_INPUT) 8: TypeFunction 2 7(ptr) 7(ptr) 13: TypeInt 32 0 14: 13(int) Constant 3 15: TypeArray 6(GSPS_INPUT) 14 16: TypePointer Function 15 17: TypeFunction 2 16(ptr) 7(ptr) 22: TypePointer Output 6(GSPS_INPUT) 23(TriStream): 22(ptr) Variable Output 25: TypeInt 32 1 26: 25(int) Constant 0 33: 25(int) Constant 1 40: 25(int) Constant 2 48: TypePointer Input 15 49(input): 48(ptr) Variable Input 4(main): 2 Function None 3 5: Label 47(input): 16(ptr) Variable Function 51(TriStream): 7(ptr) Variable Function 52(param): 16(ptr) Variable Function 54(param): 7(ptr) Variable Function 50: 15 Load 49(input) Store 47(input) 50 53: 15 Load 47(input) Store 52(param) 53 55: 2 FunctionCall 20(@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;) 52(param) 54(param) 56:6(GSPS_INPUT) Load 54(param) Store 51(TriStream) 56 Return FunctionEnd 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;): 2 Function None 8 9(output): 7(ptr) FunctionParameter 10(TriStream): 7(ptr) FunctionParameter 12: Label 24:6(GSPS_INPUT) Load 9(output) Store 23(TriStream) 24 EmitVertex Return FunctionEnd 20(@main(struct-GSPS_INPUT1[3];struct-GSPS_INPUT1;): 2 Function None 17 18(input): 16(ptr) FunctionParameter 19(TriStream): 7(ptr) FunctionParameter 21: Label 27(param): 7(ptr) Variable Function 30(param): 7(ptr) Variable Function 34(param): 7(ptr) Variable Function 37(param): 7(ptr) Variable Function 41(param): 7(ptr) Variable Function 44(param): 7(ptr) Variable Function 28: 7(ptr) AccessChain 18(input) 26 29:6(GSPS_INPUT) Load 28 Store 27(param) 29 31: 2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 27(param) 30(param) 32:6(GSPS_INPUT) Load 30(param) Store 19(TriStream) 32 35: 7(ptr) AccessChain 18(input) 33 36:6(GSPS_INPUT) Load 35 Store 34(param) 36 38: 2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 34(param) 37(param) 39:6(GSPS_INPUT) Load 37(param) Store 19(TriStream) 39 42: 7(ptr) AccessChain 18(input) 40 43:6(GSPS_INPUT) Load 42 Store 41(param) 43 45: 2 FunctionCall 11(EmitVertex(struct-GSPS_INPUT1;struct-GSPS_INPUT1;) 41(param) 44(param) 46:6(GSPS_INPUT) Load 44(param) Store 19(TriStream) 46 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.tx.bracket.frag.out000066400000000000000000001266141360464450000234040ustar00rootroot00000000000000hlsl.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): 80008 // 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 0 Decorate 57(g_tTex1df4) DescriptorSet 0 Decorate 57(g_tTex1df4) Binding 0 Decorate 72(g_tTex1di4) DescriptorSet 0 Decorate 72(g_tTex1di4) Binding 0 Decorate 80(g_tTex1du4) DescriptorSet 0 Decorate 80(g_tTex1du4) Binding 0 Decorate 88(g_tTex2df4) DescriptorSet 0 Decorate 88(g_tTex2df4) Binding 0 Decorate 98(g_tTex2di4) DescriptorSet 0 Decorate 98(g_tTex2di4) Binding 0 Decorate 106(g_tTex2du4) DescriptorSet 0 Decorate 106(g_tTex2du4) Binding 0 Decorate 114(g_tTex3df4) DescriptorSet 0 Decorate 114(g_tTex3df4) Binding 0 Decorate 124(g_tTex3di4) DescriptorSet 0 Decorate 124(g_tTex3di4) Binding 0 Decorate 132(g_tTex3du4) DescriptorSet 0 Decorate 132(g_tTex3du4) Binding 0 Decorate 164(@entryPointOutput.Color) Location 0 Decorate 169(g_sSamp) DescriptorSet 0 Decorate 169(g_sSamp) Binding 0 Decorate 172(g_tTex1df4a) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/hlsl.tx.overload.frag.out000066400000000000000000000253261360464450000236020ustar00rootroot00000000000000hlsl.tx.overload.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: Func(t211; ( temp float) 0:8 Function Parameters: 0:8 'DummyTex' ( in texture2D) 0:? Sequence 0:8 Branch: Return with expression 0:8 Constant: 0:8 1.000000 0:9 Function Definition: Func(t21; ( temp 4-component vector of float) 0:9 Function Parameters: 0:9 'DummyTex' ( in texture2D) 0:? Sequence 0:9 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:11 Function Definition: Func(I211; ( temp float) 0:11 Function Parameters: 0:11 'DummyTex' (layout( r32f) in image2D) 0:? Sequence 0:11 Branch: Return with expression 0:11 Constant: 0:11 1.000000 0:12 Function Definition: Func(I21; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'DummyTex' (layout( rgba32f) in image2D) 0:? Sequence 0:12 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:15 Function Definition: @main( ( temp 4-component vector of float) 0:15 Function Parameters: 0:? Sequence 0:16 Branch: Return with expression 0:16 add ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 Function Call: Func(t211; ( temp float) 0:16 'tf1' ( uniform texture2D) 0:16 Function Call: Func(t21; ( temp 4-component vector of float) 0:16 'tf4' ( uniform texture2D) 0:16 Function Call: Func(I211; ( temp float) 0:16 'twf1' (layout( r32f) uniform image2D) 0:16 Function Call: Func(I21; ( temp 4-component vector of float) 0:16 'twf4' (layout( rgba32f) uniform image2D) 0:15 Function Definition: main( ( temp void) 0:15 Function Parameters: 0:? Sequence 0:15 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:15 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'tf1' ( uniform texture2D) 0:? 'tf4' ( uniform texture2D) 0:? 'twf1' (layout( r32f) uniform image2D) 0:? 'twf4' (layout( rgba32f) uniform image2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: Func(t211; ( temp float) 0:8 Function Parameters: 0:8 'DummyTex' ( in texture2D) 0:? Sequence 0:8 Branch: Return with expression 0:8 Constant: 0:8 1.000000 0:9 Function Definition: Func(t21; ( temp 4-component vector of float) 0:9 Function Parameters: 0:9 'DummyTex' ( in texture2D) 0:? Sequence 0:9 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:11 Function Definition: Func(I211; ( temp float) 0:11 Function Parameters: 0:11 'DummyTex' (layout( r32f) in image2D) 0:? Sequence 0:11 Branch: Return with expression 0:11 Constant: 0:11 1.000000 0:12 Function Definition: Func(I21; ( temp 4-component vector of float) 0:12 Function Parameters: 0:12 'DummyTex' (layout( rgba32f) in image2D) 0:? Sequence 0:12 Branch: Return with expression 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:15 Function Definition: @main( ( temp 4-component vector of float) 0:15 Function Parameters: 0:? Sequence 0:16 Branch: Return with expression 0:16 add ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 add ( temp 4-component vector of float) 0:16 Function Call: Func(t211; ( temp float) 0:16 'tf1' ( uniform texture2D) 0:16 Function Call: Func(t21; ( temp 4-component vector of float) 0:16 'tf4' ( uniform texture2D) 0:16 Function Call: Func(I211; ( temp float) 0:16 'twf1' (layout( r32f) uniform image2D) 0:16 Function Call: Func(I21; ( temp 4-component vector of float) 0:16 'twf4' (layout( rgba32f) uniform image2D) 0:15 Function Definition: main( ( temp void) 0:15 Function Parameters: 0:? Sequence 0:15 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:15 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? 'tf1' ( uniform texture2D) 0:? 'tf4' ( uniform texture2D) 0:? 'twf1' (layout( r32f) uniform image2D) 0:? 'twf4' (layout( rgba32f) uniform image2D) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 56(twf1) DescriptorSet 0 Decorate 56(twf1) Binding 0 Decorate 63(twf4) DescriptorSet 0 Decorate 63(twf4) Binding 0 Decorate 71(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeImage 6(float) 2D sampled format:Unknown 8: TypePointer Function 7 9: TypeFunction 6(float) 8(ptr) 13: TypeVector 6(float) 4 14: TypeFunction 13(fvec4) 8(ptr) 18: TypeImage 6(float) 2D nonsampled format:R32f 19: TypePointer Function 18 20: TypeFunction 6(float) 19(ptr) 24: TypeImage 6(float) 2D nonsampled format:Rgba32f 25: TypePointer Function 24 26: TypeFunction 13(fvec4) 25(ptr) 30: TypeFunction 13(fvec4) 33: 6(float) Constant 1065353216 36: 6(float) Constant 0 37: 13(fvec4) ConstantComposite 36 36 36 36 44: TypePointer UniformConstant 7 45(tf1): 44(ptr) Variable UniformConstant 49(tf4): 44(ptr) Variable UniformConstant 55: TypePointer UniformConstant 18 56(twf1): 55(ptr) Variable UniformConstant 62: TypePointer UniformConstant 24 63(twf4): 62(ptr) Variable UniformConstant 70: TypePointer Output 13(fvec4) 71(@entryPointOutput): 70(ptr) Variable Output 4(main): 2 Function None 3 5: Label 72: 13(fvec4) FunctionCall 31(@main() Store 71(@entryPointOutput) 72 Return FunctionEnd 11(Func(t211;): 6(float) Function None 9 10(DummyTex): 8(ptr) FunctionParameter 12: Label ReturnValue 33 FunctionEnd 16(Func(t21;): 13(fvec4) Function None 14 15(DummyTex): 8(ptr) FunctionParameter 17: Label ReturnValue 37 FunctionEnd 22(Func(I211;): 6(float) Function None 20 21(DummyTex): 19(ptr) FunctionParameter 23: Label ReturnValue 33 FunctionEnd 28(Func(I21;): 13(fvec4) Function None 26 27(DummyTex): 25(ptr) FunctionParameter 29: Label ReturnValue 37 FunctionEnd 31(@main(): 13(fvec4) Function None 30 32: Label 46(param): 8(ptr) Variable Function 50(param): 8(ptr) Variable Function 57(param): 19(ptr) Variable Function 64(param): 25(ptr) Variable Function 47: 7 Load 45(tf1) Store 46(param) 47 48: 6(float) FunctionCall 11(Func(t211;) 46(param) 51: 7 Load 49(tf4) Store 50(param) 51 52: 13(fvec4) FunctionCall 16(Func(t21;) 50(param) 53: 13(fvec4) CompositeConstruct 48 48 48 48 54: 13(fvec4) FAdd 53 52 58: 18 Load 56(twf1) Store 57(param) 58 59: 6(float) FunctionCall 22(Func(I211;) 57(param) 60: 13(fvec4) CompositeConstruct 59 59 59 59 61: 13(fvec4) FAdd 54 60 65: 24 Load 63(twf4) Store 64(param) 65 66: 13(fvec4) FunctionCall 28(Func(I21;) 64(param) 67: 13(fvec4) FAdd 61 66 ReturnValue 67 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.type.half.frag.out000066400000000000000000000240141360464450000232200ustar00rootroot00000000000000hlsl.type.half.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: @main( ( temp 4-component vector of float) 0:3 Function Parameters: 0:? Sequence 0:4 Sequence 0:4 move second child to first child ( temp float) 0:4 'h0' ( temp float) 0:4 Constant: 0:4 0.000000 0:5 Sequence 0:5 move second child to first child ( temp 1-component vector of float) 0:5 'h1' ( temp 1-component vector of float) 0:5 Constant: 0:5 1.000000 0:6 Sequence 0:6 move second child to first child ( temp 2-component vector of float) 0:6 'h2' ( temp 2-component vector of float) 0:6 Constant: 0:6 2.000000 0:6 2.000000 0:7 Sequence 0:7 move second child to first child ( temp 3-component vector of float) 0:7 'h3' ( temp 3-component vector of float) 0:7 Constant: 0:7 3.000000 0:7 3.000000 0:7 3.000000 0:8 Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:8 'h4' ( temp 4-component vector of float) 0:8 Constant: 0:8 4.000000 0:8 4.000000 0:8 4.000000 0:8 4.000000 0:15 Sequence 0:15 move second child to first child ( temp 2X2 matrix of float) 0:15 'h22' ( temp 2X2 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:16 Sequence 0:16 move second child to first child ( temp 2X3 matrix of float) 0:16 'h23' ( temp 2X3 matrix of float) 0:16 Constant: 0:16 4.900000 0:16 4.900000 0:16 4.900000 0:16 4.900000 0:16 4.900000 0:16 4.900000 0:27 Branch: Return with expression 0:27 Construct vec4 ( temp 4-component vector of float) 0:27 add ( temp float) 0:27 add ( temp float) 0:27 direct index ( temp float) 0:27 direct index ( temp 3-component vector of float) 0:27 'h23' ( temp 2X3 matrix of float) 0:27 Constant: 0:27 0 (const int) 0:27 Constant: 0:27 0 (const int) 0:27 direct index ( temp float) 0:27 'h4' ( temp 4-component vector of float) 0:27 Constant: 0:27 1 (const int) 0:27 'h0' ( temp float) 0:3 Function Definition: main( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:3 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:3 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:3 Function Definition: @main( ( temp 4-component vector of float) 0:3 Function Parameters: 0:? Sequence 0:4 Sequence 0:4 move second child to first child ( temp float) 0:4 'h0' ( temp float) 0:4 Constant: 0:4 0.000000 0:5 Sequence 0:5 move second child to first child ( temp 1-component vector of float) 0:5 'h1' ( temp 1-component vector of float) 0:5 Constant: 0:5 1.000000 0:6 Sequence 0:6 move second child to first child ( temp 2-component vector of float) 0:6 'h2' ( temp 2-component vector of float) 0:6 Constant: 0:6 2.000000 0:6 2.000000 0:7 Sequence 0:7 move second child to first child ( temp 3-component vector of float) 0:7 'h3' ( temp 3-component vector of float) 0:7 Constant: 0:7 3.000000 0:7 3.000000 0:7 3.000000 0:8 Sequence 0:8 move second child to first child ( temp 4-component vector of float) 0:8 'h4' ( temp 4-component vector of float) 0:8 Constant: 0:8 4.000000 0:8 4.000000 0:8 4.000000 0:8 4.000000 0:15 Sequence 0:15 move second child to first child ( temp 2X2 matrix of float) 0:15 'h22' ( temp 2X2 matrix of float) 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:16 Sequence 0:16 move second child to first child ( temp 2X3 matrix of float) 0:16 'h23' ( temp 2X3 matrix of float) 0:16 Constant: 0:16 4.900000 0:16 4.900000 0:16 4.900000 0:16 4.900000 0:16 4.900000 0:16 4.900000 0:27 Branch: Return with expression 0:27 Construct vec4 ( temp 4-component vector of float) 0:27 add ( temp float) 0:27 add ( temp float) 0:27 direct index ( temp float) 0:27 direct index ( temp 3-component vector of float) 0:27 'h23' ( temp 2X3 matrix of float) 0:27 Constant: 0:27 0 (const int) 0:27 Constant: 0:27 0 (const int) 0:27 direct index ( temp float) 0:27 'h4' ( temp 4-component vector of float) 0:27 Constant: 0:27 1 (const int) 0:27 'h0' ( temp float) 0:3 Function Definition: main( ( temp void) 0:3 Function Parameters: 0:? Sequence 0:3 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:3 Function Call: @main( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.type.identifier.frag.out000066400000000000000000000456501360464450000244410ustar00rootroot00000000000000hlsl.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): 80008 // Id's are bound by 105 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 103 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 10 "fn(f1;" Name 9 "float" Name 14 "@main(" Name 19 "float" Name 26 "bool" Name 35 "int" Name 43 "uint" Name 49 "min16float" Name 52 "min10float" Name 54 "half" Name 56 "foo_t" MemberName 56(foo_t) 0 "float" Name 58 "float" Name 82 "param" Name 89 "half2x3" Name 103 "@entryPointOutput" Decorate 49(min16float) RelaxedPrecision Decorate 50 RelaxedPrecision Decorate 51 RelaxedPrecision Decorate 52(min10float) RelaxedPrecision Decorate 53 RelaxedPrecision Decorate 64 RelaxedPrecision Decorate 65 RelaxedPrecision Decorate 66 RelaxedPrecision Decorate 67 RelaxedPrecision Decorate 68 RelaxedPrecision Decorate 69 RelaxedPrecision Decorate 70 RelaxedPrecision Decorate 71 RelaxedPrecision Decorate 72 RelaxedPrecision Decorate 73 RelaxedPrecision Decorate 74 RelaxedPrecision Decorate 77 RelaxedPrecision Decorate 78 RelaxedPrecision Decorate 79 RelaxedPrecision Decorate 81 RelaxedPrecision Decorate 83 RelaxedPrecision Decorate 84 RelaxedPrecision Decorate 85 RelaxedPrecision Decorate 103(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeFunction 6(float) 7(ptr) 12: TypeVector 6(float) 4 13: TypeFunction 12(fvec4) 20: 6(float) Constant 1088421888 21: TypeBool 22: TypeInt 32 0 23: 22(int) Constant 2 24: TypeArray 21(bool) 23 25: TypePointer Function 24 28: 6(float) Constant 0 33: TypeInt 32 1 34: TypePointer Function 33(int) 36: 33(int) Constant 1 37: TypePointer Function 21(bool) 40: 33(int) Constant 0 42: TypePointer Function 22(int) 55: 6(float) Constant 1056964608 56(foo_t): TypeStruct 6(float) 57: TypePointer Function 56(foo_t) 59: 6(float) Constant 1109917696 86: TypeVector 6(float) 3 87: TypeMatrix 86(fvec3) 2 88: TypePointer Function 87 93: 22(int) Constant 0 102: TypePointer Output 12(fvec4) 103(@entryPointOutput): 102(ptr) Variable Output 4(main): 2 Function None 3 5: Label 104: 12(fvec4) FunctionCall 14(@main() Store 103(@entryPointOutput) 104 Return FunctionEnd 10(fn(f1;): 6(float) Function None 8 9(float): 7(ptr) FunctionParameter 11: Label 16: 6(float) Load 9(float) ReturnValue 16 FunctionEnd 14(@main(): 12(fvec4) Function None 13 15: Label 19(float): 7(ptr) Variable Function 26(bool): 25(ptr) Variable Function 35(int): 34(ptr) Variable Function 43(uint): 42(ptr) Variable Function 49(min16float): 7(ptr) Variable Function 52(min10float): 7(ptr) Variable Function 54(half): 7(ptr) Variable Function 58(float): 57(ptr) Variable Function 82(param): 7(ptr) Variable Function 89(half2x3): 88(ptr) Variable Function Store 19(float) 20 27: 6(float) Load 19(float) 29: 21(bool) FOrdNotEqual 27 28 30: 6(float) Load 19(float) 31: 21(bool) FOrdNotEqual 30 28 32: 24 CompositeConstruct 29 31 Store 26(bool) 32 38: 37(ptr) AccessChain 26(bool) 36 39: 21(bool) Load 38 41: 33(int) Select 39 36 40 Store 35(int) 41 44: 6(float) Load 19(float) 45: 33(int) Load 35(int) 46: 6(float) ConvertSToF 45 47: 6(float) FAdd 44 46 48: 22(int) ConvertFToU 47 Store 43(uint) 48 50: 22(int) Load 43(uint) 51: 6(float) ConvertUToF 50 Store 49(min16float) 51 53: 6(float) Load 49(min16float) Store 52(min10float) 53 Store 54(half) 55 60: 7(ptr) AccessChain 58(float) 40 Store 60 59 61: 37(ptr) AccessChain 26(bool) 36 62: 21(bool) Load 61 63: 37(ptr) AccessChain 26(bool) 40 Store 63 62 64: 6(float) Load 19(float) 65: 33(int) Load 35(int) 66: 6(float) ConvertSToF 65 67: 6(float) FAdd 64 66 68: 22(int) Load 43(uint) 69: 6(float) ConvertUToF 68 70: 6(float) FAdd 67 69 71: 6(float) Load 49(min16float) 72: 6(float) FAdd 70 71 73: 6(float) Load 52(min10float) 74: 6(float) FAdd 72 73 75: 37(ptr) AccessChain 26(bool) 40 76: 21(bool) Load 75 77: 33(int) Load 35(int) 78: 6(float) ConvertSToF 77 79: 6(float) Load 19(float) 80: 6(float) Select 76 78 79 81: 6(float) FAdd 74 80 83: 6(float) Load 19(float) Store 82(param) 83 84: 6(float) FunctionCall 10(fn(f1;) 82(param) 85: 6(float) FAdd 81 84 Store 19(float) 85 90: 6(float) Load 19(float) 91: 6(float) Load 19(float) 92: 6(float) FMul 90 91 94: 7(ptr) AccessChain 89(half2x3) 40 93 Store 94 92 95: 6(float) Load 19(float) 96: 7(ptr) AccessChain 89(half2x3) 40 93 97: 6(float) Load 96 98: 6(float) FAdd 95 97 99: 12(fvec4) CompositeConstruct 98 98 98 98 ReturnValue 99 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.type.type.conversion.all.frag.out000066400000000000000000001513311360464450000262250ustar00rootroot00000000000000hlsl.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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:46 Sequence 0:46 move second child to first child ( temp float) 0:46 'var1' ( temp float) 0:? Constant: 0:? 0.000000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'var2' ( temp float) 0:? Constant: 0:? 0.000000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'var3' ( temp float) 0:? Constant: 0:? 0.000000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'var4' ( temp float) 0:? Constant: 0:? 0.000000 0:50 Sequence 0:50 move second child to first child ( temp float) 0:50 'var5' ( temp float) 0:? Constant: 0:? 0.000000 0:51 Sequence 0:51 move second child to first child ( temp float) 0:51 'var6' ( temp float) 0:? Constant: 0:? 0.000000 0:52 Sequence 0:52 move second child to first child ( temp float) 0:52 'var7' ( temp float) 0:? Constant: 0:? 0.000000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'var8' ( temp float) 0:? Constant: 0:? 0.000000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'var9' ( temp float) 0:? Constant: 0:? 0.000000 0:55 Sequence 0:55 move second child to first child ( temp float) 0:55 'var10' ( temp float) 0:? Constant: 0:? 0.000000 0:56 Sequence 0:56 move second child to first child ( temp float) 0:56 'var11' ( temp float) 0:? Constant: 0:? 0.000000 0:57 Sequence 0:57 move second child to first child ( temp float) 0:57 'var12' ( temp float) 0:? Constant: 0:? 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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:75 Sequence 0:75 move second child to first child ( temp 2X4 matrix of float) 0:75 'var90' ( temp 2X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:76 Sequence 0:76 move second child to first child ( temp 3X2 matrix of float) 0:76 'var99' ( temp 3X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:82 Sequence 0:82 move second child to first child ( temp 3X3 matrix of float) 0:82 'var115' ( temp 3X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:83 Sequence 0:83 move second child to first child ( temp 3X3 matrix of float) 0:83 'var116' ( temp 3X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:84 Sequence 0:84 move second child to first child ( temp 3X4 matrix of float) 0:84 'var129' ( temp 3X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:85 Sequence 0:85 move second child to first child ( temp 4X2 matrix of float) 0:85 'var141' ( temp 4X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:86 Sequence 0:86 move second child to first child ( temp 4X2 matrix of float) 0:86 'var142' ( temp 4X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:87 Sequence 0:87 move second child to first child ( temp 4X3 matrix of float) 0:87 'var155' ( temp 4X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:46 Sequence 0:46 move second child to first child ( temp float) 0:46 'var1' ( temp float) 0:? Constant: 0:? 0.000000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'var2' ( temp float) 0:? Constant: 0:? 0.000000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'var3' ( temp float) 0:? Constant: 0:? 0.000000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'var4' ( temp float) 0:? Constant: 0:? 0.000000 0:50 Sequence 0:50 move second child to first child ( temp float) 0:50 'var5' ( temp float) 0:? Constant: 0:? 0.000000 0:51 Sequence 0:51 move second child to first child ( temp float) 0:51 'var6' ( temp float) 0:? Constant: 0:? 0.000000 0:52 Sequence 0:52 move second child to first child ( temp float) 0:52 'var7' ( temp float) 0:? Constant: 0:? 0.000000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'var8' ( temp float) 0:? Constant: 0:? 0.000000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'var9' ( temp float) 0:? Constant: 0:? 0.000000 0:55 Sequence 0:55 move second child to first child ( temp float) 0:55 'var10' ( temp float) 0:? Constant: 0:? 0.000000 0:56 Sequence 0:56 move second child to first child ( temp float) 0:56 'var11' ( temp float) 0:? Constant: 0:? 0.000000 0:57 Sequence 0:57 move second child to first child ( temp float) 0:57 'var12' ( temp float) 0:? Constant: 0:? 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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:75 Sequence 0:75 move second child to first child ( temp 2X4 matrix of float) 0:75 'var90' ( temp 2X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:76 Sequence 0:76 move second child to first child ( temp 3X2 matrix of float) 0:76 'var99' ( temp 3X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:82 Sequence 0:82 move second child to first child ( temp 3X3 matrix of float) 0:82 'var115' ( temp 3X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:83 Sequence 0:83 move second child to first child ( temp 3X3 matrix of float) 0:83 'var116' ( temp 3X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:84 Sequence 0:84 move second child to first child ( temp 3X4 matrix of float) 0:84 'var129' ( temp 3X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:85 Sequence 0:85 move second child to first child ( temp 4X2 matrix of float) 0:85 'var141' ( temp 4X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:86 Sequence 0:86 move second child to first child ( temp 4X2 matrix of float) 0:86 'var142' ( temp 4X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:87 Sequence 0:87 move second child to first child ( temp 4X3 matrix of float) 0:87 'var155' ( temp 4X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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 glslang-8.13.3559/Test/baseResults/hlsl.type.type.conversion.valid.frag.out000066400000000000000000001566421360464450000265660ustar00rootroot00000000000000hlsl.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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:46 Sequence 0:46 move second child to first child ( temp float) 0:46 'var1' ( temp float) 0:? Constant: 0:? 0.000000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'var2' ( temp float) 0:? Constant: 0:? 0.000000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'var3' ( temp float) 0:? Constant: 0:? 0.000000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'var4' ( temp float) 0:? Constant: 0:? 0.000000 0:50 Sequence 0:50 move second child to first child ( temp float) 0:50 'var5' ( temp float) 0:? Constant: 0:? 0.000000 0:51 Sequence 0:51 move second child to first child ( temp float) 0:51 'var6' ( temp float) 0:? Constant: 0:? 0.000000 0:52 Sequence 0:52 move second child to first child ( temp float) 0:52 'var7' ( temp float) 0:? Constant: 0:? 0.000000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'var8' ( temp float) 0:? Constant: 0:? 0.000000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'var9' ( temp float) 0:? Constant: 0:? 0.000000 0:55 Sequence 0:55 move second child to first child ( temp float) 0:55 'var10' ( temp float) 0:? Constant: 0:? 0.000000 0:56 Sequence 0:56 move second child to first child ( temp float) 0:56 'var11' ( temp float) 0:? Constant: 0:? 0.000000 0:57 Sequence 0:57 move second child to first child ( temp float) 0:57 'var12' ( temp float) 0:? Constant: 0:? 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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:75 Sequence 0:75 move second child to first child ( temp 2X4 matrix of float) 0:75 'var90' ( temp 2X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:76 Sequence 0:76 move second child to first child ( temp 3X2 matrix of float) 0:76 'var99' ( temp 3X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:82 Sequence 0:82 move second child to first child ( temp 3X3 matrix of float) 0:82 'var115' ( temp 3X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:83 Sequence 0:83 move second child to first child ( temp 3X3 matrix of float) 0:83 'var116' ( temp 3X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:84 Sequence 0:84 move second child to first child ( temp 3X4 matrix of float) 0:84 'var129' ( temp 3X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:85 Sequence 0:85 move second child to first child ( temp 4X2 matrix of float) 0:85 'var141' ( temp 4X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:86 Sequence 0:86 move second child to first child ( temp 4X2 matrix of float) 0:86 'var142' ( temp 4X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:87 Sequence 0:87 move second child to first child ( temp 4X3 matrix of float) 0:87 'var155' ( temp 4X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:46 Sequence 0:46 move second child to first child ( temp float) 0:46 'var1' ( temp float) 0:? Constant: 0:? 0.000000 0:47 Sequence 0:47 move second child to first child ( temp float) 0:47 'var2' ( temp float) 0:? Constant: 0:? 0.000000 0:48 Sequence 0:48 move second child to first child ( temp float) 0:48 'var3' ( temp float) 0:? Constant: 0:? 0.000000 0:49 Sequence 0:49 move second child to first child ( temp float) 0:49 'var4' ( temp float) 0:? Constant: 0:? 0.000000 0:50 Sequence 0:50 move second child to first child ( temp float) 0:50 'var5' ( temp float) 0:? Constant: 0:? 0.000000 0:51 Sequence 0:51 move second child to first child ( temp float) 0:51 'var6' ( temp float) 0:? Constant: 0:? 0.000000 0:52 Sequence 0:52 move second child to first child ( temp float) 0:52 'var7' ( temp float) 0:? Constant: 0:? 0.000000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'var8' ( temp float) 0:? Constant: 0:? 0.000000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'var9' ( temp float) 0:? Constant: 0:? 0.000000 0:55 Sequence 0:55 move second child to first child ( temp float) 0:55 'var10' ( temp float) 0:? Constant: 0:? 0.000000 0:56 Sequence 0:56 move second child to first child ( temp float) 0:56 'var11' ( temp float) 0:? Constant: 0:? 0.000000 0:57 Sequence 0:57 move second child to first child ( temp float) 0:57 'var12' ( temp float) 0:? Constant: 0:? 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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:75 Sequence 0:75 move second child to first child ( temp 2X4 matrix of float) 0:75 'var90' ( temp 2X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:76 Sequence 0:76 move second child to first child ( temp 3X2 matrix of float) 0:76 'var99' ( temp 3X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 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:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:82 Sequence 0:82 move second child to first child ( temp 3X3 matrix of float) 0:82 'var115' ( temp 3X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:83 Sequence 0:83 move second child to first child ( temp 3X3 matrix of float) 0:83 'var116' ( temp 3X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:84 Sequence 0:84 move second child to first child ( temp 3X4 matrix of float) 0:84 'var129' ( temp 3X4 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:85 Sequence 0:85 move second child to first child ( temp 4X2 matrix of float) 0:85 'var141' ( temp 4X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:86 Sequence 0:86 move second child to first child ( temp 4X2 matrix of float) 0:86 'var142' ( temp 4X2 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:87 Sequence 0:87 move second child to first child ( temp 4X3 matrix of float) 0:87 'var155' ( temp 4X3 matrix of float) 0:? Constant: 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0:? 0.000000 0: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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.typeGraphCopy.vert.out000066400000000000000000000167671360464450000242050ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.typedef.frag.out000066400000000000000000000123071360464450000227700ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.void.frag.out000066400000000000000000000107031360464450000222670ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.wavebroadcast.comp.out000066400000000000000000006106011360464450000241750ustar00rootroot00000000000000hlsl.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): 80008 // Id's are bound by 359 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformBallot Capability GroupNonUniformShuffle 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "CSMain" 354 ExecutionMode 4 LocalSize 32 16 1 Source HLSL 500 Name 4 "CSMain" Name 11 "@CSMain(vu3;" Name 10 "dti" Name 20 "Types" MemberName 20(Types) 0 "u" MemberName 20(Types) 1 "i" MemberName 20(Types) 2 "f" MemberName 20(Types) 3 "d" Name 22 "data" MemberName 22(data) 0 "@data" Name 24 "data" Name 352 "dti" Name 354 "dti" Name 356 "param" MemberDecorate 20(Types) 0 Offset 0 MemberDecorate 20(Types) 1 Offset 16 MemberDecorate 20(Types) 2 Offset 32 MemberDecorate 20(Types) 3 Offset 64 Decorate 21 ArrayStride 96 MemberDecorate 22(data) 0 Offset 0 Decorate 22(data) BufferBlock Decorate 24(data) DescriptorSet 0 Decorate 24(data) Binding 0 Decorate 354(dti) BuiltIn GlobalInvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypeVector 6(int) 3 8: TypePointer Function 7(ivec3) 9: TypeFunction 2 8(ptr) 13: TypeVector 6(int) 4 14: TypeInt 32 1 15: TypeVector 14(int) 4 16: TypeFloat 32 17: TypeVector 16(float) 4 18: TypeFloat 64 19: TypeVector 18(float64_t) 4 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) 21: TypeRuntimeArray 20(Types) 22(data): TypeStruct 21 23: TypePointer Uniform 22(data) 24(data): 23(ptr) Variable Uniform 25: 14(int) Constant 0 26: 6(int) Constant 0 27: TypePointer Function 6(int) 32: TypePointer Uniform 13(ivec4) 35: 6(int) Constant 13 36: 6(int) Constant 3 43: TypePointer Uniform 6(int) 52: TypeVector 6(int) 2 73: 14(int) Constant 1 76: TypePointer Uniform 15(ivec4) 85: TypePointer Uniform 14(int) 94: TypeVector 14(int) 2 106: TypeVector 14(int) 3 116: 14(int) Constant 2 119: TypePointer Uniform 17(fvec4) 128: TypePointer Uniform 16(float) 137: TypeVector 16(float) 2 149: TypeVector 16(float) 3 159: 14(int) Constant 3 162: TypePointer Uniform 19(f64vec4) 171: TypePointer Uniform 18(float64_t) 180: TypeVector 18(float64_t) 2 192: TypeVector 18(float64_t) 3 353: TypePointer Input 7(ivec3) 354(dti): 353(ptr) Variable Input 4(CSMain): 2 Function None 3 5: Label 352(dti): 8(ptr) Variable Function 356(param): 8(ptr) Variable Function 355: 7(ivec3) Load 354(dti) Store 352(dti) 355 357: 7(ivec3) Load 352(dti) Store 356(param) 357 358: 2 FunctionCall 11(@CSMain(vu3;) 356(param) Return FunctionEnd 11(@CSMain(vu3;): 2 Function None 9 10(dti): 8(ptr) FunctionParameter 12: Label 28: 27(ptr) AccessChain 10(dti) 26 29: 6(int) Load 28 30: 27(ptr) AccessChain 10(dti) 26 31: 6(int) Load 30 33: 32(ptr) AccessChain 24(data) 25 31 25 34: 13(ivec4) Load 33 37: 13(ivec4) GroupNonUniformShuffle 36 34 35 38: 32(ptr) AccessChain 24(data) 25 29 25 Store 38 37 39: 27(ptr) AccessChain 10(dti) 26 40: 6(int) Load 39 41: 27(ptr) AccessChain 10(dti) 26 42: 6(int) Load 41 44: 43(ptr) AccessChain 24(data) 25 42 25 26 45: 6(int) Load 44 46: 6(int) GroupNonUniformShuffle 36 45 35 47: 43(ptr) AccessChain 24(data) 25 40 25 26 Store 47 46 48: 27(ptr) AccessChain 10(dti) 26 49: 6(int) Load 48 50: 27(ptr) AccessChain 10(dti) 26 51: 6(int) Load 50 53: 32(ptr) AccessChain 24(data) 25 51 25 54: 13(ivec4) Load 53 55: 52(ivec2) VectorShuffle 54 54 0 1 56: 52(ivec2) GroupNonUniformShuffle 36 55 35 57: 32(ptr) AccessChain 24(data) 25 49 25 58: 13(ivec4) Load 57 59: 13(ivec4) VectorShuffle 58 56 4 5 2 3 Store 57 59 60: 27(ptr) AccessChain 10(dti) 26 61: 6(int) Load 60 62: 27(ptr) AccessChain 10(dti) 26 63: 6(int) Load 62 64: 32(ptr) AccessChain 24(data) 25 63 25 65: 13(ivec4) Load 64 66: 7(ivec3) VectorShuffle 65 65 0 1 2 67: 7(ivec3) GroupNonUniformShuffle 36 66 35 68: 32(ptr) AccessChain 24(data) 25 61 25 69: 13(ivec4) Load 68 70: 13(ivec4) VectorShuffle 69 67 4 5 6 3 Store 68 70 71: 27(ptr) AccessChain 10(dti) 26 72: 6(int) Load 71 74: 27(ptr) AccessChain 10(dti) 26 75: 6(int) Load 74 77: 76(ptr) AccessChain 24(data) 25 75 73 78: 15(ivec4) Load 77 79: 15(ivec4) GroupNonUniformShuffle 36 78 35 80: 76(ptr) AccessChain 24(data) 25 72 73 Store 80 79 81: 27(ptr) AccessChain 10(dti) 26 82: 6(int) Load 81 83: 27(ptr) AccessChain 10(dti) 26 84: 6(int) Load 83 86: 85(ptr) AccessChain 24(data) 25 84 73 26 87: 14(int) Load 86 88: 14(int) GroupNonUniformShuffle 36 87 35 89: 85(ptr) AccessChain 24(data) 25 82 73 26 Store 89 88 90: 27(ptr) AccessChain 10(dti) 26 91: 6(int) Load 90 92: 27(ptr) AccessChain 10(dti) 26 93: 6(int) Load 92 95: 76(ptr) AccessChain 24(data) 25 93 73 96: 15(ivec4) Load 95 97: 94(ivec2) VectorShuffle 96 96 0 1 98: 94(ivec2) GroupNonUniformShuffle 36 97 35 99: 76(ptr) AccessChain 24(data) 25 91 73 100: 15(ivec4) Load 99 101: 15(ivec4) VectorShuffle 100 98 4 5 2 3 Store 99 101 102: 27(ptr) AccessChain 10(dti) 26 103: 6(int) Load 102 104: 27(ptr) AccessChain 10(dti) 26 105: 6(int) Load 104 107: 76(ptr) AccessChain 24(data) 25 105 73 108: 15(ivec4) Load 107 109: 106(ivec3) VectorShuffle 108 108 0 1 2 110: 106(ivec3) GroupNonUniformShuffle 36 109 35 111: 76(ptr) AccessChain 24(data) 25 103 73 112: 15(ivec4) Load 111 113: 15(ivec4) VectorShuffle 112 110 4 5 6 3 Store 111 113 114: 27(ptr) AccessChain 10(dti) 26 115: 6(int) Load 114 117: 27(ptr) AccessChain 10(dti) 26 118: 6(int) Load 117 120: 119(ptr) AccessChain 24(data) 25 118 116 121: 17(fvec4) Load 120 122: 17(fvec4) GroupNonUniformShuffle 36 121 35 123: 119(ptr) AccessChain 24(data) 25 115 116 Store 123 122 124: 27(ptr) AccessChain 10(dti) 26 125: 6(int) Load 124 126: 27(ptr) AccessChain 10(dti) 26 127: 6(int) Load 126 129: 128(ptr) AccessChain 24(data) 25 127 116 26 130: 16(float) Load 129 131: 16(float) GroupNonUniformShuffle 36 130 35 132: 128(ptr) AccessChain 24(data) 25 125 116 26 Store 132 131 133: 27(ptr) AccessChain 10(dti) 26 134: 6(int) Load 133 135: 27(ptr) AccessChain 10(dti) 26 136: 6(int) Load 135 138: 119(ptr) AccessChain 24(data) 25 136 116 139: 17(fvec4) Load 138 140: 137(fvec2) VectorShuffle 139 139 0 1 141: 137(fvec2) GroupNonUniformShuffle 36 140 35 142: 119(ptr) AccessChain 24(data) 25 134 116 143: 17(fvec4) Load 142 144: 17(fvec4) VectorShuffle 143 141 4 5 2 3 Store 142 144 145: 27(ptr) AccessChain 10(dti) 26 146: 6(int) Load 145 147: 27(ptr) AccessChain 10(dti) 26 148: 6(int) Load 147 150: 119(ptr) AccessChain 24(data) 25 148 116 151: 17(fvec4) Load 150 152: 149(fvec3) VectorShuffle 151 151 0 1 2 153: 149(fvec3) GroupNonUniformShuffle 36 152 35 154: 119(ptr) AccessChain 24(data) 25 146 116 155: 17(fvec4) Load 154 156: 17(fvec4) VectorShuffle 155 153 4 5 6 3 Store 154 156 157: 27(ptr) AccessChain 10(dti) 26 158: 6(int) Load 157 160: 27(ptr) AccessChain 10(dti) 26 161: 6(int) Load 160 163: 162(ptr) AccessChain 24(data) 25 161 159 164: 19(f64vec4) Load 163 165: 19(f64vec4) GroupNonUniformBroadcastFirst 36 164 166: 162(ptr) AccessChain 24(data) 25 158 159 Store 166 165 167: 27(ptr) AccessChain 10(dti) 26 168: 6(int) Load 167 169: 27(ptr) AccessChain 10(dti) 26 170: 6(int) Load 169 172: 171(ptr) AccessChain 24(data) 25 170 159 26 173:18(float64_t) Load 172 174:18(float64_t) GroupNonUniformBroadcastFirst 36 173 175: 171(ptr) AccessChain 24(data) 25 168 159 26 Store 175 174 176: 27(ptr) AccessChain 10(dti) 26 177: 6(int) Load 176 178: 27(ptr) AccessChain 10(dti) 26 179: 6(int) Load 178 181: 162(ptr) AccessChain 24(data) 25 179 159 182: 19(f64vec4) Load 181 183:180(f64vec2) VectorShuffle 182 182 0 1 184:180(f64vec2) GroupNonUniformBroadcastFirst 36 183 185: 162(ptr) AccessChain 24(data) 25 177 159 186: 19(f64vec4) Load 185 187: 19(f64vec4) VectorShuffle 186 184 4 5 2 3 Store 185 187 188: 27(ptr) AccessChain 10(dti) 26 189: 6(int) Load 188 190: 27(ptr) AccessChain 10(dti) 26 191: 6(int) Load 190 193: 162(ptr) AccessChain 24(data) 25 191 159 194: 19(f64vec4) Load 193 195:192(f64vec3) VectorShuffle 194 194 0 1 2 196:192(f64vec3) GroupNonUniformBroadcastFirst 36 195 197: 162(ptr) AccessChain 24(data) 25 189 159 198: 19(f64vec4) Load 197 199: 19(f64vec4) VectorShuffle 198 196 4 5 6 3 Store 197 199 200: 27(ptr) AccessChain 10(dti) 26 201: 6(int) Load 200 202: 27(ptr) AccessChain 10(dti) 26 203: 6(int) Load 202 204: 32(ptr) AccessChain 24(data) 25 203 25 205: 13(ivec4) Load 204 206: 13(ivec4) GroupNonUniformBroadcastFirst 36 205 207: 32(ptr) AccessChain 24(data) 25 201 25 Store 207 206 208: 27(ptr) AccessChain 10(dti) 26 209: 6(int) Load 208 210: 27(ptr) AccessChain 10(dti) 26 211: 6(int) Load 210 212: 43(ptr) AccessChain 24(data) 25 211 25 26 213: 6(int) Load 212 214: 6(int) GroupNonUniformBroadcastFirst 36 213 215: 43(ptr) AccessChain 24(data) 25 209 25 26 Store 215 214 216: 27(ptr) AccessChain 10(dti) 26 217: 6(int) Load 216 218: 27(ptr) AccessChain 10(dti) 26 219: 6(int) Load 218 220: 32(ptr) AccessChain 24(data) 25 219 25 221: 13(ivec4) Load 220 222: 52(ivec2) VectorShuffle 221 221 0 1 223: 52(ivec2) GroupNonUniformBroadcastFirst 36 222 224: 32(ptr) AccessChain 24(data) 25 217 25 225: 13(ivec4) Load 224 226: 13(ivec4) VectorShuffle 225 223 4 5 2 3 Store 224 226 227: 27(ptr) AccessChain 10(dti) 26 228: 6(int) Load 227 229: 27(ptr) AccessChain 10(dti) 26 230: 6(int) Load 229 231: 32(ptr) AccessChain 24(data) 25 230 25 232: 13(ivec4) Load 231 233: 7(ivec3) VectorShuffle 232 232 0 1 2 234: 7(ivec3) GroupNonUniformBroadcastFirst 36 233 235: 32(ptr) AccessChain 24(data) 25 228 25 236: 13(ivec4) Load 235 237: 13(ivec4) VectorShuffle 236 234 4 5 6 3 Store 235 237 238: 27(ptr) AccessChain 10(dti) 26 239: 6(int) Load 238 240: 27(ptr) AccessChain 10(dti) 26 241: 6(int) Load 240 242: 76(ptr) AccessChain 24(data) 25 241 73 243: 15(ivec4) Load 242 244: 15(ivec4) GroupNonUniformBroadcastFirst 36 243 245: 76(ptr) AccessChain 24(data) 25 239 73 Store 245 244 246: 27(ptr) AccessChain 10(dti) 26 247: 6(int) Load 246 248: 27(ptr) AccessChain 10(dti) 26 249: 6(int) Load 248 250: 85(ptr) AccessChain 24(data) 25 249 73 26 251: 14(int) Load 250 252: 14(int) GroupNonUniformBroadcastFirst 36 251 253: 85(ptr) AccessChain 24(data) 25 247 73 26 Store 253 252 254: 27(ptr) AccessChain 10(dti) 26 255: 6(int) Load 254 256: 27(ptr) AccessChain 10(dti) 26 257: 6(int) Load 256 258: 76(ptr) AccessChain 24(data) 25 257 73 259: 15(ivec4) Load 258 260: 94(ivec2) VectorShuffle 259 259 0 1 261: 94(ivec2) GroupNonUniformBroadcastFirst 36 260 262: 76(ptr) AccessChain 24(data) 25 255 73 263: 15(ivec4) Load 262 264: 15(ivec4) VectorShuffle 263 261 4 5 2 3 Store 262 264 265: 27(ptr) AccessChain 10(dti) 26 266: 6(int) Load 265 267: 27(ptr) AccessChain 10(dti) 26 268: 6(int) Load 267 269: 76(ptr) AccessChain 24(data) 25 268 73 270: 15(ivec4) Load 269 271: 106(ivec3) VectorShuffle 270 270 0 1 2 272: 106(ivec3) GroupNonUniformBroadcastFirst 36 271 273: 76(ptr) AccessChain 24(data) 25 266 73 274: 15(ivec4) Load 273 275: 15(ivec4) VectorShuffle 274 272 4 5 6 3 Store 273 275 276: 27(ptr) AccessChain 10(dti) 26 277: 6(int) Load 276 278: 27(ptr) AccessChain 10(dti) 26 279: 6(int) Load 278 280: 119(ptr) AccessChain 24(data) 25 279 116 281: 17(fvec4) Load 280 282: 17(fvec4) GroupNonUniformBroadcastFirst 36 281 283: 119(ptr) AccessChain 24(data) 25 277 116 Store 283 282 284: 27(ptr) AccessChain 10(dti) 26 285: 6(int) Load 284 286: 27(ptr) AccessChain 10(dti) 26 287: 6(int) Load 286 288: 128(ptr) AccessChain 24(data) 25 287 116 26 289: 16(float) Load 288 290: 16(float) GroupNonUniformBroadcastFirst 36 289 291: 128(ptr) AccessChain 24(data) 25 285 116 26 Store 291 290 292: 27(ptr) AccessChain 10(dti) 26 293: 6(int) Load 292 294: 27(ptr) AccessChain 10(dti) 26 295: 6(int) Load 294 296: 119(ptr) AccessChain 24(data) 25 295 116 297: 17(fvec4) Load 296 298: 137(fvec2) VectorShuffle 297 297 0 1 299: 137(fvec2) GroupNonUniformBroadcastFirst 36 298 300: 119(ptr) AccessChain 24(data) 25 293 116 301: 17(fvec4) Load 300 302: 17(fvec4) VectorShuffle 301 299 4 5 2 3 Store 300 302 303: 27(ptr) AccessChain 10(dti) 26 304: 6(int) Load 303 305: 27(ptr) AccessChain 10(dti) 26 306: 6(int) Load 305 307: 119(ptr) AccessChain 24(data) 25 306 116 308: 17(fvec4) Load 307 309: 149(fvec3) VectorShuffle 308 308 0 1 2 310: 149(fvec3) GroupNonUniformBroadcastFirst 36 309 311: 119(ptr) AccessChain 24(data) 25 304 116 312: 17(fvec4) Load 311 313: 17(fvec4) VectorShuffle 312 310 4 5 6 3 Store 311 313 314: 27(ptr) AccessChain 10(dti) 26 315: 6(int) Load 314 316: 27(ptr) AccessChain 10(dti) 26 317: 6(int) Load 316 318: 162(ptr) AccessChain 24(data) 25 317 159 319: 19(f64vec4) Load 318 320: 19(f64vec4) GroupNonUniformBroadcastFirst 36 319 321: 162(ptr) AccessChain 24(data) 25 315 159 Store 321 320 322: 27(ptr) AccessChain 10(dti) 26 323: 6(int) Load 322 324: 27(ptr) AccessChain 10(dti) 26 325: 6(int) Load 324 326: 171(ptr) AccessChain 24(data) 25 325 159 26 327:18(float64_t) Load 326 328:18(float64_t) GroupNonUniformBroadcastFirst 36 327 329: 171(ptr) AccessChain 24(data) 25 323 159 26 Store 329 328 330: 27(ptr) AccessChain 10(dti) 26 331: 6(int) Load 330 332: 27(ptr) AccessChain 10(dti) 26 333: 6(int) Load 332 334: 162(ptr) AccessChain 24(data) 25 333 159 335: 19(f64vec4) Load 334 336:180(f64vec2) VectorShuffle 335 335 0 1 337:180(f64vec2) GroupNonUniformBroadcastFirst 36 336 338: 162(ptr) AccessChain 24(data) 25 331 159 339: 19(f64vec4) Load 338 340: 19(f64vec4) VectorShuffle 339 337 4 5 2 3 Store 338 340 341: 27(ptr) AccessChain 10(dti) 26 342: 6(int) Load 341 343: 27(ptr) AccessChain 10(dti) 26 344: 6(int) Load 343 345: 162(ptr) AccessChain 24(data) 25 344 159 346: 19(f64vec4) Load 345 347:192(f64vec3) VectorShuffle 346 346 0 1 2 348:192(f64vec3) GroupNonUniformBroadcastFirst 36 347 349: 162(ptr) AccessChain 24(data) 25 342 159 350: 19(f64vec4) Load 349 351: 19(f64vec4) VectorShuffle 350 348 4 5 6 3 Store 349 351 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.waveprefix.comp.out000066400000000000000000006227021360464450000235350ustar00rootroot00000000000000hlsl.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): 80008 // Id's are bound by 369 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformArithmetic Capability GroupNonUniformBallot 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "CSMain" 364 ExecutionMode 4 LocalSize 32 16 1 Source HLSL 500 Name 4 "CSMain" Name 11 "@CSMain(vu3;" Name 10 "dti" Name 20 "Types" MemberName 20(Types) 0 "u" MemberName 20(Types) 1 "i" MemberName 20(Types) 2 "f" MemberName 20(Types) 3 "d" Name 22 "data" MemberName 22(data) 0 "@data" Name 24 "data" Name 362 "dti" Name 364 "dti" Name 366 "param" MemberDecorate 20(Types) 0 Offset 0 MemberDecorate 20(Types) 1 Offset 16 MemberDecorate 20(Types) 2 Offset 32 MemberDecorate 20(Types) 3 Offset 64 Decorate 21 ArrayStride 96 MemberDecorate 22(data) 0 Offset 0 Decorate 22(data) BufferBlock Decorate 24(data) DescriptorSet 0 Decorate 24(data) Binding 0 Decorate 364(dti) BuiltIn GlobalInvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypeVector 6(int) 3 8: TypePointer Function 7(ivec3) 9: TypeFunction 2 8(ptr) 13: TypeVector 6(int) 4 14: TypeInt 32 1 15: TypeVector 14(int) 4 16: TypeFloat 32 17: TypeVector 16(float) 4 18: TypeFloat 64 19: TypeVector 18(float64_t) 4 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) 21: TypeRuntimeArray 20(Types) 22(data): TypeStruct 21 23: TypePointer Uniform 22(data) 24(data): 23(ptr) Variable Uniform 25: 14(int) Constant 0 26: 6(int) Constant 0 27: TypePointer Function 6(int) 32: TypePointer Uniform 13(ivec4) 35: 6(int) Constant 3 42: TypePointer Uniform 6(int) 51: TypeVector 6(int) 2 72: 14(int) Constant 1 75: TypePointer Uniform 15(ivec4) 84: TypePointer Uniform 14(int) 93: TypeVector 14(int) 2 105: TypeVector 14(int) 3 115: 14(int) Constant 2 118: TypePointer Uniform 17(fvec4) 127: TypePointer Uniform 16(float) 136: TypeVector 16(float) 2 148: TypeVector 16(float) 3 158: 14(int) Constant 3 161: TypePointer Uniform 19(f64vec4) 170: TypePointer Uniform 18(float64_t) 179: TypeVector 18(float64_t) 2 191: TypeVector 18(float64_t) 3 357: TypeBool 363: TypePointer Input 7(ivec3) 364(dti): 363(ptr) Variable Input 4(CSMain): 2 Function None 3 5: Label 362(dti): 8(ptr) Variable Function 366(param): 8(ptr) Variable Function 365: 7(ivec3) Load 364(dti) Store 362(dti) 365 367: 7(ivec3) Load 362(dti) Store 366(param) 367 368: 2 FunctionCall 11(@CSMain(vu3;) 366(param) Return FunctionEnd 11(@CSMain(vu3;): 2 Function None 9 10(dti): 8(ptr) FunctionParameter 12: Label 28: 27(ptr) AccessChain 10(dti) 26 29: 6(int) Load 28 30: 27(ptr) AccessChain 10(dti) 26 31: 6(int) Load 30 33: 32(ptr) AccessChain 24(data) 25 31 25 34: 13(ivec4) Load 33 36: 13(ivec4) GroupNonUniformIAdd 35 InclusiveScan 34 37: 32(ptr) AccessChain 24(data) 25 29 25 Store 37 36 38: 27(ptr) AccessChain 10(dti) 26 39: 6(int) Load 38 40: 27(ptr) AccessChain 10(dti) 26 41: 6(int) Load 40 43: 42(ptr) AccessChain 24(data) 25 41 25 26 44: 6(int) Load 43 45: 6(int) GroupNonUniformIAdd 35 InclusiveScan 44 46: 42(ptr) AccessChain 24(data) 25 39 25 26 Store 46 45 47: 27(ptr) AccessChain 10(dti) 26 48: 6(int) Load 47 49: 27(ptr) AccessChain 10(dti) 26 50: 6(int) Load 49 52: 32(ptr) AccessChain 24(data) 25 50 25 53: 13(ivec4) Load 52 54: 51(ivec2) VectorShuffle 53 53 0 1 55: 51(ivec2) GroupNonUniformIAdd 35 InclusiveScan 54 56: 32(ptr) AccessChain 24(data) 25 48 25 57: 13(ivec4) Load 56 58: 13(ivec4) VectorShuffle 57 55 4 5 2 3 Store 56 58 59: 27(ptr) AccessChain 10(dti) 26 60: 6(int) Load 59 61: 27(ptr) AccessChain 10(dti) 26 62: 6(int) Load 61 63: 32(ptr) AccessChain 24(data) 25 62 25 64: 13(ivec4) Load 63 65: 7(ivec3) VectorShuffle 64 64 0 1 2 66: 7(ivec3) GroupNonUniformIAdd 35 InclusiveScan 65 67: 32(ptr) AccessChain 24(data) 25 60 25 68: 13(ivec4) Load 67 69: 13(ivec4) VectorShuffle 68 66 4 5 6 3 Store 67 69 70: 27(ptr) AccessChain 10(dti) 26 71: 6(int) Load 70 73: 27(ptr) AccessChain 10(dti) 26 74: 6(int) Load 73 76: 75(ptr) AccessChain 24(data) 25 74 72 77: 15(ivec4) Load 76 78: 15(ivec4) GroupNonUniformIAdd 35 InclusiveScan 77 79: 75(ptr) AccessChain 24(data) 25 71 72 Store 79 78 80: 27(ptr) AccessChain 10(dti) 26 81: 6(int) Load 80 82: 27(ptr) AccessChain 10(dti) 26 83: 6(int) Load 82 85: 84(ptr) AccessChain 24(data) 25 83 72 26 86: 14(int) Load 85 87: 14(int) GroupNonUniformIAdd 35 InclusiveScan 86 88: 84(ptr) AccessChain 24(data) 25 81 72 26 Store 88 87 89: 27(ptr) AccessChain 10(dti) 26 90: 6(int) Load 89 91: 27(ptr) AccessChain 10(dti) 26 92: 6(int) Load 91 94: 75(ptr) AccessChain 24(data) 25 92 72 95: 15(ivec4) Load 94 96: 93(ivec2) VectorShuffle 95 95 0 1 97: 93(ivec2) GroupNonUniformIAdd 35 InclusiveScan 96 98: 75(ptr) AccessChain 24(data) 25 90 72 99: 15(ivec4) Load 98 100: 15(ivec4) VectorShuffle 99 97 4 5 2 3 Store 98 100 101: 27(ptr) AccessChain 10(dti) 26 102: 6(int) Load 101 103: 27(ptr) AccessChain 10(dti) 26 104: 6(int) Load 103 106: 75(ptr) AccessChain 24(data) 25 104 72 107: 15(ivec4) Load 106 108: 105(ivec3) VectorShuffle 107 107 0 1 2 109: 105(ivec3) GroupNonUniformIAdd 35 InclusiveScan 108 110: 75(ptr) AccessChain 24(data) 25 102 72 111: 15(ivec4) Load 110 112: 15(ivec4) VectorShuffle 111 109 4 5 6 3 Store 110 112 113: 27(ptr) AccessChain 10(dti) 26 114: 6(int) Load 113 116: 27(ptr) AccessChain 10(dti) 26 117: 6(int) Load 116 119: 118(ptr) AccessChain 24(data) 25 117 115 120: 17(fvec4) Load 119 121: 17(fvec4) GroupNonUniformFAdd 35 InclusiveScan 120 122: 118(ptr) AccessChain 24(data) 25 114 115 Store 122 121 123: 27(ptr) AccessChain 10(dti) 26 124: 6(int) Load 123 125: 27(ptr) AccessChain 10(dti) 26 126: 6(int) Load 125 128: 127(ptr) AccessChain 24(data) 25 126 115 26 129: 16(float) Load 128 130: 16(float) GroupNonUniformFAdd 35 InclusiveScan 129 131: 127(ptr) AccessChain 24(data) 25 124 115 26 Store 131 130 132: 27(ptr) AccessChain 10(dti) 26 133: 6(int) Load 132 134: 27(ptr) AccessChain 10(dti) 26 135: 6(int) Load 134 137: 118(ptr) AccessChain 24(data) 25 135 115 138: 17(fvec4) Load 137 139: 136(fvec2) VectorShuffle 138 138 0 1 140: 136(fvec2) GroupNonUniformFAdd 35 InclusiveScan 139 141: 118(ptr) AccessChain 24(data) 25 133 115 142: 17(fvec4) Load 141 143: 17(fvec4) VectorShuffle 142 140 4 5 2 3 Store 141 143 144: 27(ptr) AccessChain 10(dti) 26 145: 6(int) Load 144 146: 27(ptr) AccessChain 10(dti) 26 147: 6(int) Load 146 149: 118(ptr) AccessChain 24(data) 25 147 115 150: 17(fvec4) Load 149 151: 148(fvec3) VectorShuffle 150 150 0 1 2 152: 148(fvec3) GroupNonUniformFAdd 35 InclusiveScan 151 153: 118(ptr) AccessChain 24(data) 25 145 115 154: 17(fvec4) Load 153 155: 17(fvec4) VectorShuffle 154 152 4 5 6 3 Store 153 155 156: 27(ptr) AccessChain 10(dti) 26 157: 6(int) Load 156 159: 27(ptr) AccessChain 10(dti) 26 160: 6(int) Load 159 162: 161(ptr) AccessChain 24(data) 25 160 158 163: 19(f64vec4) Load 162 164: 19(f64vec4) GroupNonUniformFAdd 35 InclusiveScan 163 165: 161(ptr) AccessChain 24(data) 25 157 158 Store 165 164 166: 27(ptr) AccessChain 10(dti) 26 167: 6(int) Load 166 168: 27(ptr) AccessChain 10(dti) 26 169: 6(int) Load 168 171: 170(ptr) AccessChain 24(data) 25 169 158 26 172:18(float64_t) Load 171 173:18(float64_t) GroupNonUniformFAdd 35 InclusiveScan 172 174: 170(ptr) AccessChain 24(data) 25 167 158 26 Store 174 173 175: 27(ptr) AccessChain 10(dti) 26 176: 6(int) Load 175 177: 27(ptr) AccessChain 10(dti) 26 178: 6(int) Load 177 180: 161(ptr) AccessChain 24(data) 25 178 158 181: 19(f64vec4) Load 180 182:179(f64vec2) VectorShuffle 181 181 0 1 183:179(f64vec2) GroupNonUniformFAdd 35 InclusiveScan 182 184: 161(ptr) AccessChain 24(data) 25 176 158 185: 19(f64vec4) Load 184 186: 19(f64vec4) VectorShuffle 185 183 4 5 2 3 Store 184 186 187: 27(ptr) AccessChain 10(dti) 26 188: 6(int) Load 187 189: 27(ptr) AccessChain 10(dti) 26 190: 6(int) Load 189 192: 161(ptr) AccessChain 24(data) 25 190 158 193: 19(f64vec4) Load 192 194:191(f64vec3) VectorShuffle 193 193 0 1 2 195:191(f64vec3) GroupNonUniformFAdd 35 InclusiveScan 194 196: 161(ptr) AccessChain 24(data) 25 188 158 197: 19(f64vec4) Load 196 198: 19(f64vec4) VectorShuffle 197 195 4 5 6 3 Store 196 198 199: 27(ptr) AccessChain 10(dti) 26 200: 6(int) Load 199 201: 27(ptr) AccessChain 10(dti) 26 202: 6(int) Load 201 203: 32(ptr) AccessChain 24(data) 25 202 25 204: 13(ivec4) Load 203 205: 13(ivec4) GroupNonUniformIMul 35 InclusiveScan 204 206: 32(ptr) AccessChain 24(data) 25 200 25 Store 206 205 207: 27(ptr) AccessChain 10(dti) 26 208: 6(int) Load 207 209: 27(ptr) AccessChain 10(dti) 26 210: 6(int) Load 209 211: 42(ptr) AccessChain 24(data) 25 210 25 26 212: 6(int) Load 211 213: 6(int) GroupNonUniformIMul 35 InclusiveScan 212 214: 42(ptr) AccessChain 24(data) 25 208 25 26 Store 214 213 215: 27(ptr) AccessChain 10(dti) 26 216: 6(int) Load 215 217: 27(ptr) AccessChain 10(dti) 26 218: 6(int) Load 217 219: 32(ptr) AccessChain 24(data) 25 218 25 220: 13(ivec4) Load 219 221: 51(ivec2) VectorShuffle 220 220 0 1 222: 51(ivec2) GroupNonUniformIMul 35 InclusiveScan 221 223: 32(ptr) AccessChain 24(data) 25 216 25 224: 13(ivec4) Load 223 225: 13(ivec4) VectorShuffle 224 222 4 5 2 3 Store 223 225 226: 27(ptr) AccessChain 10(dti) 26 227: 6(int) Load 226 228: 27(ptr) AccessChain 10(dti) 26 229: 6(int) Load 228 230: 32(ptr) AccessChain 24(data) 25 229 25 231: 13(ivec4) Load 230 232: 7(ivec3) VectorShuffle 231 231 0 1 2 233: 7(ivec3) GroupNonUniformIMul 35 InclusiveScan 232 234: 32(ptr) AccessChain 24(data) 25 227 25 235: 13(ivec4) Load 234 236: 13(ivec4) VectorShuffle 235 233 4 5 6 3 Store 234 236 237: 27(ptr) AccessChain 10(dti) 26 238: 6(int) Load 237 239: 27(ptr) AccessChain 10(dti) 26 240: 6(int) Load 239 241: 75(ptr) AccessChain 24(data) 25 240 72 242: 15(ivec4) Load 241 243: 15(ivec4) GroupNonUniformIMul 35 InclusiveScan 242 244: 75(ptr) AccessChain 24(data) 25 238 72 Store 244 243 245: 27(ptr) AccessChain 10(dti) 26 246: 6(int) Load 245 247: 27(ptr) AccessChain 10(dti) 26 248: 6(int) Load 247 249: 84(ptr) AccessChain 24(data) 25 248 72 26 250: 14(int) Load 249 251: 14(int) GroupNonUniformIMul 35 InclusiveScan 250 252: 84(ptr) AccessChain 24(data) 25 246 72 26 Store 252 251 253: 27(ptr) AccessChain 10(dti) 26 254: 6(int) Load 253 255: 27(ptr) AccessChain 10(dti) 26 256: 6(int) Load 255 257: 75(ptr) AccessChain 24(data) 25 256 72 258: 15(ivec4) Load 257 259: 93(ivec2) VectorShuffle 258 258 0 1 260: 93(ivec2) GroupNonUniformIMul 35 InclusiveScan 259 261: 75(ptr) AccessChain 24(data) 25 254 72 262: 15(ivec4) Load 261 263: 15(ivec4) VectorShuffle 262 260 4 5 2 3 Store 261 263 264: 27(ptr) AccessChain 10(dti) 26 265: 6(int) Load 264 266: 27(ptr) AccessChain 10(dti) 26 267: 6(int) Load 266 268: 75(ptr) AccessChain 24(data) 25 267 72 269: 15(ivec4) Load 268 270: 105(ivec3) VectorShuffle 269 269 0 1 2 271: 105(ivec3) GroupNonUniformIMul 35 InclusiveScan 270 272: 75(ptr) AccessChain 24(data) 25 265 72 273: 15(ivec4) Load 272 274: 15(ivec4) VectorShuffle 273 271 4 5 6 3 Store 272 274 275: 27(ptr) AccessChain 10(dti) 26 276: 6(int) Load 275 277: 27(ptr) AccessChain 10(dti) 26 278: 6(int) Load 277 279: 118(ptr) AccessChain 24(data) 25 278 115 280: 17(fvec4) Load 279 281: 17(fvec4) GroupNonUniformFMul 35 InclusiveScan 280 282: 118(ptr) AccessChain 24(data) 25 276 115 Store 282 281 283: 27(ptr) AccessChain 10(dti) 26 284: 6(int) Load 283 285: 27(ptr) AccessChain 10(dti) 26 286: 6(int) Load 285 287: 127(ptr) AccessChain 24(data) 25 286 115 26 288: 16(float) Load 287 289: 16(float) GroupNonUniformFMul 35 InclusiveScan 288 290: 127(ptr) AccessChain 24(data) 25 284 115 26 Store 290 289 291: 27(ptr) AccessChain 10(dti) 26 292: 6(int) Load 291 293: 27(ptr) AccessChain 10(dti) 26 294: 6(int) Load 293 295: 118(ptr) AccessChain 24(data) 25 294 115 296: 17(fvec4) Load 295 297: 136(fvec2) VectorShuffle 296 296 0 1 298: 136(fvec2) GroupNonUniformFMul 35 InclusiveScan 297 299: 118(ptr) AccessChain 24(data) 25 292 115 300: 17(fvec4) Load 299 301: 17(fvec4) VectorShuffle 300 298 4 5 2 3 Store 299 301 302: 27(ptr) AccessChain 10(dti) 26 303: 6(int) Load 302 304: 27(ptr) AccessChain 10(dti) 26 305: 6(int) Load 304 306: 118(ptr) AccessChain 24(data) 25 305 115 307: 17(fvec4) Load 306 308: 148(fvec3) VectorShuffle 307 307 0 1 2 309: 148(fvec3) GroupNonUniformFMul 35 InclusiveScan 308 310: 118(ptr) AccessChain 24(data) 25 303 115 311: 17(fvec4) Load 310 312: 17(fvec4) VectorShuffle 311 309 4 5 6 3 Store 310 312 313: 27(ptr) AccessChain 10(dti) 26 314: 6(int) Load 313 315: 27(ptr) AccessChain 10(dti) 26 316: 6(int) Load 315 317: 161(ptr) AccessChain 24(data) 25 316 158 318: 19(f64vec4) Load 317 319: 19(f64vec4) GroupNonUniformFMul 35 InclusiveScan 318 320: 161(ptr) AccessChain 24(data) 25 314 158 Store 320 319 321: 27(ptr) AccessChain 10(dti) 26 322: 6(int) Load 321 323: 27(ptr) AccessChain 10(dti) 26 324: 6(int) Load 323 325: 170(ptr) AccessChain 24(data) 25 324 158 26 326:18(float64_t) Load 325 327:18(float64_t) GroupNonUniformFMul 35 InclusiveScan 326 328: 170(ptr) AccessChain 24(data) 25 322 158 26 Store 328 327 329: 27(ptr) AccessChain 10(dti) 26 330: 6(int) Load 329 331: 27(ptr) AccessChain 10(dti) 26 332: 6(int) Load 331 333: 161(ptr) AccessChain 24(data) 25 332 158 334: 19(f64vec4) Load 333 335:179(f64vec2) VectorShuffle 334 334 0 1 336:179(f64vec2) GroupNonUniformFMul 35 InclusiveScan 335 337: 161(ptr) AccessChain 24(data) 25 330 158 338: 19(f64vec4) Load 337 339: 19(f64vec4) VectorShuffle 338 336 4 5 2 3 Store 337 339 340: 27(ptr) AccessChain 10(dti) 26 341: 6(int) Load 340 342: 27(ptr) AccessChain 10(dti) 26 343: 6(int) Load 342 344: 161(ptr) AccessChain 24(data) 25 343 158 345: 19(f64vec4) Load 344 346:191(f64vec3) VectorShuffle 345 345 0 1 2 347:191(f64vec3) GroupNonUniformFMul 35 InclusiveScan 346 348: 161(ptr) AccessChain 24(data) 25 341 158 349: 19(f64vec4) Load 348 350: 19(f64vec4) VectorShuffle 349 347 4 5 6 3 Store 348 350 351: 27(ptr) AccessChain 10(dti) 26 352: 6(int) Load 351 353: 27(ptr) AccessChain 10(dti) 26 354: 6(int) Load 353 355: 42(ptr) AccessChain 24(data) 25 354 25 26 356: 6(int) Load 355 358: 357(bool) IEqual 356 26 359: 13(ivec4) GroupNonUniformBallot 35 358 360: 6(int) GroupNonUniformBallotBitCount 35 InclusiveScan 359 361: 42(ptr) AccessChain 24(data) 25 352 25 26 Store 361 360 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.wavequad.comp.out000066400000000000000000025112651360464450000231750ustar00rootroot00000000000000hlsl.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): 80008 // Id's are bound by 1120 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformQuad 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "CSMain" 1115 ExecutionMode 4 LocalSize 32 16 1 Source HLSL 500 Name 4 "CSMain" Name 11 "@CSMain(vu3;" Name 10 "dti" Name 20 "Types" MemberName 20(Types) 0 "u" MemberName 20(Types) 1 "i" MemberName 20(Types) 2 "f" MemberName 20(Types) 3 "d" Name 22 "data" MemberName 22(data) 0 "@data" Name 24 "data" Name 1113 "dti" Name 1115 "dti" Name 1117 "param" MemberDecorate 20(Types) 0 Offset 0 MemberDecorate 20(Types) 1 Offset 16 MemberDecorate 20(Types) 2 Offset 32 MemberDecorate 20(Types) 3 Offset 64 Decorate 21 ArrayStride 96 MemberDecorate 22(data) 0 Offset 0 Decorate 22(data) BufferBlock Decorate 24(data) DescriptorSet 0 Decorate 24(data) Binding 0 Decorate 1115(dti) BuiltIn GlobalInvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypeVector 6(int) 3 8: TypePointer Function 7(ivec3) 9: TypeFunction 2 8(ptr) 13: TypeVector 6(int) 4 14: TypeInt 32 1 15: TypeVector 14(int) 4 16: TypeFloat 32 17: TypeVector 16(float) 4 18: TypeFloat 64 19: TypeVector 18(float64_t) 4 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) 21: TypeRuntimeArray 20(Types) 22(data): TypeStruct 21 23: TypePointer Uniform 22(data) 24(data): 23(ptr) Variable Uniform 25: 14(int) Constant 0 26: 6(int) Constant 0 27: TypePointer Function 6(int) 32: TypePointer Uniform 13(ivec4) 35: 6(int) Constant 3 42: TypePointer Uniform 6(int) 51: TypeVector 6(int) 2 72: 14(int) Constant 1 75: TypePointer Uniform 15(ivec4) 84: TypePointer Uniform 14(int) 93: TypeVector 14(int) 2 105: TypeVector 14(int) 3 115: 14(int) Constant 2 118: TypePointer Uniform 17(fvec4) 127: TypePointer Uniform 16(float) 136: TypeVector 16(float) 2 148: TypeVector 16(float) 3 158: 14(int) Constant 3 161: TypePointer Uniform 19(f64vec4) 170: TypePointer Uniform 18(float64_t) 179: TypeVector 18(float64_t) 2 191: TypeVector 18(float64_t) 3 205: 6(int) Constant 1 358: 6(int) Constant 2 1114: TypePointer Input 7(ivec3) 1115(dti): 1114(ptr) Variable Input 4(CSMain): 2 Function None 3 5: Label 1113(dti): 8(ptr) Variable Function 1117(param): 8(ptr) Variable Function 1116: 7(ivec3) Load 1115(dti) Store 1113(dti) 1116 1118: 7(ivec3) Load 1113(dti) Store 1117(param) 1118 1119: 2 FunctionCall 11(@CSMain(vu3;) 1117(param) Return FunctionEnd 11(@CSMain(vu3;): 2 Function None 9 10(dti): 8(ptr) FunctionParameter 12: Label 28: 27(ptr) AccessChain 10(dti) 26 29: 6(int) Load 28 30: 27(ptr) AccessChain 10(dti) 26 31: 6(int) Load 30 33: 32(ptr) AccessChain 24(data) 25 31 25 34: 13(ivec4) Load 33 36: 13(ivec4) GroupNonUniformQuadBroadcast 35 34 26 37: 32(ptr) AccessChain 24(data) 25 29 25 Store 37 36 38: 27(ptr) AccessChain 10(dti) 26 39: 6(int) Load 38 40: 27(ptr) AccessChain 10(dti) 26 41: 6(int) Load 40 43: 42(ptr) AccessChain 24(data) 25 41 25 26 44: 6(int) Load 43 45: 6(int) GroupNonUniformQuadBroadcast 35 44 26 46: 42(ptr) AccessChain 24(data) 25 39 25 26 Store 46 45 47: 27(ptr) AccessChain 10(dti) 26 48: 6(int) Load 47 49: 27(ptr) AccessChain 10(dti) 26 50: 6(int) Load 49 52: 32(ptr) AccessChain 24(data) 25 50 25 53: 13(ivec4) Load 52 54: 51(ivec2) VectorShuffle 53 53 0 1 55: 51(ivec2) GroupNonUniformQuadBroadcast 35 54 26 56: 32(ptr) AccessChain 24(data) 25 48 25 57: 13(ivec4) Load 56 58: 13(ivec4) VectorShuffle 57 55 4 5 2 3 Store 56 58 59: 27(ptr) AccessChain 10(dti) 26 60: 6(int) Load 59 61: 27(ptr) AccessChain 10(dti) 26 62: 6(int) Load 61 63: 32(ptr) AccessChain 24(data) 25 62 25 64: 13(ivec4) Load 63 65: 7(ivec3) VectorShuffle 64 64 0 1 2 66: 7(ivec3) GroupNonUniformQuadBroadcast 35 65 26 67: 32(ptr) AccessChain 24(data) 25 60 25 68: 13(ivec4) Load 67 69: 13(ivec4) VectorShuffle 68 66 4 5 6 3 Store 67 69 70: 27(ptr) AccessChain 10(dti) 26 71: 6(int) Load 70 73: 27(ptr) AccessChain 10(dti) 26 74: 6(int) Load 73 76: 75(ptr) AccessChain 24(data) 25 74 72 77: 15(ivec4) Load 76 78: 15(ivec4) GroupNonUniformQuadBroadcast 35 77 26 79: 75(ptr) AccessChain 24(data) 25 71 72 Store 79 78 80: 27(ptr) AccessChain 10(dti) 26 81: 6(int) Load 80 82: 27(ptr) AccessChain 10(dti) 26 83: 6(int) Load 82 85: 84(ptr) AccessChain 24(data) 25 83 72 26 86: 14(int) Load 85 87: 14(int) GroupNonUniformQuadBroadcast 35 86 26 88: 84(ptr) AccessChain 24(data) 25 81 72 26 Store 88 87 89: 27(ptr) AccessChain 10(dti) 26 90: 6(int) Load 89 91: 27(ptr) AccessChain 10(dti) 26 92: 6(int) Load 91 94: 75(ptr) AccessChain 24(data) 25 92 72 95: 15(ivec4) Load 94 96: 93(ivec2) VectorShuffle 95 95 0 1 97: 93(ivec2) GroupNonUniformQuadBroadcast 35 96 26 98: 75(ptr) AccessChain 24(data) 25 90 72 99: 15(ivec4) Load 98 100: 15(ivec4) VectorShuffle 99 97 4 5 2 3 Store 98 100 101: 27(ptr) AccessChain 10(dti) 26 102: 6(int) Load 101 103: 27(ptr) AccessChain 10(dti) 26 104: 6(int) Load 103 106: 75(ptr) AccessChain 24(data) 25 104 72 107: 15(ivec4) Load 106 108: 105(ivec3) VectorShuffle 107 107 0 1 2 109: 105(ivec3) GroupNonUniformQuadBroadcast 35 108 26 110: 75(ptr) AccessChain 24(data) 25 102 72 111: 15(ivec4) Load 110 112: 15(ivec4) VectorShuffle 111 109 4 5 6 3 Store 110 112 113: 27(ptr) AccessChain 10(dti) 26 114: 6(int) Load 113 116: 27(ptr) AccessChain 10(dti) 26 117: 6(int) Load 116 119: 118(ptr) AccessChain 24(data) 25 117 115 120: 17(fvec4) Load 119 121: 17(fvec4) GroupNonUniformQuadBroadcast 35 120 26 122: 118(ptr) AccessChain 24(data) 25 114 115 Store 122 121 123: 27(ptr) AccessChain 10(dti) 26 124: 6(int) Load 123 125: 27(ptr) AccessChain 10(dti) 26 126: 6(int) Load 125 128: 127(ptr) AccessChain 24(data) 25 126 115 26 129: 16(float) Load 128 130: 16(float) GroupNonUniformQuadBroadcast 35 129 26 131: 127(ptr) AccessChain 24(data) 25 124 115 26 Store 131 130 132: 27(ptr) AccessChain 10(dti) 26 133: 6(int) Load 132 134: 27(ptr) AccessChain 10(dti) 26 135: 6(int) Load 134 137: 118(ptr) AccessChain 24(data) 25 135 115 138: 17(fvec4) Load 137 139: 136(fvec2) VectorShuffle 138 138 0 1 140: 136(fvec2) GroupNonUniformQuadBroadcast 35 139 26 141: 118(ptr) AccessChain 24(data) 25 133 115 142: 17(fvec4) Load 141 143: 17(fvec4) VectorShuffle 142 140 4 5 2 3 Store 141 143 144: 27(ptr) AccessChain 10(dti) 26 145: 6(int) Load 144 146: 27(ptr) AccessChain 10(dti) 26 147: 6(int) Load 146 149: 118(ptr) AccessChain 24(data) 25 147 115 150: 17(fvec4) Load 149 151: 148(fvec3) VectorShuffle 150 150 0 1 2 152: 148(fvec3) GroupNonUniformQuadBroadcast 35 151 26 153: 118(ptr) AccessChain 24(data) 25 145 115 154: 17(fvec4) Load 153 155: 17(fvec4) VectorShuffle 154 152 4 5 6 3 Store 153 155 156: 27(ptr) AccessChain 10(dti) 26 157: 6(int) Load 156 159: 27(ptr) AccessChain 10(dti) 26 160: 6(int) Load 159 162: 161(ptr) AccessChain 24(data) 25 160 158 163: 19(f64vec4) Load 162 164: 19(f64vec4) GroupNonUniformQuadBroadcast 35 163 26 165: 161(ptr) AccessChain 24(data) 25 157 158 Store 165 164 166: 27(ptr) AccessChain 10(dti) 26 167: 6(int) Load 166 168: 27(ptr) AccessChain 10(dti) 26 169: 6(int) Load 168 171: 170(ptr) AccessChain 24(data) 25 169 158 26 172:18(float64_t) Load 171 173:18(float64_t) GroupNonUniformQuadBroadcast 35 172 26 174: 170(ptr) AccessChain 24(data) 25 167 158 26 Store 174 173 175: 27(ptr) AccessChain 10(dti) 26 176: 6(int) Load 175 177: 27(ptr) AccessChain 10(dti) 26 178: 6(int) Load 177 180: 161(ptr) AccessChain 24(data) 25 178 158 181: 19(f64vec4) Load 180 182:179(f64vec2) VectorShuffle 181 181 0 1 183:179(f64vec2) GroupNonUniformQuadBroadcast 35 182 26 184: 161(ptr) AccessChain 24(data) 25 176 158 185: 19(f64vec4) Load 184 186: 19(f64vec4) VectorShuffle 185 183 4 5 2 3 Store 184 186 187: 27(ptr) AccessChain 10(dti) 26 188: 6(int) Load 187 189: 27(ptr) AccessChain 10(dti) 26 190: 6(int) Load 189 192: 161(ptr) AccessChain 24(data) 25 190 158 193: 19(f64vec4) Load 192 194:191(f64vec3) VectorShuffle 193 193 0 1 2 195:191(f64vec3) GroupNonUniformQuadBroadcast 35 194 26 196: 161(ptr) AccessChain 24(data) 25 188 158 197: 19(f64vec4) Load 196 198: 19(f64vec4) VectorShuffle 197 195 4 5 6 3 Store 196 198 199: 27(ptr) AccessChain 10(dti) 26 200: 6(int) Load 199 201: 27(ptr) AccessChain 10(dti) 26 202: 6(int) Load 201 203: 32(ptr) AccessChain 24(data) 25 202 25 204: 13(ivec4) Load 203 206: 13(ivec4) GroupNonUniformQuadBroadcast 35 204 205 207: 32(ptr) AccessChain 24(data) 25 200 25 Store 207 206 208: 27(ptr) AccessChain 10(dti) 26 209: 6(int) Load 208 210: 27(ptr) AccessChain 10(dti) 26 211: 6(int) Load 210 212: 42(ptr) AccessChain 24(data) 25 211 25 26 213: 6(int) Load 212 214: 6(int) GroupNonUniformQuadBroadcast 35 213 205 215: 42(ptr) AccessChain 24(data) 25 209 25 26 Store 215 214 216: 27(ptr) AccessChain 10(dti) 26 217: 6(int) Load 216 218: 27(ptr) AccessChain 10(dti) 26 219: 6(int) Load 218 220: 32(ptr) AccessChain 24(data) 25 219 25 221: 13(ivec4) Load 220 222: 51(ivec2) VectorShuffle 221 221 0 1 223: 51(ivec2) GroupNonUniformQuadBroadcast 35 222 205 224: 32(ptr) AccessChain 24(data) 25 217 25 225: 13(ivec4) Load 224 226: 13(ivec4) VectorShuffle 225 223 4 5 2 3 Store 224 226 227: 27(ptr) AccessChain 10(dti) 26 228: 6(int) Load 227 229: 27(ptr) AccessChain 10(dti) 26 230: 6(int) Load 229 231: 32(ptr) AccessChain 24(data) 25 230 25 232: 13(ivec4) Load 231 233: 7(ivec3) VectorShuffle 232 232 0 1 2 234: 7(ivec3) GroupNonUniformQuadBroadcast 35 233 205 235: 32(ptr) AccessChain 24(data) 25 228 25 236: 13(ivec4) Load 235 237: 13(ivec4) VectorShuffle 236 234 4 5 6 3 Store 235 237 238: 27(ptr) AccessChain 10(dti) 26 239: 6(int) Load 238 240: 27(ptr) AccessChain 10(dti) 26 241: 6(int) Load 240 242: 75(ptr) AccessChain 24(data) 25 241 72 243: 15(ivec4) Load 242 244: 15(ivec4) GroupNonUniformQuadBroadcast 35 243 205 245: 75(ptr) AccessChain 24(data) 25 239 72 Store 245 244 246: 27(ptr) AccessChain 10(dti) 26 247: 6(int) Load 246 248: 27(ptr) AccessChain 10(dti) 26 249: 6(int) Load 248 250: 84(ptr) AccessChain 24(data) 25 249 72 26 251: 14(int) Load 250 252: 14(int) GroupNonUniformQuadBroadcast 35 251 205 253: 84(ptr) AccessChain 24(data) 25 247 72 26 Store 253 252 254: 27(ptr) AccessChain 10(dti) 26 255: 6(int) Load 254 256: 27(ptr) AccessChain 10(dti) 26 257: 6(int) Load 256 258: 75(ptr) AccessChain 24(data) 25 257 72 259: 15(ivec4) Load 258 260: 93(ivec2) VectorShuffle 259 259 0 1 261: 93(ivec2) GroupNonUniformQuadBroadcast 35 260 205 262: 75(ptr) AccessChain 24(data) 25 255 72 263: 15(ivec4) Load 262 264: 15(ivec4) VectorShuffle 263 261 4 5 2 3 Store 262 264 265: 27(ptr) AccessChain 10(dti) 26 266: 6(int) Load 265 267: 27(ptr) AccessChain 10(dti) 26 268: 6(int) Load 267 269: 75(ptr) AccessChain 24(data) 25 268 72 270: 15(ivec4) Load 269 271: 105(ivec3) VectorShuffle 270 270 0 1 2 272: 105(ivec3) GroupNonUniformQuadBroadcast 35 271 205 273: 75(ptr) AccessChain 24(data) 25 266 72 274: 15(ivec4) Load 273 275: 15(ivec4) VectorShuffle 274 272 4 5 6 3 Store 273 275 276: 27(ptr) AccessChain 10(dti) 26 277: 6(int) Load 276 278: 27(ptr) AccessChain 10(dti) 26 279: 6(int) Load 278 280: 118(ptr) AccessChain 24(data) 25 279 115 281: 17(fvec4) Load 280 282: 17(fvec4) GroupNonUniformQuadBroadcast 35 281 205 283: 118(ptr) AccessChain 24(data) 25 277 115 Store 283 282 284: 27(ptr) AccessChain 10(dti) 26 285: 6(int) Load 284 286: 27(ptr) AccessChain 10(dti) 26 287: 6(int) Load 286 288: 127(ptr) AccessChain 24(data) 25 287 115 26 289: 16(float) Load 288 290: 16(float) GroupNonUniformQuadBroadcast 35 289 205 291: 127(ptr) AccessChain 24(data) 25 285 115 26 Store 291 290 292: 27(ptr) AccessChain 10(dti) 26 293: 6(int) Load 292 294: 27(ptr) AccessChain 10(dti) 26 295: 6(int) Load 294 296: 118(ptr) AccessChain 24(data) 25 295 115 297: 17(fvec4) Load 296 298: 136(fvec2) VectorShuffle 297 297 0 1 299: 136(fvec2) GroupNonUniformQuadBroadcast 35 298 205 300: 118(ptr) AccessChain 24(data) 25 293 115 301: 17(fvec4) Load 300 302: 17(fvec4) VectorShuffle 301 299 4 5 2 3 Store 300 302 303: 27(ptr) AccessChain 10(dti) 26 304: 6(int) Load 303 305: 27(ptr) AccessChain 10(dti) 26 306: 6(int) Load 305 307: 118(ptr) AccessChain 24(data) 25 306 115 308: 17(fvec4) Load 307 309: 148(fvec3) VectorShuffle 308 308 0 1 2 310: 148(fvec3) GroupNonUniformQuadBroadcast 35 309 205 311: 118(ptr) AccessChain 24(data) 25 304 115 312: 17(fvec4) Load 311 313: 17(fvec4) VectorShuffle 312 310 4 5 6 3 Store 311 313 314: 27(ptr) AccessChain 10(dti) 26 315: 6(int) Load 314 316: 27(ptr) AccessChain 10(dti) 26 317: 6(int) Load 316 318: 161(ptr) AccessChain 24(data) 25 317 158 319: 19(f64vec4) Load 318 320: 19(f64vec4) GroupNonUniformQuadBroadcast 35 319 205 321: 161(ptr) AccessChain 24(data) 25 315 158 Store 321 320 322: 27(ptr) AccessChain 10(dti) 26 323: 6(int) Load 322 324: 27(ptr) AccessChain 10(dti) 26 325: 6(int) Load 324 326: 170(ptr) AccessChain 24(data) 25 325 158 26 327:18(float64_t) Load 326 328:18(float64_t) GroupNonUniformQuadBroadcast 35 327 205 329: 170(ptr) AccessChain 24(data) 25 323 158 26 Store 329 328 330: 27(ptr) AccessChain 10(dti) 26 331: 6(int) Load 330 332: 27(ptr) AccessChain 10(dti) 26 333: 6(int) Load 332 334: 161(ptr) AccessChain 24(data) 25 333 158 335: 19(f64vec4) Load 334 336:179(f64vec2) VectorShuffle 335 335 0 1 337:179(f64vec2) GroupNonUniformQuadBroadcast 35 336 205 338: 161(ptr) AccessChain 24(data) 25 331 158 339: 19(f64vec4) Load 338 340: 19(f64vec4) VectorShuffle 339 337 4 5 2 3 Store 338 340 341: 27(ptr) AccessChain 10(dti) 26 342: 6(int) Load 341 343: 27(ptr) AccessChain 10(dti) 26 344: 6(int) Load 343 345: 161(ptr) AccessChain 24(data) 25 344 158 346: 19(f64vec4) Load 345 347:191(f64vec3) VectorShuffle 346 346 0 1 2 348:191(f64vec3) GroupNonUniformQuadBroadcast 35 347 205 349: 161(ptr) AccessChain 24(data) 25 342 158 350: 19(f64vec4) Load 349 351: 19(f64vec4) VectorShuffle 350 348 4 5 6 3 Store 349 351 352: 27(ptr) AccessChain 10(dti) 26 353: 6(int) Load 352 354: 27(ptr) AccessChain 10(dti) 26 355: 6(int) Load 354 356: 32(ptr) AccessChain 24(data) 25 355 25 357: 13(ivec4) Load 356 359: 13(ivec4) GroupNonUniformQuadBroadcast 35 357 358 360: 32(ptr) AccessChain 24(data) 25 353 25 Store 360 359 361: 27(ptr) AccessChain 10(dti) 26 362: 6(int) Load 361 363: 27(ptr) AccessChain 10(dti) 26 364: 6(int) Load 363 365: 42(ptr) AccessChain 24(data) 25 364 25 26 366: 6(int) Load 365 367: 6(int) GroupNonUniformQuadBroadcast 35 366 358 368: 42(ptr) AccessChain 24(data) 25 362 25 26 Store 368 367 369: 27(ptr) AccessChain 10(dti) 26 370: 6(int) Load 369 371: 27(ptr) AccessChain 10(dti) 26 372: 6(int) Load 371 373: 32(ptr) AccessChain 24(data) 25 372 25 374: 13(ivec4) Load 373 375: 51(ivec2) VectorShuffle 374 374 0 1 376: 51(ivec2) GroupNonUniformQuadBroadcast 35 375 358 377: 32(ptr) AccessChain 24(data) 25 370 25 378: 13(ivec4) Load 377 379: 13(ivec4) VectorShuffle 378 376 4 5 2 3 Store 377 379 380: 27(ptr) AccessChain 10(dti) 26 381: 6(int) Load 380 382: 27(ptr) AccessChain 10(dti) 26 383: 6(int) Load 382 384: 32(ptr) AccessChain 24(data) 25 383 25 385: 13(ivec4) Load 384 386: 7(ivec3) VectorShuffle 385 385 0 1 2 387: 7(ivec3) GroupNonUniformQuadBroadcast 35 386 358 388: 32(ptr) AccessChain 24(data) 25 381 25 389: 13(ivec4) Load 388 390: 13(ivec4) VectorShuffle 389 387 4 5 6 3 Store 388 390 391: 27(ptr) AccessChain 10(dti) 26 392: 6(int) Load 391 393: 27(ptr) AccessChain 10(dti) 26 394: 6(int) Load 393 395: 75(ptr) AccessChain 24(data) 25 394 72 396: 15(ivec4) Load 395 397: 15(ivec4) GroupNonUniformQuadBroadcast 35 396 358 398: 75(ptr) AccessChain 24(data) 25 392 72 Store 398 397 399: 27(ptr) AccessChain 10(dti) 26 400: 6(int) Load 399 401: 27(ptr) AccessChain 10(dti) 26 402: 6(int) Load 401 403: 84(ptr) AccessChain 24(data) 25 402 72 26 404: 14(int) Load 403 405: 14(int) GroupNonUniformQuadBroadcast 35 404 358 406: 84(ptr) AccessChain 24(data) 25 400 72 26 Store 406 405 407: 27(ptr) AccessChain 10(dti) 26 408: 6(int) Load 407 409: 27(ptr) AccessChain 10(dti) 26 410: 6(int) Load 409 411: 75(ptr) AccessChain 24(data) 25 410 72 412: 15(ivec4) Load 411 413: 93(ivec2) VectorShuffle 412 412 0 1 414: 93(ivec2) GroupNonUniformQuadBroadcast 35 413 358 415: 75(ptr) AccessChain 24(data) 25 408 72 416: 15(ivec4) Load 415 417: 15(ivec4) VectorShuffle 416 414 4 5 2 3 Store 415 417 418: 27(ptr) AccessChain 10(dti) 26 419: 6(int) Load 418 420: 27(ptr) AccessChain 10(dti) 26 421: 6(int) Load 420 422: 75(ptr) AccessChain 24(data) 25 421 72 423: 15(ivec4) Load 422 424: 105(ivec3) VectorShuffle 423 423 0 1 2 425: 105(ivec3) GroupNonUniformQuadBroadcast 35 424 358 426: 75(ptr) AccessChain 24(data) 25 419 72 427: 15(ivec4) Load 426 428: 15(ivec4) VectorShuffle 427 425 4 5 6 3 Store 426 428 429: 27(ptr) AccessChain 10(dti) 26 430: 6(int) Load 429 431: 27(ptr) AccessChain 10(dti) 26 432: 6(int) Load 431 433: 118(ptr) AccessChain 24(data) 25 432 115 434: 17(fvec4) Load 433 435: 17(fvec4) GroupNonUniformQuadBroadcast 35 434 358 436: 118(ptr) AccessChain 24(data) 25 430 115 Store 436 435 437: 27(ptr) AccessChain 10(dti) 26 438: 6(int) Load 437 439: 27(ptr) AccessChain 10(dti) 26 440: 6(int) Load 439 441: 127(ptr) AccessChain 24(data) 25 440 115 26 442: 16(float) Load 441 443: 16(float) GroupNonUniformQuadBroadcast 35 442 358 444: 127(ptr) AccessChain 24(data) 25 438 115 26 Store 444 443 445: 27(ptr) AccessChain 10(dti) 26 446: 6(int) Load 445 447: 27(ptr) AccessChain 10(dti) 26 448: 6(int) Load 447 449: 118(ptr) AccessChain 24(data) 25 448 115 450: 17(fvec4) Load 449 451: 136(fvec2) VectorShuffle 450 450 0 1 452: 136(fvec2) GroupNonUniformQuadBroadcast 35 451 358 453: 118(ptr) AccessChain 24(data) 25 446 115 454: 17(fvec4) Load 453 455: 17(fvec4) VectorShuffle 454 452 4 5 2 3 Store 453 455 456: 27(ptr) AccessChain 10(dti) 26 457: 6(int) Load 456 458: 27(ptr) AccessChain 10(dti) 26 459: 6(int) Load 458 460: 118(ptr) AccessChain 24(data) 25 459 115 461: 17(fvec4) Load 460 462: 148(fvec3) VectorShuffle 461 461 0 1 2 463: 148(fvec3) GroupNonUniformQuadBroadcast 35 462 358 464: 118(ptr) AccessChain 24(data) 25 457 115 465: 17(fvec4) Load 464 466: 17(fvec4) VectorShuffle 465 463 4 5 6 3 Store 464 466 467: 27(ptr) AccessChain 10(dti) 26 468: 6(int) Load 467 469: 27(ptr) AccessChain 10(dti) 26 470: 6(int) Load 469 471: 161(ptr) AccessChain 24(data) 25 470 158 472: 19(f64vec4) Load 471 473: 19(f64vec4) GroupNonUniformQuadBroadcast 35 472 358 474: 161(ptr) AccessChain 24(data) 25 468 158 Store 474 473 475: 27(ptr) AccessChain 10(dti) 26 476: 6(int) Load 475 477: 27(ptr) AccessChain 10(dti) 26 478: 6(int) Load 477 479: 170(ptr) AccessChain 24(data) 25 478 158 26 480:18(float64_t) Load 479 481:18(float64_t) GroupNonUniformQuadBroadcast 35 480 358 482: 170(ptr) AccessChain 24(data) 25 476 158 26 Store 482 481 483: 27(ptr) AccessChain 10(dti) 26 484: 6(int) Load 483 485: 27(ptr) AccessChain 10(dti) 26 486: 6(int) Load 485 487: 161(ptr) AccessChain 24(data) 25 486 158 488: 19(f64vec4) Load 487 489:179(f64vec2) VectorShuffle 488 488 0 1 490:179(f64vec2) GroupNonUniformQuadBroadcast 35 489 358 491: 161(ptr) AccessChain 24(data) 25 484 158 492: 19(f64vec4) Load 491 493: 19(f64vec4) VectorShuffle 492 490 4 5 2 3 Store 491 493 494: 27(ptr) AccessChain 10(dti) 26 495: 6(int) Load 494 496: 27(ptr) AccessChain 10(dti) 26 497: 6(int) Load 496 498: 161(ptr) AccessChain 24(data) 25 497 158 499: 19(f64vec4) Load 498 500:191(f64vec3) VectorShuffle 499 499 0 1 2 501:191(f64vec3) GroupNonUniformQuadBroadcast 35 500 358 502: 161(ptr) AccessChain 24(data) 25 495 158 503: 19(f64vec4) Load 502 504: 19(f64vec4) VectorShuffle 503 501 4 5 6 3 Store 502 504 505: 27(ptr) AccessChain 10(dti) 26 506: 6(int) Load 505 507: 27(ptr) AccessChain 10(dti) 26 508: 6(int) Load 507 509: 32(ptr) AccessChain 24(data) 25 508 25 510: 13(ivec4) Load 509 511: 13(ivec4) GroupNonUniformQuadBroadcast 35 510 35 512: 32(ptr) AccessChain 24(data) 25 506 25 Store 512 511 513: 27(ptr) AccessChain 10(dti) 26 514: 6(int) Load 513 515: 27(ptr) AccessChain 10(dti) 26 516: 6(int) Load 515 517: 42(ptr) AccessChain 24(data) 25 516 25 26 518: 6(int) Load 517 519: 6(int) GroupNonUniformQuadBroadcast 35 518 35 520: 42(ptr) AccessChain 24(data) 25 514 25 26 Store 520 519 521: 27(ptr) AccessChain 10(dti) 26 522: 6(int) Load 521 523: 27(ptr) AccessChain 10(dti) 26 524: 6(int) Load 523 525: 32(ptr) AccessChain 24(data) 25 524 25 526: 13(ivec4) Load 525 527: 51(ivec2) VectorShuffle 526 526 0 1 528: 51(ivec2) GroupNonUniformQuadBroadcast 35 527 35 529: 32(ptr) AccessChain 24(data) 25 522 25 530: 13(ivec4) Load 529 531: 13(ivec4) VectorShuffle 530 528 4 5 2 3 Store 529 531 532: 27(ptr) AccessChain 10(dti) 26 533: 6(int) Load 532 534: 27(ptr) AccessChain 10(dti) 26 535: 6(int) Load 534 536: 32(ptr) AccessChain 24(data) 25 535 25 537: 13(ivec4) Load 536 538: 7(ivec3) VectorShuffle 537 537 0 1 2 539: 7(ivec3) GroupNonUniformQuadBroadcast 35 538 35 540: 32(ptr) AccessChain 24(data) 25 533 25 541: 13(ivec4) Load 540 542: 13(ivec4) VectorShuffle 541 539 4 5 6 3 Store 540 542 543: 27(ptr) AccessChain 10(dti) 26 544: 6(int) Load 543 545: 27(ptr) AccessChain 10(dti) 26 546: 6(int) Load 545 547: 75(ptr) AccessChain 24(data) 25 546 72 548: 15(ivec4) Load 547 549: 15(ivec4) GroupNonUniformQuadBroadcast 35 548 35 550: 75(ptr) AccessChain 24(data) 25 544 72 Store 550 549 551: 27(ptr) AccessChain 10(dti) 26 552: 6(int) Load 551 553: 27(ptr) AccessChain 10(dti) 26 554: 6(int) Load 553 555: 84(ptr) AccessChain 24(data) 25 554 72 26 556: 14(int) Load 555 557: 14(int) GroupNonUniformQuadBroadcast 35 556 35 558: 84(ptr) AccessChain 24(data) 25 552 72 26 Store 558 557 559: 27(ptr) AccessChain 10(dti) 26 560: 6(int) Load 559 561: 27(ptr) AccessChain 10(dti) 26 562: 6(int) Load 561 563: 75(ptr) AccessChain 24(data) 25 562 72 564: 15(ivec4) Load 563 565: 93(ivec2) VectorShuffle 564 564 0 1 566: 93(ivec2) GroupNonUniformQuadBroadcast 35 565 35 567: 75(ptr) AccessChain 24(data) 25 560 72 568: 15(ivec4) Load 567 569: 15(ivec4) VectorShuffle 568 566 4 5 2 3 Store 567 569 570: 27(ptr) AccessChain 10(dti) 26 571: 6(int) Load 570 572: 27(ptr) AccessChain 10(dti) 26 573: 6(int) Load 572 574: 75(ptr) AccessChain 24(data) 25 573 72 575: 15(ivec4) Load 574 576: 105(ivec3) VectorShuffle 575 575 0 1 2 577: 105(ivec3) GroupNonUniformQuadBroadcast 35 576 35 578: 75(ptr) AccessChain 24(data) 25 571 72 579: 15(ivec4) Load 578 580: 15(ivec4) VectorShuffle 579 577 4 5 6 3 Store 578 580 581: 27(ptr) AccessChain 10(dti) 26 582: 6(int) Load 581 583: 27(ptr) AccessChain 10(dti) 26 584: 6(int) Load 583 585: 118(ptr) AccessChain 24(data) 25 584 115 586: 17(fvec4) Load 585 587: 17(fvec4) GroupNonUniformQuadBroadcast 35 586 35 588: 118(ptr) AccessChain 24(data) 25 582 115 Store 588 587 589: 27(ptr) AccessChain 10(dti) 26 590: 6(int) Load 589 591: 27(ptr) AccessChain 10(dti) 26 592: 6(int) Load 591 593: 127(ptr) AccessChain 24(data) 25 592 115 26 594: 16(float) Load 593 595: 16(float) GroupNonUniformQuadBroadcast 35 594 35 596: 127(ptr) AccessChain 24(data) 25 590 115 26 Store 596 595 597: 27(ptr) AccessChain 10(dti) 26 598: 6(int) Load 597 599: 27(ptr) AccessChain 10(dti) 26 600: 6(int) Load 599 601: 118(ptr) AccessChain 24(data) 25 600 115 602: 17(fvec4) Load 601 603: 136(fvec2) VectorShuffle 602 602 0 1 604: 136(fvec2) GroupNonUniformQuadBroadcast 35 603 35 605: 118(ptr) AccessChain 24(data) 25 598 115 606: 17(fvec4) Load 605 607: 17(fvec4) VectorShuffle 606 604 4 5 2 3 Store 605 607 608: 27(ptr) AccessChain 10(dti) 26 609: 6(int) Load 608 610: 27(ptr) AccessChain 10(dti) 26 611: 6(int) Load 610 612: 118(ptr) AccessChain 24(data) 25 611 115 613: 17(fvec4) Load 612 614: 148(fvec3) VectorShuffle 613 613 0 1 2 615: 148(fvec3) GroupNonUniformQuadBroadcast 35 614 35 616: 118(ptr) AccessChain 24(data) 25 609 115 617: 17(fvec4) Load 616 618: 17(fvec4) VectorShuffle 617 615 4 5 6 3 Store 616 618 619: 27(ptr) AccessChain 10(dti) 26 620: 6(int) Load 619 621: 27(ptr) AccessChain 10(dti) 26 622: 6(int) Load 621 623: 161(ptr) AccessChain 24(data) 25 622 158 624: 19(f64vec4) Load 623 625: 19(f64vec4) GroupNonUniformQuadBroadcast 35 624 35 626: 161(ptr) AccessChain 24(data) 25 620 158 Store 626 625 627: 27(ptr) AccessChain 10(dti) 26 628: 6(int) Load 627 629: 27(ptr) AccessChain 10(dti) 26 630: 6(int) Load 629 631: 170(ptr) AccessChain 24(data) 25 630 158 26 632:18(float64_t) Load 631 633:18(float64_t) GroupNonUniformQuadBroadcast 35 632 35 634: 170(ptr) AccessChain 24(data) 25 628 158 26 Store 634 633 635: 27(ptr) AccessChain 10(dti) 26 636: 6(int) Load 635 637: 27(ptr) AccessChain 10(dti) 26 638: 6(int) Load 637 639: 161(ptr) AccessChain 24(data) 25 638 158 640: 19(f64vec4) Load 639 641:179(f64vec2) VectorShuffle 640 640 0 1 642:179(f64vec2) GroupNonUniformQuadBroadcast 35 641 35 643: 161(ptr) AccessChain 24(data) 25 636 158 644: 19(f64vec4) Load 643 645: 19(f64vec4) VectorShuffle 644 642 4 5 2 3 Store 643 645 646: 27(ptr) AccessChain 10(dti) 26 647: 6(int) Load 646 648: 27(ptr) AccessChain 10(dti) 26 649: 6(int) Load 648 650: 161(ptr) AccessChain 24(data) 25 649 158 651: 19(f64vec4) Load 650 652:191(f64vec3) VectorShuffle 651 651 0 1 2 653:191(f64vec3) GroupNonUniformQuadBroadcast 35 652 35 654: 161(ptr) AccessChain 24(data) 25 647 158 655: 19(f64vec4) Load 654 656: 19(f64vec4) VectorShuffle 655 653 4 5 6 3 Store 654 656 657: 27(ptr) AccessChain 10(dti) 26 658: 6(int) Load 657 659: 27(ptr) AccessChain 10(dti) 26 660: 6(int) Load 659 661: 32(ptr) AccessChain 24(data) 25 660 25 662: 13(ivec4) Load 661 663: 13(ivec4) GroupNonUniformQuadSwap 35 662 26 664: 32(ptr) AccessChain 24(data) 25 658 25 Store 664 663 665: 27(ptr) AccessChain 10(dti) 26 666: 6(int) Load 665 667: 27(ptr) AccessChain 10(dti) 26 668: 6(int) Load 667 669: 42(ptr) AccessChain 24(data) 25 668 25 26 670: 6(int) Load 669 671: 6(int) GroupNonUniformQuadSwap 35 670 26 672: 42(ptr) AccessChain 24(data) 25 666 25 26 Store 672 671 673: 27(ptr) AccessChain 10(dti) 26 674: 6(int) Load 673 675: 27(ptr) AccessChain 10(dti) 26 676: 6(int) Load 675 677: 32(ptr) AccessChain 24(data) 25 676 25 678: 13(ivec4) Load 677 679: 51(ivec2) VectorShuffle 678 678 0 1 680: 51(ivec2) GroupNonUniformQuadSwap 35 679 26 681: 32(ptr) AccessChain 24(data) 25 674 25 682: 13(ivec4) Load 681 683: 13(ivec4) VectorShuffle 682 680 4 5 2 3 Store 681 683 684: 27(ptr) AccessChain 10(dti) 26 685: 6(int) Load 684 686: 27(ptr) AccessChain 10(dti) 26 687: 6(int) Load 686 688: 32(ptr) AccessChain 24(data) 25 687 25 689: 13(ivec4) Load 688 690: 7(ivec3) VectorShuffle 689 689 0 1 2 691: 7(ivec3) GroupNonUniformQuadSwap 35 690 26 692: 32(ptr) AccessChain 24(data) 25 685 25 693: 13(ivec4) Load 692 694: 13(ivec4) VectorShuffle 693 691 4 5 6 3 Store 692 694 695: 27(ptr) AccessChain 10(dti) 26 696: 6(int) Load 695 697: 27(ptr) AccessChain 10(dti) 26 698: 6(int) Load 697 699: 75(ptr) AccessChain 24(data) 25 698 72 700: 15(ivec4) Load 699 701: 15(ivec4) GroupNonUniformQuadSwap 35 700 26 702: 75(ptr) AccessChain 24(data) 25 696 72 Store 702 701 703: 27(ptr) AccessChain 10(dti) 26 704: 6(int) Load 703 705: 27(ptr) AccessChain 10(dti) 26 706: 6(int) Load 705 707: 84(ptr) AccessChain 24(data) 25 706 72 26 708: 14(int) Load 707 709: 14(int) GroupNonUniformQuadSwap 35 708 26 710: 84(ptr) AccessChain 24(data) 25 704 72 26 Store 710 709 711: 27(ptr) AccessChain 10(dti) 26 712: 6(int) Load 711 713: 27(ptr) AccessChain 10(dti) 26 714: 6(int) Load 713 715: 75(ptr) AccessChain 24(data) 25 714 72 716: 15(ivec4) Load 715 717: 93(ivec2) VectorShuffle 716 716 0 1 718: 93(ivec2) GroupNonUniformQuadSwap 35 717 26 719: 75(ptr) AccessChain 24(data) 25 712 72 720: 15(ivec4) Load 719 721: 15(ivec4) VectorShuffle 720 718 4 5 2 3 Store 719 721 722: 27(ptr) AccessChain 10(dti) 26 723: 6(int) Load 722 724: 27(ptr) AccessChain 10(dti) 26 725: 6(int) Load 724 726: 75(ptr) AccessChain 24(data) 25 725 72 727: 15(ivec4) Load 726 728: 105(ivec3) VectorShuffle 727 727 0 1 2 729: 105(ivec3) GroupNonUniformQuadSwap 35 728 26 730: 75(ptr) AccessChain 24(data) 25 723 72 731: 15(ivec4) Load 730 732: 15(ivec4) VectorShuffle 731 729 4 5 6 3 Store 730 732 733: 27(ptr) AccessChain 10(dti) 26 734: 6(int) Load 733 735: 27(ptr) AccessChain 10(dti) 26 736: 6(int) Load 735 737: 118(ptr) AccessChain 24(data) 25 736 115 738: 17(fvec4) Load 737 739: 17(fvec4) GroupNonUniformQuadSwap 35 738 26 740: 118(ptr) AccessChain 24(data) 25 734 115 Store 740 739 741: 27(ptr) AccessChain 10(dti) 26 742: 6(int) Load 741 743: 27(ptr) AccessChain 10(dti) 26 744: 6(int) Load 743 745: 127(ptr) AccessChain 24(data) 25 744 115 26 746: 16(float) Load 745 747: 16(float) GroupNonUniformQuadSwap 35 746 26 748: 127(ptr) AccessChain 24(data) 25 742 115 26 Store 748 747 749: 27(ptr) AccessChain 10(dti) 26 750: 6(int) Load 749 751: 27(ptr) AccessChain 10(dti) 26 752: 6(int) Load 751 753: 118(ptr) AccessChain 24(data) 25 752 115 754: 17(fvec4) Load 753 755: 136(fvec2) VectorShuffle 754 754 0 1 756: 136(fvec2) GroupNonUniformQuadSwap 35 755 26 757: 118(ptr) AccessChain 24(data) 25 750 115 758: 17(fvec4) Load 757 759: 17(fvec4) VectorShuffle 758 756 4 5 2 3 Store 757 759 760: 27(ptr) AccessChain 10(dti) 26 761: 6(int) Load 760 762: 27(ptr) AccessChain 10(dti) 26 763: 6(int) Load 762 764: 118(ptr) AccessChain 24(data) 25 763 115 765: 17(fvec4) Load 764 766: 148(fvec3) VectorShuffle 765 765 0 1 2 767: 148(fvec3) GroupNonUniformQuadSwap 35 766 26 768: 118(ptr) AccessChain 24(data) 25 761 115 769: 17(fvec4) Load 768 770: 17(fvec4) VectorShuffle 769 767 4 5 6 3 Store 768 770 771: 27(ptr) AccessChain 10(dti) 26 772: 6(int) Load 771 773: 27(ptr) AccessChain 10(dti) 26 774: 6(int) Load 773 775: 161(ptr) AccessChain 24(data) 25 774 158 776: 19(f64vec4) Load 775 777: 19(f64vec4) GroupNonUniformQuadSwap 35 776 26 778: 161(ptr) AccessChain 24(data) 25 772 158 Store 778 777 779: 27(ptr) AccessChain 10(dti) 26 780: 6(int) Load 779 781: 27(ptr) AccessChain 10(dti) 26 782: 6(int) Load 781 783: 170(ptr) AccessChain 24(data) 25 782 158 26 784:18(float64_t) Load 783 785:18(float64_t) GroupNonUniformQuadSwap 35 784 26 786: 170(ptr) AccessChain 24(data) 25 780 158 26 Store 786 785 787: 27(ptr) AccessChain 10(dti) 26 788: 6(int) Load 787 789: 27(ptr) AccessChain 10(dti) 26 790: 6(int) Load 789 791: 161(ptr) AccessChain 24(data) 25 790 158 792: 19(f64vec4) Load 791 793:179(f64vec2) VectorShuffle 792 792 0 1 794:179(f64vec2) GroupNonUniformQuadSwap 35 793 26 795: 161(ptr) AccessChain 24(data) 25 788 158 796: 19(f64vec4) Load 795 797: 19(f64vec4) VectorShuffle 796 794 4 5 2 3 Store 795 797 798: 27(ptr) AccessChain 10(dti) 26 799: 6(int) Load 798 800: 27(ptr) AccessChain 10(dti) 26 801: 6(int) Load 800 802: 161(ptr) AccessChain 24(data) 25 801 158 803: 19(f64vec4) Load 802 804:191(f64vec3) VectorShuffle 803 803 0 1 2 805:191(f64vec3) GroupNonUniformQuadSwap 35 804 26 806: 161(ptr) AccessChain 24(data) 25 799 158 807: 19(f64vec4) Load 806 808: 19(f64vec4) VectorShuffle 807 805 4 5 6 3 Store 806 808 809: 27(ptr) AccessChain 10(dti) 26 810: 6(int) Load 809 811: 27(ptr) AccessChain 10(dti) 26 812: 6(int) Load 811 813: 32(ptr) AccessChain 24(data) 25 812 25 814: 13(ivec4) Load 813 815: 13(ivec4) GroupNonUniformQuadSwap 35 814 205 816: 32(ptr) AccessChain 24(data) 25 810 25 Store 816 815 817: 27(ptr) AccessChain 10(dti) 26 818: 6(int) Load 817 819: 27(ptr) AccessChain 10(dti) 26 820: 6(int) Load 819 821: 42(ptr) AccessChain 24(data) 25 820 25 26 822: 6(int) Load 821 823: 6(int) GroupNonUniformQuadSwap 35 822 205 824: 42(ptr) AccessChain 24(data) 25 818 25 26 Store 824 823 825: 27(ptr) AccessChain 10(dti) 26 826: 6(int) Load 825 827: 27(ptr) AccessChain 10(dti) 26 828: 6(int) Load 827 829: 32(ptr) AccessChain 24(data) 25 828 25 830: 13(ivec4) Load 829 831: 51(ivec2) VectorShuffle 830 830 0 1 832: 51(ivec2) GroupNonUniformQuadSwap 35 831 205 833: 32(ptr) AccessChain 24(data) 25 826 25 834: 13(ivec4) Load 833 835: 13(ivec4) VectorShuffle 834 832 4 5 2 3 Store 833 835 836: 27(ptr) AccessChain 10(dti) 26 837: 6(int) Load 836 838: 27(ptr) AccessChain 10(dti) 26 839: 6(int) Load 838 840: 32(ptr) AccessChain 24(data) 25 839 25 841: 13(ivec4) Load 840 842: 7(ivec3) VectorShuffle 841 841 0 1 2 843: 7(ivec3) GroupNonUniformQuadSwap 35 842 205 844: 32(ptr) AccessChain 24(data) 25 837 25 845: 13(ivec4) Load 844 846: 13(ivec4) VectorShuffle 845 843 4 5 6 3 Store 844 846 847: 27(ptr) AccessChain 10(dti) 26 848: 6(int) Load 847 849: 27(ptr) AccessChain 10(dti) 26 850: 6(int) Load 849 851: 75(ptr) AccessChain 24(data) 25 850 72 852: 15(ivec4) Load 851 853: 15(ivec4) GroupNonUniformQuadSwap 35 852 205 854: 75(ptr) AccessChain 24(data) 25 848 72 Store 854 853 855: 27(ptr) AccessChain 10(dti) 26 856: 6(int) Load 855 857: 27(ptr) AccessChain 10(dti) 26 858: 6(int) Load 857 859: 84(ptr) AccessChain 24(data) 25 858 72 26 860: 14(int) Load 859 861: 14(int) GroupNonUniformQuadSwap 35 860 205 862: 84(ptr) AccessChain 24(data) 25 856 72 26 Store 862 861 863: 27(ptr) AccessChain 10(dti) 26 864: 6(int) Load 863 865: 27(ptr) AccessChain 10(dti) 26 866: 6(int) Load 865 867: 75(ptr) AccessChain 24(data) 25 866 72 868: 15(ivec4) Load 867 869: 93(ivec2) VectorShuffle 868 868 0 1 870: 93(ivec2) GroupNonUniformQuadSwap 35 869 205 871: 75(ptr) AccessChain 24(data) 25 864 72 872: 15(ivec4) Load 871 873: 15(ivec4) VectorShuffle 872 870 4 5 2 3 Store 871 873 874: 27(ptr) AccessChain 10(dti) 26 875: 6(int) Load 874 876: 27(ptr) AccessChain 10(dti) 26 877: 6(int) Load 876 878: 75(ptr) AccessChain 24(data) 25 877 72 879: 15(ivec4) Load 878 880: 105(ivec3) VectorShuffle 879 879 0 1 2 881: 105(ivec3) GroupNonUniformQuadSwap 35 880 205 882: 75(ptr) AccessChain 24(data) 25 875 72 883: 15(ivec4) Load 882 884: 15(ivec4) VectorShuffle 883 881 4 5 6 3 Store 882 884 885: 27(ptr) AccessChain 10(dti) 26 886: 6(int) Load 885 887: 27(ptr) AccessChain 10(dti) 26 888: 6(int) Load 887 889: 118(ptr) AccessChain 24(data) 25 888 115 890: 17(fvec4) Load 889 891: 17(fvec4) GroupNonUniformQuadSwap 35 890 205 892: 118(ptr) AccessChain 24(data) 25 886 115 Store 892 891 893: 27(ptr) AccessChain 10(dti) 26 894: 6(int) Load 893 895: 27(ptr) AccessChain 10(dti) 26 896: 6(int) Load 895 897: 127(ptr) AccessChain 24(data) 25 896 115 26 898: 16(float) Load 897 899: 16(float) GroupNonUniformQuadSwap 35 898 205 900: 127(ptr) AccessChain 24(data) 25 894 115 26 Store 900 899 901: 27(ptr) AccessChain 10(dti) 26 902: 6(int) Load 901 903: 27(ptr) AccessChain 10(dti) 26 904: 6(int) Load 903 905: 118(ptr) AccessChain 24(data) 25 904 115 906: 17(fvec4) Load 905 907: 136(fvec2) VectorShuffle 906 906 0 1 908: 136(fvec2) GroupNonUniformQuadSwap 35 907 205 909: 118(ptr) AccessChain 24(data) 25 902 115 910: 17(fvec4) Load 909 911: 17(fvec4) VectorShuffle 910 908 4 5 2 3 Store 909 911 912: 27(ptr) AccessChain 10(dti) 26 913: 6(int) Load 912 914: 27(ptr) AccessChain 10(dti) 26 915: 6(int) Load 914 916: 118(ptr) AccessChain 24(data) 25 915 115 917: 17(fvec4) Load 916 918: 148(fvec3) VectorShuffle 917 917 0 1 2 919: 148(fvec3) GroupNonUniformQuadSwap 35 918 205 920: 118(ptr) AccessChain 24(data) 25 913 115 921: 17(fvec4) Load 920 922: 17(fvec4) VectorShuffle 921 919 4 5 6 3 Store 920 922 923: 27(ptr) AccessChain 10(dti) 26 924: 6(int) Load 923 925: 27(ptr) AccessChain 10(dti) 26 926: 6(int) Load 925 927: 161(ptr) AccessChain 24(data) 25 926 158 928: 19(f64vec4) Load 927 929: 19(f64vec4) GroupNonUniformQuadSwap 35 928 205 930: 161(ptr) AccessChain 24(data) 25 924 158 Store 930 929 931: 27(ptr) AccessChain 10(dti) 26 932: 6(int) Load 931 933: 27(ptr) AccessChain 10(dti) 26 934: 6(int) Load 933 935: 170(ptr) AccessChain 24(data) 25 934 158 26 936:18(float64_t) Load 935 937:18(float64_t) GroupNonUniformQuadSwap 35 936 205 938: 170(ptr) AccessChain 24(data) 25 932 158 26 Store 938 937 939: 27(ptr) AccessChain 10(dti) 26 940: 6(int) Load 939 941: 27(ptr) AccessChain 10(dti) 26 942: 6(int) Load 941 943: 161(ptr) AccessChain 24(data) 25 942 158 944: 19(f64vec4) Load 943 945:179(f64vec2) VectorShuffle 944 944 0 1 946:179(f64vec2) GroupNonUniformQuadSwap 35 945 205 947: 161(ptr) AccessChain 24(data) 25 940 158 948: 19(f64vec4) Load 947 949: 19(f64vec4) VectorShuffle 948 946 4 5 2 3 Store 947 949 950: 27(ptr) AccessChain 10(dti) 26 951: 6(int) Load 950 952: 27(ptr) AccessChain 10(dti) 26 953: 6(int) Load 952 954: 161(ptr) AccessChain 24(data) 25 953 158 955: 19(f64vec4) Load 954 956:191(f64vec3) VectorShuffle 955 955 0 1 2 957:191(f64vec3) GroupNonUniformQuadSwap 35 956 205 958: 161(ptr) AccessChain 24(data) 25 951 158 959: 19(f64vec4) Load 958 960: 19(f64vec4) VectorShuffle 959 957 4 5 6 3 Store 958 960 961: 27(ptr) AccessChain 10(dti) 26 962: 6(int) Load 961 963: 27(ptr) AccessChain 10(dti) 26 964: 6(int) Load 963 965: 32(ptr) AccessChain 24(data) 25 964 25 966: 13(ivec4) Load 965 967: 13(ivec4) GroupNonUniformQuadSwap 35 966 358 968: 32(ptr) AccessChain 24(data) 25 962 25 Store 968 967 969: 27(ptr) AccessChain 10(dti) 26 970: 6(int) Load 969 971: 27(ptr) AccessChain 10(dti) 26 972: 6(int) Load 971 973: 42(ptr) AccessChain 24(data) 25 972 25 26 974: 6(int) Load 973 975: 6(int) GroupNonUniformQuadSwap 35 974 358 976: 42(ptr) AccessChain 24(data) 25 970 25 26 Store 976 975 977: 27(ptr) AccessChain 10(dti) 26 978: 6(int) Load 977 979: 27(ptr) AccessChain 10(dti) 26 980: 6(int) Load 979 981: 32(ptr) AccessChain 24(data) 25 980 25 982: 13(ivec4) Load 981 983: 51(ivec2) VectorShuffle 982 982 0 1 984: 51(ivec2) GroupNonUniformQuadSwap 35 983 358 985: 32(ptr) AccessChain 24(data) 25 978 25 986: 13(ivec4) Load 985 987: 13(ivec4) VectorShuffle 986 984 4 5 2 3 Store 985 987 988: 27(ptr) AccessChain 10(dti) 26 989: 6(int) Load 988 990: 27(ptr) AccessChain 10(dti) 26 991: 6(int) Load 990 992: 32(ptr) AccessChain 24(data) 25 991 25 993: 13(ivec4) Load 992 994: 7(ivec3) VectorShuffle 993 993 0 1 2 995: 7(ivec3) GroupNonUniformQuadSwap 35 994 358 996: 32(ptr) AccessChain 24(data) 25 989 25 997: 13(ivec4) Load 996 998: 13(ivec4) VectorShuffle 997 995 4 5 6 3 Store 996 998 999: 27(ptr) AccessChain 10(dti) 26 1000: 6(int) Load 999 1001: 27(ptr) AccessChain 10(dti) 26 1002: 6(int) Load 1001 1003: 75(ptr) AccessChain 24(data) 25 1002 72 1004: 15(ivec4) Load 1003 1005: 15(ivec4) GroupNonUniformQuadSwap 35 1004 358 1006: 75(ptr) AccessChain 24(data) 25 1000 72 Store 1006 1005 1007: 27(ptr) AccessChain 10(dti) 26 1008: 6(int) Load 1007 1009: 27(ptr) AccessChain 10(dti) 26 1010: 6(int) Load 1009 1011: 84(ptr) AccessChain 24(data) 25 1010 72 26 1012: 14(int) Load 1011 1013: 14(int) GroupNonUniformQuadSwap 35 1012 358 1014: 84(ptr) AccessChain 24(data) 25 1008 72 26 Store 1014 1013 1015: 27(ptr) AccessChain 10(dti) 26 1016: 6(int) Load 1015 1017: 27(ptr) AccessChain 10(dti) 26 1018: 6(int) Load 1017 1019: 75(ptr) AccessChain 24(data) 25 1018 72 1020: 15(ivec4) Load 1019 1021: 93(ivec2) VectorShuffle 1020 1020 0 1 1022: 93(ivec2) GroupNonUniformQuadSwap 35 1021 358 1023: 75(ptr) AccessChain 24(data) 25 1016 72 1024: 15(ivec4) Load 1023 1025: 15(ivec4) VectorShuffle 1024 1022 4 5 2 3 Store 1023 1025 1026: 27(ptr) AccessChain 10(dti) 26 1027: 6(int) Load 1026 1028: 27(ptr) AccessChain 10(dti) 26 1029: 6(int) Load 1028 1030: 75(ptr) AccessChain 24(data) 25 1029 72 1031: 15(ivec4) Load 1030 1032: 105(ivec3) VectorShuffle 1031 1031 0 1 2 1033: 105(ivec3) GroupNonUniformQuadSwap 35 1032 358 1034: 75(ptr) AccessChain 24(data) 25 1027 72 1035: 15(ivec4) Load 1034 1036: 15(ivec4) VectorShuffle 1035 1033 4 5 6 3 Store 1034 1036 1037: 27(ptr) AccessChain 10(dti) 26 1038: 6(int) Load 1037 1039: 27(ptr) AccessChain 10(dti) 26 1040: 6(int) Load 1039 1041: 118(ptr) AccessChain 24(data) 25 1040 115 1042: 17(fvec4) Load 1041 1043: 17(fvec4) GroupNonUniformQuadSwap 35 1042 358 1044: 118(ptr) AccessChain 24(data) 25 1038 115 Store 1044 1043 1045: 27(ptr) AccessChain 10(dti) 26 1046: 6(int) Load 1045 1047: 27(ptr) AccessChain 10(dti) 26 1048: 6(int) Load 1047 1049: 127(ptr) AccessChain 24(data) 25 1048 115 26 1050: 16(float) Load 1049 1051: 16(float) GroupNonUniformQuadSwap 35 1050 358 1052: 127(ptr) AccessChain 24(data) 25 1046 115 26 Store 1052 1051 1053: 27(ptr) AccessChain 10(dti) 26 1054: 6(int) Load 1053 1055: 27(ptr) AccessChain 10(dti) 26 1056: 6(int) Load 1055 1057: 118(ptr) AccessChain 24(data) 25 1056 115 1058: 17(fvec4) Load 1057 1059: 136(fvec2) VectorShuffle 1058 1058 0 1 1060: 136(fvec2) GroupNonUniformQuadSwap 35 1059 358 1061: 118(ptr) AccessChain 24(data) 25 1054 115 1062: 17(fvec4) Load 1061 1063: 17(fvec4) VectorShuffle 1062 1060 4 5 2 3 Store 1061 1063 1064: 27(ptr) AccessChain 10(dti) 26 1065: 6(int) Load 1064 1066: 27(ptr) AccessChain 10(dti) 26 1067: 6(int) Load 1066 1068: 118(ptr) AccessChain 24(data) 25 1067 115 1069: 17(fvec4) Load 1068 1070: 148(fvec3) VectorShuffle 1069 1069 0 1 2 1071: 148(fvec3) GroupNonUniformQuadSwap 35 1070 358 1072: 118(ptr) AccessChain 24(data) 25 1065 115 1073: 17(fvec4) Load 1072 1074: 17(fvec4) VectorShuffle 1073 1071 4 5 6 3 Store 1072 1074 1075: 27(ptr) AccessChain 10(dti) 26 1076: 6(int) Load 1075 1077: 27(ptr) AccessChain 10(dti) 26 1078: 6(int) Load 1077 1079: 161(ptr) AccessChain 24(data) 25 1078 158 1080: 19(f64vec4) Load 1079 1081: 19(f64vec4) GroupNonUniformQuadSwap 35 1080 358 1082: 161(ptr) AccessChain 24(data) 25 1076 158 Store 1082 1081 1083: 27(ptr) AccessChain 10(dti) 26 1084: 6(int) Load 1083 1085: 27(ptr) AccessChain 10(dti) 26 1086: 6(int) Load 1085 1087: 170(ptr) AccessChain 24(data) 25 1086 158 26 1088:18(float64_t) Load 1087 1089:18(float64_t) GroupNonUniformQuadSwap 35 1088 358 1090: 170(ptr) AccessChain 24(data) 25 1084 158 26 Store 1090 1089 1091: 27(ptr) AccessChain 10(dti) 26 1092: 6(int) Load 1091 1093: 27(ptr) AccessChain 10(dti) 26 1094: 6(int) Load 1093 1095: 161(ptr) AccessChain 24(data) 25 1094 158 1096: 19(f64vec4) Load 1095 1097:179(f64vec2) VectorShuffle 1096 1096 0 1 1098:179(f64vec2) GroupNonUniformQuadSwap 35 1097 358 1099: 161(ptr) AccessChain 24(data) 25 1092 158 1100: 19(f64vec4) Load 1099 1101: 19(f64vec4) VectorShuffle 1100 1098 4 5 2 3 Store 1099 1101 1102: 27(ptr) AccessChain 10(dti) 26 1103: 6(int) Load 1102 1104: 27(ptr) AccessChain 10(dti) 26 1105: 6(int) Load 1104 1106: 161(ptr) AccessChain 24(data) 25 1105 158 1107: 19(f64vec4) Load 1106 1108:191(f64vec3) VectorShuffle 1107 1107 0 1 2 1109:191(f64vec3) GroupNonUniformQuadSwap 35 1108 358 1110: 161(ptr) AccessChain 24(data) 25 1103 158 1111: 19(f64vec4) Load 1110 1112: 19(f64vec4) VectorShuffle 1111 1109 4 5 6 3 Store 1110 1112 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.wavequery.comp.out000066400000000000000000000122551360464450000234010ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.wavequery.frag.out000066400000000000000000000113301360464450000233530ustar00rootroot00000000000000hlsl.wavequery.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:2 Function Definition: @PixelShaderFunction( ( temp 4-component vector of float) 0:2 Function Parameters: 0:? Sequence 0:3 Test condition and select ( temp void) 0:3 Condition 0:3 subgroupElect ( temp bool) 0:3 true case 0:? Sequence 0:5 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:3 false case 0:? Sequence 0:9 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 3.000000 0:? 2.000000 0:? 1.000000 0:2 Function Definition: PixelShaderFunction( ( temp void) 0:2 Function Parameters: 0:? Sequence 0:2 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:2 Function Call: @PixelShaderFunction( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:2 Function Definition: @PixelShaderFunction( ( temp 4-component vector of float) 0:2 Function Parameters: 0:? Sequence 0:3 Test condition and select ( temp void) 0:3 Condition 0:3 subgroupElect ( temp bool) 0:3 true case 0:? Sequence 0:5 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 0:3 false case 0:? Sequence 0:9 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 3.000000 0:? 2.000000 0:? 1.000000 0:2 Function Definition: PixelShaderFunction( ( temp void) 0:2 Function Parameters: 0:? Sequence 0:2 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:2 Function Call: @PixelShaderFunction( ( temp 4-component vector of float) 0:? Linker Objects 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) // Module Version 10300 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.wavereduction.comp.out000066400000000000000000020446401360464450000242350ustar00rootroot00000000000000hlsl.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): 80008 // Id's are bound by 901 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformArithmetic Capability GroupNonUniformBallot 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "CSMain" 896 ExecutionMode 4 LocalSize 32 16 1 Source HLSL 500 Name 4 "CSMain" Name 11 "@CSMain(vu3;" Name 10 "dti" Name 20 "Types" MemberName 20(Types) 0 "u" MemberName 20(Types) 1 "i" MemberName 20(Types) 2 "f" MemberName 20(Types) 3 "d" Name 22 "data" MemberName 22(data) 0 "@data" Name 24 "data" Name 894 "dti" Name 896 "dti" Name 898 "param" MemberDecorate 20(Types) 0 Offset 0 MemberDecorate 20(Types) 1 Offset 16 MemberDecorate 20(Types) 2 Offset 32 MemberDecorate 20(Types) 3 Offset 64 Decorate 21 ArrayStride 96 MemberDecorate 22(data) 0 Offset 0 Decorate 22(data) BufferBlock Decorate 24(data) DescriptorSet 0 Decorate 24(data) Binding 0 Decorate 896(dti) BuiltIn GlobalInvocationId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypeVector 6(int) 3 8: TypePointer Function 7(ivec3) 9: TypeFunction 2 8(ptr) 13: TypeVector 6(int) 4 14: TypeInt 32 1 15: TypeVector 14(int) 4 16: TypeFloat 32 17: TypeVector 16(float) 4 18: TypeFloat 64 19: TypeVector 18(float64_t) 4 20(Types): TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(f64vec4) 21: TypeRuntimeArray 20(Types) 22(data): TypeStruct 21 23: TypePointer Uniform 22(data) 24(data): 23(ptr) Variable Uniform 25: 14(int) Constant 0 26: 6(int) Constant 0 27: TypePointer Function 6(int) 32: TypePointer Uniform 13(ivec4) 35: 6(int) Constant 3 42: TypePointer Uniform 6(int) 51: TypeVector 6(int) 2 72: 14(int) Constant 1 75: TypePointer Uniform 15(ivec4) 84: TypePointer Uniform 14(int) 93: TypeVector 14(int) 2 105: TypeVector 14(int) 3 115: 14(int) Constant 2 118: TypePointer Uniform 17(fvec4) 127: TypePointer Uniform 16(float) 136: TypeVector 16(float) 2 148: TypeVector 16(float) 3 158: 14(int) Constant 3 161: TypePointer Uniform 19(f64vec4) 170: TypePointer Uniform 18(float64_t) 179: TypeVector 18(float64_t) 2 191: TypeVector 18(float64_t) 3 889: TypeBool 895: TypePointer Input 7(ivec3) 896(dti): 895(ptr) Variable Input 4(CSMain): 2 Function None 3 5: Label 894(dti): 8(ptr) Variable Function 898(param): 8(ptr) Variable Function 897: 7(ivec3) Load 896(dti) Store 894(dti) 897 899: 7(ivec3) Load 894(dti) Store 898(param) 899 900: 2 FunctionCall 11(@CSMain(vu3;) 898(param) Return FunctionEnd 11(@CSMain(vu3;): 2 Function None 9 10(dti): 8(ptr) FunctionParameter 12: Label 28: 27(ptr) AccessChain 10(dti) 26 29: 6(int) Load 28 30: 27(ptr) AccessChain 10(dti) 26 31: 6(int) Load 30 33: 32(ptr) AccessChain 24(data) 25 31 25 34: 13(ivec4) Load 33 36: 13(ivec4) GroupNonUniformIAdd 35 Reduce 34 37: 32(ptr) AccessChain 24(data) 25 29 25 Store 37 36 38: 27(ptr) AccessChain 10(dti) 26 39: 6(int) Load 38 40: 27(ptr) AccessChain 10(dti) 26 41: 6(int) Load 40 43: 42(ptr) AccessChain 24(data) 25 41 25 26 44: 6(int) Load 43 45: 6(int) GroupNonUniformIAdd 35 Reduce 44 46: 42(ptr) AccessChain 24(data) 25 39 25 26 Store 46 45 47: 27(ptr) AccessChain 10(dti) 26 48: 6(int) Load 47 49: 27(ptr) AccessChain 10(dti) 26 50: 6(int) Load 49 52: 32(ptr) AccessChain 24(data) 25 50 25 53: 13(ivec4) Load 52 54: 51(ivec2) VectorShuffle 53 53 0 1 55: 51(ivec2) GroupNonUniformIAdd 35 Reduce 54 56: 32(ptr) AccessChain 24(data) 25 48 25 57: 13(ivec4) Load 56 58: 13(ivec4) VectorShuffle 57 55 4 5 2 3 Store 56 58 59: 27(ptr) AccessChain 10(dti) 26 60: 6(int) Load 59 61: 27(ptr) AccessChain 10(dti) 26 62: 6(int) Load 61 63: 32(ptr) AccessChain 24(data) 25 62 25 64: 13(ivec4) Load 63 65: 7(ivec3) VectorShuffle 64 64 0 1 2 66: 7(ivec3) GroupNonUniformIAdd 35 Reduce 65 67: 32(ptr) AccessChain 24(data) 25 60 25 68: 13(ivec4) Load 67 69: 13(ivec4) VectorShuffle 68 66 4 5 6 3 Store 67 69 70: 27(ptr) AccessChain 10(dti) 26 71: 6(int) Load 70 73: 27(ptr) AccessChain 10(dti) 26 74: 6(int) Load 73 76: 75(ptr) AccessChain 24(data) 25 74 72 77: 15(ivec4) Load 76 78: 15(ivec4) GroupNonUniformIAdd 35 Reduce 77 79: 75(ptr) AccessChain 24(data) 25 71 72 Store 79 78 80: 27(ptr) AccessChain 10(dti) 26 81: 6(int) Load 80 82: 27(ptr) AccessChain 10(dti) 26 83: 6(int) Load 82 85: 84(ptr) AccessChain 24(data) 25 83 72 26 86: 14(int) Load 85 87: 14(int) GroupNonUniformIAdd 35 Reduce 86 88: 84(ptr) AccessChain 24(data) 25 81 72 26 Store 88 87 89: 27(ptr) AccessChain 10(dti) 26 90: 6(int) Load 89 91: 27(ptr) AccessChain 10(dti) 26 92: 6(int) Load 91 94: 75(ptr) AccessChain 24(data) 25 92 72 95: 15(ivec4) Load 94 96: 93(ivec2) VectorShuffle 95 95 0 1 97: 93(ivec2) GroupNonUniformIAdd 35 Reduce 96 98: 75(ptr) AccessChain 24(data) 25 90 72 99: 15(ivec4) Load 98 100: 15(ivec4) VectorShuffle 99 97 4 5 2 3 Store 98 100 101: 27(ptr) AccessChain 10(dti) 26 102: 6(int) Load 101 103: 27(ptr) AccessChain 10(dti) 26 104: 6(int) Load 103 106: 75(ptr) AccessChain 24(data) 25 104 72 107: 15(ivec4) Load 106 108: 105(ivec3) VectorShuffle 107 107 0 1 2 109: 105(ivec3) GroupNonUniformIAdd 35 Reduce 108 110: 75(ptr) AccessChain 24(data) 25 102 72 111: 15(ivec4) Load 110 112: 15(ivec4) VectorShuffle 111 109 4 5 6 3 Store 110 112 113: 27(ptr) AccessChain 10(dti) 26 114: 6(int) Load 113 116: 27(ptr) AccessChain 10(dti) 26 117: 6(int) Load 116 119: 118(ptr) AccessChain 24(data) 25 117 115 120: 17(fvec4) Load 119 121: 17(fvec4) GroupNonUniformFAdd 35 Reduce 120 122: 118(ptr) AccessChain 24(data) 25 114 115 Store 122 121 123: 27(ptr) AccessChain 10(dti) 26 124: 6(int) Load 123 125: 27(ptr) AccessChain 10(dti) 26 126: 6(int) Load 125 128: 127(ptr) AccessChain 24(data) 25 126 115 26 129: 16(float) Load 128 130: 16(float) GroupNonUniformFAdd 35 Reduce 129 131: 127(ptr) AccessChain 24(data) 25 124 115 26 Store 131 130 132: 27(ptr) AccessChain 10(dti) 26 133: 6(int) Load 132 134: 27(ptr) AccessChain 10(dti) 26 135: 6(int) Load 134 137: 118(ptr) AccessChain 24(data) 25 135 115 138: 17(fvec4) Load 137 139: 136(fvec2) VectorShuffle 138 138 0 1 140: 136(fvec2) GroupNonUniformFAdd 35 Reduce 139 141: 118(ptr) AccessChain 24(data) 25 133 115 142: 17(fvec4) Load 141 143: 17(fvec4) VectorShuffle 142 140 4 5 2 3 Store 141 143 144: 27(ptr) AccessChain 10(dti) 26 145: 6(int) Load 144 146: 27(ptr) AccessChain 10(dti) 26 147: 6(int) Load 146 149: 118(ptr) AccessChain 24(data) 25 147 115 150: 17(fvec4) Load 149 151: 148(fvec3) VectorShuffle 150 150 0 1 2 152: 148(fvec3) GroupNonUniformFAdd 35 Reduce 151 153: 118(ptr) AccessChain 24(data) 25 145 115 154: 17(fvec4) Load 153 155: 17(fvec4) VectorShuffle 154 152 4 5 6 3 Store 153 155 156: 27(ptr) AccessChain 10(dti) 26 157: 6(int) Load 156 159: 27(ptr) AccessChain 10(dti) 26 160: 6(int) Load 159 162: 161(ptr) AccessChain 24(data) 25 160 158 163: 19(f64vec4) Load 162 164: 19(f64vec4) GroupNonUniformFAdd 35 Reduce 163 165: 161(ptr) AccessChain 24(data) 25 157 158 Store 165 164 166: 27(ptr) AccessChain 10(dti) 26 167: 6(int) Load 166 168: 27(ptr) AccessChain 10(dti) 26 169: 6(int) Load 168 171: 170(ptr) AccessChain 24(data) 25 169 158 26 172:18(float64_t) Load 171 173:18(float64_t) GroupNonUniformFAdd 35 Reduce 172 174: 170(ptr) AccessChain 24(data) 25 167 158 26 Store 174 173 175: 27(ptr) AccessChain 10(dti) 26 176: 6(int) Load 175 177: 27(ptr) AccessChain 10(dti) 26 178: 6(int) Load 177 180: 161(ptr) AccessChain 24(data) 25 178 158 181: 19(f64vec4) Load 180 182:179(f64vec2) VectorShuffle 181 181 0 1 183:179(f64vec2) GroupNonUniformFAdd 35 Reduce 182 184: 161(ptr) AccessChain 24(data) 25 176 158 185: 19(f64vec4) Load 184 186: 19(f64vec4) VectorShuffle 185 183 4 5 2 3 Store 184 186 187: 27(ptr) AccessChain 10(dti) 26 188: 6(int) Load 187 189: 27(ptr) AccessChain 10(dti) 26 190: 6(int) Load 189 192: 161(ptr) AccessChain 24(data) 25 190 158 193: 19(f64vec4) Load 192 194:191(f64vec3) VectorShuffle 193 193 0 1 2 195:191(f64vec3) GroupNonUniformFAdd 35 Reduce 194 196: 161(ptr) AccessChain 24(data) 25 188 158 197: 19(f64vec4) Load 196 198: 19(f64vec4) VectorShuffle 197 195 4 5 6 3 Store 196 198 199: 27(ptr) AccessChain 10(dti) 26 200: 6(int) Load 199 201: 27(ptr) AccessChain 10(dti) 26 202: 6(int) Load 201 203: 32(ptr) AccessChain 24(data) 25 202 25 204: 13(ivec4) Load 203 205: 13(ivec4) GroupNonUniformIMul 35 Reduce 204 206: 32(ptr) AccessChain 24(data) 25 200 25 Store 206 205 207: 27(ptr) AccessChain 10(dti) 26 208: 6(int) Load 207 209: 27(ptr) AccessChain 10(dti) 26 210: 6(int) Load 209 211: 42(ptr) AccessChain 24(data) 25 210 25 26 212: 6(int) Load 211 213: 6(int) GroupNonUniformIMul 35 Reduce 212 214: 42(ptr) AccessChain 24(data) 25 208 25 26 Store 214 213 215: 27(ptr) AccessChain 10(dti) 26 216: 6(int) Load 215 217: 27(ptr) AccessChain 10(dti) 26 218: 6(int) Load 217 219: 32(ptr) AccessChain 24(data) 25 218 25 220: 13(ivec4) Load 219 221: 51(ivec2) VectorShuffle 220 220 0 1 222: 51(ivec2) GroupNonUniformIMul 35 Reduce 221 223: 32(ptr) AccessChain 24(data) 25 216 25 224: 13(ivec4) Load 223 225: 13(ivec4) VectorShuffle 224 222 4 5 2 3 Store 223 225 226: 27(ptr) AccessChain 10(dti) 26 227: 6(int) Load 226 228: 27(ptr) AccessChain 10(dti) 26 229: 6(int) Load 228 230: 32(ptr) AccessChain 24(data) 25 229 25 231: 13(ivec4) Load 230 232: 7(ivec3) VectorShuffle 231 231 0 1 2 233: 7(ivec3) GroupNonUniformIMul 35 Reduce 232 234: 32(ptr) AccessChain 24(data) 25 227 25 235: 13(ivec4) Load 234 236: 13(ivec4) VectorShuffle 235 233 4 5 6 3 Store 234 236 237: 27(ptr) AccessChain 10(dti) 26 238: 6(int) Load 237 239: 27(ptr) AccessChain 10(dti) 26 240: 6(int) Load 239 241: 75(ptr) AccessChain 24(data) 25 240 72 242: 15(ivec4) Load 241 243: 15(ivec4) GroupNonUniformIMul 35 Reduce 242 244: 75(ptr) AccessChain 24(data) 25 238 72 Store 244 243 245: 27(ptr) AccessChain 10(dti) 26 246: 6(int) Load 245 247: 27(ptr) AccessChain 10(dti) 26 248: 6(int) Load 247 249: 84(ptr) AccessChain 24(data) 25 248 72 26 250: 14(int) Load 249 251: 14(int) GroupNonUniformIMul 35 Reduce 250 252: 84(ptr) AccessChain 24(data) 25 246 72 26 Store 252 251 253: 27(ptr) AccessChain 10(dti) 26 254: 6(int) Load 253 255: 27(ptr) AccessChain 10(dti) 26 256: 6(int) Load 255 257: 75(ptr) AccessChain 24(data) 25 256 72 258: 15(ivec4) Load 257 259: 93(ivec2) VectorShuffle 258 258 0 1 260: 93(ivec2) GroupNonUniformIMul 35 Reduce 259 261: 75(ptr) AccessChain 24(data) 25 254 72 262: 15(ivec4) Load 261 263: 15(ivec4) VectorShuffle 262 260 4 5 2 3 Store 261 263 264: 27(ptr) AccessChain 10(dti) 26 265: 6(int) Load 264 266: 27(ptr) AccessChain 10(dti) 26 267: 6(int) Load 266 268: 75(ptr) AccessChain 24(data) 25 267 72 269: 15(ivec4) Load 268 270: 105(ivec3) VectorShuffle 269 269 0 1 2 271: 105(ivec3) GroupNonUniformIMul 35 Reduce 270 272: 75(ptr) AccessChain 24(data) 25 265 72 273: 15(ivec4) Load 272 274: 15(ivec4) VectorShuffle 273 271 4 5 6 3 Store 272 274 275: 27(ptr) AccessChain 10(dti) 26 276: 6(int) Load 275 277: 27(ptr) AccessChain 10(dti) 26 278: 6(int) Load 277 279: 118(ptr) AccessChain 24(data) 25 278 115 280: 17(fvec4) Load 279 281: 17(fvec4) GroupNonUniformFMul 35 Reduce 280 282: 118(ptr) AccessChain 24(data) 25 276 115 Store 282 281 283: 27(ptr) AccessChain 10(dti) 26 284: 6(int) Load 283 285: 27(ptr) AccessChain 10(dti) 26 286: 6(int) Load 285 287: 127(ptr) AccessChain 24(data) 25 286 115 26 288: 16(float) Load 287 289: 16(float) GroupNonUniformFMul 35 Reduce 288 290: 127(ptr) AccessChain 24(data) 25 284 115 26 Store 290 289 291: 27(ptr) AccessChain 10(dti) 26 292: 6(int) Load 291 293: 27(ptr) AccessChain 10(dti) 26 294: 6(int) Load 293 295: 118(ptr) AccessChain 24(data) 25 294 115 296: 17(fvec4) Load 295 297: 136(fvec2) VectorShuffle 296 296 0 1 298: 136(fvec2) GroupNonUniformFMul 35 Reduce 297 299: 118(ptr) AccessChain 24(data) 25 292 115 300: 17(fvec4) Load 299 301: 17(fvec4) VectorShuffle 300 298 4 5 2 3 Store 299 301 302: 27(ptr) AccessChain 10(dti) 26 303: 6(int) Load 302 304: 27(ptr) AccessChain 10(dti) 26 305: 6(int) Load 304 306: 118(ptr) AccessChain 24(data) 25 305 115 307: 17(fvec4) Load 306 308: 148(fvec3) VectorShuffle 307 307 0 1 2 309: 148(fvec3) GroupNonUniformFMul 35 Reduce 308 310: 118(ptr) AccessChain 24(data) 25 303 115 311: 17(fvec4) Load 310 312: 17(fvec4) VectorShuffle 311 309 4 5 6 3 Store 310 312 313: 27(ptr) AccessChain 10(dti) 26 314: 6(int) Load 313 315: 27(ptr) AccessChain 10(dti) 26 316: 6(int) Load 315 317: 161(ptr) AccessChain 24(data) 25 316 158 318: 19(f64vec4) Load 317 319: 19(f64vec4) GroupNonUniformFMul 35 Reduce 318 320: 161(ptr) AccessChain 24(data) 25 314 158 Store 320 319 321: 27(ptr) AccessChain 10(dti) 26 322: 6(int) Load 321 323: 27(ptr) AccessChain 10(dti) 26 324: 6(int) Load 323 325: 170(ptr) AccessChain 24(data) 25 324 158 26 326:18(float64_t) Load 325 327:18(float64_t) GroupNonUniformFMul 35 Reduce 326 328: 170(ptr) AccessChain 24(data) 25 322 158 26 Store 328 327 329: 27(ptr) AccessChain 10(dti) 26 330: 6(int) Load 329 331: 27(ptr) AccessChain 10(dti) 26 332: 6(int) Load 331 333: 161(ptr) AccessChain 24(data) 25 332 158 334: 19(f64vec4) Load 333 335:179(f64vec2) VectorShuffle 334 334 0 1 336:179(f64vec2) GroupNonUniformFMul 35 Reduce 335 337: 161(ptr) AccessChain 24(data) 25 330 158 338: 19(f64vec4) Load 337 339: 19(f64vec4) VectorShuffle 338 336 4 5 2 3 Store 337 339 340: 27(ptr) AccessChain 10(dti) 26 341: 6(int) Load 340 342: 27(ptr) AccessChain 10(dti) 26 343: 6(int) Load 342 344: 161(ptr) AccessChain 24(data) 25 343 158 345: 19(f64vec4) Load 344 346:191(f64vec3) VectorShuffle 345 345 0 1 2 347:191(f64vec3) GroupNonUniformFMul 35 Reduce 346 348: 161(ptr) AccessChain 24(data) 25 341 158 349: 19(f64vec4) Load 348 350: 19(f64vec4) VectorShuffle 349 347 4 5 6 3 Store 348 350 351: 27(ptr) AccessChain 10(dti) 26 352: 6(int) Load 351 353: 27(ptr) AccessChain 10(dti) 26 354: 6(int) Load 353 355: 32(ptr) AccessChain 24(data) 25 354 25 356: 13(ivec4) Load 355 357: 13(ivec4) GroupNonUniformUMin 35 Reduce 356 358: 32(ptr) AccessChain 24(data) 25 352 25 Store 358 357 359: 27(ptr) AccessChain 10(dti) 26 360: 6(int) Load 359 361: 27(ptr) AccessChain 10(dti) 26 362: 6(int) Load 361 363: 42(ptr) AccessChain 24(data) 25 362 25 26 364: 6(int) Load 363 365: 6(int) GroupNonUniformUMin 35 Reduce 364 366: 42(ptr) AccessChain 24(data) 25 360 25 26 Store 366 365 367: 27(ptr) AccessChain 10(dti) 26 368: 6(int) Load 367 369: 27(ptr) AccessChain 10(dti) 26 370: 6(int) Load 369 371: 32(ptr) AccessChain 24(data) 25 370 25 372: 13(ivec4) Load 371 373: 51(ivec2) VectorShuffle 372 372 0 1 374: 51(ivec2) GroupNonUniformUMin 35 Reduce 373 375: 32(ptr) AccessChain 24(data) 25 368 25 376: 13(ivec4) Load 375 377: 13(ivec4) VectorShuffle 376 374 4 5 2 3 Store 375 377 378: 27(ptr) AccessChain 10(dti) 26 379: 6(int) Load 378 380: 27(ptr) AccessChain 10(dti) 26 381: 6(int) Load 380 382: 32(ptr) AccessChain 24(data) 25 381 25 383: 13(ivec4) Load 382 384: 7(ivec3) VectorShuffle 383 383 0 1 2 385: 7(ivec3) GroupNonUniformUMin 35 Reduce 384 386: 32(ptr) AccessChain 24(data) 25 379 25 387: 13(ivec4) Load 386 388: 13(ivec4) VectorShuffle 387 385 4 5 6 3 Store 386 388 389: 27(ptr) AccessChain 10(dti) 26 390: 6(int) Load 389 391: 27(ptr) AccessChain 10(dti) 26 392: 6(int) Load 391 393: 75(ptr) AccessChain 24(data) 25 392 72 394: 15(ivec4) Load 393 395: 15(ivec4) GroupNonUniformSMin 35 Reduce 394 396: 75(ptr) AccessChain 24(data) 25 390 72 Store 396 395 397: 27(ptr) AccessChain 10(dti) 26 398: 6(int) Load 397 399: 27(ptr) AccessChain 10(dti) 26 400: 6(int) Load 399 401: 84(ptr) AccessChain 24(data) 25 400 72 26 402: 14(int) Load 401 403: 14(int) GroupNonUniformSMin 35 Reduce 402 404: 84(ptr) AccessChain 24(data) 25 398 72 26 Store 404 403 405: 27(ptr) AccessChain 10(dti) 26 406: 6(int) Load 405 407: 27(ptr) AccessChain 10(dti) 26 408: 6(int) Load 407 409: 75(ptr) AccessChain 24(data) 25 408 72 410: 15(ivec4) Load 409 411: 93(ivec2) VectorShuffle 410 410 0 1 412: 93(ivec2) GroupNonUniformSMin 35 Reduce 411 413: 75(ptr) AccessChain 24(data) 25 406 72 414: 15(ivec4) Load 413 415: 15(ivec4) VectorShuffle 414 412 4 5 2 3 Store 413 415 416: 27(ptr) AccessChain 10(dti) 26 417: 6(int) Load 416 418: 27(ptr) AccessChain 10(dti) 26 419: 6(int) Load 418 420: 75(ptr) AccessChain 24(data) 25 419 72 421: 15(ivec4) Load 420 422: 105(ivec3) VectorShuffle 421 421 0 1 2 423: 105(ivec3) GroupNonUniformSMin 35 Reduce 422 424: 75(ptr) AccessChain 24(data) 25 417 72 425: 15(ivec4) Load 424 426: 15(ivec4) VectorShuffle 425 423 4 5 6 3 Store 424 426 427: 27(ptr) AccessChain 10(dti) 26 428: 6(int) Load 427 429: 27(ptr) AccessChain 10(dti) 26 430: 6(int) Load 429 431: 118(ptr) AccessChain 24(data) 25 430 115 432: 17(fvec4) Load 431 433: 17(fvec4) GroupNonUniformFMin 35 Reduce 432 434: 118(ptr) AccessChain 24(data) 25 428 115 Store 434 433 435: 27(ptr) AccessChain 10(dti) 26 436: 6(int) Load 435 437: 27(ptr) AccessChain 10(dti) 26 438: 6(int) Load 437 439: 127(ptr) AccessChain 24(data) 25 438 115 26 440: 16(float) Load 439 441: 16(float) GroupNonUniformFMin 35 Reduce 440 442: 127(ptr) AccessChain 24(data) 25 436 115 26 Store 442 441 443: 27(ptr) AccessChain 10(dti) 26 444: 6(int) Load 443 445: 27(ptr) AccessChain 10(dti) 26 446: 6(int) Load 445 447: 118(ptr) AccessChain 24(data) 25 446 115 448: 17(fvec4) Load 447 449: 136(fvec2) VectorShuffle 448 448 0 1 450: 136(fvec2) GroupNonUniformFMin 35 Reduce 449 451: 118(ptr) AccessChain 24(data) 25 444 115 452: 17(fvec4) Load 451 453: 17(fvec4) VectorShuffle 452 450 4 5 2 3 Store 451 453 454: 27(ptr) AccessChain 10(dti) 26 455: 6(int) Load 454 456: 27(ptr) AccessChain 10(dti) 26 457: 6(int) Load 456 458: 118(ptr) AccessChain 24(data) 25 457 115 459: 17(fvec4) Load 458 460: 148(fvec3) VectorShuffle 459 459 0 1 2 461: 148(fvec3) GroupNonUniformFMin 35 Reduce 460 462: 118(ptr) AccessChain 24(data) 25 455 115 463: 17(fvec4) Load 462 464: 17(fvec4) VectorShuffle 463 461 4 5 6 3 Store 462 464 465: 27(ptr) AccessChain 10(dti) 26 466: 6(int) Load 465 467: 27(ptr) AccessChain 10(dti) 26 468: 6(int) Load 467 469: 161(ptr) AccessChain 24(data) 25 468 158 470: 19(f64vec4) Load 469 471: 19(f64vec4) GroupNonUniformFMin 35 Reduce 470 472: 161(ptr) AccessChain 24(data) 25 466 158 Store 472 471 473: 27(ptr) AccessChain 10(dti) 26 474: 6(int) Load 473 475: 27(ptr) AccessChain 10(dti) 26 476: 6(int) Load 475 477: 170(ptr) AccessChain 24(data) 25 476 158 26 478:18(float64_t) Load 477 479:18(float64_t) GroupNonUniformFMin 35 Reduce 478 480: 170(ptr) AccessChain 24(data) 25 474 158 26 Store 480 479 481: 27(ptr) AccessChain 10(dti) 26 482: 6(int) Load 481 483: 27(ptr) AccessChain 10(dti) 26 484: 6(int) Load 483 485: 161(ptr) AccessChain 24(data) 25 484 158 486: 19(f64vec4) Load 485 487:179(f64vec2) VectorShuffle 486 486 0 1 488:179(f64vec2) GroupNonUniformFMin 35 Reduce 487 489: 161(ptr) AccessChain 24(data) 25 482 158 490: 19(f64vec4) Load 489 491: 19(f64vec4) VectorShuffle 490 488 4 5 2 3 Store 489 491 492: 27(ptr) AccessChain 10(dti) 26 493: 6(int) Load 492 494: 27(ptr) AccessChain 10(dti) 26 495: 6(int) Load 494 496: 161(ptr) AccessChain 24(data) 25 495 158 497: 19(f64vec4) Load 496 498:191(f64vec3) VectorShuffle 497 497 0 1 2 499:191(f64vec3) GroupNonUniformFMin 35 Reduce 498 500: 161(ptr) AccessChain 24(data) 25 493 158 501: 19(f64vec4) Load 500 502: 19(f64vec4) VectorShuffle 501 499 4 5 6 3 Store 500 502 503: 27(ptr) AccessChain 10(dti) 26 504: 6(int) Load 503 505: 27(ptr) AccessChain 10(dti) 26 506: 6(int) Load 505 507: 32(ptr) AccessChain 24(data) 25 506 25 508: 13(ivec4) Load 507 509: 13(ivec4) GroupNonUniformUMax 35 Reduce 508 510: 32(ptr) AccessChain 24(data) 25 504 25 Store 510 509 511: 27(ptr) AccessChain 10(dti) 26 512: 6(int) Load 511 513: 27(ptr) AccessChain 10(dti) 26 514: 6(int) Load 513 515: 42(ptr) AccessChain 24(data) 25 514 25 26 516: 6(int) Load 515 517: 6(int) GroupNonUniformUMax 35 Reduce 516 518: 42(ptr) AccessChain 24(data) 25 512 25 26 Store 518 517 519: 27(ptr) AccessChain 10(dti) 26 520: 6(int) Load 519 521: 27(ptr) AccessChain 10(dti) 26 522: 6(int) Load 521 523: 32(ptr) AccessChain 24(data) 25 522 25 524: 13(ivec4) Load 523 525: 51(ivec2) VectorShuffle 524 524 0 1 526: 51(ivec2) GroupNonUniformUMax 35 Reduce 525 527: 32(ptr) AccessChain 24(data) 25 520 25 528: 13(ivec4) Load 527 529: 13(ivec4) VectorShuffle 528 526 4 5 2 3 Store 527 529 530: 27(ptr) AccessChain 10(dti) 26 531: 6(int) Load 530 532: 27(ptr) AccessChain 10(dti) 26 533: 6(int) Load 532 534: 32(ptr) AccessChain 24(data) 25 533 25 535: 13(ivec4) Load 534 536: 7(ivec3) VectorShuffle 535 535 0 1 2 537: 7(ivec3) GroupNonUniformUMax 35 Reduce 536 538: 32(ptr) AccessChain 24(data) 25 531 25 539: 13(ivec4) Load 538 540: 13(ivec4) VectorShuffle 539 537 4 5 6 3 Store 538 540 541: 27(ptr) AccessChain 10(dti) 26 542: 6(int) Load 541 543: 27(ptr) AccessChain 10(dti) 26 544: 6(int) Load 543 545: 75(ptr) AccessChain 24(data) 25 544 72 546: 15(ivec4) Load 545 547: 15(ivec4) GroupNonUniformSMax 35 Reduce 546 548: 75(ptr) AccessChain 24(data) 25 542 72 Store 548 547 549: 27(ptr) AccessChain 10(dti) 26 550: 6(int) Load 549 551: 27(ptr) AccessChain 10(dti) 26 552: 6(int) Load 551 553: 84(ptr) AccessChain 24(data) 25 552 72 26 554: 14(int) Load 553 555: 14(int) GroupNonUniformSMax 35 Reduce 554 556: 84(ptr) AccessChain 24(data) 25 550 72 26 Store 556 555 557: 27(ptr) AccessChain 10(dti) 26 558: 6(int) Load 557 559: 27(ptr) AccessChain 10(dti) 26 560: 6(int) Load 559 561: 75(ptr) AccessChain 24(data) 25 560 72 562: 15(ivec4) Load 561 563: 93(ivec2) VectorShuffle 562 562 0 1 564: 93(ivec2) GroupNonUniformSMax 35 Reduce 563 565: 75(ptr) AccessChain 24(data) 25 558 72 566: 15(ivec4) Load 565 567: 15(ivec4) VectorShuffle 566 564 4 5 2 3 Store 565 567 568: 27(ptr) AccessChain 10(dti) 26 569: 6(int) Load 568 570: 27(ptr) AccessChain 10(dti) 26 571: 6(int) Load 570 572: 75(ptr) AccessChain 24(data) 25 571 72 573: 15(ivec4) Load 572 574: 105(ivec3) VectorShuffle 573 573 0 1 2 575: 105(ivec3) GroupNonUniformSMax 35 Reduce 574 576: 75(ptr) AccessChain 24(data) 25 569 72 577: 15(ivec4) Load 576 578: 15(ivec4) VectorShuffle 577 575 4 5 6 3 Store 576 578 579: 27(ptr) AccessChain 10(dti) 26 580: 6(int) Load 579 581: 27(ptr) AccessChain 10(dti) 26 582: 6(int) Load 581 583: 118(ptr) AccessChain 24(data) 25 582 115 584: 17(fvec4) Load 583 585: 17(fvec4) GroupNonUniformFMax 35 Reduce 584 586: 118(ptr) AccessChain 24(data) 25 580 115 Store 586 585 587: 27(ptr) AccessChain 10(dti) 26 588: 6(int) Load 587 589: 27(ptr) AccessChain 10(dti) 26 590: 6(int) Load 589 591: 127(ptr) AccessChain 24(data) 25 590 115 26 592: 16(float) Load 591 593: 16(float) GroupNonUniformFMax 35 Reduce 592 594: 127(ptr) AccessChain 24(data) 25 588 115 26 Store 594 593 595: 27(ptr) AccessChain 10(dti) 26 596: 6(int) Load 595 597: 27(ptr) AccessChain 10(dti) 26 598: 6(int) Load 597 599: 118(ptr) AccessChain 24(data) 25 598 115 600: 17(fvec4) Load 599 601: 136(fvec2) VectorShuffle 600 600 0 1 602: 136(fvec2) GroupNonUniformFMax 35 Reduce 601 603: 118(ptr) AccessChain 24(data) 25 596 115 604: 17(fvec4) Load 603 605: 17(fvec4) VectorShuffle 604 602 4 5 2 3 Store 603 605 606: 27(ptr) AccessChain 10(dti) 26 607: 6(int) Load 606 608: 27(ptr) AccessChain 10(dti) 26 609: 6(int) Load 608 610: 118(ptr) AccessChain 24(data) 25 609 115 611: 17(fvec4) Load 610 612: 148(fvec3) VectorShuffle 611 611 0 1 2 613: 148(fvec3) GroupNonUniformFMax 35 Reduce 612 614: 118(ptr) AccessChain 24(data) 25 607 115 615: 17(fvec4) Load 614 616: 17(fvec4) VectorShuffle 615 613 4 5 6 3 Store 614 616 617: 27(ptr) AccessChain 10(dti) 26 618: 6(int) Load 617 619: 27(ptr) AccessChain 10(dti) 26 620: 6(int) Load 619 621: 161(ptr) AccessChain 24(data) 25 620 158 622: 19(f64vec4) Load 621 623: 19(f64vec4) GroupNonUniformFMax 35 Reduce 622 624: 161(ptr) AccessChain 24(data) 25 618 158 Store 624 623 625: 27(ptr) AccessChain 10(dti) 26 626: 6(int) Load 625 627: 27(ptr) AccessChain 10(dti) 26 628: 6(int) Load 627 629: 170(ptr) AccessChain 24(data) 25 628 158 26 630:18(float64_t) Load 629 631:18(float64_t) GroupNonUniformFMax 35 Reduce 630 632: 170(ptr) AccessChain 24(data) 25 626 158 26 Store 632 631 633: 27(ptr) AccessChain 10(dti) 26 634: 6(int) Load 633 635: 27(ptr) AccessChain 10(dti) 26 636: 6(int) Load 635 637: 161(ptr) AccessChain 24(data) 25 636 158 638: 19(f64vec4) Load 637 639:179(f64vec2) VectorShuffle 638 638 0 1 640:179(f64vec2) GroupNonUniformFMax 35 Reduce 639 641: 161(ptr) AccessChain 24(data) 25 634 158 642: 19(f64vec4) Load 641 643: 19(f64vec4) VectorShuffle 642 640 4 5 2 3 Store 641 643 644: 27(ptr) AccessChain 10(dti) 26 645: 6(int) Load 644 646: 27(ptr) AccessChain 10(dti) 26 647: 6(int) Load 646 648: 161(ptr) AccessChain 24(data) 25 647 158 649: 19(f64vec4) Load 648 650:191(f64vec3) VectorShuffle 649 649 0 1 2 651:191(f64vec3) GroupNonUniformFMax 35 Reduce 650 652: 161(ptr) AccessChain 24(data) 25 645 158 653: 19(f64vec4) Load 652 654: 19(f64vec4) VectorShuffle 653 651 4 5 6 3 Store 652 654 655: 27(ptr) AccessChain 10(dti) 26 656: 6(int) Load 655 657: 27(ptr) AccessChain 10(dti) 26 658: 6(int) Load 657 659: 32(ptr) AccessChain 24(data) 25 658 25 660: 13(ivec4) Load 659 661: 13(ivec4) GroupNonUniformBitwiseAnd 35 Reduce 660 662: 32(ptr) AccessChain 24(data) 25 656 25 Store 662 661 663: 27(ptr) AccessChain 10(dti) 26 664: 6(int) Load 663 665: 27(ptr) AccessChain 10(dti) 26 666: 6(int) Load 665 667: 42(ptr) AccessChain 24(data) 25 666 25 26 668: 6(int) Load 667 669: 6(int) GroupNonUniformBitwiseAnd 35 Reduce 668 670: 42(ptr) AccessChain 24(data) 25 664 25 26 Store 670 669 671: 27(ptr) AccessChain 10(dti) 26 672: 6(int) Load 671 673: 27(ptr) AccessChain 10(dti) 26 674: 6(int) Load 673 675: 32(ptr) AccessChain 24(data) 25 674 25 676: 13(ivec4) Load 675 677: 51(ivec2) VectorShuffle 676 676 0 1 678: 51(ivec2) GroupNonUniformBitwiseAnd 35 Reduce 677 679: 32(ptr) AccessChain 24(data) 25 672 25 680: 13(ivec4) Load 679 681: 13(ivec4) VectorShuffle 680 678 4 5 2 3 Store 679 681 682: 27(ptr) AccessChain 10(dti) 26 683: 6(int) Load 682 684: 27(ptr) AccessChain 10(dti) 26 685: 6(int) Load 684 686: 32(ptr) AccessChain 24(data) 25 685 25 687: 13(ivec4) Load 686 688: 7(ivec3) VectorShuffle 687 687 0 1 2 689: 7(ivec3) GroupNonUniformBitwiseAnd 35 Reduce 688 690: 32(ptr) AccessChain 24(data) 25 683 25 691: 13(ivec4) Load 690 692: 13(ivec4) VectorShuffle 691 689 4 5 6 3 Store 690 692 693: 27(ptr) AccessChain 10(dti) 26 694: 6(int) Load 693 695: 27(ptr) AccessChain 10(dti) 26 696: 6(int) Load 695 697: 75(ptr) AccessChain 24(data) 25 696 72 698: 15(ivec4) Load 697 699: 15(ivec4) GroupNonUniformBitwiseAnd 35 Reduce 698 700: 75(ptr) AccessChain 24(data) 25 694 72 Store 700 699 701: 27(ptr) AccessChain 10(dti) 26 702: 6(int) Load 701 703: 27(ptr) AccessChain 10(dti) 26 704: 6(int) Load 703 705: 84(ptr) AccessChain 24(data) 25 704 72 26 706: 14(int) Load 705 707: 14(int) GroupNonUniformBitwiseAnd 35 Reduce 706 708: 84(ptr) AccessChain 24(data) 25 702 72 26 Store 708 707 709: 27(ptr) AccessChain 10(dti) 26 710: 6(int) Load 709 711: 27(ptr) AccessChain 10(dti) 26 712: 6(int) Load 711 713: 75(ptr) AccessChain 24(data) 25 712 72 714: 15(ivec4) Load 713 715: 93(ivec2) VectorShuffle 714 714 0 1 716: 93(ivec2) GroupNonUniformBitwiseAnd 35 Reduce 715 717: 75(ptr) AccessChain 24(data) 25 710 72 718: 15(ivec4) Load 717 719: 15(ivec4) VectorShuffle 718 716 4 5 2 3 Store 717 719 720: 27(ptr) AccessChain 10(dti) 26 721: 6(int) Load 720 722: 27(ptr) AccessChain 10(dti) 26 723: 6(int) Load 722 724: 75(ptr) AccessChain 24(data) 25 723 72 725: 15(ivec4) Load 724 726: 105(ivec3) VectorShuffle 725 725 0 1 2 727: 105(ivec3) GroupNonUniformBitwiseAnd 35 Reduce 726 728: 75(ptr) AccessChain 24(data) 25 721 72 729: 15(ivec4) Load 728 730: 15(ivec4) VectorShuffle 729 727 4 5 6 3 Store 728 730 731: 27(ptr) AccessChain 10(dti) 26 732: 6(int) Load 731 733: 27(ptr) AccessChain 10(dti) 26 734: 6(int) Load 733 735: 32(ptr) AccessChain 24(data) 25 734 25 736: 13(ivec4) Load 735 737: 13(ivec4) GroupNonUniformBitwiseOr 35 Reduce 736 738: 32(ptr) AccessChain 24(data) 25 732 25 Store 738 737 739: 27(ptr) AccessChain 10(dti) 26 740: 6(int) Load 739 741: 27(ptr) AccessChain 10(dti) 26 742: 6(int) Load 741 743: 42(ptr) AccessChain 24(data) 25 742 25 26 744: 6(int) Load 743 745: 6(int) GroupNonUniformBitwiseOr 35 Reduce 744 746: 42(ptr) AccessChain 24(data) 25 740 25 26 Store 746 745 747: 27(ptr) AccessChain 10(dti) 26 748: 6(int) Load 747 749: 27(ptr) AccessChain 10(dti) 26 750: 6(int) Load 749 751: 32(ptr) AccessChain 24(data) 25 750 25 752: 13(ivec4) Load 751 753: 51(ivec2) VectorShuffle 752 752 0 1 754: 51(ivec2) GroupNonUniformBitwiseOr 35 Reduce 753 755: 32(ptr) AccessChain 24(data) 25 748 25 756: 13(ivec4) Load 755 757: 13(ivec4) VectorShuffle 756 754 4 5 2 3 Store 755 757 758: 27(ptr) AccessChain 10(dti) 26 759: 6(int) Load 758 760: 27(ptr) AccessChain 10(dti) 26 761: 6(int) Load 760 762: 32(ptr) AccessChain 24(data) 25 761 25 763: 13(ivec4) Load 762 764: 7(ivec3) VectorShuffle 763 763 0 1 2 765: 7(ivec3) GroupNonUniformBitwiseOr 35 Reduce 764 766: 32(ptr) AccessChain 24(data) 25 759 25 767: 13(ivec4) Load 766 768: 13(ivec4) VectorShuffle 767 765 4 5 6 3 Store 766 768 769: 27(ptr) AccessChain 10(dti) 26 770: 6(int) Load 769 771: 27(ptr) AccessChain 10(dti) 26 772: 6(int) Load 771 773: 75(ptr) AccessChain 24(data) 25 772 72 774: 15(ivec4) Load 773 775: 15(ivec4) GroupNonUniformBitwiseOr 35 Reduce 774 776: 75(ptr) AccessChain 24(data) 25 770 72 Store 776 775 777: 27(ptr) AccessChain 10(dti) 26 778: 6(int) Load 777 779: 27(ptr) AccessChain 10(dti) 26 780: 6(int) Load 779 781: 84(ptr) AccessChain 24(data) 25 780 72 26 782: 14(int) Load 781 783: 14(int) GroupNonUniformBitwiseOr 35 Reduce 782 784: 84(ptr) AccessChain 24(data) 25 778 72 26 Store 784 783 785: 27(ptr) AccessChain 10(dti) 26 786: 6(int) Load 785 787: 27(ptr) AccessChain 10(dti) 26 788: 6(int) Load 787 789: 75(ptr) AccessChain 24(data) 25 788 72 790: 15(ivec4) Load 789 791: 93(ivec2) VectorShuffle 790 790 0 1 792: 93(ivec2) GroupNonUniformBitwiseOr 35 Reduce 791 793: 75(ptr) AccessChain 24(data) 25 786 72 794: 15(ivec4) Load 793 795: 15(ivec4) VectorShuffle 794 792 4 5 2 3 Store 793 795 796: 27(ptr) AccessChain 10(dti) 26 797: 6(int) Load 796 798: 27(ptr) AccessChain 10(dti) 26 799: 6(int) Load 798 800: 75(ptr) AccessChain 24(data) 25 799 72 801: 15(ivec4) Load 800 802: 105(ivec3) VectorShuffle 801 801 0 1 2 803: 105(ivec3) GroupNonUniformBitwiseOr 35 Reduce 802 804: 75(ptr) AccessChain 24(data) 25 797 72 805: 15(ivec4) Load 804 806: 15(ivec4) VectorShuffle 805 803 4 5 6 3 Store 804 806 807: 27(ptr) AccessChain 10(dti) 26 808: 6(int) Load 807 809: 27(ptr) AccessChain 10(dti) 26 810: 6(int) Load 809 811: 32(ptr) AccessChain 24(data) 25 810 25 812: 13(ivec4) Load 811 813: 13(ivec4) GroupNonUniformBitwiseXor 35 Reduce 812 814: 32(ptr) AccessChain 24(data) 25 808 25 Store 814 813 815: 27(ptr) AccessChain 10(dti) 26 816: 6(int) Load 815 817: 27(ptr) AccessChain 10(dti) 26 818: 6(int) Load 817 819: 42(ptr) AccessChain 24(data) 25 818 25 26 820: 6(int) Load 819 821: 6(int) GroupNonUniformBitwiseXor 35 Reduce 820 822: 42(ptr) AccessChain 24(data) 25 816 25 26 Store 822 821 823: 27(ptr) AccessChain 10(dti) 26 824: 6(int) Load 823 825: 27(ptr) AccessChain 10(dti) 26 826: 6(int) Load 825 827: 32(ptr) AccessChain 24(data) 25 826 25 828: 13(ivec4) Load 827 829: 51(ivec2) VectorShuffle 828 828 0 1 830: 51(ivec2) GroupNonUniformBitwiseXor 35 Reduce 829 831: 32(ptr) AccessChain 24(data) 25 824 25 832: 13(ivec4) Load 831 833: 13(ivec4) VectorShuffle 832 830 4 5 2 3 Store 831 833 834: 27(ptr) AccessChain 10(dti) 26 835: 6(int) Load 834 836: 27(ptr) AccessChain 10(dti) 26 837: 6(int) Load 836 838: 32(ptr) AccessChain 24(data) 25 837 25 839: 13(ivec4) Load 838 840: 7(ivec3) VectorShuffle 839 839 0 1 2 841: 7(ivec3) GroupNonUniformBitwiseXor 35 Reduce 840 842: 32(ptr) AccessChain 24(data) 25 835 25 843: 13(ivec4) Load 842 844: 13(ivec4) VectorShuffle 843 841 4 5 6 3 Store 842 844 845: 27(ptr) AccessChain 10(dti) 26 846: 6(int) Load 845 847: 27(ptr) AccessChain 10(dti) 26 848: 6(int) Load 847 849: 75(ptr) AccessChain 24(data) 25 848 72 850: 15(ivec4) Load 849 851: 15(ivec4) GroupNonUniformBitwiseXor 35 Reduce 850 852: 75(ptr) AccessChain 24(data) 25 846 72 Store 852 851 853: 27(ptr) AccessChain 10(dti) 26 854: 6(int) Load 853 855: 27(ptr) AccessChain 10(dti) 26 856: 6(int) Load 855 857: 84(ptr) AccessChain 24(data) 25 856 72 26 858: 14(int) Load 857 859: 14(int) GroupNonUniformBitwiseXor 35 Reduce 858 860: 84(ptr) AccessChain 24(data) 25 854 72 26 Store 860 859 861: 27(ptr) AccessChain 10(dti) 26 862: 6(int) Load 861 863: 27(ptr) AccessChain 10(dti) 26 864: 6(int) Load 863 865: 75(ptr) AccessChain 24(data) 25 864 72 866: 15(ivec4) Load 865 867: 93(ivec2) VectorShuffle 866 866 0 1 868: 93(ivec2) GroupNonUniformBitwiseXor 35 Reduce 867 869: 75(ptr) AccessChain 24(data) 25 862 72 870: 15(ivec4) Load 869 871: 15(ivec4) VectorShuffle 870 868 4 5 2 3 Store 869 871 872: 27(ptr) AccessChain 10(dti) 26 873: 6(int) Load 872 874: 27(ptr) AccessChain 10(dti) 26 875: 6(int) Load 874 876: 75(ptr) AccessChain 24(data) 25 875 72 877: 15(ivec4) Load 876 878: 105(ivec3) VectorShuffle 877 877 0 1 2 879: 105(ivec3) GroupNonUniformBitwiseXor 35 Reduce 878 880: 75(ptr) AccessChain 24(data) 25 873 72 881: 15(ivec4) Load 880 882: 15(ivec4) VectorShuffle 881 879 4 5 6 3 Store 880 882 883: 27(ptr) AccessChain 10(dti) 26 884: 6(int) Load 883 885: 27(ptr) AccessChain 10(dti) 26 886: 6(int) Load 885 887: 42(ptr) AccessChain 24(data) 25 886 25 26 888: 6(int) Load 887 890: 889(bool) IEqual 888 26 891: 13(ivec4) GroupNonUniformBallot 35 890 892: 6(int) GroupNonUniformBallotBitCount 35 Reduce 891 893: 42(ptr) AccessChain 24(data) 25 884 25 26 Store 893 892 Return FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.wavevote.comp.out000066400000000000000000000372341360464450000232150ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.whileLoop.frag.out000066400000000000000000000202441360464450000232710ustar00rootroot00000000000000hlsl.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): 80008 // Id's are bound by 52 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" 45 48 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "PixelShaderFunction" Name 11 "@PixelShaderFunction(vf4;" Name 10 "input" Name 43 "input" Name 45 "input" Name 48 "@entryPointOutput" Name 49 "param" Decorate 45(input) Location 0 Decorate 48(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) 20: TypeBool 21: TypeVector 20(bool) 4 31: 20(bool) ConstantFalse 44: TypePointer Input 7(fvec4) 45(input): 44(ptr) Variable Input 47: TypePointer Output 7(fvec4) 48(@entryPointOutput): 47(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label 43(input): 8(ptr) Variable Function 49(param): 8(ptr) Variable Function 46: 7(fvec4) Load 45(input) Store 43(input) 46 50: 7(fvec4) Load 43(input) Store 49(param) 50 51: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 49(param) Store 48(@entryPointOutput) 51 Return FunctionEnd 11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter 12: Label Branch 13 13: Label LoopMerge 15 16 None Branch 17 17: Label 18: 7(fvec4) Load 10(input) 19: 7(fvec4) Load 10(input) 22: 21(bvec4) FOrdNotEqual 18 19 23: 20(bool) Any 22 BranchConditional 23 14 15 14: Label 24: 7(fvec4) Load 10(input) ReturnValue 24 16: Label Branch 13 15: Label Branch 26 26: Label LoopMerge 28 29 None Branch 30 30: Label BranchConditional 31 27 28 27: Label Branch 29 29: Label Branch 26 28: Label Branch 32 32: Label LoopMerge 34 35 Unroll Branch 36 36: Label BranchConditional 31 33 34 33: Label Branch 35 35: Label Branch 32 34: Label Branch 37 37: Label LoopMerge 39 40 None Branch 41 41: Label BranchConditional 31 38 39 38: Label Branch 40 40: Label Branch 37 39: Label 42: 7(fvec4) Undef ReturnValue 42 FunctionEnd glslang-8.13.3559/Test/baseResults/hlsl.y-negate-1.vert.out000066400000000000000000000135761360464450000232510ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.y-negate-2.vert.out000066400000000000000000000153661360464450000232510ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/hlsl.y-negate-3.vert.out000066400000000000000000000260251360464450000232440ustar00rootroot00000000000000hlsl.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/implicitInnerAtomicUint.frag.out000066400000000000000000000011651360464450000251720ustar00rootroot00000000000000implicitInnerAtomicUint.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) glslang-8.13.3559/Test/baseResults/include.vert.out000066400000000000000000000057211360464450000220550ustar00rootroot00000000000000include.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) glslang-8.13.3559/Test/baseResults/invalidSwizzle.vert.out000066400000000000000000000023211360464450000234410ustar00rootroot00000000000000invalidSwizzle.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) glslang-8.13.3559/Test/baseResults/length.frag.out000066400000000000000000000046241360464450000216530ustar00rootroot00000000000000length.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) glslang-8.13.3559/Test/baseResults/lineContinuation.vert.out000066400000000000000000000233251360464450000237540ustar00rootroot00000000000000lineContinuation.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) glslang-8.13.3559/Test/baseResults/lineContinuation100.vert.out000066400000000000000000000114111360464450000241660ustar00rootroot00000000000000lineContinuation100.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) glslang-8.13.3559/Test/baseResults/link1.frag.out000066400000000000000000000131361360464450000214060ustar00rootroot00000000000000link1.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 glslang-8.13.3559/Test/baseResults/link1.vk.frag.out000066400000000000000000000335741360464450000220350ustar00rootroot00000000000000link1.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/localAggregates.frag.out000066400000000000000000000536621360464450000234640ustar00rootroot00000000000000localAggregates.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) glslang-8.13.3559/Test/baseResults/loops.frag.out000066400000000000000000002355271360464450000215360ustar00rootroot00000000000000loops.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) glslang-8.13.3559/Test/baseResults/loopsArtificial.frag.out000066400000000000000000000434111360464450000235130ustar00rootroot00000000000000loopsArtificial.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) glslang-8.13.3559/Test/baseResults/mains1.frag.out000066400000000000000000000035471360464450000215650ustar00rootroot00000000000000mains1.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 glslang-8.13.3559/Test/baseResults/matrix.frag.out000066400000000000000000000565411360464450000217030ustar00rootroot00000000000000matrix.frag WARNING: 0:6: varying deprecated in version 130; may be removed in future release WARNING: 0:17: varying deprecated in version 130; may be removed in future release WARNING: 0:22: varying deprecated in version 130; may be removed in future release Shader version: 130 0:? Sequence 0:25 Function Definition: main( ( global void) 0:25 Function Parameters: 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:27 Construct vec4 ( temp 4-component vector of float) 0:27 direct index ( temp 4-component vector of float) 0:27 'un34' ( uniform 4X4 matrix of float) 0:27 Constant: 0:27 1 (const int) 0:28 add second child into first child ( temp 4-component vector of float) 0:28 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:28 Construct vec4 ( temp 4-component vector of float) 0:28 vector-times-matrix ( temp 3-component vector of float) 0:28 'Color' ( smooth in 3-component vector of float) 0:28 'colorTransform' ( uniform 3X3 matrix of float) 0:28 Constant: 0:28 1.000000 0:30 Test condition and select ( temp void) 0:30 Condition 0:30 Compare Not Equal ( temp bool) 0:30 'm' ( uniform 4X4 matrix of float) 0:30 'n' ( uniform 4X4 matrix of float) 0:30 true case 0:31 add second child into first child ( temp 4-component vector of float) 0:31 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:31 'v' ( smooth in 4-component vector of float) 0:30 false case 0:33 Sequence 0:33 add second child into first child ( temp 4-component vector of float) 0:33 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:33 matrix-times-vector ( temp 4-component vector of float) 0:33 'm' ( uniform 4X4 matrix of float) 0:33 'v' ( smooth in 4-component vector of float) 0:34 add second child into first child ( temp 4-component vector of float) 0:34 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:34 vector-times-matrix ( temp 4-component vector of float) 0:34 'v' ( smooth in 4-component vector of float) 0:34 subtract ( temp 4X4 matrix of float) 0:34 'm' ( uniform 4X4 matrix of float) 0:34 'n' ( uniform 4X4 matrix of float) 0:42 Sequence 0:42 move second child to first child ( temp 4X4 matrix of float) 0:42 'm34' ( temp 4X4 matrix of float) 0:45 Construct mat4 ( temp 4X4 matrix of float) 0:42 component-wise multiply ( temp float) 0:42 direct index ( temp float) 0:42 'v' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 0 (const int) 0:42 direct index ( temp float) 0:42 'u' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 0 (const int) 0:42 component-wise multiply ( temp float) 0:42 direct index ( temp float) 0:42 'v' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 0 (const int) 0:42 direct index ( temp float) 0:42 'u' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 1 (const int) 0:42 component-wise multiply ( temp float) 0:42 direct index ( temp float) 0:42 'v' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 0 (const int) 0:42 direct index ( temp float) 0:42 'u' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 2 (const int) 0:42 component-wise multiply ( temp float) 0:42 direct index ( temp float) 0:42 'v' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 0 (const int) 0:42 direct index ( temp float) 0:42 'u' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 3 (const int) 0:43 component-wise multiply ( temp float) 0:43 direct index ( temp float) 0:43 'v' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 1 (const int) 0:43 direct index ( temp float) 0:43 'u' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 0 (const int) 0:43 component-wise multiply ( temp float) 0:43 direct index ( temp float) 0:43 'v' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 1 (const int) 0:43 direct index ( temp float) 0:43 'u' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 1 (const int) 0:43 component-wise multiply ( temp float) 0:43 direct index ( temp float) 0:43 'v' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 1 (const int) 0:43 direct index ( temp float) 0:43 'u' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 2 (const int) 0:43 component-wise multiply ( temp float) 0:43 direct index ( temp float) 0:43 'v' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 1 (const int) 0:43 direct index ( temp float) 0:43 'u' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 3 (const int) 0:44 component-wise multiply ( temp float) 0:44 direct index ( temp float) 0:44 'v' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 2 (const int) 0:44 direct index ( temp float) 0:44 'u' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 0 (const int) 0:44 component-wise multiply ( temp float) 0:44 direct index ( temp float) 0:44 'v' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 2 (const int) 0:44 direct index ( temp float) 0:44 'u' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 1 (const int) 0:44 component-wise multiply ( temp float) 0:44 direct index ( temp float) 0:44 'v' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 2 (const int) 0:44 direct index ( temp float) 0:44 'u' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 2 (const int) 0:44 component-wise multiply ( temp float) 0:44 direct index ( temp float) 0:44 'v' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 2 (const int) 0:44 direct index ( temp float) 0:44 'u' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 3 (const int) 0:45 component-wise multiply ( temp float) 0:45 direct index ( temp float) 0:45 'v' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 3 (const int) 0:45 direct index ( temp float) 0:45 'u' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 0 (const int) 0:45 component-wise multiply ( temp float) 0:45 direct index ( temp float) 0:45 'v' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 3 (const int) 0:45 direct index ( temp float) 0:45 'u' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 1 (const int) 0:45 component-wise multiply ( temp float) 0:45 direct index ( temp float) 0:45 'v' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 3 (const int) 0:45 direct index ( temp float) 0:45 'u' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 2 (const int) 0:45 component-wise multiply ( temp float) 0:45 direct index ( temp float) 0:45 'v' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 3 (const int) 0:45 direct index ( temp float) 0:45 'u' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 3 (const int) 0:46 add second child into first child ( temp 4X4 matrix of float) 0:46 'm34' ( temp 4X4 matrix of float) 0:46 Construct mat4 ( temp 4X4 matrix of float) 0:46 direct index ( temp float) 0:46 'v' ( smooth in 4-component vector of float) 0:46 Constant: 0:46 0 (const int) 0:47 add second child into first child ( temp 4X4 matrix of float) 0:47 'm34' ( temp 4X4 matrix of float) 0:47 Construct mat4 ( temp 4X4 matrix of float) 0:47 'u' ( smooth in 4-component vector of float) 0:47 direct index ( temp float) 0:47 'u' ( smooth in 4-component vector of float) 0:47 Constant: 0:47 0 (const int) 0:47 'u' ( smooth in 4-component vector of float) 0:47 direct index ( temp float) 0:47 'u' ( smooth in 4-component vector of float) 0:47 Constant: 0:47 0 (const int) 0:47 'u' ( smooth in 4-component vector of float) 0:47 direct index ( temp float) 0:47 'u' ( smooth in 4-component vector of float) 0:47 Constant: 0:47 0 (const int) 0:47 direct index ( temp float) 0:47 'u' ( smooth in 4-component vector of float) 0:47 Constant: 0:47 0 (const int) 0:51 Test condition and select ( temp void) 0:51 Condition 0:51 Compare Equal ( temp bool) 0:51 'm34' ( temp 4X4 matrix of float) 0:51 'un34' ( uniform 4X4 matrix of float) 0:51 true case 0:52 add second child into first child ( temp 4-component vector of float) 0:52 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:52 matrix-times-vector ( temp 4-component vector of float) 0:52 'm34' ( temp 4X4 matrix of float) 0:52 'u' ( smooth in 4-component vector of float) 0:51 false case 0:54 add second child into first child ( temp 4-component vector of float) 0:54 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:54 matrix-times-vector ( temp 4-component vector of float) 0:54 matrix-multiply ( temp 4X4 matrix of float) 0:54 'un34' ( uniform 4X4 matrix of float) 0:54 'um43' ( uniform 4X4 matrix of float) 0:54 'v' ( smooth in 4-component vector of float) 0:? Linker Objects 0:? 'colorTransform' ( uniform 3X3 matrix of float) 0:? 'Color' ( smooth in 3-component vector of float) 0:? 'm' ( uniform 4X4 matrix of float) 0:? 'n' ( uniform 4X4 matrix of float) 0:? 'um43' ( uniform 4X4 matrix of float) 0:? 'un34' ( uniform 4X4 matrix of float) 0:? 'v' ( smooth in 4-component vector of float) 0:? 'u' ( smooth in 4-component vector of float) Linked fragment stage: Shader version: 130 0:? Sequence 0:25 Function Definition: main( ( global void) 0:25 Function Parameters: 0:27 Sequence 0:27 move second child to first child ( temp 4-component vector of float) 0:27 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:27 Construct vec4 ( temp 4-component vector of float) 0:27 direct index ( temp 4-component vector of float) 0:27 'un34' ( uniform 4X4 matrix of float) 0:27 Constant: 0:27 1 (const int) 0:28 add second child into first child ( temp 4-component vector of float) 0:28 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:28 Construct vec4 ( temp 4-component vector of float) 0:28 vector-times-matrix ( temp 3-component vector of float) 0:28 'Color' ( smooth in 3-component vector of float) 0:28 'colorTransform' ( uniform 3X3 matrix of float) 0:28 Constant: 0:28 1.000000 0:30 Test condition and select ( temp void) 0:30 Condition 0:30 Compare Not Equal ( temp bool) 0:30 'm' ( uniform 4X4 matrix of float) 0:30 'n' ( uniform 4X4 matrix of float) 0:30 true case 0:31 add second child into first child ( temp 4-component vector of float) 0:31 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:31 'v' ( smooth in 4-component vector of float) 0:30 false case 0:33 Sequence 0:33 add second child into first child ( temp 4-component vector of float) 0:33 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:33 matrix-times-vector ( temp 4-component vector of float) 0:33 'm' ( uniform 4X4 matrix of float) 0:33 'v' ( smooth in 4-component vector of float) 0:34 add second child into first child ( temp 4-component vector of float) 0:34 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:34 vector-times-matrix ( temp 4-component vector of float) 0:34 'v' ( smooth in 4-component vector of float) 0:34 subtract ( temp 4X4 matrix of float) 0:34 'm' ( uniform 4X4 matrix of float) 0:34 'n' ( uniform 4X4 matrix of float) 0:42 Sequence 0:42 move second child to first child ( temp 4X4 matrix of float) 0:42 'm34' ( temp 4X4 matrix of float) 0:45 Construct mat4 ( temp 4X4 matrix of float) 0:42 component-wise multiply ( temp float) 0:42 direct index ( temp float) 0:42 'v' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 0 (const int) 0:42 direct index ( temp float) 0:42 'u' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 0 (const int) 0:42 component-wise multiply ( temp float) 0:42 direct index ( temp float) 0:42 'v' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 0 (const int) 0:42 direct index ( temp float) 0:42 'u' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 1 (const int) 0:42 component-wise multiply ( temp float) 0:42 direct index ( temp float) 0:42 'v' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 0 (const int) 0:42 direct index ( temp float) 0:42 'u' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 2 (const int) 0:42 component-wise multiply ( temp float) 0:42 direct index ( temp float) 0:42 'v' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 0 (const int) 0:42 direct index ( temp float) 0:42 'u' ( smooth in 4-component vector of float) 0:42 Constant: 0:42 3 (const int) 0:43 component-wise multiply ( temp float) 0:43 direct index ( temp float) 0:43 'v' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 1 (const int) 0:43 direct index ( temp float) 0:43 'u' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 0 (const int) 0:43 component-wise multiply ( temp float) 0:43 direct index ( temp float) 0:43 'v' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 1 (const int) 0:43 direct index ( temp float) 0:43 'u' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 1 (const int) 0:43 component-wise multiply ( temp float) 0:43 direct index ( temp float) 0:43 'v' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 1 (const int) 0:43 direct index ( temp float) 0:43 'u' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 2 (const int) 0:43 component-wise multiply ( temp float) 0:43 direct index ( temp float) 0:43 'v' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 1 (const int) 0:43 direct index ( temp float) 0:43 'u' ( smooth in 4-component vector of float) 0:43 Constant: 0:43 3 (const int) 0:44 component-wise multiply ( temp float) 0:44 direct index ( temp float) 0:44 'v' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 2 (const int) 0:44 direct index ( temp float) 0:44 'u' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 0 (const int) 0:44 component-wise multiply ( temp float) 0:44 direct index ( temp float) 0:44 'v' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 2 (const int) 0:44 direct index ( temp float) 0:44 'u' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 1 (const int) 0:44 component-wise multiply ( temp float) 0:44 direct index ( temp float) 0:44 'v' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 2 (const int) 0:44 direct index ( temp float) 0:44 'u' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 2 (const int) 0:44 component-wise multiply ( temp float) 0:44 direct index ( temp float) 0:44 'v' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 2 (const int) 0:44 direct index ( temp float) 0:44 'u' ( smooth in 4-component vector of float) 0:44 Constant: 0:44 3 (const int) 0:45 component-wise multiply ( temp float) 0:45 direct index ( temp float) 0:45 'v' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 3 (const int) 0:45 direct index ( temp float) 0:45 'u' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 0 (const int) 0:45 component-wise multiply ( temp float) 0:45 direct index ( temp float) 0:45 'v' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 3 (const int) 0:45 direct index ( temp float) 0:45 'u' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 1 (const int) 0:45 component-wise multiply ( temp float) 0:45 direct index ( temp float) 0:45 'v' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 3 (const int) 0:45 direct index ( temp float) 0:45 'u' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 2 (const int) 0:45 component-wise multiply ( temp float) 0:45 direct index ( temp float) 0:45 'v' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 3 (const int) 0:45 direct index ( temp float) 0:45 'u' ( smooth in 4-component vector of float) 0:45 Constant: 0:45 3 (const int) 0:46 add second child into first child ( temp 4X4 matrix of float) 0:46 'm34' ( temp 4X4 matrix of float) 0:46 Construct mat4 ( temp 4X4 matrix of float) 0:46 direct index ( temp float) 0:46 'v' ( smooth in 4-component vector of float) 0:46 Constant: 0:46 0 (const int) 0:47 add second child into first child ( temp 4X4 matrix of float) 0:47 'm34' ( temp 4X4 matrix of float) 0:47 Construct mat4 ( temp 4X4 matrix of float) 0:47 'u' ( smooth in 4-component vector of float) 0:47 direct index ( temp float) 0:47 'u' ( smooth in 4-component vector of float) 0:47 Constant: 0:47 0 (const int) 0:47 'u' ( smooth in 4-component vector of float) 0:47 direct index ( temp float) 0:47 'u' ( smooth in 4-component vector of float) 0:47 Constant: 0:47 0 (const int) 0:47 'u' ( smooth in 4-component vector of float) 0:47 direct index ( temp float) 0:47 'u' ( smooth in 4-component vector of float) 0:47 Constant: 0:47 0 (const int) 0:47 direct index ( temp float) 0:47 'u' ( smooth in 4-component vector of float) 0:47 Constant: 0:47 0 (const int) 0:51 Test condition and select ( temp void) 0:51 Condition 0:51 Compare Equal ( temp bool) 0:51 'm34' ( temp 4X4 matrix of float) 0:51 'un34' ( uniform 4X4 matrix of float) 0:51 true case 0:52 add second child into first child ( temp 4-component vector of float) 0:52 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:52 matrix-times-vector ( temp 4-component vector of float) 0:52 'm34' ( temp 4X4 matrix of float) 0:52 'u' ( smooth in 4-component vector of float) 0:51 false case 0:54 add second child into first child ( temp 4-component vector of float) 0:54 'gl_FragColor' ( fragColor 4-component vector of float FragColor) 0:54 matrix-times-vector ( temp 4-component vector of float) 0:54 matrix-multiply ( temp 4X4 matrix of float) 0:54 'un34' ( uniform 4X4 matrix of float) 0:54 'um43' ( uniform 4X4 matrix of float) 0:54 'v' ( smooth in 4-component vector of float) 0:? Linker Objects 0:? 'colorTransform' ( uniform 3X3 matrix of float) 0:? 'Color' ( smooth in 3-component vector of float) 0:? 'm' ( uniform 4X4 matrix of float) 0:? 'n' ( uniform 4X4 matrix of float) 0:? 'um43' ( uniform 4X4 matrix of float) 0:? 'un34' ( uniform 4X4 matrix of float) 0:? 'v' ( smooth in 4-component vector of float) 0:? 'u' ( smooth in 4-component vector of float) glslang-8.13.3559/Test/baseResults/matrix2.frag.out000066400000000000000000000406761360464450000217670ustar00rootroot00000000000000matrix2.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) glslang-8.13.3559/Test/baseResults/matrixError.vert.out000066400000000000000000000066601360464450000227530ustar00rootroot00000000000000matrixError.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) glslang-8.13.3559/Test/baseResults/maxClipDistances.vert.out000066400000000000000000000010641360464450000236610ustar00rootroot00000000000000maxClipDistances.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) glslang-8.13.3559/Test/baseResults/max_vertices_0.geom.out000066400000000000000000000017451360464450000233130ustar00rootroot00000000000000max_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) glslang-8.13.3559/Test/baseResults/missingBodies.vert.out000066400000000000000000000056621360464450000232350ustar00rootroot00000000000000missingBodies.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) glslang-8.13.3559/Test/baseResults/mixedArrayDecls.frag.out000066400000000000000000000065621360464450000234550ustar00rootroot00000000000000mixedArrayDecls.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) glslang-8.13.3559/Test/baseResults/negativeArraySize.comp.out000066400000000000000000000007601360464450000240420ustar00rootroot00000000000000negativeArraySize.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 glslang-8.13.3559/Test/baseResults/newTexture.frag.out000066400000000000000000000631021360464450000225400ustar00rootroot00000000000000newTexture.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) glslang-8.13.3559/Test/baseResults/noMain.vert.out000066400000000000000000000021471360464450000216520ustar00rootroot00000000000000noMain.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 glslang-8.13.3559/Test/baseResults/nonSquare.vert.out000066400000000000000000000150611360464450000224030ustar00rootroot00000000000000nonSquare.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 glslang-8.13.3559/Test/baseResults/nonVulkan.frag.out000066400000000000000000000020701360464450000223360ustar00rootroot00000000000000nonVulkan.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}) glslang-8.13.3559/Test/baseResults/nonuniform.frag.out000066400000000000000000000112451360464450000225610ustar00rootroot00000000000000nonuniform.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}) glslang-8.13.3559/Test/baseResults/nosuffix.out000066400000000000000000000006601360464450000213110ustar00rootroot00000000000000nosuffix 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 glslang-8.13.3559/Test/baseResults/numeral.frag.out000066400000000000000000000655731360464450000220470ustar00rootroot00000000000000numeral.frag ERROR: 0:14: '' : octal literal digit too large ERROR: 0:15: '' : octal literal digit too large ERROR: 0:16: '' : octal literal digit too large ERROR: 0:17: '' : octal literal too big ERROR: 0:18: '' : octal literal too big ERROR: 0:23: '' : octal literal digit too large ERROR: 0:24: '' : octal literal digit too large ERROR: 0:49: '' : bad digit in hexadecimal literal ERROR: 0:50: '' : hexadecimal literal too big ERROR: 0:88: '' : float literal needs a decimal point or exponent ERROR: 0:98: '' : numeric literal too big ERROR: 0:101: '' : numeric literal too big ERROR: 0:104: '#' : preprocessor directive cannot be preceded by another token ERROR: 0:104: '' : syntax error, unexpected $end, expecting COMMA or SEMICOLON ERROR: 14 compilation errors. No code generated. Shader version: 400 ERROR: node is still EOpNull! 0:3 Function Definition: main( ( global void) 0:3 Function Parameters: 0:5 Sequence 0:5 Sequence 0:5 move second child to first child ( temp int) 0:5 'o00' ( temp int) 0:5 Constant: 0:5 0 (const int) 0:6 Sequence 0:6 move second child to first child ( temp int) 0:6 'o000' ( temp int) 0:6 Constant: 0:6 0 (const int) 0:7 Sequence 0:7 move second child to first child ( temp int) 0:7 'o0000' ( temp int) 0:7 Constant: 0:7 0 (const int) 0:8 Sequence 0:8 move second child to first child ( temp int) 0:8 'o5' ( temp int) 0:8 Constant: 0:8 5 (const int) 0:9 Sequence 0:9 move second child to first child ( temp int) 0:9 'o05' ( temp int) 0:9 Constant: 0:9 5 (const int) 0:10 Sequence 0:10 move second child to first child ( temp int) 0:10 'o006' ( temp int) 0:10 Constant: 0:10 6 (const int) 0:11 Sequence 0:11 move second child to first child ( temp int) 0:11 'o7' ( temp int) 0:11 Constant: 0:11 7 (const int) 0:12 Sequence 0:12 move second child to first child ( temp int) 0:12 'o58' ( temp int) 0:12 Constant: 0:12 58 (const int) 0:13 Sequence 0:13 move second child to first child ( temp int) 0:13 'omax' ( temp int) 0:13 Constant: 0:13 -1 (const int) 0:14 Sequence 0:14 move second child to first child ( temp int) 0:14 'o8' ( temp int) 0:14 Constant: 0:14 0 (const int) 0:15 Sequence 0:15 move second child to first child ( temp int) 0:15 'o08' ( temp int) 0:15 Constant: 0:15 0 (const int) 0:16 Sequence 0:16 move second child to first child ( temp int) 0:16 'o009' ( temp int) 0:16 Constant: 0:16 0 (const int) 0:17 Sequence 0:17 move second child to first child ( temp int) 0:17 'obig' ( temp int) 0:17 Constant: 0:17 -1662398820 (const int) 0:18 Sequence 0:18 move second child to first child ( temp int) 0:18 'omax1' ( temp int) 0:18 Constant: 0:18 0 (const int) 0:20 Sequence 0:20 move second child to first child ( temp uint) 0:20 'uo5' ( temp uint) 0:20 Constant: 0:20 5 (const uint) 0:21 Sequence 0:21 move second child to first child ( temp uint) 0:21 'uo6' ( temp uint) 0:21 Constant: 0:21 6 (const uint) 0:22 Sequence 0:22 move second child to first child ( temp uint) 0:22 'uo7' ( temp uint) 0:22 Constant: 0:22 7 (const uint) 0:23 Sequence 0:23 move second child to first child ( temp uint) 0:23 'uo8' ( temp uint) 0:23 Constant: 0:23 0 (const uint) 0:24 Sequence 0:24 move second child to first child ( temp uint) 0:24 'uo9' ( temp uint) 0:24 Constant: 0:24 0 (const uint) 0:26 Sequence 0:26 move second child to first child ( temp int) 0:26 'h0' ( temp int) 0:26 Constant: 0:26 0 (const int) 0:27 Sequence 0:27 move second child to first child ( temp int) 0:27 'h00' ( temp int) 0:27 Constant: 0:27 0 (const int) 0:28 Sequence 0:28 move second child to first child ( temp int) 0:28 'h000' ( temp int) 0:28 Constant: 0:28 0 (const int) 0:29 Sequence 0:29 move second child to first child ( temp int) 0:29 'h1' ( temp int) 0:29 Constant: 0:29 1 (const int) 0:30 Sequence 0:30 move second child to first child ( temp int) 0:30 'h2' ( temp int) 0:30 Constant: 0:30 2 (const int) 0:31 Sequence 0:31 move second child to first child ( temp int) 0:31 'h300' ( temp int) 0:31 Constant: 0:31 768 (const int) 0:32 Sequence 0:32 move second child to first child ( temp int) 0:32 'hABCDEF' ( temp int) 0:32 Constant: 0:32 11259375 (const int) 0:33 Sequence 0:33 move second child to first child ( temp int) 0:33 'hFFFFFFFF' ( temp int) 0:33 Constant: 0:33 -1 (const int) 0:34 Sequence 0:34 move second child to first child ( temp int) 0:34 'h12345678' ( temp int) 0:34 Constant: 0:34 12345678 (const int) 0:35 Sequence 0:35 move second child to first child ( temp int) 0:35 'hToBeOrNotToBe' ( temp int) 0:35 Constant: 0:35 -1 (const int) 0:37 Sequence 0:37 move second child to first child ( temp uint) 0:37 'uh0' ( temp uint) 0:37 Constant: 0:37 0 (const uint) 0:38 Sequence 0:38 move second child to first child ( temp uint) 0:38 'uhg' ( temp uint) 0:38 Constant: 0:38 12 (const uint) 0:39 Sequence 0:39 move second child to first child ( temp uint) 0:39 'uh000' ( temp uint) 0:39 Constant: 0:39 0 (const uint) 0:40 Sequence 0:40 move second child to first child ( temp uint) 0:40 'uh1' ( temp uint) 0:40 Constant: 0:40 1 (const uint) 0:41 Sequence 0:41 move second child to first child ( temp uint) 0:41 'uh2' ( temp uint) 0:41 Constant: 0:41 2 (const uint) 0:42 Sequence 0:42 move second child to first child ( temp uint) 0:42 'uh300' ( temp uint) 0:42 Constant: 0:42 768 (const uint) 0:43 Sequence 0:43 move second child to first child ( temp uint) 0:43 'uhABCDEF' ( temp uint) 0:43 Constant: 0:43 11259375 (const uint) 0:44 Sequence 0:44 move second child to first child ( temp uint) 0:44 'uhFFFFFFFF' ( temp uint) 0:44 Constant: 0:44 4294967295 (const uint) 0:45 Sequence 0:45 move second child to first child ( temp uint) 0:45 'uh12345678' ( temp uint) 0:45 Constant: 0:45 12345678 (const uint) 0:46 Sequence 0:46 move second child to first child ( temp uint) 0:46 'uhToBeOrNotToBe' ( temp uint) 0:46 Constant: 0:46 4294967295 (const uint) 0:49 Sequence 0:49 move second child to first child ( temp int) 0:49 'he2' ( temp int) 0:49 Constant: 0:49 0 (const int) 0:50 Sequence 0:50 move second child to first child ( temp int) 0:50 'hbig' ( temp int) 0:50 Constant: 0:50 -15 (const int) 0:52 Sequence 0:52 move second child to first child ( temp float) 0:52 'f1' ( temp float) 0:52 Constant: 0:52 1.000000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'f2' ( temp float) 0:53 Constant: 0:53 2.000000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'f3' ( temp float) 0:54 Constant: 0:54 3.000000 0:55 Sequence 0:55 move second child to first child ( temp float) 0:55 'f4' ( temp float) 0:55 Constant: 0:55 4.000000 0:56 Sequence 0:56 move second child to first child ( temp float) 0:56 'f5' ( temp float) 0:56 Constant: 0:56 5.000000 0:57 Sequence 0:57 move second child to first child ( temp float) 0:57 'f6' ( temp float) 0:57 Constant: 0:57 6.000000 0:58 Sequence 0:58 move second child to first child ( temp float) 0:58 'f7' ( temp float) 0:58 Constant: 0:58 7.000000 0:59 Sequence 0:59 move second child to first child ( temp float) 0:59 'f8' ( temp float) 0:59 Constant: 0:59 8.000000 0:60 Sequence 0:60 move second child to first child ( temp float) 0:60 'f9' ( temp float) 0:60 Constant: 0:60 9.000000 0:61 Sequence 0:61 move second child to first child ( temp float) 0:61 'f10' ( temp float) 0:61 Constant: 0:61 10.000000 0:62 Sequence 0:62 move second child to first child ( temp float) 0:62 'f11' ( temp float) 0:62 Constant: 0:62 11.000000 0:63 Sequence 0:63 move second child to first child ( temp float) 0:63 'f12' ( temp float) 0:63 Constant: 0:63 12.000000 0:64 Sequence 0:64 move second child to first child ( temp float) 0:64 'f543' ( temp float) 0:64 Constant: 0:64 543.000000 0:65 Sequence 0:65 move second child to first child ( temp float) 0:65 'f6789' ( temp float) 0:65 Constant: 0:65 6789.000000 0:66 Sequence 0:66 move second child to first child ( temp float) 0:66 'f88' ( temp float) 0:66 Constant: 0:66 88.000000 0:68 Sequence 0:68 move second child to first child ( temp float) 0:68 'g1' ( temp float) 0:68 Constant: 0:68 53876.000000 0:69 Sequence 0:69 move second child to first child ( temp float) 0:69 'g2' ( temp float) 0:69 Constant: 0:69 0.040000 0:70 Sequence 0:70 move second child to first child ( temp float) 0:70 'g3' ( temp float) 0:70 Constant: 0:70 100000.000000 0:71 Sequence 0:71 move second child to first child ( temp float) 0:71 'g4' ( temp float) 0:71 Constant: 0:71 0.007321 0:72 Sequence 0:72 move second child to first child ( temp float) 0:72 'g5' ( temp float) 0:72 Constant: 0:72 32000.000000 0:73 Sequence 0:73 move second child to first child ( temp float) 0:73 'g6' ( temp float) 0:73 Constant: 0:73 5.0000000000000e-06 0:74 Sequence 0:74 move second child to first child ( temp float) 0:74 'g7' ( temp float) 0:74 Constant: 0:74 0.450000 0:75 Sequence 0:75 move second child to first child ( temp float) 0:75 'g8' ( temp float) 0:75 Constant: 0:75 60000000000.000000 0:77 Sequence 0:77 move second child to first child ( temp double) 0:77 'gf1' ( temp double) 0:77 Constant: 0:77 1.000000 0:78 Sequence 0:78 move second child to first child ( temp double) 0:78 'gf2' ( temp double) 0:78 Constant: 0:78 2.000000 0:79 Sequence 0:79 move second child to first child ( temp double) 0:79 'gf3' ( temp double) 0:79 Constant: 0:79 3.000000 0:80 Sequence 0:80 move second child to first child ( temp double) 0:80 'gf4' ( temp double) 0:80 Constant: 0:80 4.000000 0:81 Sequence 0:81 move second child to first child ( temp float) 0:81 'gf5' ( temp float) 0:81 Constant: 0:81 5.000000 0:82 Sequence 0:82 move second child to first child ( temp float) 0:82 'gf6' ( temp float) 0:82 Constant: 0:82 6.000000 0:88 Sequence 0:88 move second child to first child ( temp float) 0:88 'e5' ( temp float) 0:88 Constant: 0:88 5.000000 0:98 Sequence 0:98 move second child to first child ( temp uint) 0:98 'g1' ( global uint) 0:98 Constant: 0:98 4294967295 (const uint) 0:99 Sequence 0:99 move second child to first child ( temp uint) 0:99 'g2' ( global uint) 0:99 Constant: 0:99 4294967295 (const uint) 0:100 Sequence 0:100 move second child to first child ( temp uint) 0:100 'g3' ( global uint) 0:100 Constant: 0:100 4294967294 (const uint) 0:101 Sequence 0:101 move second child to first child ( temp int) 0:101 'g4' ( global int) 0:101 Constant: 0:101 -1 (const int) 0:102 Sequence 0:102 move second child to first child ( temp int) 0:102 'g5' ( global int) 0:102 Constant: 0:102 -1 (const int) 0:103 Sequence 0:103 move second child to first child ( temp int) 0:103 'g6' ( global int) 0:103 Constant: 0:103 -2 (const int) 0:? Linker Objects 0:? 'c2' (layout( location=2) out 4-component vector of float) 0:? 'c3' (layout( location=3) out 4-component vector of float) 0:? 'c4' (layout( location=4) out 4-component vector of float) 0:? 'c5' (layout( location=5) out 4-component vector of float) 0:? 'c6' (layout( location=6) out 4-component vector of float) 0:? 'c7' (layout( location=7) out 4-component vector of float) 0:? 'g1' ( global uint) 0:? 'g2' ( global uint) 0:? 'g3' ( global uint) 0:? 'g4' ( global int) 0:? 'g5' ( global int) 0:? 'g6' ( global int) 0:? 'inf1' ( global float) Linked fragment stage: Shader version: 400 ERROR: node is still EOpNull! 0:3 Function Definition: main( ( global void) 0:3 Function Parameters: 0:5 Sequence 0:5 Sequence 0:5 move second child to first child ( temp int) 0:5 'o00' ( temp int) 0:5 Constant: 0:5 0 (const int) 0:6 Sequence 0:6 move second child to first child ( temp int) 0:6 'o000' ( temp int) 0:6 Constant: 0:6 0 (const int) 0:7 Sequence 0:7 move second child to first child ( temp int) 0:7 'o0000' ( temp int) 0:7 Constant: 0:7 0 (const int) 0:8 Sequence 0:8 move second child to first child ( temp int) 0:8 'o5' ( temp int) 0:8 Constant: 0:8 5 (const int) 0:9 Sequence 0:9 move second child to first child ( temp int) 0:9 'o05' ( temp int) 0:9 Constant: 0:9 5 (const int) 0:10 Sequence 0:10 move second child to first child ( temp int) 0:10 'o006' ( temp int) 0:10 Constant: 0:10 6 (const int) 0:11 Sequence 0:11 move second child to first child ( temp int) 0:11 'o7' ( temp int) 0:11 Constant: 0:11 7 (const int) 0:12 Sequence 0:12 move second child to first child ( temp int) 0:12 'o58' ( temp int) 0:12 Constant: 0:12 58 (const int) 0:13 Sequence 0:13 move second child to first child ( temp int) 0:13 'omax' ( temp int) 0:13 Constant: 0:13 -1 (const int) 0:14 Sequence 0:14 move second child to first child ( temp int) 0:14 'o8' ( temp int) 0:14 Constant: 0:14 0 (const int) 0:15 Sequence 0:15 move second child to first child ( temp int) 0:15 'o08' ( temp int) 0:15 Constant: 0:15 0 (const int) 0:16 Sequence 0:16 move second child to first child ( temp int) 0:16 'o009' ( temp int) 0:16 Constant: 0:16 0 (const int) 0:17 Sequence 0:17 move second child to first child ( temp int) 0:17 'obig' ( temp int) 0:17 Constant: 0:17 -1662398820 (const int) 0:18 Sequence 0:18 move second child to first child ( temp int) 0:18 'omax1' ( temp int) 0:18 Constant: 0:18 0 (const int) 0:20 Sequence 0:20 move second child to first child ( temp uint) 0:20 'uo5' ( temp uint) 0:20 Constant: 0:20 5 (const uint) 0:21 Sequence 0:21 move second child to first child ( temp uint) 0:21 'uo6' ( temp uint) 0:21 Constant: 0:21 6 (const uint) 0:22 Sequence 0:22 move second child to first child ( temp uint) 0:22 'uo7' ( temp uint) 0:22 Constant: 0:22 7 (const uint) 0:23 Sequence 0:23 move second child to first child ( temp uint) 0:23 'uo8' ( temp uint) 0:23 Constant: 0:23 0 (const uint) 0:24 Sequence 0:24 move second child to first child ( temp uint) 0:24 'uo9' ( temp uint) 0:24 Constant: 0:24 0 (const uint) 0:26 Sequence 0:26 move second child to first child ( temp int) 0:26 'h0' ( temp int) 0:26 Constant: 0:26 0 (const int) 0:27 Sequence 0:27 move second child to first child ( temp int) 0:27 'h00' ( temp int) 0:27 Constant: 0:27 0 (const int) 0:28 Sequence 0:28 move second child to first child ( temp int) 0:28 'h000' ( temp int) 0:28 Constant: 0:28 0 (const int) 0:29 Sequence 0:29 move second child to first child ( temp int) 0:29 'h1' ( temp int) 0:29 Constant: 0:29 1 (const int) 0:30 Sequence 0:30 move second child to first child ( temp int) 0:30 'h2' ( temp int) 0:30 Constant: 0:30 2 (const int) 0:31 Sequence 0:31 move second child to first child ( temp int) 0:31 'h300' ( temp int) 0:31 Constant: 0:31 768 (const int) 0:32 Sequence 0:32 move second child to first child ( temp int) 0:32 'hABCDEF' ( temp int) 0:32 Constant: 0:32 11259375 (const int) 0:33 Sequence 0:33 move second child to first child ( temp int) 0:33 'hFFFFFFFF' ( temp int) 0:33 Constant: 0:33 -1 (const int) 0:34 Sequence 0:34 move second child to first child ( temp int) 0:34 'h12345678' ( temp int) 0:34 Constant: 0:34 12345678 (const int) 0:35 Sequence 0:35 move second child to first child ( temp int) 0:35 'hToBeOrNotToBe' ( temp int) 0:35 Constant: 0:35 -1 (const int) 0:37 Sequence 0:37 move second child to first child ( temp uint) 0:37 'uh0' ( temp uint) 0:37 Constant: 0:37 0 (const uint) 0:38 Sequence 0:38 move second child to first child ( temp uint) 0:38 'uhg' ( temp uint) 0:38 Constant: 0:38 12 (const uint) 0:39 Sequence 0:39 move second child to first child ( temp uint) 0:39 'uh000' ( temp uint) 0:39 Constant: 0:39 0 (const uint) 0:40 Sequence 0:40 move second child to first child ( temp uint) 0:40 'uh1' ( temp uint) 0:40 Constant: 0:40 1 (const uint) 0:41 Sequence 0:41 move second child to first child ( temp uint) 0:41 'uh2' ( temp uint) 0:41 Constant: 0:41 2 (const uint) 0:42 Sequence 0:42 move second child to first child ( temp uint) 0:42 'uh300' ( temp uint) 0:42 Constant: 0:42 768 (const uint) 0:43 Sequence 0:43 move second child to first child ( temp uint) 0:43 'uhABCDEF' ( temp uint) 0:43 Constant: 0:43 11259375 (const uint) 0:44 Sequence 0:44 move second child to first child ( temp uint) 0:44 'uhFFFFFFFF' ( temp uint) 0:44 Constant: 0:44 4294967295 (const uint) 0:45 Sequence 0:45 move second child to first child ( temp uint) 0:45 'uh12345678' ( temp uint) 0:45 Constant: 0:45 12345678 (const uint) 0:46 Sequence 0:46 move second child to first child ( temp uint) 0:46 'uhToBeOrNotToBe' ( temp uint) 0:46 Constant: 0:46 4294967295 (const uint) 0:49 Sequence 0:49 move second child to first child ( temp int) 0:49 'he2' ( temp int) 0:49 Constant: 0:49 0 (const int) 0:50 Sequence 0:50 move second child to first child ( temp int) 0:50 'hbig' ( temp int) 0:50 Constant: 0:50 -15 (const int) 0:52 Sequence 0:52 move second child to first child ( temp float) 0:52 'f1' ( temp float) 0:52 Constant: 0:52 1.000000 0:53 Sequence 0:53 move second child to first child ( temp float) 0:53 'f2' ( temp float) 0:53 Constant: 0:53 2.000000 0:54 Sequence 0:54 move second child to first child ( temp float) 0:54 'f3' ( temp float) 0:54 Constant: 0:54 3.000000 0:55 Sequence 0:55 move second child to first child ( temp float) 0:55 'f4' ( temp float) 0:55 Constant: 0:55 4.000000 0:56 Sequence 0:56 move second child to first child ( temp float) 0:56 'f5' ( temp float) 0:56 Constant: 0:56 5.000000 0:57 Sequence 0:57 move second child to first child ( temp float) 0:57 'f6' ( temp float) 0:57 Constant: 0:57 6.000000 0:58 Sequence 0:58 move second child to first child ( temp float) 0:58 'f7' ( temp float) 0:58 Constant: 0:58 7.000000 0:59 Sequence 0:59 move second child to first child ( temp float) 0:59 'f8' ( temp float) 0:59 Constant: 0:59 8.000000 0:60 Sequence 0:60 move second child to first child ( temp float) 0:60 'f9' ( temp float) 0:60 Constant: 0:60 9.000000 0:61 Sequence 0:61 move second child to first child ( temp float) 0:61 'f10' ( temp float) 0:61 Constant: 0:61 10.000000 0:62 Sequence 0:62 move second child to first child ( temp float) 0:62 'f11' ( temp float) 0:62 Constant: 0:62 11.000000 0:63 Sequence 0:63 move second child to first child ( temp float) 0:63 'f12' ( temp float) 0:63 Constant: 0:63 12.000000 0:64 Sequence 0:64 move second child to first child ( temp float) 0:64 'f543' ( temp float) 0:64 Constant: 0:64 543.000000 0:65 Sequence 0:65 move second child to first child ( temp float) 0:65 'f6789' ( temp float) 0:65 Constant: 0:65 6789.000000 0:66 Sequence 0:66 move second child to first child ( temp float) 0:66 'f88' ( temp float) 0:66 Constant: 0:66 88.000000 0:68 Sequence 0:68 move second child to first child ( temp float) 0:68 'g1' ( temp float) 0:68 Constant: 0:68 53876.000000 0:69 Sequence 0:69 move second child to first child ( temp float) 0:69 'g2' ( temp float) 0:69 Constant: 0:69 0.040000 0:70 Sequence 0:70 move second child to first child ( temp float) 0:70 'g3' ( temp float) 0:70 Constant: 0:70 100000.000000 0:71 Sequence 0:71 move second child to first child ( temp float) 0:71 'g4' ( temp float) 0:71 Constant: 0:71 0.007321 0:72 Sequence 0:72 move second child to first child ( temp float) 0:72 'g5' ( temp float) 0:72 Constant: 0:72 32000.000000 0:73 Sequence 0:73 move second child to first child ( temp float) 0:73 'g6' ( temp float) 0:73 Constant: 0:73 5.0000000000000e-06 0:74 Sequence 0:74 move second child to first child ( temp float) 0:74 'g7' ( temp float) 0:74 Constant: 0:74 0.450000 0:75 Sequence 0:75 move second child to first child ( temp float) 0:75 'g8' ( temp float) 0:75 Constant: 0:75 60000000000.000000 0:77 Sequence 0:77 move second child to first child ( temp double) 0:77 'gf1' ( temp double) 0:77 Constant: 0:77 1.000000 0:78 Sequence 0:78 move second child to first child ( temp double) 0:78 'gf2' ( temp double) 0:78 Constant: 0:78 2.000000 0:79 Sequence 0:79 move second child to first child ( temp double) 0:79 'gf3' ( temp double) 0:79 Constant: 0:79 3.000000 0:80 Sequence 0:80 move second child to first child ( temp double) 0:80 'gf4' ( temp double) 0:80 Constant: 0:80 4.000000 0:81 Sequence 0:81 move second child to first child ( temp float) 0:81 'gf5' ( temp float) 0:81 Constant: 0:81 5.000000 0:82 Sequence 0:82 move second child to first child ( temp float) 0:82 'gf6' ( temp float) 0:82 Constant: 0:82 6.000000 0:88 Sequence 0:88 move second child to first child ( temp float) 0:88 'e5' ( temp float) 0:88 Constant: 0:88 5.000000 0:98 Sequence 0:98 move second child to first child ( temp uint) 0:98 'g1' ( global uint) 0:98 Constant: 0:98 4294967295 (const uint) 0:99 Sequence 0:99 move second child to first child ( temp uint) 0:99 'g2' ( global uint) 0:99 Constant: 0:99 4294967295 (const uint) 0:100 Sequence 0:100 move second child to first child ( temp uint) 0:100 'g3' ( global uint) 0:100 Constant: 0:100 4294967294 (const uint) 0:101 Sequence 0:101 move second child to first child ( temp int) 0:101 'g4' ( global int) 0:101 Constant: 0:101 -1 (const int) 0:102 Sequence 0:102 move second child to first child ( temp int) 0:102 'g5' ( global int) 0:102 Constant: 0:102 -1 (const int) 0:103 Sequence 0:103 move second child to first child ( temp int) 0:103 'g6' ( global int) 0:103 Constant: 0:103 -2 (const int) 0:? Linker Objects 0:? 'c2' (layout( location=2) out 4-component vector of float) 0:? 'c3' (layout( location=3) out 4-component vector of float) 0:? 'c4' (layout( location=4) out 4-component vector of float) 0:? 'c5' (layout( location=5) out 4-component vector of float) 0:? 'c6' (layout( location=6) out 4-component vector of float) 0:? 'c7' (layout( location=7) out 4-component vector of float) 0:? 'g1' ( global uint) 0:? 'g2' ( global uint) 0:? 'g3' ( global uint) 0:? 'g4' ( global int) 0:? 'g5' ( global int) 0:? 'g6' ( global int) 0:? 'inf1' ( global float) glslang-8.13.3559/Test/baseResults/nvShaderNoperspectiveInterpolation.frag.out000066400000000000000000000030251360464450000274550ustar00rootroot00000000000000nvShaderNoperspectiveInterpolation.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) glslang-8.13.3559/Test/baseResults/overlongLiteral.frag.out000066400000000000000000000006601360464450000235360ustar00rootroot00000000000000overlongLiteral.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 glslang-8.13.3559/Test/baseResults/pointCoord.frag.out000066400000000000000000000055161360464450000225130ustar00rootroot00000000000000pointCoord.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) glslang-8.13.3559/Test/baseResults/precise.tesc.out000066400000000000000000000357731360464450000220540ustar00rootroot00000000000000precise.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 glslang-8.13.3559/Test/baseResults/precise_struct_block.vert.out000066400000000000000000001140661360464450000246450ustar00rootroot00000000000000precise_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) glslang-8.13.3559/Test/baseResults/precision.frag.out000066400000000000000000000240651360464450000223660ustar00rootroot00000000000000precision.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) glslang-8.13.3559/Test/baseResults/precision.vert.out000066400000000000000000000103451360464450000224230ustar00rootroot00000000000000precision.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) glslang-8.13.3559/Test/baseResults/prepost.frag.out000066400000000000000000000252231360464450000220640ustar00rootroot00000000000000prepost.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 glslang-8.13.3559/Test/baseResults/preprocessor.bad_arg.vert.err000066400000000000000000000001561360464450000245140ustar00rootroot00000000000000ERROR: 0:8: 'macro expansion' : End of input in macro EXP2 ERROR: 1 compilation errors. No code generated. glslang-8.13.3559/Test/baseResults/preprocessor.bad_arg.vert.out000066400000000000000000000000001360464450000245170ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.cpp_style___FILE__.vert.err000066400000000000000000000000001360464450000265160ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.cpp_style___FILE__.vert.out000066400000000000000000000005441360464450000265520ustar00rootroot00000000000000#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" glslang-8.13.3559/Test/baseResults/preprocessor.cpp_style_line_directive.vert.err000066400000000000000000000011101360464450000301730ustar00rootroot00000000000000ERROR: 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. glslang-8.13.3559/Test/baseResults/preprocessor.cpp_style_line_directive.vert.out000066400000000000000000000000001360464450000302070ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.defined.vert.err000066400000000000000000000001631360464450000245310ustar00rootroot00000000000000ERROR: 0:2: '#define' : "defined" can't be (un)defined: defined ERROR: 1 compilation errors. No code generated. glslang-8.13.3559/Test/baseResults/preprocessor.defined.vert.out000066400000000000000000000000001360464450000245360ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.edge_cases.vert.err000066400000000000000000000000001360464450000252030ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.edge_cases.vert.out000066400000000000000000000001341360464450000252320ustar00rootroot00000000000000#version 310 es void main(){ gl_Position = vec4(3 + 2 + 2 * 4 + 2 + 3 * 2); } glslang-8.13.3559/Test/baseResults/preprocessor.eof_missing.vert.err000066400000000000000000000000001360464450000254230ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.eof_missing.vert.out000066400000000000000000000000071360464450000254510ustar00rootroot00000000000000noEOF glslang-8.13.3559/Test/baseResults/preprocessor.errors.vert.err000066400000000000000000000004361360464450000244520ustar00rootroot00000000000000ERROR: 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. glslang-8.13.3559/Test/baseResults/preprocessor.errors.vert.out000066400000000000000000000000001360464450000244540ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.extensions.vert.err000066400000000000000000000001331360464450000253270ustar00rootroot00000000000000WARNING: 0:6: '#extension' : extension not supported: GL_EXT_shader_texture_image_samples glslang-8.13.3559/Test/baseResults/preprocessor.extensions.vert.out000066400000000000000000000003711360464450000253520ustar00rootroot00000000000000#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(){ } glslang-8.13.3559/Test/baseResults/preprocessor.function_macro.vert.err000066400000000000000000000000001360464450000261270ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.function_macro.vert.out000066400000000000000000000003011360464450000261520ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/baseResults/preprocessor.include.disabled.vert.err000066400000000000000000000015211360464450000263230ustar00rootroot00000000000000ERROR: 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. glslang-8.13.3559/Test/baseResults/preprocessor.include.disabled.vert.out000066400000000000000000000000001360464450000263310ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.include.enabled.vert.err000066400000000000000000000065661360464450000261640ustar00rootroot00000000000000ERROR: 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. glslang-8.13.3559/Test/baseResults/preprocessor.include.enabled.vert.out000066400000000000000000000000001360464450000261540ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.line.frag.err000066400000000000000000000000001360464450000240070ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.line.frag.out000066400000000000000000000000741360464450000240410ustar00rootroot00000000000000#version 310 es #line 1 2 #pragma something void main(){ } glslang-8.13.3559/Test/baseResults/preprocessor.line.vert.err000066400000000000000000000000001360464450000240500ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.line.vert.out000066400000000000000000000002331360464450000240770ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/baseResults/preprocessor.many.endif.vert.err000066400000000000000000000007201360464450000251620ustar00rootroot00000000000000ERROR: 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. glslang-8.13.3559/Test/baseResults/preprocessor.many.endif.vert.out000066400000000000000000000000001360464450000251700ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.pragma.vert.err000066400000000000000000000000621360464450000244000ustar00rootroot00000000000000WARNING: 0:10: '#pragma once' : not implemented glslang-8.13.3559/Test/baseResults/preprocessor.pragma.vert.out000066400000000000000000000002361360464450000244220ustar00rootroot00000000000000#version 310 es #pragma optimize(on) #pragma optimize(off) #pragma debug(on) #pragma debug(off) #pragma undefined_pragma(x,4) #pragma once int main(){ } glslang-8.13.3559/Test/baseResults/preprocessor.simple.vert.err000066400000000000000000000000001360464450000244120ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.simple.vert.out000066400000000000000000000014111360464450000244400ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.err000066400000000000000000000000001360464450000306460ustar00rootroot00000000000000glslang-8.13.3559/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out000066400000000000000000000000571360464450000307010ustar00rootroot00000000000000int x(){ something that shouldnt compile; } glslang-8.13.3559/Test/baseResults/recurse1.vert.out000066400000000000000000000164431360464450000221660ustar00rootroot00000000000000recurse1.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 glslang-8.13.3559/Test/baseResults/reflection.frag.out000066400000000000000000000002601360464450000225140ustar00rootroot00000000000000reflection.frag Uniform reflection: Uniform block reflection: Buffer variable reflection: Buffer block reflection: Pipeline input reflection: Pipeline output reflection: glslang-8.13.3559/Test/baseResults/reflection.linked.options.out000066400000000000000000000014101360464450000245330ustar00rootroot00000000000000reflection.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 -1, 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 glslang-8.13.3559/Test/baseResults/reflection.linked.out000066400000000000000000000012641360464450000230500ustar00rootroot00000000000000reflection.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 -1, 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 glslang-8.13.3559/Test/baseResults/reflection.options.frag.out000066400000000000000000000003631360464450000242120ustar00rootroot00000000000000reflection.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: glslang-8.13.3559/Test/baseResults/reflection.options.geom.out000066400000000000000000000021141360464450000242160ustar00rootroot00000000000000reflection.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 glslang-8.13.3559/Test/baseResults/reflection.options.vert.out000066400000000000000000000156541360464450000242640ustar00rootroot00000000000000reflection.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 -1, 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[0].a: offset 0, type 1406, size 1, index 4, binding -1, stages 0 ArrayedBind[0].b: offset 4, type 1406, size 1, index 4, binding -1, stages 1 Buffer block reflection: VertexCollection: offset -1, type ffffffff, size 400, index -1, 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 -1, binding -1, stages 1, numMembers 2 ArrayedBind[1]: offset -1, type ffffffff, size 8, index -1, binding -1, stages 1, numMembers 2 ArrayedBind[2]: offset -1, type ffffffff, size 8, index -1, binding -1, stages 1, numMembers 2 Pipeline input reflection: gl_InstanceID: 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 glslang-8.13.3559/Test/baseResults/reflection.vert.out000066400000000000000000000403071360464450000225630ustar00rootroot00000000000000reflection.vert Uniform reflection: 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 0, 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 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 64, 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 named.memvec2: offset 48, type 8b50, size 1, index 1, binding -1, stages 1 named.memf1: offset 56, type 1406, size 1, index 1, binding -1, stages 1 named.memf2: offset 60, type 8b56, size 1, index 1, binding -1, stages 1 named.memf3: offset 64, type 1404, size 1, index 1, binding -1, stages 1 named.memvec2a: offset 72, type 8b50, size 1, index 1, binding -1, stages 1 named.m22: offset 80, type 8b5a, size 7, index 1, 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 0, 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 abl.foo: offset 0, type 1406, size 1, index 7, binding -1, stages 1 abl2.foo: offset 0, type 1406, size 1, index 11, 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 anonMember1: offset 0, type 8b51, size 1, index 0, 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 1, binding -1, stages 1 Uniform block reflection: nameless: offset -1, type ffffffff, size 496, index -1, binding -1, stages 1, numMembers 9 named: offset -1, type ffffffff, size 304, index -1, binding -1, stages 1, numMembers 10 c_nameless: offset -1, type ffffffff, size 112, index -1, binding -1, stages 1, numMembers 5 nested: offset -1, type ffffffff, size 32, index -1, binding -1, stages 1, numMembers 4 abl[0]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 1 abl[1]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 1 abl[2]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 1 abl[3]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 1 abl2[0]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 1 abl2[1]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 1 abl2[2]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 1 abl2[3]: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 1 buf1: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 2 buf2: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 4 buf3: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 2 buf4: offset -1, type ffffffff, size 4, index -1, binding -1, stages 1, numMembers 4 nested2: offset -1, type ffffffff, size 208, index -1, binding -1, stages 1, numMembers 15 VertexCollection: offset -1, type ffffffff, size 400, index -1, 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: glslang-8.13.3559/Test/baseResults/remap.basic.dcefunc.frag.out000066400000000000000000000027231360464450000241620ustar00rootroot00000000000000remap.basic.dcefunc.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 17 19 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 17 "outf4" Name 19 "inf" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8: TypeFunction 7(fvec3) 11: 6(float) Constant 0 12: 7(fvec3) ConstantComposite 11 11 11 15: TypeVector 6(float) 4 16: TypePointer Output 15(fvec4) 17(outf4): 16(ptr) Variable Output 18: TypePointer Input 6(float) 19(inf): 18(ptr) Variable Input 4(main): 2 Function None 3 5: Label 20: 6(float) Load 19(inf) 21: 15(fvec4) CompositeConstruct 20 20 20 20 Store 17(outf4) 21 Return FunctionEnd glslang-8.13.3559/Test/baseResults/remap.basic.dcevartype.frag.out000066400000000000000000000006721360464450000247220ustar00rootroot00000000000000remap.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 glslang-8.13.3559/Test/baseResults/remap.basic.everything.frag.out000066400000000000000000000021561360464450000247370ustar00rootroot00000000000000remap.basic.everything.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 24969 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 5663 "main" 4539 3773 ExecutionMode 5663 OriginUpperLeft 8: TypeVoid 1282: TypeFunction 8 13: TypeFloat 32 29: TypeVector 13(float) 4 666: TypePointer Output 29(fvec4) 4539: 666(ptr) Variable Output 650: TypePointer Input 13(float) 3773: 650(ptr) Variable Input 5663: 8 Function None 1282 24968: Label 17486: 13(float) Load 3773 17691: 29(fvec4) CompositeConstruct 17486 17486 17486 17486 Store 4539 17691 Return FunctionEnd glslang-8.13.3559/Test/baseResults/remap.basic.none.frag.out000066400000000000000000000032521360464450000235100ustar00rootroot00000000000000remap.basic.none.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 17 19 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "dead_fn(" Name 17 "outf4" Name 19 "inf" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8: TypeFunction 7(fvec3) 11: 6(float) Constant 0 12: 7(fvec3) ConstantComposite 11 11 11 15: TypeVector 6(float) 4 16: TypePointer Output 15(fvec4) 17(outf4): 16(ptr) Variable Output 18: TypePointer Input 6(float) 19(inf): 18(ptr) Variable Input 4(main): 2 Function None 3 5: Label 20: 6(float) Load 19(inf) 21: 15(fvec4) CompositeConstruct 20 20 20 20 Store 17(outf4) 21 Return FunctionEnd 9(dead_fn(): 7(fvec3) Function None 8 10: Label ReturnValue 12 FunctionEnd glslang-8.13.3559/Test/baseResults/remap.basic.strip.frag.out000066400000000000000000000026671360464450000237230ustar00rootroot00000000000000remap.basic.strip.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 17 19 ExecutionMode 4 OriginUpperLeft 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8: TypeFunction 7(fvec3) 11: 6(float) Constant 0 12: 7(fvec3) ConstantComposite 11 11 11 15: TypeVector 6(float) 4 16: TypePointer Output 15(fvec4) 17: 16(ptr) Variable Output 18: TypePointer Input 6(float) 19: 18(ptr) Variable Input 4: 2 Function None 3 5: Label 20: 6(float) Load 19 21: 15(fvec4) CompositeConstruct 20 20 20 20 Store 17 21 Return FunctionEnd 9: 7(fvec3) Function None 8 10: Label ReturnValue 12 FunctionEnd glslang-8.13.3559/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out000066400000000000000000000304751360464450000271650ustar00rootroot00000000000000remap.hlsl.sample.basic.everything.frag WARNING: 0:4: 'immediate sampler state' : unimplemented // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 4807 DescriptorSet 0 Decorate 4807 Binding 0 Decorate 5042 DescriptorSet 0 Decorate 5042 Binding 0 Decorate 5058 DescriptorSet 0 Decorate 5058 Binding 0 Decorate 5122 DescriptorSet 0 Decorate 5122 Binding 0 Decorate 3967 DescriptorSet 0 Decorate 3967 Binding 0 Decorate 3983 DescriptorSet 0 Decorate 3983 Binding 0 Decorate 4047 DescriptorSet 0 Decorate 4047 Binding 0 Decorate 3789 DescriptorSet 0 Decorate 3789 Binding 0 Decorate 3805 DescriptorSet 0 Decorate 3805 Binding 0 Decorate 3869 DescriptorSet 0 Decorate 3869 Binding 0 Decorate 4253 Location 0 Decorate 3709 BuiltIn FragDepth 8: TypeVoid 1282: TypeFunction 8 13: TypeFloat 32 29: TypeVector 13(float) 4 1032: TypeStruct 29(fvec4) 13(float) 319: TypeFunction 1032(struct) 12: TypeInt 32 1 1335: TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 1972: TypePointer Function 1335(struct) 2574: 12(int) Constant 1 649: TypePointer Function 12(int) 2577: 12(int) Constant 2 2580: 12(int) Constant 3 2583: 12(int) Constant 4 2586: 12(int) Constant 5 2589: 12(int) Constant 6 2571: 12(int) Constant 0 2592: 12(int) Constant 7 2595: 12(int) Constant 8 2598: 12(int) Constant 9 2601: 12(int) Constant 10 2604: 12(int) Constant 11 666: TypePointer Function 29(fvec4) 149: TypeImage 13(float) 1D sampled format:Unknown 786: TypePointer UniformConstant 149 4727: 786(ptr) Variable UniformConstant 508: TypeSampler 1145: TypePointer UniformConstant 508 3305: 1145(ptr) Variable UniformConstant 510: TypeSampledImage 149 2935: 13(float) Constant 1036831949 26: TypeVector 12(int) 4 148: TypeImage 12(int) 1D sampled format:Unknown 785: TypePointer UniformConstant 148 4743: 785(ptr) Variable UniformConstant 511: TypeSampledImage 148 2821: 13(float) Constant 1045220557 11: TypeInt 32 0 23: TypeVector 11(int) 4 147: TypeImage 11(int) 1D sampled format:Unknown 784: TypePointer UniformConstant 147 4807: 784(ptr) Variable UniformConstant 512: TypeSampledImage 147 2151: 13(float) Constant 1050253722 150: TypeImage 13(float) 2D sampled format:Unknown 787: TypePointer UniformConstant 150 5042: 787(ptr) Variable UniformConstant 513: TypeSampledImage 150 19: TypeVector 13(float) 2 1825: 19(fvec2) ConstantComposite 2935 2821 151: TypeImage 12(int) 2D sampled format:Unknown 788: TypePointer UniformConstant 151 5058: 788(ptr) Variable UniformConstant 514: TypeSampledImage 151 2707: 13(float) Constant 1053609165 2028: 19(fvec2) ConstantComposite 2151 2707 152: TypeImage 11(int) 2D sampled format:Unknown 789: TypePointer UniformConstant 152 5122: 789(ptr) Variable UniformConstant 515: TypeSampledImage 152 252: 13(float) Constant 1056964608 2037: 13(float) Constant 1058642330 2684: 19(fvec2) ConstantComposite 252 2037 153: TypeImage 13(float) 3D sampled format:Unknown 790: TypePointer UniformConstant 153 3967: 790(ptr) Variable UniformConstant 516: TypeSampledImage 153 24: TypeVector 13(float) 3 1660: 24(fvec3) ConstantComposite 2935 2821 2151 154: TypeImage 12(int) 3D sampled format:Unknown 791: TypePointer UniformConstant 154 3983: 791(ptr) Variable UniformConstant 517: TypeSampledImage 154 2174: 24(fvec3) ConstantComposite 2707 252 2037 155: TypeImage 11(int) 3D sampled format:Unknown 792: TypePointer UniformConstant 155 4047: 792(ptr) Variable UniformConstant 518: TypeSampledImage 155 808: 13(float) Constant 1060320051 2593: 13(float) Constant 1061997773 1364: 13(float) Constant 1063675494 2476: 24(fvec3) ConstantComposite 808 2593 1364 156: TypeImage 13(float) Cube sampled format:Unknown 793: TypePointer UniformConstant 156 3789: 793(ptr) Variable UniformConstant 519: TypeSampledImage 156 157: TypeImage 12(int) Cube sampled format:Unknown 794: TypePointer UniformConstant 157 3805: 794(ptr) Variable UniformConstant 520: TypeSampledImage 157 158: TypeImage 11(int) Cube sampled format:Unknown 795: TypePointer UniformConstant 158 3869: 795(ptr) Variable UniformConstant 521: TypeSampledImage 158 1669: TypePointer Function 1032(struct) 138: 13(float) Constant 1065353216 1284: 29(fvec4) ConstantComposite 138 138 138 138 650: TypePointer Function 13(float) 667: TypePointer Output 29(fvec4) 4253: 667(ptr) Variable Output 651: TypePointer Output 13(float) 3709: 651(ptr) Variable Output 5663: 8 Function None 1282 24877: Label 4104: 1669(ptr) Variable Function 18803:1032(struct) FunctionCall 3317 Store 4104 18803 13396: 666(ptr) AccessChain 4104 2571 7967: 29(fvec4) Load 13396 Store 4253 7967 16622: 650(ptr) AccessChain 4104 2574 11539: 13(float) Load 16622 Store 3709 11539 Return FunctionEnd 3317:1032(struct) Function None 319 12442: Label 5830: 1972(ptr) Variable Function 5072: 1669(ptr) Variable Function 22671: 649(ptr) AccessChain 5830 2574 Store 22671 2574 20306: 649(ptr) AccessChain 5830 2577 Store 20306 2574 20307: 649(ptr) AccessChain 5830 2580 Store 20307 2574 20308: 649(ptr) AccessChain 5830 2583 Store 20308 2574 20309: 649(ptr) AccessChain 5830 2586 Store 20309 2574 20310: 649(ptr) AccessChain 5830 2589 Store 20310 2574 20311: 649(ptr) AccessChain 5830 2571 Store 20311 2574 20312: 649(ptr) AccessChain 5830 2592 Store 20312 2574 20313: 649(ptr) AccessChain 5830 2595 Store 20313 2574 20314: 649(ptr) AccessChain 5830 2598 Store 20314 2574 20315: 649(ptr) AccessChain 5830 2601 Store 20315 2574 20230: 649(ptr) AccessChain 5830 2604 Store 20230 2574 15508: 149 Load 4727 12260: 508 Load 3305 12514: 510 SampledImage 15508 12260 21065: 29(fvec4) ImageSampleImplicitLod 12514 2935 9477: 148 Load 4743 16280: 508 Load 3305 12515: 511 SampledImage 9477 16280 21066: 26(ivec4) ImageSampleImplicitLod 12515 2821 9478: 147 Load 4807 16281: 508 Load 3305 12516: 512 SampledImage 9478 16281 21067: 23(ivec4) ImageSampleImplicitLod 12516 2151 9479: 150 Load 5042 16282: 508 Load 3305 12517: 513 SampledImage 9479 16282 21068: 29(fvec4) ImageSampleImplicitLod 12517 1825 9480: 151 Load 5058 16283: 508 Load 3305 12518: 514 SampledImage 9480 16283 21069: 26(ivec4) ImageSampleImplicitLod 12518 2028 9481: 152 Load 5122 16284: 508 Load 3305 12519: 515 SampledImage 9481 16284 21070: 23(ivec4) ImageSampleImplicitLod 12519 2684 9482: 153 Load 3967 16285: 508 Load 3305 12520: 516 SampledImage 9482 16285 21071: 29(fvec4) ImageSampleImplicitLod 12520 1660 9483: 154 Load 3983 16286: 508 Load 3305 12521: 517 SampledImage 9483 16286 21072: 26(ivec4) ImageSampleImplicitLod 12521 2174 9484: 155 Load 4047 16287: 508 Load 3305 12522: 518 SampledImage 9484 16287 21073: 23(ivec4) ImageSampleImplicitLod 12522 2476 9485: 156 Load 3789 16288: 508 Load 3305 12523: 519 SampledImage 9485 16288 21074: 29(fvec4) ImageSampleImplicitLod 12523 1660 9486: 157 Load 3805 16289: 508 Load 3305 12524: 520 SampledImage 9486 16289 21075: 26(ivec4) ImageSampleImplicitLod 12524 2174 9487: 158 Load 3869 16290: 508 Load 3305 12590: 521 SampledImage 9487 16290 20392: 23(ivec4) ImageSampleImplicitLod 12590 2476 14275: 666(ptr) AccessChain 5072 2571 Store 14275 1284 20231: 650(ptr) AccessChain 5072 2574 Store 20231 138 8692:1032(struct) Load 5072 ReturnValue 8692 FunctionEnd glslang-8.13.3559/Test/baseResults/remap.hlsl.sample.basic.none.frag.out000066400000000000000000000430351360464450000257340ustar00rootroot00000000000000remap.hlsl.sample.basic.none.frag WARNING: 0:4: 'immediate sampler state' : unimplemented // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 73(g_tTex1du4) DescriptorSet 0 Decorate 73(g_tTex1du4) Binding 0 Decorate 83(g_tTex2df4) DescriptorSet 0 Decorate 83(g_tTex2df4) Binding 0 Decorate 94(g_tTex2di4) DescriptorSet 0 Decorate 94(g_tTex2di4) Binding 0 Decorate 105(g_tTex2du4) DescriptorSet 0 Decorate 105(g_tTex2du4) Binding 0 Decorate 117(g_tTex3df4) DescriptorSet 0 Decorate 117(g_tTex3df4) Binding 0 Decorate 128(g_tTex3di4) DescriptorSet 0 Decorate 128(g_tTex3di4) Binding 0 Decorate 138(g_tTex3du4) DescriptorSet 0 Decorate 138(g_tTex3du4) Binding 0 Decorate 151(g_tTexcdf4) DescriptorSet 0 Decorate 151(g_tTexcdf4) Binding 0 Decorate 160(g_tTexcdi4) DescriptorSet 0 Decorate 160(g_tTexcdi4) Binding 0 Decorate 169(g_tTexcdu4) DescriptorSet 0 Decorate 169(g_tTexcdu4) Binding 0 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 glslang-8.13.3559/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out000066400000000000000000000331561360464450000261410ustar00rootroot00000000000000remap.hlsl.sample.basic.strip.frag WARNING: 0:4: 'immediate sampler state' : unimplemented // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 73 DescriptorSet 0 Decorate 73 Binding 0 Decorate 83 DescriptorSet 0 Decorate 83 Binding 0 Decorate 94 DescriptorSet 0 Decorate 94 Binding 0 Decorate 105 DescriptorSet 0 Decorate 105 Binding 0 Decorate 117 DescriptorSet 0 Decorate 117 Binding 0 Decorate 128 DescriptorSet 0 Decorate 128 Binding 0 Decorate 138 DescriptorSet 0 Decorate 138 Binding 0 Decorate 151 DescriptorSet 0 Decorate 151 Binding 0 Decorate 160 DescriptorSet 0 Decorate 160 Binding 0 Decorate 169 DescriptorSet 0 Decorate 169 Binding 0 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 glslang-8.13.3559/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out000066400000000000000000000033451360464450000275200ustar00rootroot00000000000000remap.hlsl.templatetypes.everything.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/remap.hlsl.templatetypes.none.frag.out000066400000000000000000000274721360464450000263020ustar00rootroot00000000000000remap.hlsl.templatetypes.none.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/remap.if.everything.frag.out000066400000000000000000000035541360464450000242570ustar00rootroot00000000000000remap.if.everything.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 22855 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 5663 "main" 3773 4539 ExecutionMode 5663 OriginUpperLeft 8: TypeVoid 1282: TypeFunction 8 13: TypeFloat 32 650: TypePointer Input 13(float) 3773: 650(ptr) Variable Input 24: 13(float) Constant 1073741824 9: TypeBool 29: TypeVector 13(float) 4 666: TypePointer Output 29(fvec4) 4539: 666(ptr) Variable Output 947: 13(float) Constant 3204448256 5663: 8 Function None 1282 7911: Label 21734: 13(float) Load 3773 13508: 9(bool) FOrdGreaterThan 21734 24 SelectionMerge 19578 None BranchConditional 13508 13182 10142 13182: Label 9496: 13(float) Load 3773 17615: 29(fvec4) CompositeConstruct 9496 9496 9496 9496 Store 4539 17615 Branch 19578 10142: Label 22854: 13(float) Load 3773 9982: 13(float) FAdd 22854 947 12421: 29(fvec4) CompositeConstruct 9982 9982 9982 9982 Store 4539 12421 Branch 19578 19578: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/remap.if.none.frag.out000066400000000000000000000037511360464450000230310ustar00rootroot00000000000000remap.if.none.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 25 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 8 17 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 8 "inf" Name 17 "outf4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Input 6(float) 8(inf): 7(ptr) Variable Input 10: 6(float) Constant 1073741824 11: TypeBool 15: TypeVector 6(float) 4 16: TypePointer Output 15(fvec4) 17(outf4): 16(ptr) Variable Output 22: 6(float) Constant 3204448256 4(main): 2 Function None 3 5: Label 9: 6(float) Load 8(inf) 12: 11(bool) FOrdGreaterThan 9 10 SelectionMerge 14 None BranchConditional 12 13 20 13: Label 18: 6(float) Load 8(inf) 19: 15(fvec4) CompositeConstruct 18 18 18 18 Store 17(outf4) 19 Branch 14 20: Label 21: 6(float) Load 8(inf) 23: 6(float) FAdd 21 22 24: 15(fvec4) CompositeConstruct 23 23 23 23 Store 17(outf4) 24 Branch 14 14: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/remap.invalid-spirv-1.out000066400000000000000000000000341360464450000234730ustar00rootroot00000000000000ID out of range: 4160749568 glslang-8.13.3559/Test/baseResults/remap.invalid-spirv-2.out000066400000000000000000000000151360464450000234730ustar00rootroot00000000000000ID not found glslang-8.13.3559/Test/baseResults/remap.literal64.everything.spv.out000066400000000000000000000003371360464450000253540ustar00rootroot00000000000000remap.literal64.everything.spv // Module Version 10100 // Generated by (magic number): 70000 // Id's are bound by 0 Capability Shader MemoryModel Logical GLSL450 glslang-8.13.3559/Test/baseResults/remap.literal64.none.spv.out000066400000000000000000000017221360464450000241260ustar00rootroot00000000000000remap.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 glslang-8.13.3559/Test/baseResults/remap.similar_1a.everything.frag.out000066400000000000000000000122321360464450000256730ustar00rootroot00000000000000remap.similar_1a.everything.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 24916 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 5663 "main" 4201 4539 3773 ExecutionMode 5663 OriginUpperLeft Decorate 4201 Flat 8: TypeVoid 1282: TypeFunction 8 12: TypeInt 32 1 649: TypePointer Function 12(int) 13: TypeFloat 32 204: TypeFunction 13(float) 649(ptr) 650: TypePointer Function 13(float) 2572: 13(float) Constant 0 2571: 12(int) Constant 0 9: TypeBool 252: 13(float) Constant 1056964608 2574: 12(int) Constant 1 2577: 12(int) Constant 2 26: TypeVector 12(int) 4 663: TypePointer Input 26(ivec4) 4201: 663(ptr) Variable Input 11: TypeInt 32 0 2573: 11(int) Constant 1 651: TypePointer Input 12(int) 2576: 11(int) Constant 2 2570: 11(int) Constant 0 29: TypeVector 13(float) 4 666: TypePointer Output 29(fvec4) 4539: 666(ptr) Variable Output 652: TypePointer Input 13(float) 3773: 652(ptr) Variable Input 5663: 8 Function None 1282 24915: Label 18415: 649(ptr) Variable Function 5786: 649(ptr) Variable Function 8366: 13(float) Load 3773 8654: 12(int) ConvertFToS 8366 Store 18415 8654 17256: 13(float) FunctionCall 3782 18415 14512: 13(float) Load 3773 7041: 12(int) ConvertFToS 14512 Store 5786 7041 23993: 13(float) FunctionCall 3836 5786 9180: 13(float) FAdd 17256 23993 15728: 29(fvec4) CompositeConstruct 9180 9180 9180 9180 Store 4539 15728 Return FunctionEnd 3782: 13(float) Function None 204 6931: 649(ptr) FunctionParameter 12220: Label 4292: 650(ptr) Variable Function 4298: 649(ptr) Variable Function Store 4292 2572 Store 4298 2571 Branch 14924 14924: Label LoopMerge 8882 6488 None Branch 11857 11857: Label 13755: 12(int) Load 4298 22731: 12(int) Load 6931 20007: 9(bool) SLessThan 13755 22731 BranchConditional 20007 24750 8882 24750: Label 22912: 13(float) Load 4292 19471: 13(float) FAdd 22912 252 Store 4292 19471 Branch 6488 6488: Label 19050: 12(int) Load 4298 8593: 12(int) IAdd 19050 2574 Store 4298 8593 Branch 14924 8882: Label 11601: 13(float) Load 4292 ReturnValue 11601 FunctionEnd 3836: 13(float) Function None 204 4408: 649(ptr) FunctionParameter 12143: Label 22102: 649(ptr) Variable Function 24151: 12(int) Load 4408 13868: 9(bool) SGreaterThan 24151 2577 SelectionMerge 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 glslang-8.13.3559/Test/baseResults/remap.similar_1a.none.frag.out000066400000000000000000000133401360464450000244470ustar00rootroot00000000000000remap.similar_1a.none.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 86 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 53 73 75 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 11 "Test1(i1;" Name 10 "bound" Name 14 "Test2(i1;" Name 13 "bound" Name 17 "r" Name 19 "x" Name 44 "param" Name 53 "ini4" Name 73 "outf4" Name 75 "inf" Name 78 "param" Name 82 "param" Decorate 53(ini4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 8: TypeFloat 32 9: TypeFunction 8(float) 7(ptr) 16: TypePointer Function 8(float) 18: 8(float) Constant 0 20: 6(int) Constant 0 28: TypeBool 30: 8(float) Constant 1056964608 34: 6(int) Constant 1 40: 6(int) Constant 2 51: TypeVector 6(int) 4 52: TypePointer Input 51(ivec4) 53(ini4): 52(ptr) Variable Input 54: TypeInt 32 0 55: 54(int) Constant 1 56: TypePointer Input 6(int) 59: 54(int) Constant 2 64: 54(int) Constant 0 71: TypeVector 8(float) 4 72: TypePointer Output 71(fvec4) 73(outf4): 72(ptr) Variable Output 74: TypePointer Input 8(float) 75(inf): 74(ptr) Variable Input 4(main): 2 Function None 3 5: Label 78(param): 7(ptr) Variable Function 82(param): 7(ptr) Variable Function 76: 8(float) Load 75(inf) 77: 6(int) ConvertFToS 76 Store 78(param) 77 79: 8(float) FunctionCall 11(Test1(i1;) 78(param) 80: 8(float) Load 75(inf) 81: 6(int) ConvertFToS 80 Store 82(param) 81 83: 8(float) FunctionCall 14(Test2(i1;) 82(param) 84: 8(float) FAdd 79 83 85: 71(fvec4) CompositeConstruct 84 84 84 84 Store 73(outf4) 85 Return FunctionEnd 11(Test1(i1;): 8(float) Function None 9 10(bound): 7(ptr) FunctionParameter 12: Label 17(r): 16(ptr) Variable Function 19(x): 7(ptr) Variable Function Store 17(r) 18 Store 19(x) 20 Branch 21 21: Label LoopMerge 23 24 None Branch 25 25: Label 26: 6(int) Load 19(x) 27: 6(int) Load 10(bound) 29: 28(bool) SLessThan 26 27 BranchConditional 29 22 23 22: Label 31: 8(float) Load 17(r) 32: 8(float) FAdd 31 30 Store 17(r) 32 Branch 24 24: Label 33: 6(int) Load 19(x) 35: 6(int) IAdd 33 34 Store 19(x) 35 Branch 21 23: Label 36: 8(float) Load 17(r) ReturnValue 36 FunctionEnd 14(Test2(i1;): 8(float) Function None 9 13(bound): 7(ptr) FunctionParameter 15: Label 44(param): 7(ptr) Variable Function 39: 6(int) Load 13(bound) 41: 28(bool) SGreaterThan 39 40 SelectionMerge 43 None BranchConditional 41 42 48 42: Label 45: 6(int) Load 13(bound) Store 44(param) 45 46: 8(float) FunctionCall 11(Test1(i1;) 44(param) ReturnValue 46 48: Label 49: 6(int) Load 13(bound) 50: 6(int) IMul 49 40 57: 56(ptr) AccessChain 53(ini4) 55 58: 6(int) Load 57 60: 56(ptr) AccessChain 53(ini4) 59 61: 6(int) Load 60 62: 6(int) IMul 58 61 63: 6(int) IAdd 50 62 65: 56(ptr) AccessChain 53(ini4) 64 66: 6(int) Load 65 67: 6(int) IAdd 63 66 68: 8(float) ConvertSToF 67 ReturnValue 68 43: Label Unreachable FunctionEnd glslang-8.13.3559/Test/baseResults/remap.similar_1b.everything.frag.out000066400000000000000000000126521360464450000257020ustar00rootroot00000000000000remap.similar_1b.everything.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 24916 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 5663 "main" 4201 4539 3773 ExecutionMode 5663 OriginUpperLeft Decorate 4201 Flat 8: TypeVoid 1282: TypeFunction 8 12: TypeInt 32 1 649: TypePointer Function 12(int) 13: TypeFloat 32 204: TypeFunction 13(float) 649(ptr) 650: TypePointer Function 13(float) 2572: 13(float) Constant 0 2571: 12(int) Constant 0 9: TypeBool 252: 13(float) Constant 1056964608 2574: 12(int) Constant 1 2821: 13(float) Constant 1045220557 2577: 12(int) Constant 2 2583: 12(int) Constant 4 26: TypeVector 12(int) 4 663: TypePointer Input 26(ivec4) 4201: 663(ptr) Variable Input 11: TypeInt 32 0 2573: 11(int) Constant 1 651: TypePointer Input 12(int) 2576: 11(int) Constant 2 2570: 11(int) Constant 0 29: TypeVector 13(float) 4 666: TypePointer Output 29(fvec4) 4539: 666(ptr) Variable Output 652: TypePointer Input 13(float) 3773: 652(ptr) Variable Input 5663: 8 Function None 1282 24915: Label 18415: 649(ptr) Variable Function 5786: 649(ptr) Variable Function 8366: 13(float) Load 3773 8654: 12(int) ConvertFToS 8366 Store 18415 8654 17256: 13(float) FunctionCall 3782 18415 14512: 13(float) Load 3773 7041: 12(int) ConvertFToS 14512 Store 5786 7041 23993: 13(float) FunctionCall 3836 5786 9180: 13(float) FAdd 17256 23993 15728: 29(fvec4) CompositeConstruct 9180 9180 9180 9180 Store 4539 15728 Return FunctionEnd 3782: 13(float) Function None 204 6931: 649(ptr) FunctionParameter 12220: Label 4292: 650(ptr) Variable Function 4298: 649(ptr) Variable Function Store 4292 2572 Store 4298 2571 Branch 14924 14924: Label LoopMerge 6507 6488 None Branch 11857 11857: Label 13755: 12(int) Load 4298 22731: 12(int) Load 6931 20007: 9(bool) SLessThan 13755 22731 BranchConditional 20007 24750 6507 24750: Label 22912: 13(float) Load 4292 19471: 13(float) FAdd 22912 252 Store 4292 19471 Branch 6488 6488: Label 19050: 12(int) Load 4298 8593: 12(int) IAdd 19050 2574 Store 4298 8593 Branch 14924 6507: Label 18877: 13(float) Load 4292 15899: 13(float) FAdd 18877 2821 Store 4292 15899 20342: 13(float) Load 4292 ReturnValue 20342 FunctionEnd 3836: 13(float) Function None 204 4408: 649(ptr) FunctionParameter 12143: Label 22102: 649(ptr) Variable Function 24151: 12(int) Load 4408 13868: 9(bool) SGreaterThan 24151 2577 SelectionMerge 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 glslang-8.13.3559/Test/baseResults/remap.similar_1b.none.frag.out000066400000000000000000000137451360464450000244610ustar00rootroot00000000000000remap.similar_1b.none.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 91 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 58 78 80 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 11 "Test1(i1;" Name 10 "bound" Name 14 "Test2(i1;" Name 13 "bound" Name 17 "r" Name 19 "x" Name 49 "param" Name 58 "ini4" Name 78 "outf4" Name 80 "inf" Name 83 "param" Name 87 "param" Decorate 58(ini4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 8: TypeFloat 32 9: TypeFunction 8(float) 7(ptr) 16: TypePointer Function 8(float) 18: 8(float) Constant 0 20: 6(int) Constant 0 28: TypeBool 30: 8(float) Constant 1056964608 34: 6(int) Constant 1 36: 8(float) Constant 1045220557 43: 6(int) Constant 2 54: 6(int) Constant 4 56: TypeVector 6(int) 4 57: TypePointer Input 56(ivec4) 58(ini4): 57(ptr) Variable Input 59: TypeInt 32 0 60: 59(int) Constant 1 61: TypePointer Input 6(int) 64: 59(int) Constant 2 69: 59(int) Constant 0 76: TypeVector 8(float) 4 77: TypePointer Output 76(fvec4) 78(outf4): 77(ptr) Variable Output 79: TypePointer Input 8(float) 80(inf): 79(ptr) Variable Input 4(main): 2 Function None 3 5: Label 83(param): 7(ptr) Variable Function 87(param): 7(ptr) Variable Function 81: 8(float) Load 80(inf) 82: 6(int) ConvertFToS 81 Store 83(param) 82 84: 8(float) FunctionCall 11(Test1(i1;) 83(param) 85: 8(float) Load 80(inf) 86: 6(int) ConvertFToS 85 Store 87(param) 86 88: 8(float) FunctionCall 14(Test2(i1;) 87(param) 89: 8(float) FAdd 84 88 90: 76(fvec4) CompositeConstruct 89 89 89 89 Store 78(outf4) 90 Return FunctionEnd 11(Test1(i1;): 8(float) Function None 9 10(bound): 7(ptr) FunctionParameter 12: Label 17(r): 16(ptr) Variable Function 19(x): 7(ptr) Variable Function Store 17(r) 18 Store 19(x) 20 Branch 21 21: Label LoopMerge 23 24 None Branch 25 25: Label 26: 6(int) Load 19(x) 27: 6(int) Load 10(bound) 29: 28(bool) SLessThan 26 27 BranchConditional 29 22 23 22: Label 31: 8(float) Load 17(r) 32: 8(float) FAdd 31 30 Store 17(r) 32 Branch 24 24: Label 33: 6(int) Load 19(x) 35: 6(int) IAdd 33 34 Store 19(x) 35 Branch 21 23: Label 37: 8(float) Load 17(r) 38: 8(float) FAdd 37 36 Store 17(r) 38 39: 8(float) Load 17(r) ReturnValue 39 FunctionEnd 14(Test2(i1;): 8(float) Function None 9 13(bound): 7(ptr) FunctionParameter 15: Label 49(param): 7(ptr) Variable Function 42: 6(int) Load 13(bound) 44: 28(bool) SGreaterThan 42 43 SelectionMerge 46 None BranchConditional 44 45 52 45: Label 47: 6(int) Load 13(bound) 48: 6(int) IMul 47 43 Store 49(param) 48 50: 8(float) FunctionCall 11(Test1(i1;) 49(param) ReturnValue 50 52: Label 53: 6(int) Load 13(bound) 55: 6(int) IMul 53 54 62: 61(ptr) AccessChain 58(ini4) 60 63: 6(int) Load 62 65: 61(ptr) AccessChain 58(ini4) 64 66: 6(int) Load 65 67: 6(int) IMul 63 66 68: 6(int) IAdd 55 67 70: 61(ptr) AccessChain 58(ini4) 69 71: 6(int) Load 70 72: 6(int) IAdd 68 71 73: 8(float) ConvertSToF 72 ReturnValue 73 46: Label Unreachable FunctionEnd glslang-8.13.3559/Test/baseResults/remap.specconst.comp.out000066400000000000000000000026271360464450000235160ustar00rootroot00000000000000remap.specconst.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/remap.switch.everything.frag.out000066400000000000000000000071301360464450000251540ustar00rootroot00000000000000remap.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/remap.switch.none.frag.out000066400000000000000000000072761360464450000237420ustar00rootroot00000000000000remap.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/remap.uniformarray.everything.frag.out000066400000000000000000000057131360464450000263760ustar00rootroot00000000000000remap.uniformarray.everything.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 25030 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 5663 "main" 3608 4957 4339 5139 ExecutionMode 5663 OriginUpperLeft Decorate 5139 Location 0 8: TypeVoid 1282: TypeFunction 8 13: TypeFloat 32 29: TypeVector 13(float) 4 666: TypePointer Function 29(fvec4) 11: TypeInt 32 0 2588: 11(int) Constant 6 740: TypeArray 29(fvec4) 2588 1377: TypePointer Input 740 3608: 1377(ptr) Variable Input 12: TypeInt 32 1 2574: 12(int) Constant 1 667: TypePointer Input 29(fvec4) 24: TypeVector 13(float) 3 661: TypePointer Input 24(fvec3) 4957: 661(ptr) Variable Input 2618: 11(int) Constant 16 669: TypeArray 13(float) 2618 1306: TypePointer Input 669 4339: 1306(ptr) Variable Input 2607: 12(int) Constant 12 650: TypePointer Input 13(float) 2579: 11(int) Constant 3 651: TypePointer Function 13(float) 668: TypePointer Output 29(fvec4) 5139: 668(ptr) Variable Output 5663: 8 Function None 1282 25029: Label 4902: 666(ptr) Variable Function 10645: 667(ptr) AccessChain 3608 2574 8181: 29(fvec4) Load 10645 21370: 667(ptr) AccessChain 3608 2574 11355: 29(fvec4) Load 21370 23084: 29(fvec4) FAdd 8181 11355 Store 4902 23084 21218: 24(fvec3) Load 4957 13695: 29(fvec4) Load 4902 23883: 24(fvec3) VectorShuffle 13695 13695 0 1 2 15591: 24(fvec3) FAdd 23883 21218 17086: 29(fvec4) Load 4902 7051: 29(fvec4) VectorShuffle 17086 15591 4 5 6 3 Store 4902 7051 18282: 650(ptr) AccessChain 4339 2607 7372: 13(float) Load 18282 21371: 651(ptr) AccessChain 4902 2579 11412: 13(float) Load 21371 22584: 13(float) FAdd 11412 7372 17318: 651(ptr) AccessChain 4902 2579 Store 17318 22584 17934: 29(fvec4) Load 4902 Store 5139 17934 Return FunctionEnd glslang-8.13.3559/Test/baseResults/remap.uniformarray.none.frag.out000066400000000000000000000073031360464450000251460ustar00rootroot00000000000000remap.uniformarray.none.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 53 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 14 25 35 47 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "texColor" Name 14 "color" Name 25 "inColor" Name 35 "alpha" Name 47 "gl_FragColor" Name 52 "texSampler2D" Decorate 47(gl_FragColor) Location 0 Decorate 52(texSampler2D) DescriptorSet 0 Decorate 52(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 32: 10(int) Constant 16 33: TypeArray 6(float) 32 34: TypePointer Input 33 35(alpha): 34(ptr) Variable Input 36: 15(int) Constant 12 37: TypePointer Input 6(float) 40: 10(int) Constant 3 41: TypePointer Function 6(float) 46: TypePointer Output 7(fvec4) 47(gl_FragColor): 46(ptr) Variable Output 49: TypeImage 6(float) 2D sampled format:Unknown 50: TypeSampledImage 49 51: TypePointer UniformConstant 50 52(texSampler2D): 51(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(texColor): 8(ptr) Variable Function 18: 17(ptr) AccessChain 14(color) 16 19: 7(fvec4) Load 18 20: 17(ptr) AccessChain 14(color) 16 21: 7(fvec4) Load 20 22: 7(fvec4) FAdd 19 21 Store 9(texColor) 22 26: 23(fvec3) Load 25(inColor) 27: 7(fvec4) Load 9(texColor) 28: 23(fvec3) VectorShuffle 27 27 0 1 2 29: 23(fvec3) FAdd 28 26 30: 7(fvec4) Load 9(texColor) 31: 7(fvec4) VectorShuffle 30 29 4 5 6 3 Store 9(texColor) 31 38: 37(ptr) AccessChain 35(alpha) 36 39: 6(float) Load 38 42: 41(ptr) AccessChain 9(texColor) 40 43: 6(float) Load 42 44: 6(float) FAdd 43 39 45: 41(ptr) AccessChain 9(texColor) 40 Store 45 44 48: 7(fvec4) Load 9(texColor) Store 47(gl_FragColor) 48 Return FunctionEnd glslang-8.13.3559/Test/baseResults/runtimeArray.vert.out000066400000000000000000001344211360464450000231140ustar00rootroot00000000000000runtimeArray.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) glslang-8.13.3559/Test/baseResults/sample.frag.out000066400000000000000000000021341360464450000216450ustar00rootroot00000000000000sample.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) glslang-8.13.3559/Test/baseResults/sample.vert.out000066400000000000000000000031641360464450000217120ustar00rootroot00000000000000sample.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) glslang-8.13.3559/Test/baseResults/samplerlessTextureFunctions.frag.out000066400000000000000000000016631360464450000261760ustar00rootroot00000000000000samplerlessTextureFunctions.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 glslang-8.13.3559/Test/baseResults/simpleFunctionCall.frag.out000066400000000000000000000031231360464450000241560ustar00rootroot00000000000000simpleFunctionCall.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) glslang-8.13.3559/Test/baseResults/size000066400000000000000000000000611360464450000176070ustar00rootroot00000000000000396288 ../build/install/bin/glslangValidator.exe glslang-8.13.3559/Test/baseResults/specExamples.frag.out000066400000000000000000000574301360464450000230260ustar00rootroot00000000000000specExamples.frag ERROR: 0:6: '=' : cannot convert from ' const uint' to ' global int' ERROR: 0:20: '' : numeric literal too big ERROR: 0:21: '' : hexadecimal literal too big ERROR: 0:37: 'view' : redefinition ERROR: 0:63: 'invariant' : can only apply to an output ERROR: 0:68: 'lightPosition' : redefinition ERROR: 0:75: 'Atten' : member storage qualifier cannot contradict block storage qualifier ERROR: 0:87: 'Color' : redefinition ERROR: 0:92: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord ERROR: 0:93: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord ERROR: 0:99: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:99: 'local_size_y' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:100: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:102: 'color' : redefinition ERROR: 0:112: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth ERROR: 0:118: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth ERROR: 0:121: 'redeclaration' : all redeclarations must use the same depth layout on gl_FragDepth ERROR: 0:172: 'x' : undeclared identifier ERROR: 0:172: '[]' : scalar integer expression required ERROR: 0:175: 'x' : undeclared identifier ERROR: 0:175: '[]' : scalar integer expression required ERROR: 0:175: 'b' : left of '[' is not of type array, matrix, or vector ERROR: 0:175: 'a' : vector swizzle selection out of range ERROR: 0:175: 'length' : does not operate on this type: const float ERROR: 0:175: '' : function call, method, or subroutine call expected ERROR: 0:175: '' : no matching overloaded function found ERROR: 0:178: '[]' : scalar integer expression required ERROR: 0:178: 's' : undeclared identifier ERROR: 0:178: 's' : left of '[' is not of type array, matrix, or vector ERROR: 0:178: 'a' : vector swizzle selection out of range ERROR: 0:178: 'length' : does not operate on this type: const float ERROR: 0:178: '' : function call, method, or subroutine call expected ERROR: 0:178: '' : no matching overloaded function found ERROR: 0:198: 'e' : redefinition ERROR: 0:226: 'in' : not allowed in nested scope ERROR: 0:227: 'in' : not allowed in nested scope ERROR: 0:228: 'in' : not allowed in nested scope ERROR: 0:232: 'out' : not allowed in nested scope ERROR: 38 compilation errors. No code generated. Shader version: 430 Requested GL_3DL_array_objects gl_FragCoord pixel center is integer gl_FragCoord origin is upper left using early_fragment_tests using depth_greater ERROR: node is still EOpNull! 0:5 Sequence 0:5 move second child to first child ( temp int) 0:5 'a' ( global int) 0:5 Constant: 0:5 -1 (const int) 0:7 Sequence 0:7 move second child to first child ( temp uint) 0:7 'c' ( global uint) 0:7 Constant: 0:7 4294967295 (const uint) 0:8 Sequence 0:8 move second child to first child ( temp uint) 0:8 'd' ( global uint) 0:8 Constant: 0:8 4294967295 (const uint) 0:9 Sequence 0:9 move second child to first child ( temp int) 0:9 'e' ( global int) 0:9 Constant: 0:9 -1 (const int) 0:13 Sequence 0:13 move second child to first child ( temp uint) 0:13 'f' ( global uint) 0:13 Constant: 0:13 4294967295 (const uint) 0:17 Sequence 0:17 move second child to first child ( temp int) 0:17 'g' ( global int) 0:17 Constant: 0:17 -1294967296 (const int) 0:19 Sequence 0:19 move second child to first child ( temp int) 0:19 'h' ( global int) 0:19 Constant: 0:19 -1610612736 (const int) 0:20 Sequence 0:20 move second child to first child ( temp int) 0:20 'i' ( global int) 0:20 Constant: 0:20 -1 (const int) 0:21 Sequence 0:21 move second child to first child ( temp int) 0:21 'j' ( global int) 0:21 Constant: 0:21 -1 (const int) 0:22 Sequence 0:22 move second child to first child ( temp int) 0:22 'k' ( global int) 0:22 Constant: 0:22 -2147483648 (const int) 0:23 Sequence 0:23 move second child to first child ( temp int) 0:23 'l' ( global int) 0:23 Constant: 0:23 -2147483648 (const int) 0:25 Sequence 0:25 move second child to first child ( temp float) 0:25 'fb' ( global float) 0:25 Constant: 0:25 1.500000 0:26 Sequence 0:26 move second child to first child ( temp double) 0:26 'fd' ( global double) 0:26 Constant: 0:26 2.000000 0:127 Function Definition: foo(f1[5]; ( global 5-element array of float) 0:127 Function Parameters: 0:127 '' ( in 5-element array of float) 0:129 Sequence 0:129 Branch: Return with expression 0:129 Constant: 0:129 3.400000 0:129 4.200000 0:129 5.000000 0:129 5.200000 0:129 1.100000 0:137 Function Definition: main( ( global void) 0:137 Function Parameters: 0:140 Sequence 0:140 Sequence 0:140 Sequence 0:140 move second child to first child ( temp 5-element array of float) 0:140 'a' ( temp 5-element array of float) 0:140 Constant: 0:140 3.400000 0:140 4.200000 0:140 5.000000 0:140 5.200000 0:140 1.100000 0:143 Sequence 0:143 Sequence 0:143 move second child to first child ( temp 5-element array of float) 0:143 'a' ( temp 5-element array of float) 0:143 Constant: 0:143 3.400000 0:143 4.200000 0:143 5.000000 0:143 5.200000 0:143 1.100000 0:? Sequence 0:149 Sequence 0:149 move second child to first child ( temp 2-element array of 4-component vector of float) 0:149 'b' ( temp 2-element array of 4-component vector of float) 0:149 Constant: 0:149 0.000000 0:149 0.000000 0:149 0.000000 0:149 0.000000 0:149 0.100000 0:149 0.100000 0:149 0.100000 0:149 0.100000 0:150 Sequence 0:150 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) 0:150 'a3' ( temp 3-element array of 2-element array of 4-component vector of float) 0:150 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) 0:150 'b' ( temp 2-element array of 4-component vector of float) 0:150 'b' ( temp 2-element array of 4-component vector of float) 0:150 'b' ( temp 2-element array of 4-component vector of float) 0:152 Sequence 0:152 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) 0:152 'a4' ( temp 3-element array of 2-element array of 4-component vector of float) 0:152 Constant: 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:? Sequence 0:159 Sequence 0:159 Sequence 0:159 move second child to first child ( temp 5-element array of float) 0:159 'b' ( temp 5-element array of float) 0:159 'a' ( temp 5-element array of float) 0:162 Sequence 0:162 Sequence 0:162 move second child to first child ( temp 5-element array of float) 0:162 'b' ( temp 5-element array of float) 0:162 'a' ( temp 5-element array of float) 0:165 Sequence 0:165 Sequence 0:165 move second child to first child ( temp 5-element array of float) 0:165 'b' ( temp 5-element array of float) 0:165 Constant: 0:165 1.000000 0:165 2.000000 0:165 3.000000 0:165 4.000000 0:165 5.000000 0:167 Constant: 0:167 5 (const int) 0:? Sequence 0:171 Constant: 0:171 3 (const int) 0:172 Constant: 0:172 2 (const int) 0:175 Constant: 0:175 0.000000 0:178 Constant: 0:178 0.000000 0:193 Sequence 0:193 move second child to first child ( temp structure{ temp float a, temp int b}) 0:193 'e' ( temp structure{ temp float a, temp int b}) 0:193 Constant: 0:193 1.200000 0:193 2 (const int) 0:216 Sequence 0:216 Sequence 0:216 move second child to first child ( temp 5-element array of float) 0:216 'a' ( temp 5-element array of float) 0:216 Constant: 0:216 3.400000 0:216 4.200000 0:216 5.000000 0:216 5.200000 0:216 1.100000 0:217 Sequence 0:217 move second child to first child ( temp 5-element array of float) 0:217 'b' ( temp 5-element array of float) 0:217 Constant: 0:217 3.400000 0:217 4.200000 0:217 5.000000 0:217 5.200000 0:217 1.100000 0:218 Sequence 0:218 move second child to first child ( temp 5-element array of float) 0:218 'c' ( temp 5-element array of float) 0:218 'a' ( temp 5-element array of float) 0:219 Sequence 0:219 move second child to first child ( temp 5-element array of float) 0:219 'd' ( temp 5-element array of float) 0:219 'b' ( temp 5-element array of float) 0:? Sequence 0:223 Sequence 0:223 move second child to first child ( temp float) 0:223 'ceiling' ( const (read only) float) 0:223 Convert int to float ( temp float) 0:223 add ( temp int) 0:223 'a' ( global int) 0:223 'b' ( global int) 0:? Linker Objects 0:? 'a' ( global int) 0:? 'b' ( global int) 0:? 'c' ( global uint) 0:? 'd' ( global uint) 0:? 'e' ( global int) 0:? 'f' ( global uint) 0:? 'g' ( global int) 0:? 'h' ( global int) 0:? 'i' ( global int) 0:? 'j' ( global int) 0:? 'k' ( global int) 0:? 'l' ( global int) 0:? 'fa' ( global float) 0:? 'fb' ( global float) 0:? 'fc' ( global double) 0:? 'fd' ( global double) 0:? 'texcoord1' ( global 2-component vector of float) 0:? 'texcoord2' ( global 2-component vector of float) 0:? 'position' ( global 3-component vector of float) 0:? 'myRGBA' ( global 4-component vector of float) 0:? 'textureLookup' ( global 2-component vector of int) 0:? 'less' ( global 3-component vector of bool) 0:? 'mat2D' ( global 2X2 matrix of float) 0:? 'optMatrix' ( global 3X3 matrix of float) 0:? 'view' ( global 4X4 matrix of float) 0:? 'projection' ( global 4X4 matrix of float) 0:? 'm' ( global 3X2 matrix of float) 0:? 'highPrecisionMVP' ( global 4X4 matrix of double) 0:? 'dm' ( global 2X4 matrix of double) 0:? 'lightVar' ( global structure{ global float intensity, global 3-component vector of float position}) 0:? 'frequencies' ( global 3-element array of float) 0:? 'lightPosition' ( uniform 4-element array of 4-component vector of float) 0:? 'lights' ( global 2-element array of structure{ global float intensity, global 3-component vector of float position}) 0:? 'numLights' ( const int) 0:? 2 (const int) 0:? 'normal' ( smooth in 3-component vector of float) 0:? 'TexCoord' ( centroid smooth in 2-component vector of float) 0:? 'Color' ( invariant centroid smooth in 4-component vector of float) 0:? 'temperature' ( noperspective in float) 0:? 'myColor' ( flat in 3-component vector of float) 0:? 'myTexCoord' ( centroid noperspective in 2-component vector of float) 0:? 'color' ( uniform 3-component vector of float) 0:? 0.700000 0:? 0.700000 0:? 0.200000 0:? 'anon@0' ( in block{ smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten}) 0:? 'anon@1' ( in block{ in 4-component vector of float LightPos, in 3-component vector of float LightColor}) 0:? 'Materiala' ( in block{ in 4-component vector of float Color, in 2-component vector of float TexCoord}) 0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) 0:? 'factor' (layout( location=3 index=1) out 4-component vector of float) 0:? 'colors' (layout( location=2) out 3-element array of 4-component vector of float) 0:? 'gl_FragDepth' ( gl_FragDepth float FragDepth) 0:? 'anon@2' ( in block{ in float FogFragCoord gl_FogFragCoord, in unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) Linked fragment stage: Shader version: 430 Requested GL_3DL_array_objects gl_FragCoord pixel center is integer gl_FragCoord origin is upper left using early_fragment_tests using depth_greater ERROR: node is still EOpNull! 0:5 Sequence 0:5 move second child to first child ( temp int) 0:5 'a' ( global int) 0:5 Constant: 0:5 -1 (const int) 0:7 Sequence 0:7 move second child to first child ( temp uint) 0:7 'c' ( global uint) 0:7 Constant: 0:7 4294967295 (const uint) 0:8 Sequence 0:8 move second child to first child ( temp uint) 0:8 'd' ( global uint) 0:8 Constant: 0:8 4294967295 (const uint) 0:9 Sequence 0:9 move second child to first child ( temp int) 0:9 'e' ( global int) 0:9 Constant: 0:9 -1 (const int) 0:13 Sequence 0:13 move second child to first child ( temp uint) 0:13 'f' ( global uint) 0:13 Constant: 0:13 4294967295 (const uint) 0:17 Sequence 0:17 move second child to first child ( temp int) 0:17 'g' ( global int) 0:17 Constant: 0:17 -1294967296 (const int) 0:19 Sequence 0:19 move second child to first child ( temp int) 0:19 'h' ( global int) 0:19 Constant: 0:19 -1610612736 (const int) 0:20 Sequence 0:20 move second child to first child ( temp int) 0:20 'i' ( global int) 0:20 Constant: 0:20 -1 (const int) 0:21 Sequence 0:21 move second child to first child ( temp int) 0:21 'j' ( global int) 0:21 Constant: 0:21 -1 (const int) 0:22 Sequence 0:22 move second child to first child ( temp int) 0:22 'k' ( global int) 0:22 Constant: 0:22 -2147483648 (const int) 0:23 Sequence 0:23 move second child to first child ( temp int) 0:23 'l' ( global int) 0:23 Constant: 0:23 -2147483648 (const int) 0:25 Sequence 0:25 move second child to first child ( temp float) 0:25 'fb' ( global float) 0:25 Constant: 0:25 1.500000 0:26 Sequence 0:26 move second child to first child ( temp double) 0:26 'fd' ( global double) 0:26 Constant: 0:26 2.000000 0:137 Function Definition: main( ( global void) 0:137 Function Parameters: 0:140 Sequence 0:140 Sequence 0:140 Sequence 0:140 move second child to first child ( temp 5-element array of float) 0:140 'a' ( temp 5-element array of float) 0:140 Constant: 0:140 3.400000 0:140 4.200000 0:140 5.000000 0:140 5.200000 0:140 1.100000 0:143 Sequence 0:143 Sequence 0:143 move second child to first child ( temp 5-element array of float) 0:143 'a' ( temp 5-element array of float) 0:143 Constant: 0:143 3.400000 0:143 4.200000 0:143 5.000000 0:143 5.200000 0:143 1.100000 0:? Sequence 0:149 Sequence 0:149 move second child to first child ( temp 2-element array of 4-component vector of float) 0:149 'b' ( temp 2-element array of 4-component vector of float) 0:149 Constant: 0:149 0.000000 0:149 0.000000 0:149 0.000000 0:149 0.000000 0:149 0.100000 0:149 0.100000 0:149 0.100000 0:149 0.100000 0:150 Sequence 0:150 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) 0:150 'a3' ( temp 3-element array of 2-element array of 4-component vector of float) 0:150 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) 0:150 'b' ( temp 2-element array of 4-component vector of float) 0:150 'b' ( temp 2-element array of 4-component vector of float) 0:150 'b' ( temp 2-element array of 4-component vector of float) 0:152 Sequence 0:152 move second child to first child ( temp 3-element array of 2-element array of 4-component vector of float) 0:152 'a4' ( temp 3-element array of 2-element array of 4-component vector of float) 0:152 Constant: 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 0.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:152 1.000000 0:? Sequence 0:159 Sequence 0:159 Sequence 0:159 move second child to first child ( temp 5-element array of float) 0:159 'b' ( temp 5-element array of float) 0:159 'a' ( temp 5-element array of float) 0:162 Sequence 0:162 Sequence 0:162 move second child to first child ( temp 5-element array of float) 0:162 'b' ( temp 5-element array of float) 0:162 'a' ( temp 5-element array of float) 0:165 Sequence 0:165 Sequence 0:165 move second child to first child ( temp 5-element array of float) 0:165 'b' ( temp 5-element array of float) 0:165 Constant: 0:165 1.000000 0:165 2.000000 0:165 3.000000 0:165 4.000000 0:165 5.000000 0:167 Constant: 0:167 5 (const int) 0:? Sequence 0:171 Constant: 0:171 3 (const int) 0:172 Constant: 0:172 2 (const int) 0:175 Constant: 0:175 0.000000 0:178 Constant: 0:178 0.000000 0:193 Sequence 0:193 move second child to first child ( temp structure{ temp float a, temp int b}) 0:193 'e' ( temp structure{ temp float a, temp int b}) 0:193 Constant: 0:193 1.200000 0:193 2 (const int) 0:216 Sequence 0:216 Sequence 0:216 move second child to first child ( temp 5-element array of float) 0:216 'a' ( temp 5-element array of float) 0:216 Constant: 0:216 3.400000 0:216 4.200000 0:216 5.000000 0:216 5.200000 0:216 1.100000 0:217 Sequence 0:217 move second child to first child ( temp 5-element array of float) 0:217 'b' ( temp 5-element array of float) 0:217 Constant: 0:217 3.400000 0:217 4.200000 0:217 5.000000 0:217 5.200000 0:217 1.100000 0:218 Sequence 0:218 move second child to first child ( temp 5-element array of float) 0:218 'c' ( temp 5-element array of float) 0:218 'a' ( temp 5-element array of float) 0:219 Sequence 0:219 move second child to first child ( temp 5-element array of float) 0:219 'd' ( temp 5-element array of float) 0:219 'b' ( temp 5-element array of float) 0:? Sequence 0:223 Sequence 0:223 move second child to first child ( temp float) 0:223 'ceiling' ( const (read only) float) 0:223 Convert int to float ( temp float) 0:223 add ( temp int) 0:223 'a' ( global int) 0:223 'b' ( global int) 0:? Linker Objects 0:? 'a' ( global int) 0:? 'b' ( global int) 0:? 'c' ( global uint) 0:? 'd' ( global uint) 0:? 'e' ( global int) 0:? 'f' ( global uint) 0:? 'g' ( global int) 0:? 'h' ( global int) 0:? 'i' ( global int) 0:? 'j' ( global int) 0:? 'k' ( global int) 0:? 'l' ( global int) 0:? 'fa' ( global float) 0:? 'fb' ( global float) 0:? 'fc' ( global double) 0:? 'fd' ( global double) 0:? 'texcoord1' ( global 2-component vector of float) 0:? 'texcoord2' ( global 2-component vector of float) 0:? 'position' ( global 3-component vector of float) 0:? 'myRGBA' ( global 4-component vector of float) 0:? 'textureLookup' ( global 2-component vector of int) 0:? 'less' ( global 3-component vector of bool) 0:? 'mat2D' ( global 2X2 matrix of float) 0:? 'optMatrix' ( global 3X3 matrix of float) 0:? 'view' ( global 4X4 matrix of float) 0:? 'projection' ( global 4X4 matrix of float) 0:? 'm' ( global 3X2 matrix of float) 0:? 'highPrecisionMVP' ( global 4X4 matrix of double) 0:? 'dm' ( global 2X4 matrix of double) 0:? 'lightVar' ( global structure{ global float intensity, global 3-component vector of float position}) 0:? 'frequencies' ( global 3-element array of float) 0:? 'lightPosition' ( uniform 4-element array of 4-component vector of float) 0:? 'lights' ( global 2-element array of structure{ global float intensity, global 3-component vector of float position}) 0:? 'numLights' ( const int) 0:? 2 (const int) 0:? 'normal' ( smooth in 3-component vector of float) 0:? 'TexCoord' ( centroid smooth in 2-component vector of float) 0:? 'Color' ( invariant centroid smooth in 4-component vector of float) 0:? 'temperature' ( noperspective in float) 0:? 'myColor' ( flat in 3-component vector of float) 0:? 'myTexCoord' ( centroid noperspective in 2-component vector of float) 0:? 'color' ( uniform 3-component vector of float) 0:? 0.700000 0:? 0.700000 0:? 0.200000 0:? 'anon@0' ( in block{ smooth in 4-component vector of float Color1, smooth in 4-component vector of float Color2, in 2-component vector of float TexCoordA, in float Atten}) 0:? 'anon@1' ( in block{ in 4-component vector of float LightPos, in 3-component vector of float LightColor}) 0:? 'Materiala' ( in block{ in 4-component vector of float Color, in 2-component vector of float TexCoord}) 0:? 'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord) 0:? 'factor' (layout( location=3 index=1) out 4-component vector of float) 0:? 'colors' (layout( location=2) out 3-element array of 4-component vector of float) 0:? 'gl_FragDepth' ( gl_FragDepth float FragDepth) 0:? 'anon@2' ( in block{ in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) glslang-8.13.3559/Test/baseResults/specExamples.vert.out000066400000000000000000000777131360464450000230750ustar00rootroot00000000000000specExamples.vert ERROR: 0:29: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:33: 'lines' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:35: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:35: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:36: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:37: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:41: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:43: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:45: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:46: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:47: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:50: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:55: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:80: 's17' : redefinition ERROR: 0:85: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings ERROR: 0:87: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings ERROR: 0:89: 'binding' : atomic_uint binding is too large ERROR: 0:91: 'bar' : redefinition ERROR: 0:94: 'a2' : redefinition ERROR: 0:95: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings ERROR: 0:96: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings ERROR: 0:97: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings ERROR: 0:106: '' : vertex input cannot be further qualified ERROR: 0:106: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor ERROR: 0:112: 'ColorIvn' : identifier not previously declared ERROR: 0:132: 'shared' : not supported in this stage: vertex ERROR: 0:134: '' : function does not return a value: funcA ERROR: 0:136: '' : function does not return a value: funcB ERROR: 0:153: '' : function does not return a value: func3 ERROR: 0: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: 34 compilation errors. No code generated. Shader version: 430 Requested GL_3DL_array_objects ERROR: node is still EOpNull! 0:134 Function Definition: funcA(I21; ( global 4-component vector of float) 0:134 Function Parameters: 0:134 'a' ( restrict in image2D) 0:136 Function Definition: funcB(I21; ( global 4-component vector of float) 0:136 Function Parameters: 0:136 'a' ( in image2D) 0:140 Function Definition: func(f1;f1;f1;f1; ( global float) 0:140 Function Parameters: 0:140 'e' ( in float) 0:140 'f' ( in float) 0:140 'g' ( in float) 0:140 'h' ( in float) 0:142 Sequence 0:142 Branch: Return with expression 0:142 add ( temp float) 0:142 component-wise multiply ( temp float) 0:142 'e' ( in float) 0:142 'f' ( in float) 0:142 component-wise multiply ( temp float) 0:142 'g' ( in float) 0:142 'h' ( in float) 0:146 Function Definition: func2(f1;f1;f1;f1; ( global float) 0:146 Function Parameters: 0:146 'e' ( in float) 0:146 'f' ( in float) 0:146 'g' ( in float) 0:146 'h' ( in float) 0:148 Sequence 0:148 Sequence 0:148 move second child to first child ( temp float) 0:148 'result' ( noContraction temp float) 0:148 add ( temp float) 0:148 component-wise multiply ( temp float) 0:148 'e' ( in float) 0:148 'f' ( in float) 0:148 component-wise multiply ( temp float) 0:148 'g' ( in float) 0:148 'h' ( in float) 0:150 Branch: Return with expression 0:150 'result' ( noContraction temp float) 0:153 Function Definition: func3(f1;f1;f1; ( global float) 0:153 Function Parameters: 0:153 'i' ( in float) 0:153 'j' ( in float) 0:153 'k' ( noContraction out float) 0:155 Sequence 0:155 move second child to first child ( temp float) 0:155 'k' ( noContraction out float) 0:155 add ( temp float) 0:155 component-wise multiply ( temp float) 0:155 'i' ( in float) 0:155 'i' ( in float) 0:155 'j' ( in float) 0:158 Function Definition: main( ( global void) 0:158 Function Parameters: 0:160 Sequence 0:160 Sequence 0:160 move second child to first child ( temp 3-component vector of float) 0:160 'r' ( temp 3-component vector of float) 0:160 Construct vec3 ( temp 3-component vector of float) 0:160 component-wise multiply ( temp 4-component vector of float) 0:160 'a' ( in 4-component vector of float) 0:160 'b' ( in 4-component vector of float) 0:161 Sequence 0:161 move second child to first child ( temp 3-component vector of float) 0:161 's' ( temp 3-component vector of float) 0:161 Construct vec3 ( temp 3-component vector of float) 0:161 component-wise multiply ( temp 4-component vector of float) 0:161 'c' ( in 4-component vector of float) 0:161 'd' ( in 4-component vector of float) 0:162 move second child to first child ( temp 3-component vector of float) 0:162 vector swizzle ( noContraction temp 3-component vector of float) 0:162 'v' ( noContraction smooth out 4-component vector of float) 0:162 Sequence 0:162 Constant: 0:162 0 (const int) 0:162 Constant: 0:162 1 (const int) 0:162 Constant: 0:162 2 (const int) 0:162 add ( temp 3-component vector of float) 0:162 'r' ( temp 3-component vector of float) 0:162 's' ( temp 3-component vector of float) 0:163 move second child to first child ( temp float) 0:163 direct index ( noContraction temp float) 0:163 'v' ( noContraction smooth out 4-component vector of float) 0:163 Constant: 0:163 3 (const int) 0:163 add ( temp float) 0:163 component-wise multiply ( temp float) 0:163 direct index ( temp float) 0:163 'a' ( in 4-component vector of float) 0:163 Constant: 0:163 3 (const int) 0:163 direct index ( temp float) 0:163 'b' ( in 4-component vector of float) 0:163 Constant: 0:163 3 (const int) 0:163 component-wise multiply ( temp float) 0:163 direct index ( temp float) 0:163 'c' ( in 4-component vector of float) 0:163 Constant: 0:163 3 (const int) 0:163 direct index ( temp float) 0:163 'd' ( in 4-component vector of float) 0:163 Constant: 0:163 3 (const int) 0:164 move second child to first child ( temp float) 0:164 direct index ( noContraction temp float) 0:164 'v' ( noContraction smooth out 4-component vector of float) 0:164 Constant: 0:164 0 (const int) 0:164 Function Call: func(f1;f1;f1;f1; ( global float) 0:164 direct index ( temp float) 0:164 'a' ( in 4-component vector of float) 0:164 Constant: 0:164 0 (const int) 0:164 direct index ( temp float) 0:164 'b' ( in 4-component vector of float) 0:164 Constant: 0:164 0 (const int) 0:164 direct index ( temp float) 0:164 'c' ( in 4-component vector of float) 0:164 Constant: 0:164 0 (const int) 0:164 direct index ( temp float) 0:164 'd' ( in 4-component vector of float) 0:164 Constant: 0:164 0 (const int) 0:166 move second child to first child ( temp float) 0:166 direct index ( noContraction temp float) 0:166 'v' ( noContraction smooth out 4-component vector of float) 0:166 Constant: 0:166 0 (const int) 0:166 Function Call: func2(f1;f1;f1;f1; ( global float) 0:166 direct index ( temp float) 0:166 'a' ( in 4-component vector of float) 0:166 Constant: 0:166 0 (const int) 0:166 direct index ( temp float) 0:166 'b' ( in 4-component vector of float) 0:166 Constant: 0:166 0 (const int) 0:166 direct index ( temp float) 0:166 'c' ( in 4-component vector of float) 0:166 Constant: 0:166 0 (const int) 0:166 direct index ( temp float) 0:166 'd' ( in 4-component vector of float) 0:166 Constant: 0:166 0 (const int) 0:167 Function Call: func3(f1;f1;f1; ( global float) 0:167 component-wise multiply ( temp float) 0:167 direct index ( temp float) 0:167 'a' ( in 4-component vector of float) 0:167 Constant: 0:167 0 (const int) 0:167 direct index ( temp float) 0:167 'b' ( in 4-component vector of float) 0:167 Constant: 0:167 0 (const int) 0:167 component-wise multiply ( temp float) 0:167 direct index ( temp float) 0:167 'c' ( in 4-component vector of float) 0:167 Constant: 0:167 0 (const int) 0:167 direct index ( temp float) 0:167 'd' ( in 4-component vector of float) 0:167 Constant: 0:167 0 (const int) 0:167 direct index ( noContraction temp float) 0:167 'v' ( noContraction smooth out 4-component vector of float) 0:167 Constant: 0:167 0 (const int) 0:169 Function Call: funcA(I21; ( global 4-component vector of float) 0:169 'img1' (layout( rgba32f) uniform image2D) 0:170 Function Call: funcB(I21; ( global 4-component vector of float) 0:170 'img2' (layout( rgba32f) coherent uniform image2D) 0:? Sequence 0:178 Sequence 0:178 move second child to first child ( temp structure{ temp float intensity, temp 3-component vector of float position}) 0:178 'lightVar' ( temp structure{ temp float intensity, temp 3-component vector of float position}) 0:178 Constant: 0:178 3.000000 0:178 1.000000 0:178 2.000000 0:178 3.000000 0:? Sequence 0:185 Sequence 0:185 move second child to first child ( temp 5-element array of float) 0:185 'a' ( temp 5-element array of float) 0:185 Construct float ( temp 5-element array of float) 0:185 'g' ( temp float) 0:185 Constant: 0:185 1.000000 0:185 'g' ( temp float) 0:185 Constant: 0:185 2.300000 0:185 'g' ( temp float) 0:188 move second child to first child ( temp 3-element array of float) 0:188 'b' ( temp 3-element array of float) 0:188 Construct float ( temp 3-element array of float) 0:188 'g' ( temp float) 0:188 add ( temp float) 0:188 'g' ( temp float) 0:188 Constant: 0:188 1.000000 0:188 add ( temp float) 0:188 'g' ( temp float) 0:188 Constant: 0:188 2.000000 0:191 Sequence 0:191 Sequence 0:191 move second child to first child ( temp 2-element array of 4-component vector of float) 0:191 'b' ( temp 2-element array of 4-component vector of float) 0:191 Constant: 0:191 1.000000 0:191 1.000000 0:191 1.000000 0:191 1.000000 0:191 1.000000 0:191 1.000000 0:191 1.000000 0:191 1.000000 0:192 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) 0:192 'b' ( temp 2-element array of 4-component vector of float) 0:192 'b' ( temp 2-element array of 4-component vector of float) 0:192 'b' ( temp 2-element array of 4-component vector of float) 0:193 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) 0:193 'b' ( temp 2-element array of 4-component vector of float) 0:193 'b' ( temp 2-element array of 4-component vector of float) 0:193 'b' ( temp 2-element array of 4-component vector of float) 0:194 Construct vec4 ( temp 3-element array of 2-element array of 4-component vector of float) 0:194 'b' ( temp 2-element array of 4-component vector of float) 0:194 'b' ( temp 2-element array of 4-component vector of float) 0:194 'b' ( temp 2-element array of 4-component vector of float) 0:? Linker Objects 0:? 'Coords' ( out block{ out 4-component vector of float Position, out 2-component vector of float Texture}) 0:? 'anon@0' ( out block{ out 4-component vector of float Color}) 0:? 'transforms' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform 4X4 matrix of float ModelViewMatrix, layout( column_major shared) uniform 4X4 matrix of float ModelViewProjectionMatrix, layout( column_major shared) uniform unsized 1-element array of 4-component vector of float a, layout( column_major shared) uniform float Deformation}) 0:? 'normal' (layout( location=3) in 4-component vector of float) 0:? 'colors' (layout( location=6) in 3-element array of 4-component vector of float) 0:? 'transforms2' (layout( location=9) in 2-element array of 4X4 matrix of float) 0:? 's' (layout( location=3) temp structure{ global 3-component vector of float a1, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c}) 0:? 'var1' ( smooth out 4-component vector of float) 0:? 'anon@1' ( out block{ out 4-component vector of float var2, out 2-component vector of float var3, out 3-component vector of float var4}) 0:? 'var5' ( smooth out 4-component vector of float) 0:? 'anon@2' ( out block{ out 4-component vector of float var6}) 0:? 'var7' ( smooth out 4-component vector of float) 0:? 'anon@3' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4X4 matrix of float M1, layout( column_major std140 offset=64) uniform 4X4 matrix of float M2, layout( row_major std140 offset=128) uniform 3X3 matrix of float N1}) 0:? 'anon@4' (layout( column_major shared) uniform block{layout( column_major shared) uniform 4X4 matrix of float M13, layout( row_major shared) uniform 4X4 matrix of float m14, layout( column_major shared) uniform 3X3 matrix of float N12}) 0:? 's17' (layout( binding=3) uniform sampler2D) 0:? 'a2' (layout( binding=2 offset=4) uniform atomic_uint) 0:? 'bar' (layout( binding=2) uniform atomic_uint) 0:? 'bar23' (layout( offset=8) uniform atomic_uint) 0:? 'b2' (layout( binding=2) uniform atomic_uint) 0:? 'c2' (layout( binding=3) uniform atomic_uint) 0:? 'd2' (layout( binding=2) uniform atomic_uint) 0:? 'anon@5' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:? 'ColorInv' ( smooth out 3-component vector of float) 0:? 'Color4' ( invariant centroid smooth out 3-component vector of float) 0:? 'position' ( noContraction smooth out 4-component vector of float) 0:? 'Color5' ( noContraction smooth out 3-component vector of float) 0:? 'a' ( in 4-component vector of float) 0:? 'b' ( in 4-component vector of float) 0:? 'c' ( in 4-component vector of float) 0:? 'd' ( in 4-component vector of float) 0:? 'v' ( noContraction smooth out 4-component vector of float) 0:? 'anon@6' (layout( column_major shared) coherent buffer block{layout( column_major shared) 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:? 'anon@5' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:? 'ColorInv' ( smooth out 3-component vector of float) 0:? 'Color4' ( invariant centroid smooth out 3-component vector of float) 0:? 'position' ( noContraction smooth out 4-component vector of float) 0:? 'Color5' ( noContraction smooth out 3-component vector of float) 0:? 'a' ( in 4-component vector of float) 0:? 'b' ( in 4-component vector of float) 0:? 'c' ( in 4-component vector of float) 0:? 'd' ( in 4-component vector of float) 0:? 'v' ( noContraction smooth out 4-component vector of float) 0:? 'anon@6' (layout( column_major shared) coherent buffer block{layout( column_major shared) 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) glslang-8.13.3559/Test/baseResults/specExamplesConf.vert.out000066400000000000000000001000071360464450000236620ustar00rootroot00000000000000specExamples.vert ERROR: 0:29: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:33: 'lines' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:35: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:35: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:36: 'max_vertices' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:37: 'triangle_strip' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4) ERROR: 0:41: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:43: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:45: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:46: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:47: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:50: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:55: 'stream' : there is no such layout identifier for this stage taking an assigned value ERROR: 0:80: 's17' : redefinition ERROR: 0:85: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings ERROR: 0:87: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings ERROR: 0:89: 'binding' : atomic_uint binding is too large ERROR: 0:91: 'bar' : redefinition ERROR: 0:92: 'atomic_uint' : layout(binding=X) is required ERROR: 0:94: 'a2' : redefinition ERROR: 0:95: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings ERROR: 0:96: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings ERROR: 0:97: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings ERROR: 0:106: '' : vertex input cannot be further qualified ERROR: 0:106: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_FrontColor ERROR: 0:112: 'ColorIvn' : identifier not previously declared ERROR: 0:132: 'shared' : not supported in this stage: vertex ERROR: 0:134: '' : function does not return a value: funcA ERROR: 0:136: '' : function does not return a value: funcB ERROR: 0:153: '' : function does not return a value: func3 ERROR: 0: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:? 'anon@5' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:? 'ColorInv' ( smooth out 3-component vector of float) 0:? 'Color4' ( invariant centroid smooth out 3-component vector of float) 0:? 'position' ( noContraction smooth out 4-component vector of float) 0:? 'Color5' ( noContraction smooth out 3-component vector of float) 0:? 'a' ( in 4-component vector of float) 0:? 'b' ( in 4-component vector of float) 0:? 'c' ( in 4-component vector of float) 0:? 'd' ( in 4-component vector of float) 0:? 'v' ( noContraction smooth out 4-component vector of float) 0:? 'anon@6' (layout( column_major shared) coherent buffer block{layout( column_major shared) 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:? 'anon@5' ( out block{ invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:? 'ColorInv' ( smooth out 3-component vector of float) 0:? 'Color4' ( invariant centroid smooth out 3-component vector of float) 0:? 'position' ( noContraction smooth out 4-component vector of float) 0:? 'Color5' ( noContraction smooth out 3-component vector of float) 0:? 'a' ( in 4-component vector of float) 0:? 'b' ( in 4-component vector of float) 0:? 'c' ( in 4-component vector of float) 0:? 'd' ( in 4-component vector of float) 0:? 'v' ( noContraction smooth out 4-component vector of float) 0:? 'anon@6' (layout( column_major shared) coherent buffer block{layout( column_major shared) 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) glslang-8.13.3559/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out000066400000000000000000000053511360464450000247370ustar00rootroot00000000000000spv.1.3.8bitstorage-ssbo.vert // Module Version 10300 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out000066400000000000000000000053001360464450000245500ustar00rootroot00000000000000spv.1.3.8bitstorage-ubo.vert // Module Version 10300 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.1.3.coopmat.comp.out000066400000000000000000000113131360464450000231530ustar00rootroot00000000000000spv.1.3.coopmat.comp // Module Version 10300 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.1.4.LoopControl.frag.out000066400000000000000000000112011360464450000237410ustar00rootroot00000000000000spv.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.1.4.NonWritable.frag.out000077500000000000000000000053621360464450000237310ustar00rootroot00000000000000spv.1.4.NonWritable.frag // Module Version 10400 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.1.4.OpCopyLogical.comp.out000066400000000000000000000174001360464450000242210ustar00rootroot00000000000000spv.1.4.OpCopyLogical.comp // Module Version 10400 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out000066400000000000000000000127141360464450000256300ustar00rootroot00000000000000spv.1.4.OpCopyLogical.funcall.frag // Module Version 10400 // Generated by (magic number): 80008 // Id's are bound by 60 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 25 37 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "S" MemberName 9(S) 0 "m" Name 12 "fooConst(struct-S-mf441;" Name 11 "s" Name 17 "foo(struct-S-mf441;" Name 16 "s" Name 20 "fooOut(struct-S-mf441;" Name 19 "s" Name 22 "S" MemberName 22(S) 0 "m" Name 23 "blockName" MemberName 23(blockName) 0 "s1" Name 25 "" Name 31 "S" MemberName 31(S) 0 "m" Name 32 "arg" Name 37 "s2" Name 40 "param" Name 45 "param" Name 48 "param" Name 56 "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 MemberDecorate 31(S) 0 ColMajor 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeMatrix 7(fvec4) 4 9(S): TypeStruct 8 10: TypeFunction 2 9(S) 14: TypePointer Function 9(S) 15: TypeFunction 2 14(ptr) 22(S): TypeStruct 8 23(blockName): TypeStruct 22(S) 24: TypePointer StorageBuffer 23(blockName) 25: 24(ptr) Variable StorageBuffer 26: TypeInt 32 1 27: 26(int) Constant 0 28: TypePointer StorageBuffer 22(S) 31(S): TypeStruct 8 36: TypePointer Private 9(S) 37(s2): 36(ptr) Variable Private 4(main): 2 Function None 3 5: Label 32(arg): 14(ptr) Variable Function 40(param): 14(ptr) Variable Function 45(param): 14(ptr) Variable Function 48(param): 14(ptr) Variable Function 56(param): 14(ptr) Variable Function 29: 28(ptr) AccessChain 25 27 30: 22(S) Load 29 33: 9(S) CopyLogical 30 Store 32(arg) 33 34: 9(S) Load 32(arg) 35: 2 FunctionCall 12(fooConst(struct-S-mf441;) 34 38: 9(S) Load 37(s2) 39: 2 FunctionCall 12(fooConst(struct-S-mf441;) 38 41: 28(ptr) AccessChain 25 27 42: 22(S) Load 41 43: 9(S) CopyLogical 42 Store 40(param) 43 44: 2 FunctionCall 17(foo(struct-S-mf441;) 40(param) 46: 9(S) Load 37(s2) Store 45(param) 46 47: 2 FunctionCall 17(foo(struct-S-mf441;) 45(param) 49: 28(ptr) AccessChain 25 27 50: 22(S) Load 49 51: 9(S) CopyLogical 50 Store 48(param) 51 52: 2 FunctionCall 20(fooOut(struct-S-mf441;) 48(param) 53: 9(S) Load 48(param) 54: 28(ptr) AccessChain 25 27 55: 22(S) CopyLogical 53 Store 54 55 57: 9(S) Load 37(s2) Store 56(param) 57 58: 2 FunctionCall 20(fooOut(struct-S-mf441;) 56(param) 59: 9(S) Load 56(param) Store 37(s2) 59 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 glslang-8.13.3559/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out000066400000000000000000000272761360464450000250510ustar00rootroot00000000000000spv.1.4.OpCopyLogicalBool.comp // Module Version 10400 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.1.4.OpEntryPoint.frag.out000066400000000000000000000121531360464450000241100ustar00rootroot00000000000000spv.1.4.OpEntryPoint.frag // Module Version 10400 // Generated by (magic number): 80008 // 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 Decorate 33(pushv) Binding 2 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 glslang-8.13.3559/Test/baseResults/spv.1.4.OpSelect.frag.out000077500000000000000000000156631360464450000232300ustar00rootroot00000000000000spv.1.4.OpSelect.frag // Module Version 10400 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.1.4.constructComposite.comp.out000066400000000000000000000056551360464450000254350ustar00rootroot00000000000000spv.1.4.constructComposite.comp // Module Version 10400 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.1.4.image.frag.out000077500000000000000000000174511360464450000225710ustar00rootroot00000000000000spv.1.4.image.frag // Module Version 10400 // Generated by (magic number): 80008 // 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 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 103(value) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: 6(float) Constant 0 11: 7(fvec4) ConstantComposite 10 10 10 10 12: 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 glslang-8.13.3559/Test/baseResults/spv.1.4.sparseTexture.frag.out000077500000000000000000000404031360464450000243560ustar00rootroot00000000000000spv.1.4.sparseTexture.frag // Module Version 10400 // Generated by (magic number): 80008 // 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 46(is2D) DescriptorSet 0 Decorate 46(is2D) Binding 0 Decorate 63(us2D) DescriptorSet 0 Decorate 63(us2D) Binding 0 Decorate 149(i2D) DescriptorSet 0 Decorate 149(i2D) Binding 0 Decorate 152(ic2) Flat Decorate 162(ii2DMS) DescriptorSet 0 Decorate 162(ii2DMS) Binding 0 Decorate 177(ui3D) DescriptorSet 0 Decorate 177(ui3D) Binding 0 Decorate 181(ic3) Flat Decorate 212(offsets) Flat 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 glslang-8.13.3559/Test/baseResults/spv.1.4.texture.frag.out000077500000000000000000000132151360464450000232010ustar00rootroot00000000000000spv.1.4.texture.frag // Module Version 10400 // Generated by (magic number): 80008 // 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 28(itexSampler2D) DescriptorSet 0 Decorate 28(itexSampler2D) Binding 0 Decorate 40(utexSampler2D) DescriptorSet 0 Decorate 40(utexSampler2D) Binding 0 Decorate 51(iCoords2D) Flat Decorate 54(iLod) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: 6(float) Constant 0 11: 7(fvec4) ConstantComposite 10 10 10 10 12: 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 glslang-8.13.3559/Test/baseResults/spv.100ops.frag.out000066400000000000000000000112771360464450000222250ustar00rootroot00000000000000spv.100ops.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 49 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 21 26 37 ExecutionMode 4 OriginUpperLeft Source ESSL 310 Name 4 "main" Name 8 "foo(" Name 11 "face1" Name 13 "face2" Name 17 "z" Name 21 "low" Name 26 "high" Name 37 "Color" Decorate 8(foo() RelaxedPrecision Decorate 11(face1) RelaxedPrecision Decorate 13(face2) RelaxedPrecision Decorate 17(z) RelaxedPrecision Decorate 21(low) RelaxedPrecision Decorate 22 RelaxedPrecision Decorate 23 RelaxedPrecision Decorate 25 RelaxedPrecision Decorate 26(high) RelaxedPrecision Decorate 27 RelaxedPrecision Decorate 32 RelaxedPrecision Decorate 34 RelaxedPrecision Decorate 37(Color) RelaxedPrecision Decorate 38 RelaxedPrecision Decorate 39 RelaxedPrecision Decorate 40 RelaxedPrecision Decorate 41 RelaxedPrecision Decorate 42 RelaxedPrecision Decorate 43 RelaxedPrecision Decorate 44 RelaxedPrecision Decorate 45 RelaxedPrecision Decorate 46 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeFunction 6(float) 10: TypePointer Private 6(float) 11(face1): 10(ptr) Variable Private 12: 6(float) Constant 1093664768 13(face2): 10(ptr) Variable Private 14: 6(float) Constant 3221225472 15: TypeInt 32 1 16: TypePointer Function 15(int) 18: 15(int) Constant 3 19: 6(float) Constant 1073741824 20: TypePointer Input 6(float) 21(low): 20(ptr) Variable Input 24: 6(float) Constant 1065353216 26(high): 20(ptr) Variable Input 28: TypeBool 33: 15(int) Constant 1 35: TypeVector 6(float) 4 36: TypePointer Output 35(fvec4) 37(Color): 36(ptr) Variable Output 4(main): 2 Function None 3 5: Label 17(z): 16(ptr) Variable Function Store 11(face1) 12 Store 13(face2) 14 Store 17(z) 18 22: 6(float) Load 21(low) 23: 6(float) FMul 19 22 25: 6(float) FAdd 23 24 27: 6(float) Load 26(high) 29: 28(bool) FOrdLessThan 25 27 SelectionMerge 31 None BranchConditional 29 30 31 30: Label 32: 15(int) Load 17(z) 34: 15(int) IAdd 32 33 Store 17(z) 34 Branch 31 31: Label 38: 6(float) Load 11(face1) 39: 15(int) Load 17(z) 40: 6(float) ConvertSToF 39 41: 35(fvec4) CompositeConstruct 40 40 40 40 42: 35(fvec4) VectorTimesScalar 41 38 43: 6(float) FunctionCall 8(foo() 44: 35(fvec4) CompositeConstruct 43 43 43 43 45: 35(fvec4) FAdd 42 44 Store 37(Color) 45 Return FunctionEnd 8(foo(): 6(float) Function None 7 9: Label 46: 6(float) Load 13(face2) ReturnValue 46 FunctionEnd glslang-8.13.3559/Test/baseResults/spv.130.frag.out000066400000000000000000000405041360464450000215010ustar00rootroot00000000000000spv.130.frag WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 205 Capability Shader Capability ClipDistance Capability SampledRect Capability Sampled1D Capability SampledCubeArray Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 17 68 79 99 173 184 185 186 ExecutionMode 4 OriginUpperLeft Source GLSL 140 SourceExtension "GL_ARB_gpu_shader5" SourceExtension "GL_ARB_shader_texture_lod" SourceExtension "GL_ARB_shading_language_420pack" SourceExtension "GL_ARB_texture_cube_map_array" SourceExtension "GL_ARB_texture_gather" SourceExtension "GL_ARB_texture_rectangle" Name 4 "main" Name 6 "bar3(" Name 8 "bar4(" Name 10 "bar5(" Name 12 "bar6(" Name 17 "o" Name 21 "samp2D" Name 37 "samp2DA" Name 47 "samp2DR" Name 55 "samp2DS" Name 68 "io" Name 72 "Sca" Name 79 "i" Name 87 "Isca" Name 99 "uo" Name 103 "Usca" Name 114 "a" Name 118 "Scas" Name 124 "f" Name 133 "c" Name 154 "a1" Name 157 "m43" Name 160 "b" Name 167 "sampC" Name 173 "gl_ClipDistance" Name 183 "b" Name 184 "fflat" Name 185 "fsmooth" Name 186 "fnop" Name 193 "bounds" Name 194 "s2D" Name 195 "s2DR" Name 199 "s2DRS" Name 203 "s1D" Name 204 "s2DS" Decorate 21(samp2D) DescriptorSet 0 Decorate 21(samp2D) Binding 0 Decorate 37(samp2DA) DescriptorSet 0 Decorate 37(samp2DA) Binding 0 Decorate 47(samp2DR) DescriptorSet 0 Decorate 47(samp2DR) Binding 0 Decorate 55(samp2DS) DescriptorSet 0 Decorate 55(samp2DS) Binding 0 Decorate 72(Sca) DescriptorSet 0 Decorate 72(Sca) Binding 0 Decorate 87(Isca) DescriptorSet 0 Decorate 87(Isca) Binding 0 Decorate 103(Usca) DescriptorSet 0 Decorate 103(Usca) Binding 0 Decorate 118(Scas) DescriptorSet 0 Decorate 118(Scas) Binding 0 Decorate 167(sampC) DescriptorSet 0 Decorate 167(sampC) Binding 0 Decorate 173(gl_ClipDistance) BuiltIn ClipDistance Decorate 184(fflat) Flat Decorate 186(fnop) NoPerspective Decorate 193(bounds) DescriptorSet 0 Decorate 193(bounds) Binding 0 Decorate 194(s2D) DescriptorSet 0 Decorate 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 glslang-8.13.3559/Test/baseResults/spv.140.frag.out000066400000000000000000000211351360464450000215010ustar00rootroot00000000000000spv.140.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 96 Capability Shader Capability ClipDistance Capability SampledRect Capability SampledBuffer Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 14 23 28 38 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 8 "foo(" Name 11 "i1" Name 14 "gl_FrontFacing" Name 19 "i2" Name 23 "o" Name 28 "gl_ClipDistance" Name 38 "k" Name 50 "sampR" Name 58 "sampB" Name 82 "samp2Da" Name 87 "bn" MemberName 87(bn) 0 "matra" MemberName 87(bn) 1 "matca" MemberName 87(bn) 2 "matr" MemberName 87(bn) 3 "matc" MemberName 87(bn) 4 "matrdef" Name 89 "" Name 92 "bi" MemberName 92(bi) 0 "v" Name 95 "bname" Decorate 14(gl_FrontFacing) BuiltIn FrontFacing Decorate 28(gl_ClipDistance) BuiltIn ClipDistance Decorate 50(sampR) DescriptorSet 0 Decorate 50(sampR) Binding 0 Decorate 58(sampB) DescriptorSet 0 Decorate 58(sampB) Binding 0 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 glslang-8.13.3559/Test/baseResults/spv.150.geom.out000066400000000000000000000165731360464450000215240ustar00rootroot00000000000000spv.150.geom // Module Version 10000 // Generated by (magic number): 80008 // 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 Stream 3 Decorate 13(fromVertex) Block MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance Decorate 27(gl_PerVertex) Block Decorate 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) 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 glslang-8.13.3559/Test/baseResults/spv.150.vert.out000066400000000000000000000122071360464450000215430ustar00rootroot00000000000000spv.150.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 63 Capability Shader Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 13 17 23 38 62 Source GLSL 150 Name 4 "main" Name 11 "gl_PerVertex" MemberName 11(gl_PerVertex) 0 "gl_Position" MemberName 11(gl_PerVertex) 1 "gl_PointSize" MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" Name 13 "" Name 17 "iv4" Name 23 "ps" Name 34 "s1" MemberName 34(s1) 0 "a" MemberName 34(s1) 1 "a2" MemberName 34(s1) 2 "b" Name 36 "s2" MemberName 36(s2) 0 "c" MemberName 36(s2) 1 "d" Name 38 "s2out" Name 40 "i" Name 47 "s2D" Name 62 "ui" MemberDecorate 11(gl_PerVertex) 0 Invariant MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance Decorate 11(gl_PerVertex) Block Decorate 47(s2D) DescriptorSet 0 Decorate 47(s2D) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeInt 32 0 9: 8(int) Constant 4 10: TypeArray 6(float) 9 11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 12: TypePointer Output 11(gl_PerVertex) 13: 12(ptr) Variable Output 14: TypeInt 32 1 15: 14(int) Constant 0 16: TypePointer Input 7(fvec4) 17(iv4): 16(ptr) Variable Input 19: TypePointer Output 7(fvec4) 21: 14(int) Constant 1 22: TypePointer Input 6(float) 23(ps): 22(ptr) Variable Input 25: TypePointer Output 6(float) 27: 14(int) Constant 2 28: 8(int) Constant 0 32: 8(int) Constant 3 33: TypeArray 7(fvec4) 32 34(s1): TypeStruct 14(int) 14(int) 33 35: TypeArray 34(s1) 9 36(s2): TypeStruct 14(int) 35 37: TypePointer Output 36(s2) 38(s2out): 37(ptr) Variable Output 39: TypePointer Function 14(int) 44: TypeImage 6(float) 2D sampled format:Unknown 45: TypeSampledImage 44 46: TypePointer UniformConstant 45 47(s2D): 46(ptr) Variable UniformConstant 49: TypeVector 6(float) 2 50: 6(float) Constant 1056964608 51: 49(fvec2) ConstantComposite 50 50 52: 6(float) Constant 0 55: TypeVector 6(float) 3 56: 55(fvec3) ConstantComposite 50 50 50 59: 6(float) Constant 1078774989 61: TypePointer Input 14(int) 62(ui): 61(ptr) Variable Input 4(main): 2 Function None 3 5: Label 40(i): 39(ptr) Variable Function 18: 7(fvec4) Load 17(iv4) 20: 19(ptr) AccessChain 13 15 Store 20 18 24: 6(float) Load 23(ps) 26: 25(ptr) AccessChain 13 21 Store 26 24 29: 22(ptr) AccessChain 17(iv4) 28 30: 6(float) Load 29 31: 25(ptr) AccessChain 13 27 27 Store 31 30 41: 14(int) Load 40(i) 42: 6(float) Load 23(ps) 43: 25(ptr) AccessChain 38(s2out) 21 41 27 27 32 Store 43 42 48: 45 Load 47(s2D) 53: 7(fvec4) ImageSampleExplicitLod 48 51 Lod 52 54: 45 Load 47(s2D) 57: 7(fvec4) ImageSampleProjExplicitLod 54 56 Lod 52 58: 45 Load 47(s2D) 60: 7(fvec4) ImageSampleExplicitLod 58 51 Lod 59 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.16bitstorage-int.frag.out000066400000000000000000000423261360464450000243040ustar00rootroot00000000000000spv.16bitstorage-int.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 0 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 0 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 0 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 glslang-8.13.3559/Test/baseResults/spv.16bitstorage-uint.frag.out000066400000000000000000000424431360464450000244710ustar00rootroot00000000000000spv.16bitstorage-uint.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 0 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 0 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 0 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 glslang-8.13.3559/Test/baseResults/spv.16bitstorage.frag.out000066400000000000000000000425411360464450000235130ustar00rootroot00000000000000spv.16bitstorage.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 0 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 0 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 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(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 glslang-8.13.3559/Test/baseResults/spv.16bitstorage_Error-int.frag.out000066400000000000000000000142171360464450000254530ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.16bitstorage_Error-uint.frag.out000066400000000000000000000142321360464450000256350ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.16bitstorage_Error.frag.out000066400000000000000000000153311360464450000246610ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.16bitxfb.vert.out000066400000000000000000000141161360464450000226640ustar00rootroot00000000000000spv.16bitxfb.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.300BuiltIns.vert.out000066400000000000000000000070361360464450000232160ustar00rootroot00000000000000spv.300BuiltIns.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 42 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 10 14 21 34 Source ESSL 310 Name 4 "main" Name 8 "gl_PerVertex" MemberName 8(gl_PerVertex) 0 "gl_Position" MemberName 8(gl_PerVertex) 1 "gl_PointSize" Name 10 "" Name 14 "ps" Name 21 "gl_VertexIndex" Name 34 "gl_InstanceIndex" MemberDecorate 8(gl_PerVertex) 0 Invariant MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position MemberDecorate 8(gl_PerVertex) 1 BuiltIn PointSize Decorate 8(gl_PerVertex) Block Decorate 14(ps) RelaxedPrecision Decorate 15 RelaxedPrecision Decorate 21(gl_VertexIndex) BuiltIn VertexIndex Decorate 30 RelaxedPrecision Decorate 34(gl_InstanceIndex) BuiltIn InstanceIndex 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 9: TypePointer Output 8(gl_PerVertex) 10: 9(ptr) Variable Output 11: TypeInt 32 1 12: 11(int) Constant 0 13: TypePointer Input 6(float) 14(ps): 13(ptr) Variable Input 17: TypePointer Output 7(fvec4) 19: 11(int) Constant 4 20: TypePointer Input 11(int) 21(gl_VertexIndex): 20(ptr) Variable Input 29: 11(int) Constant 1 31: TypePointer Output 6(float) 33: 11(int) Constant 5 34(gl_InstanceIndex): 20(ptr) Variable Input 4(main): 2 Function None 3 5: Label 15: 6(float) Load 14(ps) 16: 7(fvec4) CompositeConstruct 15 15 15 15 18: 17(ptr) AccessChain 10 12 Store 18 16 22: 11(int) Load 21(gl_VertexIndex) 23: 11(int) ISub 19 22 24: 6(float) ConvertSToF 23 25: 17(ptr) AccessChain 10 12 26: 7(fvec4) Load 25 27: 7(fvec4) VectorTimesScalar 26 24 28: 17(ptr) AccessChain 10 12 Store 28 27 30: 6(float) Load 14(ps) 32: 31(ptr) AccessChain 10 29 Store 32 30 35: 11(int) Load 34(gl_InstanceIndex) 36: 11(int) ISub 33 35 37: 6(float) ConvertSToF 36 38: 31(ptr) AccessChain 10 29 39: 6(float) Load 38 40: 6(float) FMul 39 37 41: 31(ptr) AccessChain 10 29 Store 41 40 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.300layout.frag.out000066400000000000000000000067511360464450000227440ustar00rootroot00000000000000spv.300layout.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 37 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 9 11 15 26 29 ExecutionMode 4 OriginUpperLeft Source ESSL 310 Name 4 "main" Name 9 "c" Name 11 "color" Name 13 "S" MemberName 13(S) 0 "c" MemberName 13(S) 1 "f" Name 15 "s" Name 26 "p" Name 29 "pos" Decorate 9(c) RelaxedPrecision Decorate 9(c) Location 7 Decorate 11(color) RelaxedPrecision Decorate 12 RelaxedPrecision MemberDecorate 13(S) 0 RelaxedPrecision MemberDecorate 13(S) 1 RelaxedPrecision Decorate 19 RelaxedPrecision Decorate 20 RelaxedPrecision Decorate 26(p) RelaxedPrecision Decorate 26(p) Location 3 Decorate 29(pos) RelaxedPrecision Decorate 30 RelaxedPrecision Decorate 33 RelaxedPrecision Decorate 34 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8: TypePointer Output 7(fvec3) 9(c): 8(ptr) Variable Output 10: TypePointer Input 7(fvec3) 11(color): 10(ptr) Variable Input 13(S): TypeStruct 7(fvec3) 6(float) 14: TypePointer Input 13(S) 15(s): 14(ptr) Variable Input 16: TypeInt 32 1 17: 16(int) Constant 0 21: TypeVector 6(float) 4 22: TypeInt 32 0 23: 22(int) Constant 2 24: TypeArray 21(fvec4) 23 25: TypePointer Output 24 26(p): 25(ptr) Variable Output 27: 16(int) Constant 1 28: TypePointer Input 21(fvec4) 29(pos): 28(ptr) Variable Input 31: TypePointer Input 6(float) 35: TypePointer Output 21(fvec4) 4(main): 2 Function None 3 5: Label 12: 7(fvec3) Load 11(color) 18: 10(ptr) AccessChain 15(s) 17 19: 7(fvec3) Load 18 20: 7(fvec3) FAdd 12 19 Store 9(c) 20 30: 21(fvec4) Load 29(pos) 32: 31(ptr) AccessChain 15(s) 27 33: 6(float) Load 32 34: 21(fvec4) VectorTimesScalar 30 33 36: 35(ptr) AccessChain 26(p) 27 Store 36 34 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.300layout.vert.out000066400000000000000000000307461360464450000230060ustar00rootroot00000000000000spv.300layout.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 163 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 9 11 98 100 108 114 120 128 Source ESSL 310 Name 4 "main" Name 9 "pos" Name 11 "p" Name 17 "Transform" MemberName 17(Transform) 0 "M1" MemberName 17(Transform) 1 "M2" MemberName 17(Transform) 2 "N1" MemberName 17(Transform) 3 "iuin" Name 19 "tblock" Name 45 "T3" MemberName 45(T3) 0 "M3" MemberName 45(T3) 1 "M4" MemberName 45(T3) 2 "N2" MemberName 45(T3) 3 "uv3a" Name 47 "" Name 78 "T2" MemberName 78(T2) 0 "b" MemberName 78(T2) 1 "t2m" Name 80 "" Name 98 "color" Name 100 "c" Name 108 "iout" Name 114 "uiuin" Name 120 "aiv2" Name 126 "S" MemberName 126(S) 0 "c" MemberName 126(S) 1 "f" Name 128 "s" Decorate 11(p) Location 3 MemberDecorate 17(Transform) 0 RowMajor MemberDecorate 17(Transform) 0 Offset 0 MemberDecorate 17(Transform) 0 MatrixStride 16 MemberDecorate 17(Transform) 1 ColMajor MemberDecorate 17(Transform) 1 Offset 64 MemberDecorate 17(Transform) 1 MatrixStride 16 MemberDecorate 17(Transform) 2 RowMajor MemberDecorate 17(Transform) 2 Offset 128 MemberDecorate 17(Transform) 2 MatrixStride 16 MemberDecorate 17(Transform) 3 Offset 176 Decorate 17(Transform) Block Decorate 19(tblock) DescriptorSet 0 Decorate 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 0 MemberDecorate 78(T2) 0 Offset 0 MemberDecorate 78(T2) 1 RowMajor MemberDecorate 78(T2) 1 Offset 16 MemberDecorate 78(T2) 1 MatrixStride 16 Decorate 78(T2) Block Decorate 80 DescriptorSet 0 Decorate 80 Binding 0 Decorate 100(c) Location 7 Decorate 108(iout) Flat Decorate 120(aiv2) Location 9 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Output 7(fvec4) 9(pos): 8(ptr) Variable Output 10: TypePointer Input 7(fvec4) 11(p): 10(ptr) Variable Input 13: TypeMatrix 7(fvec4) 4 14: TypeVector 6(float) 3 15: TypeMatrix 14(fvec3) 3 16: TypeInt 32 1 17(Transform): TypeStruct 13 13 15 16(int) 18: TypePointer Uniform 17(Transform) 19(tblock): 18(ptr) Variable Uniform 20: 16(int) Constant 0 21: TypePointer Uniform 13 24: 16(int) Constant 1 40: TypeMatrix 14(fvec3) 2 41: TypeInt 32 0 42: TypeVector 41(int) 3 43: 41(int) Constant 4 44: TypeArray 42(ivec3) 43 45(T3): TypeStruct 13 13 40 44 46: TypePointer Uniform 45(T3) 47: 46(ptr) Variable Uniform 78(T2): TypeStruct 41(int) 13 79: TypePointer Uniform 78(T2) 80: 79(ptr) Variable Uniform 97: TypePointer Output 14(fvec3) 98(color): 97(ptr) Variable Output 99: TypePointer Input 14(fvec3) 100(c): 99(ptr) Variable Input 102: 16(int) Constant 2 103: TypePointer Uniform 15 107: TypePointer Output 16(int) 108(iout): 107(ptr) Variable Output 109: 16(int) Constant 3 110: TypePointer Uniform 16(int) 113: TypePointer Input 41(int) 114(uiuin): 113(ptr) Variable Input 118: TypeVector 16(int) 2 119: TypePointer Input 118(ivec2) 120(aiv2): 119(ptr) Variable Input 121: 41(int) Constant 1 122: TypePointer Input 16(int) 126(S): TypeStruct 14(fvec3) 6(float) 127: TypePointer Output 126(S) 128(s): 127(ptr) Variable Output 131: 41(int) Constant 0 132: TypePointer Input 6(float) 135: TypePointer Output 6(float) 137: TypeBool 138: TypePointer Uniform 14(fvec3) 141: 6(float) Constant 1065353216 142: 14(fvec3) ConstantComposite 141 141 141 143: TypeVector 137(bool) 3 149: TypePointer Uniform 42(ivec3) 152: 41(int) Constant 5 153: 42(ivec3) ConstantComposite 152 152 152 4(main): 2 Function None 3 5: Label 12: 7(fvec4) Load 11(p) 22: 21(ptr) AccessChain 19(tblock) 20 23: 13 Load 22 25: 21(ptr) AccessChain 19(tblock) 24 26: 13 Load 25 27: 7(fvec4) CompositeExtract 23 0 28: 7(fvec4) CompositeExtract 26 0 29: 7(fvec4) FAdd 27 28 30: 7(fvec4) CompositeExtract 23 1 31: 7(fvec4) CompositeExtract 26 1 32: 7(fvec4) FAdd 30 31 33: 7(fvec4) CompositeExtract 23 2 34: 7(fvec4) CompositeExtract 26 2 35: 7(fvec4) FAdd 33 34 36: 7(fvec4) CompositeExtract 23 3 37: 7(fvec4) CompositeExtract 26 3 38: 7(fvec4) FAdd 36 37 39: 13 CompositeConstruct 29 32 35 38 48: 21(ptr) AccessChain 47 24 49: 13 Load 48 50: 7(fvec4) CompositeExtract 39 0 51: 7(fvec4) CompositeExtract 49 0 52: 7(fvec4) FAdd 50 51 53: 7(fvec4) CompositeExtract 39 1 54: 7(fvec4) CompositeExtract 49 1 55: 7(fvec4) FAdd 53 54 56: 7(fvec4) CompositeExtract 39 2 57: 7(fvec4) CompositeExtract 49 2 58: 7(fvec4) FAdd 56 57 59: 7(fvec4) CompositeExtract 39 3 60: 7(fvec4) CompositeExtract 49 3 61: 7(fvec4) FAdd 59 60 62: 13 CompositeConstruct 52 55 58 61 63: 21(ptr) AccessChain 47 20 64: 13 Load 63 65: 7(fvec4) CompositeExtract 62 0 66: 7(fvec4) CompositeExtract 64 0 67: 7(fvec4) FAdd 65 66 68: 7(fvec4) CompositeExtract 62 1 69: 7(fvec4) CompositeExtract 64 1 70: 7(fvec4) FAdd 68 69 71: 7(fvec4) CompositeExtract 62 2 72: 7(fvec4) CompositeExtract 64 2 73: 7(fvec4) FAdd 71 72 74: 7(fvec4) CompositeExtract 62 3 75: 7(fvec4) CompositeExtract 64 3 76: 7(fvec4) FAdd 74 75 77: 13 CompositeConstruct 67 70 73 76 81: 21(ptr) AccessChain 80 24 82: 13 Load 81 83: 7(fvec4) CompositeExtract 77 0 84: 7(fvec4) CompositeExtract 82 0 85: 7(fvec4) FAdd 83 84 86: 7(fvec4) CompositeExtract 77 1 87: 7(fvec4) CompositeExtract 82 1 88: 7(fvec4) FAdd 86 87 89: 7(fvec4) CompositeExtract 77 2 90: 7(fvec4) CompositeExtract 82 2 91: 7(fvec4) FAdd 89 90 92: 7(fvec4) CompositeExtract 77 3 93: 7(fvec4) CompositeExtract 82 3 94: 7(fvec4) FAdd 92 93 95: 13 CompositeConstruct 85 88 91 94 96: 7(fvec4) VectorTimesMatrix 12 95 Store 9(pos) 96 101: 14(fvec3) Load 100(c) 104: 103(ptr) AccessChain 19(tblock) 102 105: 15 Load 104 106: 14(fvec3) VectorTimesMatrix 101 105 Store 98(color) 106 111: 110(ptr) AccessChain 19(tblock) 109 112: 16(int) Load 111 115: 41(int) Load 114(uiuin) 116: 16(int) Bitcast 115 117: 16(int) IAdd 112 116 123: 122(ptr) AccessChain 120(aiv2) 121 124: 16(int) Load 123 125: 16(int) IAdd 117 124 Store 108(iout) 125 129: 14(fvec3) Load 100(c) 130: 97(ptr) AccessChain 128(s) 20 Store 130 129 133: 132(ptr) AccessChain 11(p) 131 134: 6(float) Load 133 136: 135(ptr) AccessChain 128(s) 24 Store 136 134 139: 138(ptr) AccessChain 47 102 24 140: 14(fvec3) Load 139 144: 143(bvec3) FOrdNotEqual 140 142 145: 137(bool) Any 144 146: 137(bool) LogicalNot 145 SelectionMerge 148 None BranchConditional 146 147 148 147: Label 150: 149(ptr) AccessChain 47 109 102 151: 42(ivec3) Load 150 154: 143(bvec3) INotEqual 151 153 155: 137(bool) Any 154 Branch 148 148: Label 156: 137(bool) Phi 145 5 155 147 SelectionMerge 158 None BranchConditional 156 157 158 157: Label 159: 97(ptr) AccessChain 128(s) 20 160: 14(fvec3) Load 159 161: 14(fvec3) CompositeConstruct 141 141 141 162: 14(fvec3) FAdd 160 161 Store 159 162 Branch 158 158: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.300layoutp.vert.out000066400000000000000000000241711360464450000231610ustar00rootroot00000000000000spv.300layoutp.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 115 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 9 11 50 52 60 72 80 Source ESSL 310 Name 4 "main" Name 9 "pos" Name 11 "p" Name 17 "Transform" MemberName 17(Transform) 0 "M1" MemberName 17(Transform) 1 "M2" MemberName 17(Transform) 2 "N1" MemberName 17(Transform) 3 "iuin" Name 19 "tblock" Name 33 "T3" MemberName 33(T3) 0 "M3" MemberName 33(T3) 1 "M4" MemberName 33(T3) 2 "N2" MemberName 33(T3) 3 "uv3a" Name 35 "" Name 42 "T2" MemberName 42(T2) 0 "b" MemberName 42(T2) 1 "t2m" Name 44 "" Name 50 "color" Name 52 "c" Name 60 "iout" Name 66 "uiuin" Name 72 "aiv2" Name 78 "S" MemberName 78(S) 0 "c" MemberName 78(S) 1 "f" Name 80 "s" Decorate 11(p) Location 3 MemberDecorate 17(Transform) 0 RowMajor MemberDecorate 17(Transform) 0 Offset 0 MemberDecorate 17(Transform) 0 MatrixStride 16 MemberDecorate 17(Transform) 1 ColMajor MemberDecorate 17(Transform) 1 Offset 64 MemberDecorate 17(Transform) 1 MatrixStride 16 MemberDecorate 17(Transform) 2 RowMajor MemberDecorate 17(Transform) 2 Offset 128 MemberDecorate 17(Transform) 2 MatrixStride 16 MemberDecorate 17(Transform) 3 Offset 176 Decorate 17(Transform) Block Decorate 19(tblock) DescriptorSet 0 Decorate 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 0 MemberDecorate 42(T2) 0 Offset 0 MemberDecorate 42(T2) 1 RowMajor MemberDecorate 42(T2) 1 Offset 16 MemberDecorate 42(T2) 1 MatrixStride 16 Decorate 42(T2) Block Decorate 44 DescriptorSet 0 Decorate 44 Binding 0 Decorate 52(c) Location 7 Decorate 60(iout) Flat Decorate 72(aiv2) Location 9 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Output 7(fvec4) 9(pos): 8(ptr) Variable Output 10: TypePointer Input 7(fvec4) 11(p): 10(ptr) Variable Input 13: TypeMatrix 7(fvec4) 4 14: TypeVector 6(float) 3 15: TypeMatrix 14(fvec3) 3 16: TypeInt 32 1 17(Transform): TypeStruct 13 13 15 16(int) 18: TypePointer Uniform 17(Transform) 19(tblock): 18(ptr) Variable Uniform 20: 16(int) Constant 0 21: TypePointer Uniform 13 24: 16(int) Constant 1 28: TypeMatrix 14(fvec3) 2 29: TypeInt 32 0 30: TypeVector 29(int) 3 31: 29(int) Constant 4 32: TypeArray 30(ivec3) 31 33(T3): TypeStruct 13 13 28 32 34: TypePointer Uniform 33(T3) 35: 34(ptr) Variable Uniform 42(T2): TypeStruct 29(int) 13 43: TypePointer Uniform 42(T2) 44: 43(ptr) Variable Uniform 49: TypePointer Output 14(fvec3) 50(color): 49(ptr) Variable Output 51: TypePointer Input 14(fvec3) 52(c): 51(ptr) Variable Input 54: 16(int) Constant 2 55: TypePointer Uniform 15 59: TypePointer Output 16(int) 60(iout): 59(ptr) Variable Output 61: 16(int) Constant 3 62: TypePointer Uniform 16(int) 65: TypePointer Private 29(int) 66(uiuin): 65(ptr) Variable Private 70: TypeVector 16(int) 2 71: TypePointer Input 70(ivec2) 72(aiv2): 71(ptr) Variable Input 73: 29(int) Constant 1 74: TypePointer Input 16(int) 78(S): TypeStruct 14(fvec3) 6(float) 79: TypePointer Output 78(S) 80(s): 79(ptr) Variable Output 83: 29(int) Constant 0 84: TypePointer Input 6(float) 87: TypePointer Output 6(float) 89: TypeBool 90: TypePointer Uniform 14(fvec3) 93: 6(float) Constant 1065353216 94: 14(fvec3) ConstantComposite 93 93 93 95: TypeVector 89(bool) 3 101: TypePointer Uniform 30(ivec3) 104: 29(int) Constant 5 105: 30(ivec3) ConstantComposite 104 104 104 4(main): 2 Function None 3 5: Label 12: 7(fvec4) Load 11(p) 22: 21(ptr) AccessChain 19(tblock) 20 23: 13 Load 22 25: 21(ptr) AccessChain 19(tblock) 24 26: 13 Load 25 27: 13 MatrixTimesMatrix 23 26 36: 21(ptr) AccessChain 35 24 37: 13 Load 36 38: 13 MatrixTimesMatrix 27 37 39: 21(ptr) AccessChain 35 20 40: 13 Load 39 41: 13 MatrixTimesMatrix 38 40 45: 21(ptr) AccessChain 44 24 46: 13 Load 45 47: 13 MatrixTimesMatrix 41 46 48: 7(fvec4) VectorTimesMatrix 12 47 Store 9(pos) 48 53: 14(fvec3) Load 52(c) 56: 55(ptr) AccessChain 19(tblock) 54 57: 15 Load 56 58: 14(fvec3) VectorTimesMatrix 53 57 Store 50(color) 58 63: 62(ptr) AccessChain 19(tblock) 61 64: 16(int) Load 63 67: 29(int) Load 66(uiuin) 68: 16(int) Bitcast 67 69: 16(int) IAdd 64 68 75: 74(ptr) AccessChain 72(aiv2) 73 76: 16(int) Load 75 77: 16(int) IAdd 69 76 Store 60(iout) 77 81: 14(fvec3) Load 52(c) 82: 49(ptr) AccessChain 80(s) 20 Store 82 81 85: 84(ptr) AccessChain 11(p) 83 86: 6(float) Load 85 88: 87(ptr) AccessChain 80(s) 24 Store 88 86 91: 90(ptr) AccessChain 35 54 24 92: 14(fvec3) Load 91 96: 95(bvec3) FOrdNotEqual 92 94 97: 89(bool) Any 96 98: 89(bool) LogicalNot 97 SelectionMerge 100 None BranchConditional 98 99 100 99: Label 102: 101(ptr) AccessChain 35 61 54 103: 30(ivec3) Load 102 106: 95(bvec3) INotEqual 103 105 107: 89(bool) Any 106 Branch 100 100: Label 108: 89(bool) Phi 97 5 107 99 SelectionMerge 110 None BranchConditional 108 109 110 109: Label 111: 49(ptr) AccessChain 80(s) 20 112: 14(fvec3) Load 111 113: 14(fvec3) CompositeConstruct 93 93 93 114: 14(fvec3) FAdd 112 113 Store 111 114 Branch 110 110: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.310.bitcast.frag.out000066400000000000000000000255311360464450000231340ustar00rootroot00000000000000spv.310.bitcast.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 153 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 ExecutionMode 4 OriginUpperLeft Source ESSL 310 Name 4 "main" Name 9 "idata" Name 14 "f1" Name 26 "f2" Name 37 "f3" Name 48 "f4" Name 55 "udata" Name 85 "fdata" Name 89 "i1" Name 98 "i2" Name 107 "i3" Name 116 "i4" Name 122 "u1" Name 130 "u2" Name 139 "u3" Name 148 "u4" Decorate 14(f1) RelaxedPrecision Decorate 15 RelaxedPrecision Decorate 26(f2) RelaxedPrecision Decorate 27 RelaxedPrecision Decorate 37(f3) RelaxedPrecision Decorate 38 RelaxedPrecision Decorate 57 RelaxedPrecision Decorate 64 RelaxedPrecision Decorate 72 RelaxedPrecision Decorate 89(i1) RelaxedPrecision Decorate 89(i1) Flat Decorate 90 RelaxedPrecision Decorate 98(i2) RelaxedPrecision Decorate 98(i2) Flat Decorate 99 RelaxedPrecision Decorate 107(i3) RelaxedPrecision Decorate 107(i3) Flat Decorate 108 RelaxedPrecision Decorate 116(i4) Flat Decorate 122(u1) RelaxedPrecision Decorate 122(u1) Flat Decorate 123 RelaxedPrecision Decorate 130(u2) RelaxedPrecision Decorate 130(u2) Flat Decorate 131 RelaxedPrecision Decorate 139(u3) RelaxedPrecision Decorate 139(u3) Flat Decorate 140 RelaxedPrecision Decorate 148(u4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeVector 6(int) 4 8: TypePointer Function 7(ivec4) 10: 6(int) Constant 0 11: 7(ivec4) ConstantComposite 10 10 10 10 12: TypeFloat 32 13: TypePointer Input 12(float) 14(f1): 13(ptr) Variable Input 17: TypeInt 32 0 18: 17(int) Constant 0 19: TypePointer Function 6(int) 24: TypeVector 12(float) 2 25: TypePointer Input 24(fvec2) 26(f2): 25(ptr) Variable Input 28: TypeVector 6(int) 2 35: TypeVector 12(float) 3 36: TypePointer Input 35(fvec3) 37(f3): 36(ptr) Variable Input 39: TypeVector 6(int) 3 46: TypeVector 12(float) 4 47: TypePointer Input 46(fvec4) 48(f4): 47(ptr) Variable Input 53: TypeVector 17(int) 4 54: TypePointer Function 53(ivec4) 56: 53(ivec4) ConstantComposite 18 18 18 18 59: TypePointer Function 17(int) 65: TypeVector 17(int) 2 73: TypeVector 17(int) 3 84: TypePointer Function 46(fvec4) 86: 12(float) Constant 0 87: 46(fvec4) ConstantComposite 86 86 86 86 88: TypePointer Input 6(int) 89(i1): 88(ptr) Variable Input 92: TypePointer Function 12(float) 97: TypePointer Input 28(ivec2) 98(i2): 97(ptr) Variable Input 106: TypePointer Input 39(ivec3) 107(i3): 106(ptr) Variable Input 115: TypePointer Input 7(ivec4) 116(i4): 115(ptr) Variable Input 121: TypePointer Input 17(int) 122(u1): 121(ptr) Variable Input 129: TypePointer Input 65(ivec2) 130(u2): 129(ptr) Variable Input 138: TypePointer Input 73(ivec3) 139(u3): 138(ptr) Variable Input 147: TypePointer Input 53(ivec4) 148(u4): 147(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(idata): 8(ptr) Variable Function 55(udata): 54(ptr) Variable Function 85(fdata): 84(ptr) Variable Function Store 9(idata) 11 15: 12(float) Load 14(f1) 16: 6(int) Bitcast 15 20: 19(ptr) AccessChain 9(idata) 18 21: 6(int) Load 20 22: 6(int) IAdd 21 16 23: 19(ptr) AccessChain 9(idata) 18 Store 23 22 27: 24(fvec2) Load 26(f2) 29: 28(ivec2) Bitcast 27 30: 7(ivec4) Load 9(idata) 31: 28(ivec2) VectorShuffle 30 30 0 1 32: 28(ivec2) IAdd 31 29 33: 7(ivec4) Load 9(idata) 34: 7(ivec4) VectorShuffle 33 32 4 5 2 3 Store 9(idata) 34 38: 35(fvec3) Load 37(f3) 40: 39(ivec3) Bitcast 38 41: 7(ivec4) Load 9(idata) 42: 39(ivec3) VectorShuffle 41 41 0 1 2 43: 39(ivec3) IAdd 42 40 44: 7(ivec4) Load 9(idata) 45: 7(ivec4) VectorShuffle 44 43 4 5 6 3 Store 9(idata) 45 49: 46(fvec4) Load 48(f4) 50: 7(ivec4) Bitcast 49 51: 7(ivec4) Load 9(idata) 52: 7(ivec4) IAdd 51 50 Store 9(idata) 52 Store 55(udata) 56 57: 12(float) Load 14(f1) 58: 17(int) Bitcast 57 60: 59(ptr) AccessChain 55(udata) 18 61: 17(int) Load 60 62: 17(int) IAdd 61 58 63: 59(ptr) AccessChain 55(udata) 18 Store 63 62 64: 24(fvec2) Load 26(f2) 66: 65(ivec2) Bitcast 64 67: 53(ivec4) Load 55(udata) 68: 65(ivec2) VectorShuffle 67 67 0 1 69: 65(ivec2) IAdd 68 66 70: 53(ivec4) Load 55(udata) 71: 53(ivec4) VectorShuffle 70 69 4 5 2 3 Store 55(udata) 71 72: 35(fvec3) Load 37(f3) 74: 73(ivec3) Bitcast 72 75: 53(ivec4) Load 55(udata) 76: 73(ivec3) VectorShuffle 75 75 0 1 2 77: 73(ivec3) IAdd 76 74 78: 53(ivec4) Load 55(udata) 79: 53(ivec4) VectorShuffle 78 77 4 5 6 3 Store 55(udata) 79 80: 46(fvec4) Load 48(f4) 81: 53(ivec4) Bitcast 80 82: 53(ivec4) Load 55(udata) 83: 53(ivec4) IAdd 82 81 Store 55(udata) 83 Store 85(fdata) 87 90: 6(int) Load 89(i1) 91: 12(float) Bitcast 90 93: 92(ptr) AccessChain 85(fdata) 18 94: 12(float) Load 93 95: 12(float) FAdd 94 91 96: 92(ptr) AccessChain 85(fdata) 18 Store 96 95 99: 28(ivec2) Load 98(i2) 100: 24(fvec2) Bitcast 99 101: 46(fvec4) Load 85(fdata) 102: 24(fvec2) VectorShuffle 101 101 0 1 103: 24(fvec2) FAdd 102 100 104: 46(fvec4) Load 85(fdata) 105: 46(fvec4) VectorShuffle 104 103 4 5 2 3 Store 85(fdata) 105 108: 39(ivec3) Load 107(i3) 109: 35(fvec3) Bitcast 108 110: 46(fvec4) Load 85(fdata) 111: 35(fvec3) VectorShuffle 110 110 0 1 2 112: 35(fvec3) FAdd 111 109 113: 46(fvec4) Load 85(fdata) 114: 46(fvec4) VectorShuffle 113 112 4 5 6 3 Store 85(fdata) 114 117: 7(ivec4) Load 116(i4) 118: 46(fvec4) Bitcast 117 119: 46(fvec4) Load 85(fdata) 120: 46(fvec4) FAdd 119 118 Store 85(fdata) 120 123: 17(int) Load 122(u1) 124: 12(float) Bitcast 123 125: 92(ptr) AccessChain 85(fdata) 18 126: 12(float) Load 125 127: 12(float) FAdd 126 124 128: 92(ptr) AccessChain 85(fdata) 18 Store 128 127 131: 65(ivec2) Load 130(u2) 132: 24(fvec2) Bitcast 131 133: 46(fvec4) Load 85(fdata) 134: 24(fvec2) VectorShuffle 133 133 0 1 135: 24(fvec2) FAdd 134 132 136: 46(fvec4) Load 85(fdata) 137: 46(fvec4) VectorShuffle 136 135 4 5 2 3 Store 85(fdata) 137 140: 73(ivec3) Load 139(u3) 141: 35(fvec3) Bitcast 140 142: 46(fvec4) Load 85(fdata) 143: 35(fvec3) VectorShuffle 142 142 0 1 2 144: 35(fvec3) FAdd 143 141 145: 46(fvec4) Load 85(fdata) 146: 46(fvec4) VectorShuffle 145 144 4 5 6 3 Store 85(fdata) 146 149: 53(ivec4) Load 148(u4) 150: 46(fvec4) Bitcast 149 151: 46(fvec4) Load 85(fdata) 152: 46(fvec4) FAdd 151 150 Store 85(fdata) 152 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.310.comp.out000066400000000000000000000157641360464450000215320ustar00rootroot00000000000000spv.310.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 47 ArrayStride 16 MemberDecorate 48(outs) 0 Offset 0 MemberDecorate 48(outs) 1 Offset 16 Decorate 48(outs) BufferBlock Decorate 50(outnames) DescriptorSet 0 Decorate 50(outnames) Binding 0 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 glslang-8.13.3559/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out000066400000000000000000000240471360464450000257230ustar00rootroot00000000000000spv.320.meshShaderUserDefined.mesh // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 140 Capability MeshShadingNV Extension "SPV_NV_mesh_shader" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint MeshNV 4 "main" 12 19 37 103 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 99 "myblock2" MemberName 99(myblock2) 0 "f" MemberName 99(myblock2) 1 "pos" MemberName 99(myblock2) 2 "m" Name 103 "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 99(myblock2) Block Decorate 103(blk2) Location 20 Decorate 139 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: TypePointer Output 27(fvec4) 74: 6(int) Constant 4 76: 23(float) Constant 1098907648 77: 27(fvec4) ConstantComposite 56 54 55 76 82: 6(int) Constant 5 85: 9(int) Constant 3 88: 9(int) Constant 1 93: 23(float) Constant 1099431936 94: 23(float) Constant 1099956224 95: 23(float) Constant 1100480512 96: 26(fvec3) ConstantComposite 93 94 95 98: 9(int) Constant 264 99(myblock2): TypeStruct 23(float) 27(fvec4) 29 100: 9(int) Constant 81 101: TypeArray 99(myblock2) 100 102: TypePointer Output 101 103(blk2): 102(ptr) Variable Output 109: 23(float) Constant 1101004800 113: 23(float) Constant 1101529088 114: 23(float) Constant 1102053376 115: 23(float) Constant 1102577664 116: 23(float) Constant 1103101952 117: 27(fvec4) ConstantComposite 113 114 115 116 129: 23(float) Constant 1105723392 139: 10(ivec3) ConstantComposite 34 88 88 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: 69(ptr) AccessChain 37(blk) 63 64 44 71: 27(fvec4) Load 70 72: 27(fvec4) VectorShuffle 71 68 0 4 5 6 Store 70 72 73: 6(int) Load 8(iid) 75: 6(int) SDiv 73 74 78: 69(ptr) AccessChain 37(blk) 75 74 52 79: 27(fvec4) Load 78 80: 27(fvec4) VectorShuffle 79 77 7 6 5 4 Store 78 80 81: 6(int) Load 8(iid) 83: 6(int) Load 8(iid) 84: 6(int) SDiv 83 74 86: 41(ptr) AccessChain 37(blk) 84 74 52 85 87: 23(float) Load 86 89: 41(ptr) AccessChain 37(blk) 81 82 39 44 88 Store 89 87 90: 6(int) Load 8(iid) 91: 6(int) IMul 90 74 92: 6(int) Load 18(gid) 97: 58(ptr) AccessChain 37(blk) 91 82 44 92 Store 97 96 MemoryBarrier 88 98 ControlBarrier 31 31 98 104: 6(int) Load 8(iid) 105: 6(int) Load 8(iid) 106: 6(int) ISub 105 44 107: 41(ptr) AccessChain 103(blk2) 106 39 108: 23(float) Load 107 110: 23(float) FAdd 108 109 111: 41(ptr) AccessChain 103(blk2) 104 39 Store 111 110 112: 6(int) Load 8(iid) 118: 69(ptr) AccessChain 103(blk2) 112 44 Store 118 117 119: 6(int) Load 8(iid) 120: 6(int) IAdd 119 44 121: 6(int) Load 18(gid) 122: 6(int) Load 8(iid) 123: 69(ptr) AccessChain 103(blk2) 122 44 124: 27(fvec4) Load 123 125: 69(ptr) AccessChain 103(blk2) 120 52 121 Store 125 124 126: 6(int) Load 8(iid) 127: 6(int) IAdd 126 44 128: 6(int) Load 18(gid) 130: 41(ptr) AccessChain 103(blk2) 127 52 128 31 Store 130 129 131: 6(int) Load 8(iid) 132: 6(int) IAdd 131 52 133: 6(int) Load 8(iid) 134: 6(int) IAdd 133 44 135: 6(int) Load 18(gid) 136: 69(ptr) AccessChain 103(blk2) 134 52 135 137: 27(fvec4) Load 136 138: 69(ptr) AccessChain 103(blk2) 132 52 64 Store 138 137 MemoryBarrier 88 98 ControlBarrier 31 31 98 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.330.geom.out000066400000000000000000000066201360464450000215140ustar00rootroot00000000000000spv.330.geom // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.400.frag.nanclamp.out000066400000000000000000002131751360464450000232770ustar00rootroot00000000000000spv.400.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 1118 Capability Shader Capability Geometry Capability Float64 Capability ImageGatherExtended Capability ClipDistance Capability SampledRect 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116 ExecutionMode 4 OriginUpperLeft Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" Name 4 "main" Name 6 "foo23(" Name 8 "doubles(" Name 13 "outp" Name 17 "u2drs" Name 41 "doublev" Name 45 "dvec2v" Name 50 "dvec3v" Name 55 "dvec4v" Name 430 "boolv" Name 439 "bvec2v" Name 448 "bvec3v" Name 457 "bvec4v" Name 739 "dmat2v" Name 745 "dmat3v" Name 751 "dmat4v" Name 757 "dmat2x3v" Name 763 "dmat3x2v" Name 769 "dmat2x4v" Name 775 "dmat4x2v" Name 781 "dmat3x4v" Name 787 "dmat4x3v" Name 1019 "v" Name 1025 "arrayedSampler" Name 1027 "i" Name 1033 "c2D" Name 1038 "gl_ClipDistance" Name 1050 "uoutp" Name 1054 "samp2dr" Name 1076 "ioutp" Name 1080 "isamp2DA" Name 1097 "gl_FragCoord" Name 1099 "vl2" Name 1105 "uo" Name 1107 "u" Name 1115 "id" Name 1116 "gl_PrimitiveID" Decorate 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 1050(uoutp) Location 3 Decorate 1054(samp2dr) DescriptorSet 0 Decorate 1054(samp2dr) Binding 1 Decorate 1076(ioutp) Location 2 Decorate 1080(isamp2DA) DescriptorSet 0 Decorate 1080(isamp2DA) Binding 2 Decorate 1097(gl_FragCoord) BuiltIn FragCoord Decorate 1099(vl2) Location 6 Decorate 1105(uo) Location 0 Decorate 1107(u) Flat Decorate 1107(u) Location 2 Decorate 1116(gl_PrimitiveID) Flat Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 11: TypeVector 10(float) 4 12: TypePointer Output 11(fvec4) 13(outp): 12(ptr) Variable Output 14: TypeImage 10(float) Rect depth sampled format:Unknown 15: TypeSampledImage 14 16: TypePointer UniformConstant 15 17(u2drs): 16(ptr) Variable UniformConstant 20: TypeVector 10(float) 2 21: 10(float) Constant 0 22: 20(fvec2) ConstantComposite 21 21 23: TypeInt 32 1 24: TypeVector 23(int) 2 25: 23(int) Constant 3 26: 23(int) Constant 4 27: 24(ivec2) ConstantComposite 25 26 32: TypeInt 32 0 33: 32(int) Constant 0 34: TypePointer Output 10(float) 39: TypeFloat 64 40: TypePointer Function 39(float64_t) 42:39(float64_t) Constant 2507418074 1073430332 43: TypeVector 39(float64_t) 2 44: TypePointer Function 43(f64vec2) 46:39(float64_t) Constant 796182188 1073367658 47: 43(f64vec2) ConstantComposite 46 46 48: TypeVector 39(float64_t) 3 49: TypePointer Function 48(f64vec3) 51:39(float64_t) Constant 1719614413 1073127582 52: 48(f64vec3) ConstantComposite 51 51 51 53: TypeVector 39(float64_t) 4 54: TypePointer Function 53(f64vec4) 428: TypeBool 429: TypePointer Function 428(bool) 437: TypeVector 428(bool) 2 438: TypePointer Function 437(bvec2) 446: TypeVector 428(bool) 3 447: TypePointer Function 446(bvec3) 455: TypeVector 428(bool) 4 456: TypePointer Function 455(bvec4) 563: 428(bool) ConstantFalse 572: 437(bvec2) ConstantComposite 563 563 581: 446(bvec3) ConstantComposite 563 563 563 590: 455(bvec4) ConstantComposite 563 563 563 563 737: TypeMatrix 43(f64vec2) 2 738: TypePointer Function 737 743: TypeMatrix 48(f64vec3) 3 744: TypePointer Function 743 749: TypeMatrix 53(f64vec4) 4 750: TypePointer Function 749 755: TypeMatrix 48(f64vec3) 2 756: TypePointer Function 755 761: TypeMatrix 43(f64vec2) 3 762: TypePointer Function 761 767: TypeMatrix 53(f64vec4) 2 768: TypePointer Function 767 773: TypeMatrix 43(f64vec2) 4 774: TypePointer Function 773 779: TypeMatrix 53(f64vec4) 3 780: TypePointer Function 779 785: TypeMatrix 48(f64vec3) 4 786: TypePointer Function 785 954: 32(int) Constant 1 958: 32(int) Constant 2 962: 32(int) Constant 3 966: 23(int) Constant 1 970: 23(int) Constant 2 996: 10(float) Constant 1065353216 1018: TypePointer Function 11(fvec4) 1020: TypeImage 10(float) 2D sampled format:Unknown 1021: TypeSampledImage 1020 1022: 32(int) Constant 5 1023: TypeArray 1021 1022 1024: TypePointer UniformConstant 1023 1025(arrayedSampler): 1024(ptr) Variable UniformConstant 1026: TypePointer Input 23(int) 1027(i): 1026(ptr) Variable Input 1029: TypePointer UniformConstant 1021 1032: TypePointer Input 20(fvec2) 1033(c2D): 1032(ptr) Variable Input 1036: TypeArray 10(float) 958 1037: TypePointer Input 1036 1038(gl_ClipDistance): 1037(ptr) Variable Input 1039: TypePointer Input 10(float) 1043: TypeVector 10(float) 3 1048: TypeVector 32(int) 4 1049: TypePointer Output 1048(ivec4) 1050(uoutp): 1049(ptr) Variable Output 1051: TypeImage 32(int) Rect sampled format:Unknown 1052: TypeSampledImage 1051 1053: TypePointer UniformConstant 1052 1054(samp2dr): 1053(ptr) Variable UniformConstant 1057: 32(int) Constant 4 1058: TypeArray 24(ivec2) 1057 1059: 24(ivec2) ConstantComposite 966 970 1060: 23(int) Constant 15 1061: 23(int) Constant 16 1062: 24(ivec2) ConstantComposite 1060 1061 1063: 23(int) Constant 4294967294 1064: 23(int) Constant 0 1065: 24(ivec2) ConstantComposite 1063 1064 1066: 1058 ConstantComposite 1059 27 1062 1065 1074: TypeVector 23(int) 4 1075: TypePointer Output 1074(ivec4) 1076(ioutp): 1075(ptr) Variable Output 1077: TypeImage 23(int) 2D array sampled format:Unknown 1078: TypeSampledImage 1077 1079: TypePointer UniformConstant 1078 1080(isamp2DA): 1079(ptr) Variable UniformConstant 1082: 10(float) Constant 1036831949 1083: 1043(fvec3) ConstantComposite 1082 1082 1082 1084: 24(ivec2) ConstantComposite 966 966 1096: TypePointer Input 11(fvec4) 1097(gl_FragCoord): 1096(ptr) Variable Input 1099(vl2): 1096(ptr) Variable Input 1104: TypePointer Output 32(int) 1105(uo): 1104(ptr) Variable Output 1106: TypePointer Input 32(int) 1107(u): 1106(ptr) Variable Input 1114: TypePointer Function 23(int) 1116(gl_PrimitiveID): 1026(ptr) Variable Input 4(main): 2 Function None 3 5: Label 1019(v): 1018(ptr) Variable Function 1115(id): 1114(ptr) Variable Function 1028: 23(int) Load 1027(i) 1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028 1031: 1021 Load 1030 1034: 20(fvec2) Load 1033(c2D) 1035: 11(fvec4) ImageSampleImplicitLod 1031 1034 Store 1019(v) 1035 1040: 1039(ptr) AccessChain 1038(gl_ClipDistance) 966 1041: 10(float) Load 1040 1042: 34(ptr) AccessChain 13(outp) 33 Store 1042 1041 1044: 11(fvec4) Load 1019(v) 1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3 1046: 11(fvec4) Load 13(outp) 1047: 11(fvec4) VectorShuffle 1046 1045 0 4 5 6 Store 13(outp) 1047 1055: 1052 Load 1054(samp2dr) 1056: 20(fvec2) Load 1033(c2D) 1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066 Store 1050(uoutp) 1067 1068: 1029(ptr) AccessChain 1025(arrayedSampler) 1064 1069: 1021 Load 1068 1070: 20(fvec2) Load 1033(c2D) 1071: 11(fvec4) ImageGather 1069 1070 1064 1072: 11(fvec4) Load 13(outp) 1073: 11(fvec4) FAdd 1072 1071 Store 13(outp) 1073 1081: 1078 Load 1080(isamp2DA) 1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084 Store 1076(ioutp) 1085 1086: 1078 Load 1080(isamp2DA) 1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084 1088: 1074(ivec4) Load 1076(ioutp) 1089: 1074(ivec4) IAdd 1088 1087 Store 1076(ioutp) 1089 1090: 1078 Load 1080(isamp2DA) 1091: 23(int) Load 1027(i) 1092: 24(ivec2) CompositeConstruct 1091 1091 1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092 1094: 1074(ivec4) Load 1076(ioutp) 1095: 1074(ivec4) IAdd 1094 1093 Store 1076(ioutp) 1095 1098: 11(fvec4) Load 1097(gl_FragCoord) 1100: 11(fvec4) Load 1099(vl2) 1101: 11(fvec4) FAdd 1098 1100 1102: 11(fvec4) Load 13(outp) 1103: 11(fvec4) FAdd 1102 1101 Store 13(outp) 1103 1108: 32(int) Load 1107(u) 1109: 23(int) Load 1027(i) 1110: 32(int) Bitcast 1109 1111: 32(int) UMod 1108 1110 Store 1105(uo) 1111 1112: 2 FunctionCall 6(foo23() 1113: 2 FunctionCall 8(doubles() 1117: 23(int) Load 1116(gl_PrimitiveID) Store 1115(id) 1117 Return FunctionEnd 6(foo23(): 2 Function None 3 7: Label 18: 15 Load 17(u2drs) 19: 11(fvec4) Load 13(outp) 28: 10(float) CompositeExtract 19 2 29: 10(float) CompositeExtract 19 3 30: 11(fvec4) CompositeInsert 29 19 2 31: 10(float) ImageSampleProjDrefExplicitLod 18 30 28 Grad ConstOffset 22 22 27 35: 34(ptr) AccessChain 13(outp) 33 36: 10(float) Load 35 37: 10(float) FAdd 36 31 38: 34(ptr) AccessChain 13(outp) 33 Store 38 37 Return FunctionEnd 8(doubles(): 2 Function None 3 9: Label 41(doublev): 40(ptr) Variable Function 45(dvec2v): 44(ptr) Variable Function 50(dvec3v): 49(ptr) Variable Function 55(dvec4v): 54(ptr) Variable Function 430(boolv): 429(ptr) Variable Function 439(bvec2v): 438(ptr) Variable Function 448(bvec3v): 447(ptr) Variable Function 457(bvec4v): 456(ptr) Variable Function 557: 429(ptr) Variable Function 566: 438(ptr) Variable Function 575: 447(ptr) Variable Function 584: 456(ptr) Variable Function 739(dmat2v): 738(ptr) Variable Function 745(dmat3v): 744(ptr) Variable Function 751(dmat4v): 750(ptr) Variable Function 757(dmat2x3v): 756(ptr) Variable Function 763(dmat3x2v): 762(ptr) Variable Function 769(dmat2x4v): 768(ptr) Variable Function 775(dmat4x2v): 774(ptr) Variable Function 781(dmat3x4v): 780(ptr) Variable Function 787(dmat4x3v): 786(ptr) Variable Function Store 41(doublev) 42 Store 45(dvec2v) 47 Store 50(dvec3v) 52 56:39(float64_t) Load 41(doublev) 57: 53(f64vec4) CompositeConstruct 56 56 56 56 58: 53(f64vec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 57 Store 55(dvec4v) 58 59:39(float64_t) Load 41(doublev) 60:39(float64_t) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 59 61:39(float64_t) Load 41(doublev) 62:39(float64_t) FAdd 61 60 Store 41(doublev) 62 63: 43(f64vec2) Load 45(dvec2v) 64: 43(f64vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 63 65: 43(f64vec2) Load 45(dvec2v) 66: 43(f64vec2) FAdd 65 64 Store 45(dvec2v) 66 67: 48(f64vec3) Load 50(dvec3v) 68: 48(f64vec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 67 69: 48(f64vec3) Load 50(dvec3v) 70: 48(f64vec3) FAdd 69 68 Store 50(dvec3v) 70 71: 53(f64vec4) Load 55(dvec4v) 72: 53(f64vec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 71 73: 53(f64vec4) Load 55(dvec4v) 74: 53(f64vec4) FAdd 73 72 Store 55(dvec4v) 74 75:39(float64_t) Load 41(doublev) 76:39(float64_t) ExtInst 1(GLSL.std.450) 4(FAbs) 75 77:39(float64_t) Load 41(doublev) 78:39(float64_t) FAdd 77 76 Store 41(doublev) 78 79: 43(f64vec2) Load 45(dvec2v) 80: 43(f64vec2) ExtInst 1(GLSL.std.450) 4(FAbs) 79 81: 43(f64vec2) Load 45(dvec2v) 82: 43(f64vec2) FAdd 81 80 Store 45(dvec2v) 82 83: 48(f64vec3) Load 50(dvec3v) 84: 48(f64vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 83 85: 48(f64vec3) Load 50(dvec3v) 86: 48(f64vec3) FAdd 85 84 Store 50(dvec3v) 86 87: 53(f64vec4) Load 55(dvec4v) 88: 53(f64vec4) ExtInst 1(GLSL.std.450) 4(FAbs) 87 89: 53(f64vec4) Load 55(dvec4v) 90: 53(f64vec4) FAdd 89 88 Store 55(dvec4v) 90 91:39(float64_t) Load 41(doublev) 92:39(float64_t) ExtInst 1(GLSL.std.450) 6(FSign) 91 93:39(float64_t) Load 41(doublev) 94:39(float64_t) FAdd 93 92 Store 41(doublev) 94 95: 43(f64vec2) Load 45(dvec2v) 96: 43(f64vec2) ExtInst 1(GLSL.std.450) 6(FSign) 95 97: 43(f64vec2) Load 45(dvec2v) 98: 43(f64vec2) FAdd 97 96 Store 45(dvec2v) 98 99: 48(f64vec3) Load 50(dvec3v) 100: 48(f64vec3) ExtInst 1(GLSL.std.450) 6(FSign) 99 101: 48(f64vec3) Load 50(dvec3v) 102: 48(f64vec3) FAdd 101 100 Store 50(dvec3v) 102 103: 53(f64vec4) Load 55(dvec4v) 104: 53(f64vec4) ExtInst 1(GLSL.std.450) 6(FSign) 103 105: 53(f64vec4) Load 55(dvec4v) 106: 53(f64vec4) FAdd 105 104 Store 55(dvec4v) 106 107:39(float64_t) Load 41(doublev) 108:39(float64_t) ExtInst 1(GLSL.std.450) 8(Floor) 107 109:39(float64_t) Load 41(doublev) 110:39(float64_t) FAdd 109 108 Store 41(doublev) 110 111: 43(f64vec2) Load 45(dvec2v) 112: 43(f64vec2) ExtInst 1(GLSL.std.450) 8(Floor) 111 113: 43(f64vec2) Load 45(dvec2v) 114: 43(f64vec2) FAdd 113 112 Store 45(dvec2v) 114 115: 48(f64vec3) Load 50(dvec3v) 116: 48(f64vec3) ExtInst 1(GLSL.std.450) 8(Floor) 115 117: 48(f64vec3) Load 50(dvec3v) 118: 48(f64vec3) FAdd 117 116 Store 50(dvec3v) 118 119: 53(f64vec4) Load 55(dvec4v) 120: 53(f64vec4) ExtInst 1(GLSL.std.450) 8(Floor) 119 121: 53(f64vec4) Load 55(dvec4v) 122: 53(f64vec4) FAdd 121 120 Store 55(dvec4v) 122 123:39(float64_t) Load 41(doublev) 124:39(float64_t) ExtInst 1(GLSL.std.450) 3(Trunc) 123 125:39(float64_t) Load 41(doublev) 126:39(float64_t) FAdd 125 124 Store 41(doublev) 126 127: 43(f64vec2) Load 45(dvec2v) 128: 43(f64vec2) ExtInst 1(GLSL.std.450) 3(Trunc) 127 129: 43(f64vec2) Load 45(dvec2v) 130: 43(f64vec2) FAdd 129 128 Store 45(dvec2v) 130 131: 48(f64vec3) Load 50(dvec3v) 132: 48(f64vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 131 133: 48(f64vec3) Load 50(dvec3v) 134: 48(f64vec3) FAdd 133 132 Store 50(dvec3v) 134 135: 53(f64vec4) Load 55(dvec4v) 136: 53(f64vec4) ExtInst 1(GLSL.std.450) 3(Trunc) 135 137: 53(f64vec4) Load 55(dvec4v) 138: 53(f64vec4) FAdd 137 136 Store 55(dvec4v) 138 139:39(float64_t) Load 41(doublev) 140:39(float64_t) ExtInst 1(GLSL.std.450) 1(Round) 139 141:39(float64_t) Load 41(doublev) 142:39(float64_t) FAdd 141 140 Store 41(doublev) 142 143: 43(f64vec2) Load 45(dvec2v) 144: 43(f64vec2) ExtInst 1(GLSL.std.450) 1(Round) 143 145: 43(f64vec2) Load 45(dvec2v) 146: 43(f64vec2) FAdd 145 144 Store 45(dvec2v) 146 147: 48(f64vec3) Load 50(dvec3v) 148: 48(f64vec3) ExtInst 1(GLSL.std.450) 1(Round) 147 149: 48(f64vec3) Load 50(dvec3v) 150: 48(f64vec3) FAdd 149 148 Store 50(dvec3v) 150 151: 53(f64vec4) Load 55(dvec4v) 152: 53(f64vec4) ExtInst 1(GLSL.std.450) 1(Round) 151 153: 53(f64vec4) Load 55(dvec4v) 154: 53(f64vec4) FAdd 153 152 Store 55(dvec4v) 154 155:39(float64_t) Load 41(doublev) 156:39(float64_t) ExtInst 1(GLSL.std.450) 2(RoundEven) 155 157:39(float64_t) Load 41(doublev) 158:39(float64_t) FAdd 157 156 Store 41(doublev) 158 159: 43(f64vec2) Load 45(dvec2v) 160: 43(f64vec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 159 161: 43(f64vec2) Load 45(dvec2v) 162: 43(f64vec2) FAdd 161 160 Store 45(dvec2v) 162 163: 48(f64vec3) Load 50(dvec3v) 164: 48(f64vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 163 165: 48(f64vec3) Load 50(dvec3v) 166: 48(f64vec3) FAdd 165 164 Store 50(dvec3v) 166 167: 53(f64vec4) Load 55(dvec4v) 168: 53(f64vec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 167 169: 53(f64vec4) Load 55(dvec4v) 170: 53(f64vec4) FAdd 169 168 Store 55(dvec4v) 170 171:39(float64_t) Load 41(doublev) 172:39(float64_t) ExtInst 1(GLSL.std.450) 9(Ceil) 171 173:39(float64_t) Load 41(doublev) 174:39(float64_t) FAdd 173 172 Store 41(doublev) 174 175: 43(f64vec2) Load 45(dvec2v) 176: 43(f64vec2) ExtInst 1(GLSL.std.450) 9(Ceil) 175 177: 43(f64vec2) Load 45(dvec2v) 178: 43(f64vec2) FAdd 177 176 Store 45(dvec2v) 178 179: 48(f64vec3) Load 50(dvec3v) 180: 48(f64vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 179 181: 48(f64vec3) Load 50(dvec3v) 182: 48(f64vec3) FAdd 181 180 Store 50(dvec3v) 182 183: 53(f64vec4) Load 55(dvec4v) 184: 53(f64vec4) ExtInst 1(GLSL.std.450) 9(Ceil) 183 185: 53(f64vec4) Load 55(dvec4v) 186: 53(f64vec4) FAdd 185 184 Store 55(dvec4v) 186 187:39(float64_t) Load 41(doublev) 188:39(float64_t) ExtInst 1(GLSL.std.450) 10(Fract) 187 189:39(float64_t) Load 41(doublev) 190:39(float64_t) FAdd 189 188 Store 41(doublev) 190 191: 43(f64vec2) Load 45(dvec2v) 192: 43(f64vec2) ExtInst 1(GLSL.std.450) 10(Fract) 191 193: 43(f64vec2) Load 45(dvec2v) 194: 43(f64vec2) FAdd 193 192 Store 45(dvec2v) 194 195: 48(f64vec3) Load 50(dvec3v) 196: 48(f64vec3) ExtInst 1(GLSL.std.450) 10(Fract) 195 197: 48(f64vec3) Load 50(dvec3v) 198: 48(f64vec3) FAdd 197 196 Store 50(dvec3v) 198 199: 53(f64vec4) Load 55(dvec4v) 200: 53(f64vec4) ExtInst 1(GLSL.std.450) 10(Fract) 199 201: 53(f64vec4) Load 55(dvec4v) 202: 53(f64vec4) FAdd 201 200 Store 55(dvec4v) 202 203:39(float64_t) Load 41(doublev) 204:39(float64_t) Load 41(doublev) 205:39(float64_t) FMod 203 204 206:39(float64_t) Load 41(doublev) 207:39(float64_t) FAdd 206 205 Store 41(doublev) 207 208: 43(f64vec2) Load 45(dvec2v) 209:39(float64_t) Load 41(doublev) 210: 43(f64vec2) CompositeConstruct 209 209 211: 43(f64vec2) FMod 208 210 212: 43(f64vec2) Load 45(dvec2v) 213: 43(f64vec2) FAdd 212 211 Store 45(dvec2v) 213 214: 48(f64vec3) Load 50(dvec3v) 215:39(float64_t) Load 41(doublev) 216: 48(f64vec3) CompositeConstruct 215 215 215 217: 48(f64vec3) FMod 214 216 218: 48(f64vec3) Load 50(dvec3v) 219: 48(f64vec3) FAdd 218 217 Store 50(dvec3v) 219 220: 53(f64vec4) Load 55(dvec4v) 221:39(float64_t) Load 41(doublev) 222: 53(f64vec4) CompositeConstruct 221 221 221 221 223: 53(f64vec4) FMod 220 222 224: 53(f64vec4) Load 55(dvec4v) 225: 53(f64vec4) FAdd 224 223 Store 55(dvec4v) 225 226: 43(f64vec2) Load 45(dvec2v) 227: 43(f64vec2) Load 45(dvec2v) 228: 43(f64vec2) FMod 226 227 229: 43(f64vec2) Load 45(dvec2v) 230: 43(f64vec2) FAdd 229 228 Store 45(dvec2v) 230 231: 48(f64vec3) Load 50(dvec3v) 232: 48(f64vec3) Load 50(dvec3v) 233: 48(f64vec3) FMod 231 232 234: 48(f64vec3) Load 50(dvec3v) 235: 48(f64vec3) FAdd 234 233 Store 50(dvec3v) 235 236: 53(f64vec4) Load 55(dvec4v) 237: 53(f64vec4) Load 55(dvec4v) 238: 53(f64vec4) FMod 236 237 239: 53(f64vec4) Load 55(dvec4v) 240: 53(f64vec4) FAdd 239 238 Store 55(dvec4v) 240 241:39(float64_t) Load 41(doublev) 242:39(float64_t) ExtInst 1(GLSL.std.450) 35(Modf) 241 41(doublev) 243:39(float64_t) Load 41(doublev) 244:39(float64_t) FAdd 243 242 Store 41(doublev) 244 245: 43(f64vec2) Load 45(dvec2v) 246: 43(f64vec2) ExtInst 1(GLSL.std.450) 35(Modf) 245 45(dvec2v) 247: 43(f64vec2) Load 45(dvec2v) 248: 43(f64vec2) FAdd 247 246 Store 45(dvec2v) 248 249: 48(f64vec3) Load 50(dvec3v) 250: 48(f64vec3) ExtInst 1(GLSL.std.450) 35(Modf) 249 50(dvec3v) 251: 48(f64vec3) Load 50(dvec3v) 252: 48(f64vec3) FAdd 251 250 Store 50(dvec3v) 252 253: 53(f64vec4) Load 55(dvec4v) 254: 53(f64vec4) ExtInst 1(GLSL.std.450) 35(Modf) 253 55(dvec4v) 255: 53(f64vec4) Load 55(dvec4v) 256: 53(f64vec4) FAdd 255 254 Store 55(dvec4v) 256 257:39(float64_t) Load 41(doublev) 258:39(float64_t) Load 41(doublev) 259:39(float64_t) ExtInst 1(GLSL.std.450) 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 glslang-8.13.3559/Test/baseResults/spv.400.frag.out000066400000000000000000002123551360464450000215060ustar00rootroot00000000000000spv.400.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 1118 Capability Shader Capability Geometry Capability Float64 Capability ImageGatherExtended Capability ClipDistance Capability SampledRect 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116 ExecutionMode 4 OriginUpperLeft Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" Name 4 "main" Name 6 "foo23(" Name 8 "doubles(" Name 13 "outp" Name 17 "u2drs" Name 41 "doublev" Name 45 "dvec2v" Name 50 "dvec3v" Name 55 "dvec4v" Name 430 "boolv" Name 439 "bvec2v" Name 448 "bvec3v" Name 457 "bvec4v" Name 739 "dmat2v" Name 745 "dmat3v" Name 751 "dmat4v" Name 757 "dmat2x3v" Name 763 "dmat3x2v" Name 769 "dmat2x4v" Name 775 "dmat4x2v" Name 781 "dmat3x4v" Name 787 "dmat4x3v" Name 1019 "v" Name 1025 "arrayedSampler" Name 1027 "i" Name 1033 "c2D" Name 1038 "gl_ClipDistance" Name 1050 "uoutp" Name 1054 "samp2dr" Name 1076 "ioutp" Name 1080 "isamp2DA" Name 1097 "gl_FragCoord" Name 1099 "vl2" Name 1105 "uo" Name 1107 "u" Name 1115 "id" Name 1116 "gl_PrimitiveID" Decorate 17(u2drs) DescriptorSet 0 Decorate 17(u2drs) Binding 0 Decorate 1025(arrayedSampler) DescriptorSet 0 Decorate 1025(arrayedSampler) Binding 0 Decorate 1027(i) Flat Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance Decorate 1054(samp2dr) DescriptorSet 0 Decorate 1054(samp2dr) Binding 0 Decorate 1080(isamp2DA) DescriptorSet 0 Decorate 1080(isamp2DA) Binding 0 Decorate 1097(gl_FragCoord) BuiltIn FragCoord Decorate 1099(vl2) Location 6 Decorate 1107(u) Flat Decorate 1116(gl_PrimitiveID) Flat Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 11: TypeVector 10(float) 4 12: TypePointer Output 11(fvec4) 13(outp): 12(ptr) Variable Output 14: TypeImage 10(float) Rect depth sampled format:Unknown 15: TypeSampledImage 14 16: TypePointer UniformConstant 15 17(u2drs): 16(ptr) Variable UniformConstant 20: TypeVector 10(float) 2 21: 10(float) Constant 0 22: 20(fvec2) ConstantComposite 21 21 23: TypeInt 32 1 24: TypeVector 23(int) 2 25: 23(int) Constant 3 26: 23(int) Constant 4 27: 24(ivec2) ConstantComposite 25 26 32: TypeInt 32 0 33: 32(int) Constant 0 34: TypePointer Output 10(float) 39: TypeFloat 64 40: TypePointer Function 39(float64_t) 42:39(float64_t) Constant 2507418074 1073430332 43: TypeVector 39(float64_t) 2 44: TypePointer Function 43(f64vec2) 46:39(float64_t) Constant 796182188 1073367658 47: 43(f64vec2) ConstantComposite 46 46 48: TypeVector 39(float64_t) 3 49: TypePointer Function 48(f64vec3) 51:39(float64_t) Constant 1719614413 1073127582 52: 48(f64vec3) ConstantComposite 51 51 51 53: TypeVector 39(float64_t) 4 54: TypePointer Function 53(f64vec4) 428: TypeBool 429: TypePointer Function 428(bool) 437: TypeVector 428(bool) 2 438: TypePointer Function 437(bvec2) 446: TypeVector 428(bool) 3 447: TypePointer Function 446(bvec3) 455: TypeVector 428(bool) 4 456: TypePointer Function 455(bvec4) 563: 428(bool) ConstantFalse 572: 437(bvec2) ConstantComposite 563 563 581: 446(bvec3) ConstantComposite 563 563 563 590: 455(bvec4) ConstantComposite 563 563 563 563 737: TypeMatrix 43(f64vec2) 2 738: TypePointer Function 737 743: TypeMatrix 48(f64vec3) 3 744: TypePointer Function 743 749: TypeMatrix 53(f64vec4) 4 750: TypePointer Function 749 755: TypeMatrix 48(f64vec3) 2 756: TypePointer Function 755 761: TypeMatrix 43(f64vec2) 3 762: TypePointer Function 761 767: TypeMatrix 53(f64vec4) 2 768: TypePointer Function 767 773: TypeMatrix 43(f64vec2) 4 774: TypePointer Function 773 779: TypeMatrix 53(f64vec4) 3 780: TypePointer Function 779 785: TypeMatrix 48(f64vec3) 4 786: TypePointer Function 785 954: 32(int) Constant 1 958: 32(int) Constant 2 962: 32(int) Constant 3 966: 23(int) Constant 1 970: 23(int) Constant 2 996: 10(float) Constant 1065353216 1018: TypePointer Function 11(fvec4) 1020: TypeImage 10(float) 2D sampled format:Unknown 1021: TypeSampledImage 1020 1022: 32(int) Constant 5 1023: TypeArray 1021 1022 1024: TypePointer UniformConstant 1023 1025(arrayedSampler): 1024(ptr) Variable UniformConstant 1026: TypePointer Input 23(int) 1027(i): 1026(ptr) Variable Input 1029: TypePointer UniformConstant 1021 1032: TypePointer Input 20(fvec2) 1033(c2D): 1032(ptr) Variable Input 1036: TypeArray 10(float) 958 1037: TypePointer Input 1036 1038(gl_ClipDistance): 1037(ptr) Variable Input 1039: TypePointer Input 10(float) 1043: TypeVector 10(float) 3 1048: TypeVector 32(int) 4 1049: TypePointer Output 1048(ivec4) 1050(uoutp): 1049(ptr) Variable Output 1051: TypeImage 32(int) Rect sampled format:Unknown 1052: TypeSampledImage 1051 1053: TypePointer UniformConstant 1052 1054(samp2dr): 1053(ptr) Variable UniformConstant 1057: 32(int) Constant 4 1058: TypeArray 24(ivec2) 1057 1059: 24(ivec2) ConstantComposite 966 970 1060: 23(int) Constant 15 1061: 23(int) Constant 16 1062: 24(ivec2) ConstantComposite 1060 1061 1063: 23(int) Constant 4294967294 1064: 23(int) Constant 0 1065: 24(ivec2) ConstantComposite 1063 1064 1066: 1058 ConstantComposite 1059 27 1062 1065 1074: TypeVector 23(int) 4 1075: TypePointer Output 1074(ivec4) 1076(ioutp): 1075(ptr) Variable Output 1077: TypeImage 23(int) 2D array sampled format:Unknown 1078: TypeSampledImage 1077 1079: TypePointer UniformConstant 1078 1080(isamp2DA): 1079(ptr) Variable UniformConstant 1082: 10(float) Constant 1036831949 1083: 1043(fvec3) ConstantComposite 1082 1082 1082 1084: 24(ivec2) ConstantComposite 966 966 1096: TypePointer Input 11(fvec4) 1097(gl_FragCoord): 1096(ptr) Variable Input 1099(vl2): 1096(ptr) Variable Input 1104: TypePointer Output 32(int) 1105(uo): 1104(ptr) Variable Output 1106: TypePointer Input 32(int) 1107(u): 1106(ptr) Variable Input 1114: TypePointer Function 23(int) 1116(gl_PrimitiveID): 1026(ptr) Variable Input 4(main): 2 Function None 3 5: Label 1019(v): 1018(ptr) Variable Function 1115(id): 1114(ptr) Variable Function 1028: 23(int) Load 1027(i) 1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028 1031: 1021 Load 1030 1034: 20(fvec2) Load 1033(c2D) 1035: 11(fvec4) ImageSampleImplicitLod 1031 1034 Store 1019(v) 1035 1040: 1039(ptr) AccessChain 1038(gl_ClipDistance) 966 1041: 10(float) Load 1040 1042: 34(ptr) AccessChain 13(outp) 33 Store 1042 1041 1044: 11(fvec4) Load 1019(v) 1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3 1046: 11(fvec4) Load 13(outp) 1047: 11(fvec4) VectorShuffle 1046 1045 0 4 5 6 Store 13(outp) 1047 1055: 1052 Load 1054(samp2dr) 1056: 20(fvec2) Load 1033(c2D) 1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066 Store 1050(uoutp) 1067 1068: 1029(ptr) AccessChain 1025(arrayedSampler) 1064 1069: 1021 Load 1068 1070: 20(fvec2) Load 1033(c2D) 1071: 11(fvec4) ImageGather 1069 1070 1064 1072: 11(fvec4) Load 13(outp) 1073: 11(fvec4) FAdd 1072 1071 Store 13(outp) 1073 1081: 1078 Load 1080(isamp2DA) 1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084 Store 1076(ioutp) 1085 1086: 1078 Load 1080(isamp2DA) 1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084 1088: 1074(ivec4) Load 1076(ioutp) 1089: 1074(ivec4) IAdd 1088 1087 Store 1076(ioutp) 1089 1090: 1078 Load 1080(isamp2DA) 1091: 23(int) Load 1027(i) 1092: 24(ivec2) CompositeConstruct 1091 1091 1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092 1094: 1074(ivec4) Load 1076(ioutp) 1095: 1074(ivec4) IAdd 1094 1093 Store 1076(ioutp) 1095 1098: 11(fvec4) Load 1097(gl_FragCoord) 1100: 11(fvec4) Load 1099(vl2) 1101: 11(fvec4) FAdd 1098 1100 1102: 11(fvec4) Load 13(outp) 1103: 11(fvec4) FAdd 1102 1101 Store 13(outp) 1103 1108: 32(int) Load 1107(u) 1109: 23(int) Load 1027(i) 1110: 32(int) Bitcast 1109 1111: 32(int) UMod 1108 1110 Store 1105(uo) 1111 1112: 2 FunctionCall 6(foo23() 1113: 2 FunctionCall 8(doubles() 1117: 23(int) Load 1116(gl_PrimitiveID) Store 1115(id) 1117 Return FunctionEnd 6(foo23(): 2 Function None 3 7: Label 18: 15 Load 17(u2drs) 19: 11(fvec4) Load 13(outp) 28: 10(float) CompositeExtract 19 2 29: 10(float) CompositeExtract 19 3 30: 11(fvec4) CompositeInsert 29 19 2 31: 10(float) ImageSampleProjDrefExplicitLod 18 30 28 Grad ConstOffset 22 22 27 35: 34(ptr) AccessChain 13(outp) 33 36: 10(float) Load 35 37: 10(float) FAdd 36 31 38: 34(ptr) AccessChain 13(outp) 33 Store 38 37 Return FunctionEnd 8(doubles(): 2 Function None 3 9: Label 41(doublev): 40(ptr) Variable Function 45(dvec2v): 44(ptr) Variable Function 50(dvec3v): 49(ptr) Variable Function 55(dvec4v): 54(ptr) Variable Function 430(boolv): 429(ptr) Variable Function 439(bvec2v): 438(ptr) Variable Function 448(bvec3v): 447(ptr) Variable Function 457(bvec4v): 456(ptr) Variable Function 557: 429(ptr) Variable Function 566: 438(ptr) Variable Function 575: 447(ptr) Variable Function 584: 456(ptr) Variable Function 739(dmat2v): 738(ptr) Variable Function 745(dmat3v): 744(ptr) Variable Function 751(dmat4v): 750(ptr) Variable Function 757(dmat2x3v): 756(ptr) Variable Function 763(dmat3x2v): 762(ptr) Variable Function 769(dmat2x4v): 768(ptr) Variable Function 775(dmat4x2v): 774(ptr) Variable Function 781(dmat3x4v): 780(ptr) Variable Function 787(dmat4x3v): 786(ptr) Variable Function Store 41(doublev) 42 Store 45(dvec2v) 47 Store 50(dvec3v) 52 56:39(float64_t) Load 41(doublev) 57: 53(f64vec4) CompositeConstruct 56 56 56 56 58: 53(f64vec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 57 Store 55(dvec4v) 58 59:39(float64_t) Load 41(doublev) 60:39(float64_t) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 59 61:39(float64_t) Load 41(doublev) 62:39(float64_t) FAdd 61 60 Store 41(doublev) 62 63: 43(f64vec2) Load 45(dvec2v) 64: 43(f64vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 63 65: 43(f64vec2) Load 45(dvec2v) 66: 43(f64vec2) FAdd 65 64 Store 45(dvec2v) 66 67: 48(f64vec3) Load 50(dvec3v) 68: 48(f64vec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 67 69: 48(f64vec3) Load 50(dvec3v) 70: 48(f64vec3) FAdd 69 68 Store 50(dvec3v) 70 71: 53(f64vec4) Load 55(dvec4v) 72: 53(f64vec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 71 73: 53(f64vec4) Load 55(dvec4v) 74: 53(f64vec4) FAdd 73 72 Store 55(dvec4v) 74 75:39(float64_t) Load 41(doublev) 76:39(float64_t) ExtInst 1(GLSL.std.450) 4(FAbs) 75 77:39(float64_t) Load 41(doublev) 78:39(float64_t) FAdd 77 76 Store 41(doublev) 78 79: 43(f64vec2) Load 45(dvec2v) 80: 43(f64vec2) ExtInst 1(GLSL.std.450) 4(FAbs) 79 81: 43(f64vec2) Load 45(dvec2v) 82: 43(f64vec2) FAdd 81 80 Store 45(dvec2v) 82 83: 48(f64vec3) Load 50(dvec3v) 84: 48(f64vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 83 85: 48(f64vec3) Load 50(dvec3v) 86: 48(f64vec3) FAdd 85 84 Store 50(dvec3v) 86 87: 53(f64vec4) Load 55(dvec4v) 88: 53(f64vec4) ExtInst 1(GLSL.std.450) 4(FAbs) 87 89: 53(f64vec4) Load 55(dvec4v) 90: 53(f64vec4) FAdd 89 88 Store 55(dvec4v) 90 91:39(float64_t) Load 41(doublev) 92:39(float64_t) ExtInst 1(GLSL.std.450) 6(FSign) 91 93:39(float64_t) Load 41(doublev) 94:39(float64_t) FAdd 93 92 Store 41(doublev) 94 95: 43(f64vec2) Load 45(dvec2v) 96: 43(f64vec2) ExtInst 1(GLSL.std.450) 6(FSign) 95 97: 43(f64vec2) Load 45(dvec2v) 98: 43(f64vec2) FAdd 97 96 Store 45(dvec2v) 98 99: 48(f64vec3) Load 50(dvec3v) 100: 48(f64vec3) ExtInst 1(GLSL.std.450) 6(FSign) 99 101: 48(f64vec3) Load 50(dvec3v) 102: 48(f64vec3) FAdd 101 100 Store 50(dvec3v) 102 103: 53(f64vec4) Load 55(dvec4v) 104: 53(f64vec4) ExtInst 1(GLSL.std.450) 6(FSign) 103 105: 53(f64vec4) Load 55(dvec4v) 106: 53(f64vec4) FAdd 105 104 Store 55(dvec4v) 106 107:39(float64_t) Load 41(doublev) 108:39(float64_t) ExtInst 1(GLSL.std.450) 8(Floor) 107 109:39(float64_t) Load 41(doublev) 110:39(float64_t) FAdd 109 108 Store 41(doublev) 110 111: 43(f64vec2) Load 45(dvec2v) 112: 43(f64vec2) ExtInst 1(GLSL.std.450) 8(Floor) 111 113: 43(f64vec2) Load 45(dvec2v) 114: 43(f64vec2) FAdd 113 112 Store 45(dvec2v) 114 115: 48(f64vec3) Load 50(dvec3v) 116: 48(f64vec3) ExtInst 1(GLSL.std.450) 8(Floor) 115 117: 48(f64vec3) Load 50(dvec3v) 118: 48(f64vec3) FAdd 117 116 Store 50(dvec3v) 118 119: 53(f64vec4) Load 55(dvec4v) 120: 53(f64vec4) ExtInst 1(GLSL.std.450) 8(Floor) 119 121: 53(f64vec4) Load 55(dvec4v) 122: 53(f64vec4) FAdd 121 120 Store 55(dvec4v) 122 123:39(float64_t) Load 41(doublev) 124:39(float64_t) ExtInst 1(GLSL.std.450) 3(Trunc) 123 125:39(float64_t) Load 41(doublev) 126:39(float64_t) FAdd 125 124 Store 41(doublev) 126 127: 43(f64vec2) Load 45(dvec2v) 128: 43(f64vec2) ExtInst 1(GLSL.std.450) 3(Trunc) 127 129: 43(f64vec2) Load 45(dvec2v) 130: 43(f64vec2) FAdd 129 128 Store 45(dvec2v) 130 131: 48(f64vec3) Load 50(dvec3v) 132: 48(f64vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 131 133: 48(f64vec3) Load 50(dvec3v) 134: 48(f64vec3) FAdd 133 132 Store 50(dvec3v) 134 135: 53(f64vec4) Load 55(dvec4v) 136: 53(f64vec4) ExtInst 1(GLSL.std.450) 3(Trunc) 135 137: 53(f64vec4) Load 55(dvec4v) 138: 53(f64vec4) FAdd 137 136 Store 55(dvec4v) 138 139:39(float64_t) Load 41(doublev) 140:39(float64_t) ExtInst 1(GLSL.std.450) 1(Round) 139 141:39(float64_t) Load 41(doublev) 142:39(float64_t) FAdd 141 140 Store 41(doublev) 142 143: 43(f64vec2) Load 45(dvec2v) 144: 43(f64vec2) ExtInst 1(GLSL.std.450) 1(Round) 143 145: 43(f64vec2) Load 45(dvec2v) 146: 43(f64vec2) FAdd 145 144 Store 45(dvec2v) 146 147: 48(f64vec3) Load 50(dvec3v) 148: 48(f64vec3) ExtInst 1(GLSL.std.450) 1(Round) 147 149: 48(f64vec3) Load 50(dvec3v) 150: 48(f64vec3) FAdd 149 148 Store 50(dvec3v) 150 151: 53(f64vec4) Load 55(dvec4v) 152: 53(f64vec4) ExtInst 1(GLSL.std.450) 1(Round) 151 153: 53(f64vec4) Load 55(dvec4v) 154: 53(f64vec4) FAdd 153 152 Store 55(dvec4v) 154 155:39(float64_t) Load 41(doublev) 156:39(float64_t) ExtInst 1(GLSL.std.450) 2(RoundEven) 155 157:39(float64_t) Load 41(doublev) 158:39(float64_t) FAdd 157 156 Store 41(doublev) 158 159: 43(f64vec2) Load 45(dvec2v) 160: 43(f64vec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 159 161: 43(f64vec2) Load 45(dvec2v) 162: 43(f64vec2) FAdd 161 160 Store 45(dvec2v) 162 163: 48(f64vec3) Load 50(dvec3v) 164: 48(f64vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 163 165: 48(f64vec3) Load 50(dvec3v) 166: 48(f64vec3) FAdd 165 164 Store 50(dvec3v) 166 167: 53(f64vec4) Load 55(dvec4v) 168: 53(f64vec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 167 169: 53(f64vec4) Load 55(dvec4v) 170: 53(f64vec4) FAdd 169 168 Store 55(dvec4v) 170 171:39(float64_t) Load 41(doublev) 172:39(float64_t) ExtInst 1(GLSL.std.450) 9(Ceil) 171 173:39(float64_t) Load 41(doublev) 174:39(float64_t) FAdd 173 172 Store 41(doublev) 174 175: 43(f64vec2) Load 45(dvec2v) 176: 43(f64vec2) ExtInst 1(GLSL.std.450) 9(Ceil) 175 177: 43(f64vec2) Load 45(dvec2v) 178: 43(f64vec2) FAdd 177 176 Store 45(dvec2v) 178 179: 48(f64vec3) Load 50(dvec3v) 180: 48(f64vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 179 181: 48(f64vec3) Load 50(dvec3v) 182: 48(f64vec3) FAdd 181 180 Store 50(dvec3v) 182 183: 53(f64vec4) Load 55(dvec4v) 184: 53(f64vec4) ExtInst 1(GLSL.std.450) 9(Ceil) 183 185: 53(f64vec4) Load 55(dvec4v) 186: 53(f64vec4) FAdd 185 184 Store 55(dvec4v) 186 187:39(float64_t) Load 41(doublev) 188:39(float64_t) ExtInst 1(GLSL.std.450) 10(Fract) 187 189:39(float64_t) Load 41(doublev) 190:39(float64_t) FAdd 189 188 Store 41(doublev) 190 191: 43(f64vec2) Load 45(dvec2v) 192: 43(f64vec2) ExtInst 1(GLSL.std.450) 10(Fract) 191 193: 43(f64vec2) Load 45(dvec2v) 194: 43(f64vec2) FAdd 193 192 Store 45(dvec2v) 194 195: 48(f64vec3) Load 50(dvec3v) 196: 48(f64vec3) ExtInst 1(GLSL.std.450) 10(Fract) 195 197: 48(f64vec3) Load 50(dvec3v) 198: 48(f64vec3) FAdd 197 196 Store 50(dvec3v) 198 199: 53(f64vec4) Load 55(dvec4v) 200: 53(f64vec4) ExtInst 1(GLSL.std.450) 10(Fract) 199 201: 53(f64vec4) Load 55(dvec4v) 202: 53(f64vec4) FAdd 201 200 Store 55(dvec4v) 202 203:39(float64_t) Load 41(doublev) 204:39(float64_t) Load 41(doublev) 205:39(float64_t) FMod 203 204 206:39(float64_t) Load 41(doublev) 207:39(float64_t) FAdd 206 205 Store 41(doublev) 207 208: 43(f64vec2) Load 45(dvec2v) 209:39(float64_t) Load 41(doublev) 210: 43(f64vec2) CompositeConstruct 209 209 211: 43(f64vec2) FMod 208 210 212: 43(f64vec2) Load 45(dvec2v) 213: 43(f64vec2) FAdd 212 211 Store 45(dvec2v) 213 214: 48(f64vec3) Load 50(dvec3v) 215:39(float64_t) Load 41(doublev) 216: 48(f64vec3) CompositeConstruct 215 215 215 217: 48(f64vec3) FMod 214 216 218: 48(f64vec3) Load 50(dvec3v) 219: 48(f64vec3) FAdd 218 217 Store 50(dvec3v) 219 220: 53(f64vec4) Load 55(dvec4v) 221:39(float64_t) Load 41(doublev) 222: 53(f64vec4) CompositeConstruct 221 221 221 221 223: 53(f64vec4) FMod 220 222 224: 53(f64vec4) Load 55(dvec4v) 225: 53(f64vec4) FAdd 224 223 Store 55(dvec4v) 225 226: 43(f64vec2) Load 45(dvec2v) 227: 43(f64vec2) Load 45(dvec2v) 228: 43(f64vec2) FMod 226 227 229: 43(f64vec2) Load 45(dvec2v) 230: 43(f64vec2) FAdd 229 228 Store 45(dvec2v) 230 231: 48(f64vec3) Load 50(dvec3v) 232: 48(f64vec3) Load 50(dvec3v) 233: 48(f64vec3) FMod 231 232 234: 48(f64vec3) Load 50(dvec3v) 235: 48(f64vec3) FAdd 234 233 Store 50(dvec3v) 235 236: 53(f64vec4) Load 55(dvec4v) 237: 53(f64vec4) Load 55(dvec4v) 238: 53(f64vec4) FMod 236 237 239: 53(f64vec4) Load 55(dvec4v) 240: 53(f64vec4) FAdd 239 238 Store 55(dvec4v) 240 241:39(float64_t) Load 41(doublev) 242:39(float64_t) ExtInst 1(GLSL.std.450) 35(Modf) 241 41(doublev) 243:39(float64_t) Load 41(doublev) 244:39(float64_t) FAdd 243 242 Store 41(doublev) 244 245: 43(f64vec2) Load 45(dvec2v) 246: 43(f64vec2) ExtInst 1(GLSL.std.450) 35(Modf) 245 45(dvec2v) 247: 43(f64vec2) Load 45(dvec2v) 248: 43(f64vec2) FAdd 247 246 Store 45(dvec2v) 248 249: 48(f64vec3) Load 50(dvec3v) 250: 48(f64vec3) ExtInst 1(GLSL.std.450) 35(Modf) 249 50(dvec3v) 251: 48(f64vec3) Load 50(dvec3v) 252: 48(f64vec3) FAdd 251 250 Store 50(dvec3v) 252 253: 53(f64vec4) Load 55(dvec4v) 254: 53(f64vec4) ExtInst 1(GLSL.std.450) 35(Modf) 253 55(dvec4v) 255: 53(f64vec4) Load 55(dvec4v) 256: 53(f64vec4) FAdd 255 254 Store 55(dvec4v) 256 257:39(float64_t) Load 41(doublev) 258:39(float64_t) Load 41(doublev) 259:39(float64_t) ExtInst 1(GLSL.std.450) 37(FMin) 257 258 260:39(float64_t) Load 41(doublev) 261:39(float64_t) FAdd 260 259 Store 41(doublev) 261 262: 43(f64vec2) Load 45(dvec2v) 263:39(float64_t) Load 41(doublev) 264: 43(f64vec2) CompositeConstruct 263 263 265: 43(f64vec2) ExtInst 1(GLSL.std.450) 37(FMin) 262 264 266: 43(f64vec2) Load 45(dvec2v) 267: 43(f64vec2) FAdd 266 265 Store 45(dvec2v) 267 268: 48(f64vec3) Load 50(dvec3v) 269:39(float64_t) Load 41(doublev) 270: 48(f64vec3) CompositeConstruct 269 269 269 271: 48(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 268 270 272: 48(f64vec3) Load 50(dvec3v) 273: 48(f64vec3) FAdd 272 271 Store 50(dvec3v) 273 274: 53(f64vec4) Load 55(dvec4v) 275:39(float64_t) Load 41(doublev) 276: 53(f64vec4) CompositeConstruct 275 275 275 275 277: 53(f64vec4) ExtInst 1(GLSL.std.450) 37(FMin) 274 276 278: 53(f64vec4) Load 55(dvec4v) 279: 53(f64vec4) FAdd 278 277 Store 55(dvec4v) 279 280: 43(f64vec2) Load 45(dvec2v) 281: 43(f64vec2) Load 45(dvec2v) 282: 43(f64vec2) ExtInst 1(GLSL.std.450) 37(FMin) 280 281 283: 43(f64vec2) Load 45(dvec2v) 284: 43(f64vec2) FAdd 283 282 Store 45(dvec2v) 284 285: 48(f64vec3) Load 50(dvec3v) 286: 48(f64vec3) Load 50(dvec3v) 287: 48(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 285 286 288: 48(f64vec3) Load 50(dvec3v) 289: 48(f64vec3) FAdd 288 287 Store 50(dvec3v) 289 290: 53(f64vec4) Load 55(dvec4v) 291: 53(f64vec4) Load 55(dvec4v) 292: 53(f64vec4) ExtInst 1(GLSL.std.450) 37(FMin) 290 291 293: 53(f64vec4) Load 55(dvec4v) 294: 53(f64vec4) FAdd 293 292 Store 55(dvec4v) 294 295:39(float64_t) Load 41(doublev) 296:39(float64_t) Load 41(doublev) 297:39(float64_t) ExtInst 1(GLSL.std.450) 40(FMax) 295 296 298:39(float64_t) Load 41(doublev) 299:39(float64_t) FAdd 298 297 Store 41(doublev) 299 300: 43(f64vec2) Load 45(dvec2v) 301:39(float64_t) Load 41(doublev) 302: 43(f64vec2) CompositeConstruct 301 301 303: 43(f64vec2) ExtInst 1(GLSL.std.450) 40(FMax) 300 302 304: 43(f64vec2) Load 45(dvec2v) 305: 43(f64vec2) FAdd 304 303 Store 45(dvec2v) 305 306: 48(f64vec3) Load 50(dvec3v) 307:39(float64_t) Load 41(doublev) 308: 48(f64vec3) CompositeConstruct 307 307 307 309: 48(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 306 308 310: 48(f64vec3) Load 50(dvec3v) 311: 48(f64vec3) FAdd 310 309 Store 50(dvec3v) 311 312: 53(f64vec4) Load 55(dvec4v) 313:39(float64_t) Load 41(doublev) 314: 53(f64vec4) CompositeConstruct 313 313 313 313 315: 53(f64vec4) ExtInst 1(GLSL.std.450) 40(FMax) 312 314 316: 53(f64vec4) Load 55(dvec4v) 317: 53(f64vec4) FAdd 316 315 Store 55(dvec4v) 317 318: 43(f64vec2) Load 45(dvec2v) 319: 43(f64vec2) Load 45(dvec2v) 320: 43(f64vec2) ExtInst 1(GLSL.std.450) 40(FMax) 318 319 321: 43(f64vec2) Load 45(dvec2v) 322: 43(f64vec2) FAdd 321 320 Store 45(dvec2v) 322 323: 48(f64vec3) Load 50(dvec3v) 324: 48(f64vec3) Load 50(dvec3v) 325: 48(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 323 324 326: 48(f64vec3) Load 50(dvec3v) 327: 48(f64vec3) FAdd 326 325 Store 50(dvec3v) 327 328: 53(f64vec4) Load 55(dvec4v) 329: 53(f64vec4) Load 55(dvec4v) 330: 53(f64vec4) ExtInst 1(GLSL.std.450) 40(FMax) 328 329 331: 53(f64vec4) Load 55(dvec4v) 332: 53(f64vec4) FAdd 331 330 Store 55(dvec4v) 332 333:39(float64_t) Load 41(doublev) 334:39(float64_t) Load 41(doublev) 335:39(float64_t) Load 41(doublev) 336:39(float64_t) ExtInst 1(GLSL.std.450) 43(FClamp) 333 334 335 337:39(float64_t) Load 41(doublev) 338:39(float64_t) FAdd 337 336 Store 41(doublev) 338 339: 43(f64vec2) Load 45(dvec2v) 340:39(float64_t) Load 41(doublev) 341:39(float64_t) Load 41(doublev) 342: 43(f64vec2) CompositeConstruct 340 340 343: 43(f64vec2) CompositeConstruct 341 341 344: 43(f64vec2) ExtInst 1(GLSL.std.450) 43(FClamp) 339 342 343 345: 43(f64vec2) Load 45(dvec2v) 346: 43(f64vec2) FAdd 345 344 Store 45(dvec2v) 346 347: 48(f64vec3) Load 50(dvec3v) 348:39(float64_t) Load 41(doublev) 349:39(float64_t) Load 41(doublev) 350: 48(f64vec3) CompositeConstruct 348 348 348 351: 48(f64vec3) CompositeConstruct 349 349 349 352: 48(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 347 350 351 353: 48(f64vec3) Load 50(dvec3v) 354: 48(f64vec3) FAdd 353 352 Store 50(dvec3v) 354 355: 53(f64vec4) Load 55(dvec4v) 356:39(float64_t) Load 41(doublev) 357:39(float64_t) Load 41(doublev) 358: 53(f64vec4) CompositeConstruct 356 356 356 356 359: 53(f64vec4) CompositeConstruct 357 357 357 357 360: 53(f64vec4) ExtInst 1(GLSL.std.450) 43(FClamp) 355 358 359 361: 53(f64vec4) Load 55(dvec4v) 362: 53(f64vec4) FAdd 361 360 Store 55(dvec4v) 362 363: 43(f64vec2) Load 45(dvec2v) 364: 43(f64vec2) Load 45(dvec2v) 365: 43(f64vec2) Load 45(dvec2v) 366: 43(f64vec2) ExtInst 1(GLSL.std.450) 43(FClamp) 363 364 365 367: 43(f64vec2) Load 45(dvec2v) 368: 43(f64vec2) FAdd 367 366 Store 45(dvec2v) 368 369: 48(f64vec3) Load 50(dvec3v) 370: 48(f64vec3) Load 50(dvec3v) 371: 48(f64vec3) Load 50(dvec3v) 372: 48(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 369 370 371 373: 48(f64vec3) Load 50(dvec3v) 374: 48(f64vec3) FAdd 373 372 Store 50(dvec3v) 374 375: 53(f64vec4) Load 55(dvec4v) 376: 53(f64vec4) Load 55(dvec4v) 377: 53(f64vec4) Load 55(dvec4v) 378: 53(f64vec4) ExtInst 1(GLSL.std.450) 43(FClamp) 375 376 377 379: 53(f64vec4) Load 55(dvec4v) 380: 53(f64vec4) FAdd 379 378 Store 55(dvec4v) 380 381:39(float64_t) Load 41(doublev) 382:39(float64_t) Load 41(doublev) 383:39(float64_t) Load 41(doublev) 384:39(float64_t) ExtInst 1(GLSL.std.450) 46(FMix) 381 382 383 385:39(float64_t) Load 41(doublev) 386:39(float64_t) FAdd 385 384 Store 41(doublev) 386 387: 43(f64vec2) Load 45(dvec2v) 388: 43(f64vec2) Load 45(dvec2v) 389:39(float64_t) Load 41(doublev) 390: 43(f64vec2) CompositeConstruct 389 389 391: 43(f64vec2) ExtInst 1(GLSL.std.450) 46(FMix) 387 388 390 392: 43(f64vec2) Load 45(dvec2v) 393: 43(f64vec2) FAdd 392 391 Store 45(dvec2v) 393 394: 48(f64vec3) Load 50(dvec3v) 395: 48(f64vec3) Load 50(dvec3v) 396:39(float64_t) Load 41(doublev) 397: 48(f64vec3) CompositeConstruct 396 396 396 398: 48(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 394 395 397 399: 48(f64vec3) Load 50(dvec3v) 400: 48(f64vec3) FAdd 399 398 Store 50(dvec3v) 400 401: 53(f64vec4) Load 55(dvec4v) 402: 53(f64vec4) Load 55(dvec4v) 403:39(float64_t) Load 41(doublev) 404: 53(f64vec4) CompositeConstruct 403 403 403 403 405: 53(f64vec4) ExtInst 1(GLSL.std.450) 46(FMix) 401 402 404 406: 53(f64vec4) Load 55(dvec4v) 407: 53(f64vec4) FAdd 406 405 Store 55(dvec4v) 407 408: 43(f64vec2) Load 45(dvec2v) 409: 43(f64vec2) Load 45(dvec2v) 410: 43(f64vec2) Load 45(dvec2v) 411: 43(f64vec2) ExtInst 1(GLSL.std.450) 46(FMix) 408 409 410 412: 43(f64vec2) Load 45(dvec2v) 413: 43(f64vec2) FAdd 412 411 Store 45(dvec2v) 413 414: 48(f64vec3) Load 50(dvec3v) 415: 48(f64vec3) Load 50(dvec3v) 416: 48(f64vec3) Load 50(dvec3v) 417: 48(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 414 415 416 418: 48(f64vec3) Load 50(dvec3v) 419: 48(f64vec3) FAdd 418 417 Store 50(dvec3v) 419 420: 53(f64vec4) Load 55(dvec4v) 421: 53(f64vec4) Load 55(dvec4v) 422: 53(f64vec4) Load 55(dvec4v) 423: 53(f64vec4) ExtInst 1(GLSL.std.450) 46(FMix) 420 421 422 424: 53(f64vec4) Load 55(dvec4v) 425: 53(f64vec4) FAdd 424 423 Store 55(dvec4v) 425 426:39(float64_t) Load 41(doublev) 427:39(float64_t) Load 41(doublev) 431: 428(bool) Load 430(boolv) 432:39(float64_t) Select 431 427 426 433:39(float64_t) Load 41(doublev) 434:39(float64_t) FAdd 433 432 Store 41(doublev) 434 435: 43(f64vec2) Load 45(dvec2v) 436: 43(f64vec2) Load 45(dvec2v) 440: 437(bvec2) Load 439(bvec2v) 441: 43(f64vec2) Select 440 436 435 442: 43(f64vec2) Load 45(dvec2v) 443: 43(f64vec2) FAdd 442 441 Store 45(dvec2v) 443 444: 48(f64vec3) Load 50(dvec3v) 445: 48(f64vec3) Load 50(dvec3v) 449: 446(bvec3) Load 448(bvec3v) 450: 48(f64vec3) Select 449 445 444 451: 48(f64vec3) Load 50(dvec3v) 452: 48(f64vec3) FAdd 451 450 Store 50(dvec3v) 452 453: 53(f64vec4) Load 55(dvec4v) 454: 53(f64vec4) Load 55(dvec4v) 458: 455(bvec4) Load 457(bvec4v) 459: 53(f64vec4) Select 458 454 453 460: 53(f64vec4) Load 55(dvec4v) 461: 53(f64vec4) FAdd 460 459 Store 55(dvec4v) 461 462:39(float64_t) Load 41(doublev) 463:39(float64_t) Load 41(doublev) 464:39(float64_t) ExtInst 1(GLSL.std.450) 48(Step) 462 463 465:39(float64_t) Load 41(doublev) 466:39(float64_t) FAdd 465 464 Store 41(doublev) 466 467: 43(f64vec2) Load 45(dvec2v) 468: 43(f64vec2) Load 45(dvec2v) 469: 43(f64vec2) ExtInst 1(GLSL.std.450) 48(Step) 467 468 470: 43(f64vec2) Load 45(dvec2v) 471: 43(f64vec2) FAdd 470 469 Store 45(dvec2v) 471 472: 48(f64vec3) Load 50(dvec3v) 473: 48(f64vec3) Load 50(dvec3v) 474: 48(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 472 473 475: 48(f64vec3) Load 50(dvec3v) 476: 48(f64vec3) FAdd 475 474 Store 50(dvec3v) 476 477: 53(f64vec4) Load 55(dvec4v) 478: 53(f64vec4) Load 55(dvec4v) 479: 53(f64vec4) ExtInst 1(GLSL.std.450) 48(Step) 477 478 480: 53(f64vec4) Load 55(dvec4v) 481: 53(f64vec4) FAdd 480 479 Store 55(dvec4v) 481 482:39(float64_t) Load 41(doublev) 483: 43(f64vec2) Load 45(dvec2v) 484: 43(f64vec2) CompositeConstruct 482 482 485: 43(f64vec2) ExtInst 1(GLSL.std.450) 48(Step) 484 483 486: 43(f64vec2) Load 45(dvec2v) 487: 43(f64vec2) FAdd 486 485 Store 45(dvec2v) 487 488:39(float64_t) Load 41(doublev) 489: 48(f64vec3) Load 50(dvec3v) 490: 48(f64vec3) CompositeConstruct 488 488 488 491: 48(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 490 489 492: 48(f64vec3) Load 50(dvec3v) 493: 48(f64vec3) FAdd 492 491 Store 50(dvec3v) 493 494:39(float64_t) Load 41(doublev) 495: 53(f64vec4) Load 55(dvec4v) 496: 53(f64vec4) CompositeConstruct 494 494 494 494 497: 53(f64vec4) ExtInst 1(GLSL.std.450) 48(Step) 496 495 498: 53(f64vec4) Load 55(dvec4v) 499: 53(f64vec4) FAdd 498 497 Store 55(dvec4v) 499 500:39(float64_t) Load 41(doublev) 501:39(float64_t) Load 41(doublev) 502:39(float64_t) Load 41(doublev) 503:39(float64_t) ExtInst 1(GLSL.std.450) 49(SmoothStep) 500 501 502 504:39(float64_t) Load 41(doublev) 505:39(float64_t) FAdd 504 503 Store 41(doublev) 505 506: 43(f64vec2) Load 45(dvec2v) 507: 43(f64vec2) Load 45(dvec2v) 508: 43(f64vec2) Load 45(dvec2v) 509: 43(f64vec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 506 507 508 510: 43(f64vec2) Load 45(dvec2v) 511: 43(f64vec2) FAdd 510 509 Store 45(dvec2v) 511 512: 48(f64vec3) Load 50(dvec3v) 513: 48(f64vec3) Load 50(dvec3v) 514: 48(f64vec3) Load 50(dvec3v) 515: 48(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 512 513 514 516: 48(f64vec3) Load 50(dvec3v) 517: 48(f64vec3) FAdd 516 515 Store 50(dvec3v) 517 518: 53(f64vec4) Load 55(dvec4v) 519: 53(f64vec4) Load 55(dvec4v) 520: 53(f64vec4) Load 55(dvec4v) 521: 53(f64vec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 518 519 520 522: 53(f64vec4) Load 55(dvec4v) 523: 53(f64vec4) FAdd 522 521 Store 55(dvec4v) 523 524:39(float64_t) Load 41(doublev) 525:39(float64_t) Load 41(doublev) 526: 43(f64vec2) Load 45(dvec2v) 527: 43(f64vec2) CompositeConstruct 524 524 528: 43(f64vec2) CompositeConstruct 525 525 529: 43(f64vec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 527 528 526 530: 43(f64vec2) Load 45(dvec2v) 531: 43(f64vec2) FAdd 530 529 Store 45(dvec2v) 531 532:39(float64_t) Load 41(doublev) 533:39(float64_t) Load 41(doublev) 534: 48(f64vec3) Load 50(dvec3v) 535: 48(f64vec3) CompositeConstruct 532 532 532 536: 48(f64vec3) CompositeConstruct 533 533 533 537: 48(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 535 536 534 538: 48(f64vec3) Load 50(dvec3v) 539: 48(f64vec3) FAdd 538 537 Store 50(dvec3v) 539 540:39(float64_t) Load 41(doublev) 541:39(float64_t) Load 41(doublev) 542: 53(f64vec4) Load 55(dvec4v) 543: 53(f64vec4) CompositeConstruct 540 540 540 540 544: 53(f64vec4) CompositeConstruct 541 541 541 541 545: 53(f64vec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 543 544 542 546: 53(f64vec4) Load 55(dvec4v) 547: 53(f64vec4) FAdd 546 545 Store 55(dvec4v) 547 548:39(float64_t) Load 41(doublev) 549: 428(bool) IsNan 548 Store 430(boolv) 549 550: 43(f64vec2) Load 45(dvec2v) 551: 437(bvec2) IsNan 550 Store 439(bvec2v) 551 552: 48(f64vec3) Load 50(dvec3v) 553: 446(bvec3) IsNan 552 Store 448(bvec3v) 553 554: 53(f64vec4) Load 55(dvec4v) 555: 455(bvec4) IsNan 554 Store 457(bvec4v) 555 556: 428(bool) Load 430(boolv) SelectionMerge 559 None BranchConditional 556 558 562 558: Label 560:39(float64_t) Load 41(doublev) 561: 428(bool) IsInf 560 Store 557 561 Branch 559 562: Label Store 557 563 Branch 559 559: Label 564: 428(bool) Load 557 Store 430(boolv) 564 565: 428(bool) Load 430(boolv) SelectionMerge 568 None BranchConditional 565 567 571 567: Label 569: 43(f64vec2) Load 45(dvec2v) 570: 437(bvec2) IsInf 569 Store 566 570 Branch 568 571: Label Store 566 572 Branch 568 568: Label 573: 437(bvec2) Load 566 Store 439(bvec2v) 573 574: 428(bool) Load 430(boolv) SelectionMerge 577 None BranchConditional 574 576 580 576: Label 578: 48(f64vec3) Load 50(dvec3v) 579: 446(bvec3) IsInf 578 Store 575 579 Branch 577 580: Label Store 575 581 Branch 577 577: Label 582: 446(bvec3) Load 575 Store 448(bvec3v) 582 583: 428(bool) Load 430(boolv) SelectionMerge 586 None BranchConditional 583 585 589 585: Label 587: 53(f64vec4) Load 55(dvec4v) 588: 455(bvec4) IsInf 587 Store 584 588 Branch 586 589: Label Store 584 590 Branch 586 586: Label 591: 455(bvec4) Load 584 Store 457(bvec4v) 591 592:39(float64_t) Load 41(doublev) 593:39(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 592 594:39(float64_t) Load 41(doublev) 595:39(float64_t) FAdd 594 593 Store 41(doublev) 595 596: 43(f64vec2) Load 45(dvec2v) 597:39(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 596 598:39(float64_t) Load 41(doublev) 599:39(float64_t) FAdd 598 597 Store 41(doublev) 599 600: 48(f64vec3) Load 50(dvec3v) 601:39(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 600 602:39(float64_t) Load 41(doublev) 603:39(float64_t) FAdd 602 601 Store 41(doublev) 603 604: 53(f64vec4) Load 55(dvec4v) 605:39(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 604 606:39(float64_t) Load 41(doublev) 607:39(float64_t) FAdd 606 605 Store 41(doublev) 607 608:39(float64_t) Load 41(doublev) 609:39(float64_t) Load 41(doublev) 610:39(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 608 609 611:39(float64_t) Load 41(doublev) 612:39(float64_t) FAdd 611 610 Store 41(doublev) 612 613: 43(f64vec2) Load 45(dvec2v) 614: 43(f64vec2) Load 45(dvec2v) 615:39(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 613 614 616:39(float64_t) Load 41(doublev) 617:39(float64_t) FAdd 616 615 Store 41(doublev) 617 618: 48(f64vec3) Load 50(dvec3v) 619: 48(f64vec3) Load 50(dvec3v) 620:39(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 618 619 621:39(float64_t) Load 41(doublev) 622:39(float64_t) FAdd 621 620 Store 41(doublev) 622 623: 53(f64vec4) Load 55(dvec4v) 624: 53(f64vec4) Load 55(dvec4v) 625:39(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 623 624 626:39(float64_t) Load 41(doublev) 627:39(float64_t) FAdd 626 625 Store 41(doublev) 627 628:39(float64_t) Load 41(doublev) 629:39(float64_t) Load 41(doublev) 630:39(float64_t) FMul 628 629 631:39(float64_t) Load 41(doublev) 632:39(float64_t) FAdd 631 630 Store 41(doublev) 632 633: 43(f64vec2) Load 45(dvec2v) 634: 43(f64vec2) Load 45(dvec2v) 635:39(float64_t) Dot 633 634 636:39(float64_t) Load 41(doublev) 637:39(float64_t) FAdd 636 635 Store 41(doublev) 637 638: 48(f64vec3) Load 50(dvec3v) 639: 48(f64vec3) Load 50(dvec3v) 640:39(float64_t) Dot 638 639 641:39(float64_t) Load 41(doublev) 642:39(float64_t) FAdd 641 640 Store 41(doublev) 642 643: 53(f64vec4) Load 55(dvec4v) 644: 53(f64vec4) Load 55(dvec4v) 645:39(float64_t) Dot 643 644 646:39(float64_t) Load 41(doublev) 647:39(float64_t) FAdd 646 645 Store 41(doublev) 647 648: 48(f64vec3) Load 50(dvec3v) 649: 48(f64vec3) Load 50(dvec3v) 650: 48(f64vec3) ExtInst 1(GLSL.std.450) 68(Cross) 648 649 651: 48(f64vec3) Load 50(dvec3v) 652: 48(f64vec3) FAdd 651 650 Store 50(dvec3v) 652 653:39(float64_t) Load 41(doublev) 654:39(float64_t) ExtInst 1(GLSL.std.450) 69(Normalize) 653 655:39(float64_t) Load 41(doublev) 656:39(float64_t) FAdd 655 654 Store 41(doublev) 656 657: 43(f64vec2) Load 45(dvec2v) 658: 43(f64vec2) ExtInst 1(GLSL.std.450) 69(Normalize) 657 659: 43(f64vec2) Load 45(dvec2v) 660: 43(f64vec2) FAdd 659 658 Store 45(dvec2v) 660 661: 48(f64vec3) Load 50(dvec3v) 662: 48(f64vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 661 663: 48(f64vec3) Load 50(dvec3v) 664: 48(f64vec3) FAdd 663 662 Store 50(dvec3v) 664 665: 53(f64vec4) Load 55(dvec4v) 666: 53(f64vec4) ExtInst 1(GLSL.std.450) 69(Normalize) 665 667: 53(f64vec4) Load 55(dvec4v) 668: 53(f64vec4) FAdd 667 666 Store 55(dvec4v) 668 669:39(float64_t) Load 41(doublev) 670:39(float64_t) Load 41(doublev) 671:39(float64_t) Load 41(doublev) 672:39(float64_t) ExtInst 1(GLSL.std.450) 70(FaceForward) 669 670 671 673:39(float64_t) Load 41(doublev) 674:39(float64_t) FAdd 673 672 Store 41(doublev) 674 675: 43(f64vec2) Load 45(dvec2v) 676: 43(f64vec2) Load 45(dvec2v) 677: 43(f64vec2) Load 45(dvec2v) 678: 43(f64vec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677 679: 43(f64vec2) Load 45(dvec2v) 680: 43(f64vec2) FAdd 679 678 Store 45(dvec2v) 680 681: 48(f64vec3) Load 50(dvec3v) 682: 48(f64vec3) Load 50(dvec3v) 683: 48(f64vec3) Load 50(dvec3v) 684: 48(f64vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 681 682 683 685: 48(f64vec3) Load 50(dvec3v) 686: 48(f64vec3) FAdd 685 684 Store 50(dvec3v) 686 687: 53(f64vec4) Load 55(dvec4v) 688: 53(f64vec4) Load 55(dvec4v) 689: 53(f64vec4) Load 55(dvec4v) 690: 53(f64vec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 687 688 689 691: 53(f64vec4) Load 55(dvec4v) 692: 53(f64vec4) FAdd 691 690 Store 55(dvec4v) 692 693:39(float64_t) Load 41(doublev) 694:39(float64_t) Load 41(doublev) 695:39(float64_t) ExtInst 1(GLSL.std.450) 71(Reflect) 693 694 696:39(float64_t) Load 41(doublev) 697:39(float64_t) FAdd 696 695 Store 41(doublev) 697 698: 43(f64vec2) Load 45(dvec2v) 699: 43(f64vec2) Load 45(dvec2v) 700: 43(f64vec2) ExtInst 1(GLSL.std.450) 71(Reflect) 698 699 701: 43(f64vec2) Load 45(dvec2v) 702: 43(f64vec2) FAdd 701 700 Store 45(dvec2v) 702 703: 48(f64vec3) Load 50(dvec3v) 704: 48(f64vec3) Load 50(dvec3v) 705: 48(f64vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 703 704 706: 48(f64vec3) Load 50(dvec3v) 707: 48(f64vec3) FAdd 706 705 Store 50(dvec3v) 707 708: 53(f64vec4) Load 55(dvec4v) 709: 53(f64vec4) Load 55(dvec4v) 710: 53(f64vec4) ExtInst 1(GLSL.std.450) 71(Reflect) 708 709 711: 53(f64vec4) Load 55(dvec4v) 712: 53(f64vec4) FAdd 711 710 Store 55(dvec4v) 712 713:39(float64_t) Load 41(doublev) 714:39(float64_t) Load 41(doublev) 715:39(float64_t) Load 41(doublev) 716:39(float64_t) ExtInst 1(GLSL.std.450) 72(Refract) 713 714 715 717:39(float64_t) Load 41(doublev) 718:39(float64_t) FAdd 717 716 Store 41(doublev) 718 719: 43(f64vec2) Load 45(dvec2v) 720: 43(f64vec2) Load 45(dvec2v) 721:39(float64_t) Load 41(doublev) 722: 43(f64vec2) ExtInst 1(GLSL.std.450) 72(Refract) 719 720 721 723: 43(f64vec2) Load 45(dvec2v) 724: 43(f64vec2) FAdd 723 722 Store 45(dvec2v) 724 725: 48(f64vec3) Load 50(dvec3v) 726: 48(f64vec3) Load 50(dvec3v) 727:39(float64_t) Load 41(doublev) 728: 48(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 725 726 727 729: 48(f64vec3) Load 50(dvec3v) 730: 48(f64vec3) FAdd 729 728 Store 50(dvec3v) 730 731: 53(f64vec4) Load 55(dvec4v) 732: 53(f64vec4) Load 55(dvec4v) 733:39(float64_t) Load 41(doublev) 734: 53(f64vec4) ExtInst 1(GLSL.std.450) 72(Refract) 731 732 733 735: 53(f64vec4) Load 55(dvec4v) 736: 53(f64vec4) FAdd 735 734 Store 55(dvec4v) 736 740: 43(f64vec2) Load 45(dvec2v) 741: 43(f64vec2) Load 45(dvec2v) 742: 737 OuterProduct 740 741 Store 739(dmat2v) 742 746: 48(f64vec3) Load 50(dvec3v) 747: 48(f64vec3) Load 50(dvec3v) 748: 743 OuterProduct 746 747 Store 745(dmat3v) 748 752: 53(f64vec4) Load 55(dvec4v) 753: 53(f64vec4) Load 55(dvec4v) 754: 749 OuterProduct 752 753 Store 751(dmat4v) 754 758: 48(f64vec3) Load 50(dvec3v) 759: 43(f64vec2) Load 45(dvec2v) 760: 755 OuterProduct 758 759 Store 757(dmat2x3v) 760 764: 43(f64vec2) Load 45(dvec2v) 765: 48(f64vec3) Load 50(dvec3v) 766: 761 OuterProduct 764 765 Store 763(dmat3x2v) 766 770: 53(f64vec4) Load 55(dvec4v) 771: 43(f64vec2) Load 45(dvec2v) 772: 767 OuterProduct 770 771 Store 769(dmat2x4v) 772 776: 43(f64vec2) Load 45(dvec2v) 777: 53(f64vec4) Load 55(dvec4v) 778: 773 OuterProduct 776 777 Store 775(dmat4x2v) 778 782: 53(f64vec4) Load 55(dvec4v) 783: 48(f64vec3) Load 50(dvec3v) 784: 779 OuterProduct 782 783 Store 781(dmat3x4v) 784 788: 48(f64vec3) Load 50(dvec3v) 789: 53(f64vec4) Load 55(dvec4v) 790: 785 OuterProduct 788 789 Store 787(dmat4x3v) 790 791: 737 Load 739(dmat2v) 792: 737 Load 739(dmat2v) 793: 43(f64vec2) CompositeExtract 791 0 794: 43(f64vec2) CompositeExtract 792 0 795: 43(f64vec2) FMul 793 794 796: 43(f64vec2) CompositeExtract 791 1 797: 43(f64vec2) CompositeExtract 792 1 798: 43(f64vec2) FMul 796 797 799: 737 CompositeConstruct 795 798 800: 737 Load 739(dmat2v) 801: 737 MatrixTimesMatrix 800 799 Store 739(dmat2v) 801 802: 743 Load 745(dmat3v) 803: 743 Load 745(dmat3v) 804: 48(f64vec3) CompositeExtract 802 0 805: 48(f64vec3) CompositeExtract 803 0 806: 48(f64vec3) FMul 804 805 807: 48(f64vec3) CompositeExtract 802 1 808: 48(f64vec3) CompositeExtract 803 1 809: 48(f64vec3) FMul 807 808 810: 48(f64vec3) CompositeExtract 802 2 811: 48(f64vec3) CompositeExtract 803 2 812: 48(f64vec3) FMul 810 811 813: 743 CompositeConstruct 806 809 812 814: 743 Load 745(dmat3v) 815: 743 MatrixTimesMatrix 814 813 Store 745(dmat3v) 815 816: 749 Load 751(dmat4v) 817: 749 Load 751(dmat4v) 818: 53(f64vec4) CompositeExtract 816 0 819: 53(f64vec4) CompositeExtract 817 0 820: 53(f64vec4) FMul 818 819 821: 53(f64vec4) CompositeExtract 816 1 822: 53(f64vec4) CompositeExtract 817 1 823: 53(f64vec4) FMul 821 822 824: 53(f64vec4) CompositeExtract 816 2 825: 53(f64vec4) CompositeExtract 817 2 826: 53(f64vec4) FMul 824 825 827: 53(f64vec4) CompositeExtract 816 3 828: 53(f64vec4) CompositeExtract 817 3 829: 53(f64vec4) FMul 827 828 830: 749 CompositeConstruct 820 823 826 829 831: 749 Load 751(dmat4v) 832: 749 MatrixTimesMatrix 831 830 Store 751(dmat4v) 832 833: 755 Load 757(dmat2x3v) 834: 755 Load 757(dmat2x3v) 835: 48(f64vec3) CompositeExtract 833 0 836: 48(f64vec3) CompositeExtract 834 0 837: 48(f64vec3) FMul 835 836 838: 48(f64vec3) CompositeExtract 833 1 839: 48(f64vec3) CompositeExtract 834 1 840: 48(f64vec3) FMul 838 839 841: 755 CompositeConstruct 837 840 Store 757(dmat2x3v) 841 842: 767 Load 769(dmat2x4v) 843: 767 Load 769(dmat2x4v) 844: 53(f64vec4) CompositeExtract 842 0 845: 53(f64vec4) CompositeExtract 843 0 846: 53(f64vec4) FMul 844 845 847: 53(f64vec4) CompositeExtract 842 1 848: 53(f64vec4) CompositeExtract 843 1 849: 53(f64vec4) FMul 847 848 850: 767 CompositeConstruct 846 849 Store 769(dmat2x4v) 850 851: 761 Load 763(dmat3x2v) 852: 761 Load 763(dmat3x2v) 853: 43(f64vec2) CompositeExtract 851 0 854: 43(f64vec2) CompositeExtract 852 0 855: 43(f64vec2) FMul 853 854 856: 43(f64vec2) CompositeExtract 851 1 857: 43(f64vec2) CompositeExtract 852 1 858: 43(f64vec2) FMul 856 857 859: 43(f64vec2) CompositeExtract 851 2 860: 43(f64vec2) CompositeExtract 852 2 861: 43(f64vec2) FMul 859 860 862: 761 CompositeConstruct 855 858 861 Store 763(dmat3x2v) 862 863: 779 Load 781(dmat3x4v) 864: 779 Load 781(dmat3x4v) 865: 53(f64vec4) CompositeExtract 863 0 866: 53(f64vec4) CompositeExtract 864 0 867: 53(f64vec4) FMul 865 866 868: 53(f64vec4) CompositeExtract 863 1 869: 53(f64vec4) CompositeExtract 864 1 870: 53(f64vec4) FMul 868 869 871: 53(f64vec4) CompositeExtract 863 2 872: 53(f64vec4) CompositeExtract 864 2 873: 53(f64vec4) FMul 871 872 874: 779 CompositeConstruct 867 870 873 Store 781(dmat3x4v) 874 875: 773 Load 775(dmat4x2v) 876: 773 Load 775(dmat4x2v) 877: 43(f64vec2) CompositeExtract 875 0 878: 43(f64vec2) CompositeExtract 876 0 879: 43(f64vec2) FMul 877 878 880: 43(f64vec2) CompositeExtract 875 1 881: 43(f64vec2) CompositeExtract 876 1 882: 43(f64vec2) FMul 880 881 883: 43(f64vec2) CompositeExtract 875 2 884: 43(f64vec2) CompositeExtract 876 2 885: 43(f64vec2) FMul 883 884 886: 43(f64vec2) CompositeExtract 875 3 887: 43(f64vec2) CompositeExtract 876 3 888: 43(f64vec2) FMul 886 887 889: 773 CompositeConstruct 879 882 885 888 Store 775(dmat4x2v) 889 890: 785 Load 787(dmat4x3v) 891: 785 Load 787(dmat4x3v) 892: 48(f64vec3) CompositeExtract 890 0 893: 48(f64vec3) CompositeExtract 891 0 894: 48(f64vec3) FMul 892 893 895: 48(f64vec3) CompositeExtract 890 1 896: 48(f64vec3) CompositeExtract 891 1 897: 48(f64vec3) FMul 895 896 898: 48(f64vec3) CompositeExtract 890 2 899: 48(f64vec3) CompositeExtract 891 2 900: 48(f64vec3) FMul 898 899 901: 48(f64vec3) CompositeExtract 890 3 902: 48(f64vec3) CompositeExtract 891 3 903: 48(f64vec3) FMul 901 902 904: 785 CompositeConstruct 894 897 900 903 Store 787(dmat4x3v) 904 905: 737 Load 739(dmat2v) 906: 737 Transpose 905 907: 737 Load 739(dmat2v) 908: 737 MatrixTimesMatrix 907 906 Store 739(dmat2v) 908 909: 743 Load 745(dmat3v) 910: 743 Transpose 909 911: 743 Load 745(dmat3v) 912: 743 MatrixTimesMatrix 911 910 Store 745(dmat3v) 912 913: 749 Load 751(dmat4v) 914: 749 Transpose 913 915: 749 Load 751(dmat4v) 916: 749 MatrixTimesMatrix 915 914 Store 751(dmat4v) 916 917: 761 Load 763(dmat3x2v) 918: 755 Transpose 917 Store 757(dmat2x3v) 918 919: 755 Load 757(dmat2x3v) 920: 761 Transpose 919 Store 763(dmat3x2v) 920 921: 773 Load 775(dmat4x2v) 922: 767 Transpose 921 Store 769(dmat2x4v) 922 923: 767 Load 769(dmat2x4v) 924: 773 Transpose 923 Store 775(dmat4x2v) 924 925: 785 Load 787(dmat4x3v) 926: 779 Transpose 925 Store 781(dmat3x4v) 926 927: 779 Load 781(dmat3x4v) 928: 785 Transpose 927 Store 787(dmat4x3v) 928 929: 737 Load 739(dmat2v) 930:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 929 931:39(float64_t) Load 41(doublev) 932:39(float64_t) FAdd 931 930 Store 41(doublev) 932 933: 743 Load 745(dmat3v) 934:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 933 935:39(float64_t) Load 41(doublev) 936:39(float64_t) FAdd 935 934 Store 41(doublev) 936 937: 749 Load 751(dmat4v) 938:39(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 937 939:39(float64_t) Load 41(doublev) 940:39(float64_t) FAdd 939 938 Store 41(doublev) 940 941: 737 Load 739(dmat2v) 942: 737 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 941 943: 737 Load 739(dmat2v) 944: 737 MatrixTimesMatrix 943 942 Store 739(dmat2v) 944 945: 743 Load 745(dmat3v) 946: 743 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 945 947: 743 Load 745(dmat3v) 948: 743 MatrixTimesMatrix 947 946 Store 745(dmat3v) 948 949: 749 Load 751(dmat4v) 950: 749 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 949 951: 749 Load 751(dmat4v) 952: 749 MatrixTimesMatrix 951 950 Store 751(dmat4v) 952 953:39(float64_t) Load 41(doublev) 955: 40(ptr) AccessChain 45(dvec2v) 954 956:39(float64_t) Load 955 957:39(float64_t) FAdd 953 956 959: 40(ptr) AccessChain 50(dvec3v) 958 960:39(float64_t) Load 959 961:39(float64_t) FAdd 957 960 963: 40(ptr) AccessChain 55(dvec4v) 962 964:39(float64_t) Load 963 965:39(float64_t) FAdd 961 964 967: 40(ptr) AccessChain 739(dmat2v) 966 954 968:39(float64_t) Load 967 969:39(float64_t) FAdd 965 968 971: 40(ptr) AccessChain 745(dmat3v) 970 958 972:39(float64_t) Load 971 973:39(float64_t) FAdd 969 972 974: 40(ptr) AccessChain 751(dmat4v) 25 962 975:39(float64_t) Load 974 976:39(float64_t) FAdd 973 975 977: 40(ptr) AccessChain 757(dmat2x3v) 966 954 978:39(float64_t) Load 977 979:39(float64_t) FAdd 976 978 980: 40(ptr) AccessChain 763(dmat3x2v) 966 954 981:39(float64_t) Load 980 982:39(float64_t) FAdd 979 981 983: 40(ptr) AccessChain 781(dmat3x4v) 970 958 984:39(float64_t) Load 983 985:39(float64_t) FAdd 982 984 986: 40(ptr) AccessChain 787(dmat4x3v) 970 958 987:39(float64_t) Load 986 988:39(float64_t) FAdd 985 987 989: 40(ptr) AccessChain 769(dmat2x4v) 966 954 990:39(float64_t) Load 989 991:39(float64_t) FAdd 988 990 992: 40(ptr) AccessChain 775(dmat4x2v) 966 954 993:39(float64_t) Load 992 994:39(float64_t) FAdd 991 993 995: 428(bool) Load 430(boolv) 997: 10(float) Select 995 996 21 998:39(float64_t) FConvert 997 999:39(float64_t) FAdd 994 998 1000: 429(ptr) AccessChain 439(bvec2v) 33 1001: 428(bool) Load 1000 1002: 10(float) Select 1001 996 21 1003:39(float64_t) FConvert 1002 1004:39(float64_t) FAdd 999 1003 1005: 429(ptr) AccessChain 448(bvec3v) 33 1006: 428(bool) Load 1005 1007: 10(float) Select 1006 996 21 1008:39(float64_t) FConvert 1007 1009:39(float64_t) FAdd 1004 1008 1010: 429(ptr) AccessChain 457(bvec4v) 33 1011: 428(bool) Load 1010 1012: 10(float) Select 1011 996 21 1013:39(float64_t) FConvert 1012 1014:39(float64_t) FAdd 1009 1013 1015: 10(float) FConvert 1014 1016: 11(fvec4) Load 13(outp) 1017: 11(fvec4) VectorTimesScalar 1016 1015 Store 13(outp) 1017 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.400.tesc.out000066400000000000000000000214541360464450000215230ustar00rootroot00000000000000spv.400.tesc // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 92 Capability Tessellation Capability TessellationPointSize Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 24 41 44 47 53 67 72 78 82 83 86 87 90 91 ExecutionMode 4 OutputVertices 4 Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" Name 4 "main" Name 12 "a" Name 17 "p" Name 20 "gl_PerVertex" MemberName 20(gl_PerVertex) 0 "gl_Position" MemberName 20(gl_PerVertex) 1 "gl_PointSize" MemberName 20(gl_PerVertex) 2 "gl_ClipDistance" Name 24 "gl_in" Name 31 "ps" Name 35 "cd" Name 39 "pvi" Name 41 "gl_PatchVerticesIn" Name 43 "pid" Name 44 "gl_PrimitiveID" Name 46 "iid" Name 47 "gl_InvocationID" Name 50 "gl_PerVertex" MemberName 50(gl_PerVertex) 0 "gl_Position" MemberName 50(gl_PerVertex) 1 "gl_PointSize" MemberName 50(gl_PerVertex) 2 "gl_ClipDistance" Name 53 "gl_out" Name 67 "gl_TessLevelOuter" Name 72 "gl_TessLevelInner" Name 77 "outa" Name 78 "patchOut" Name 82 "inb" Name 83 "ind" Name 86 "ivla" Name 87 "ivlb" Name 90 "ovla" Name 91 "ovlb" MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance Decorate 20(gl_PerVertex) Block Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId Decorate 47(gl_InvocationID) BuiltIn InvocationId MemberDecorate 50(gl_PerVertex) 0 BuiltIn Position MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance Decorate 50(gl_PerVertex) Block Decorate 67(gl_TessLevelOuter) Patch Decorate 67(gl_TessLevelOuter) BuiltIn TessLevelOuter Decorate 72(gl_TessLevelInner) Patch Decorate 72(gl_TessLevelInner) BuiltIn TessLevelInner Decorate 78(patchOut) Patch Decorate 86(ivla) Location 3 Decorate 87(ivlb) Location 4 Decorate 90(ovla) Location 3 Decorate 91(ovlb) Location 4 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: 6(int) Constant 2 8: 6(int) Constant 4 9: 6(int) Constant 0 10: TypeInt 32 1 11: TypePointer Function 10(int) 13: 10(int) Constant 5392 14: TypeFloat 32 15: TypeVector 14(float) 4 16: TypePointer Function 15(fvec4) 18: 6(int) Constant 3 19: TypeArray 14(float) 18 20(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 19 21: 6(int) Constant 32 22: TypeArray 20(gl_PerVertex) 21 23: TypePointer Input 22 24(gl_in): 23(ptr) Variable Input 25: 10(int) Constant 1 26: 10(int) Constant 0 27: TypePointer Input 15(fvec4) 30: TypePointer Function 14(float) 32: TypePointer Input 14(float) 36: 10(int) Constant 2 40: TypePointer Input 10(int) 41(gl_PatchVerticesIn): 40(ptr) Variable Input 44(gl_PrimitiveID): 40(ptr) Variable Input 47(gl_InvocationID): 40(ptr) Variable Input 49: TypeArray 14(float) 7 50(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 49 51: TypeArray 50(gl_PerVertex) 8 52: TypePointer Output 51 53(gl_out): 52(ptr) Variable Output 56: TypePointer Output 15(fvec4) 60: TypePointer Output 14(float) 65: TypeArray 14(float) 8 66: TypePointer Output 65 67(gl_TessLevelOuter): 66(ptr) Variable Output 68: 10(int) Constant 3 69: 14(float) Constant 1078774989 71: TypePointer Output 49 72(gl_TessLevelInner): 71(ptr) Variable Output 73: 14(float) Constant 1067869798 75: TypeArray 10(int) 8 76: TypePointer Private 75 77(outa): 76(ptr) Variable Private 78(patchOut): 56(ptr) Variable Output 79: TypeVector 14(float) 2 80: TypeArray 79(fvec2) 21 81: TypePointer Input 80 82(inb): 81(ptr) Variable Input 83(ind): 81(ptr) Variable Input 84: TypeArray 15(fvec4) 21 85: TypePointer Input 84 86(ivla): 85(ptr) Variable Input 87(ivlb): 85(ptr) Variable Input 88: TypeArray 15(fvec4) 8 89: TypePointer Output 88 90(ovla): 89(ptr) Variable Output 91(ovlb): 89(ptr) Variable Output 4(main): 2 Function None 3 5: Label 12(a): 11(ptr) Variable Function 17(p): 16(ptr) Variable Function 31(ps): 30(ptr) Variable Function 35(cd): 30(ptr) Variable Function 39(pvi): 11(ptr) Variable Function 43(pid): 11(ptr) Variable Function 46(iid): 11(ptr) Variable Function ControlBarrier 7 8 9 Store 12(a) 13 28: 27(ptr) AccessChain 24(gl_in) 25 26 29: 15(fvec4) Load 28 Store 17(p) 29 33: 32(ptr) AccessChain 24(gl_in) 25 25 34: 14(float) Load 33 Store 31(ps) 34 37: 32(ptr) AccessChain 24(gl_in) 25 36 36 38: 14(float) Load 37 Store 35(cd) 38 42: 10(int) Load 41(gl_PatchVerticesIn) Store 39(pvi) 42 45: 10(int) Load 44(gl_PrimitiveID) Store 43(pid) 45 48: 10(int) Load 47(gl_InvocationID) Store 46(iid) 48 54: 10(int) Load 47(gl_InvocationID) 55: 15(fvec4) Load 17(p) 57: 56(ptr) AccessChain 53(gl_out) 54 26 Store 57 55 58: 10(int) Load 47(gl_InvocationID) 59: 14(float) Load 31(ps) 61: 60(ptr) AccessChain 53(gl_out) 58 25 Store 61 59 62: 10(int) Load 47(gl_InvocationID) 63: 14(float) Load 35(cd) 64: 60(ptr) AccessChain 53(gl_out) 62 36 25 Store 64 63 70: 60(ptr) AccessChain 67(gl_TessLevelOuter) 68 Store 70 69 74: 60(ptr) AccessChain 72(gl_TessLevelInner) 25 Store 74 73 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.400.tese.out000066400000000000000000000226501360464450000215240ustar00rootroot00000000000000spv.400.tese // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 96 Capability Tessellation Capability TessellationPointSize Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationEvaluation 4 "main" 21 38 41 47 53 61 66 75 79 80 84 88 91 92 95 ExecutionMode 4 Triangles ExecutionMode 4 SpacingFractionalOdd ExecutionMode 4 VertexOrderCcw ExecutionMode 4 PointMode Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" Name 4 "main" Name 8 "a" Name 13 "p" Name 17 "gl_PerVertex" MemberName 17(gl_PerVertex) 0 "gl_Position" MemberName 17(gl_PerVertex) 1 "gl_PointSize" MemberName 17(gl_PerVertex) 2 "gl_ClipDistance" Name 21 "gl_in" Name 28 "ps" Name 32 "cd" Name 36 "pvi" Name 38 "gl_PatchVerticesIn" Name 40 "pid" Name 41 "gl_PrimitiveID" Name 45 "tc" Name 47 "gl_TessCoord" Name 49 "tlo" Name 53 "gl_TessLevelOuter" Name 57 "tli" Name 61 "gl_TessLevelInner" Name 64 "gl_PerVertex" MemberName 64(gl_PerVertex) 0 "gl_Position" MemberName 64(gl_PerVertex) 1 "gl_PointSize" MemberName 64(gl_PerVertex) 2 "gl_ClipDistance" Name 66 "" Name 75 "patchIn" Name 79 "inb" Name 80 "ind" Name 81 "testblb" MemberName 81(testblb) 0 "f" Name 84 "blb" Name 85 "testbld" MemberName 85(testbld) 0 "f" Name 88 "bld" Name 91 "ivla" Name 92 "ivlb" Name 95 "ovla" MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position MemberDecorate 17(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 17(gl_PerVertex) 2 BuiltIn ClipDistance Decorate 17(gl_PerVertex) Block Decorate 38(gl_PatchVerticesIn) BuiltIn PatchVertices Decorate 41(gl_PrimitiveID) BuiltIn PrimitiveId Decorate 47(gl_TessCoord) BuiltIn TessCoord Decorate 53(gl_TessLevelOuter) Patch Decorate 53(gl_TessLevelOuter) BuiltIn TessLevelOuter Decorate 61(gl_TessLevelInner) Patch Decorate 61(gl_TessLevelInner) BuiltIn TessLevelInner MemberDecorate 64(gl_PerVertex) 0 BuiltIn Position MemberDecorate 64(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 64(gl_PerVertex) 2 BuiltIn ClipDistance Decorate 64(gl_PerVertex) Block Decorate 75(patchIn) Patch Decorate 81(testblb) Block Decorate 85(testbld) Block Decorate 91(ivla) Location 23 Decorate 92(ivlb) Location 24 Decorate 95(ovla) Location 23 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 9: 6(int) Constant 1512 10: TypeFloat 32 11: TypeVector 10(float) 4 12: TypePointer Function 11(fvec4) 14: TypeInt 32 0 15: 14(int) Constant 3 16: TypeArray 10(float) 15 17(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16 18: 14(int) Constant 32 19: TypeArray 17(gl_PerVertex) 18 20: TypePointer Input 19 21(gl_in): 20(ptr) Variable Input 22: 6(int) Constant 1 23: 6(int) Constant 0 24: TypePointer Input 11(fvec4) 27: TypePointer Function 10(float) 29: TypePointer Input 10(float) 33: 6(int) Constant 2 37: TypePointer Input 6(int) 38(gl_PatchVerticesIn): 37(ptr) Variable Input 41(gl_PrimitiveID): 37(ptr) Variable Input 43: TypeVector 10(float) 3 44: TypePointer Function 43(fvec3) 46: TypePointer Input 43(fvec3) 47(gl_TessCoord): 46(ptr) Variable Input 50: 14(int) Constant 4 51: TypeArray 10(float) 50 52: TypePointer Input 51 53(gl_TessLevelOuter): 52(ptr) Variable Input 54: 6(int) Constant 3 58: 14(int) Constant 2 59: TypeArray 10(float) 58 60: TypePointer Input 59 61(gl_TessLevelInner): 60(ptr) Variable Input 64(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16 65: TypePointer Output 64(gl_PerVertex) 66: 65(ptr) Variable Output 68: TypePointer Output 11(fvec4) 71: TypePointer Output 10(float) 75(patchIn): 24(ptr) Variable Input 76: TypeVector 10(float) 2 77: TypeArray 76(fvec2) 18 78: TypePointer Input 77 79(inb): 78(ptr) Variable Input 80(ind): 78(ptr) Variable Input 81(testblb): TypeStruct 6(int) 82: TypeArray 81(testblb) 18 83: TypePointer Input 82 84(blb): 83(ptr) Variable Input 85(testbld): TypeStruct 6(int) 86: TypeArray 85(testbld) 18 87: TypePointer Input 86 88(bld): 87(ptr) Variable Input 89: TypeArray 11(fvec4) 18 90: TypePointer Input 89 91(ivla): 90(ptr) Variable Input 92(ivlb): 90(ptr) Variable Input 93: TypeArray 11(fvec4) 58 94: TypePointer Output 93 95(ovla): 94(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(a): 7(ptr) Variable Function 13(p): 12(ptr) Variable Function 28(ps): 27(ptr) Variable Function 32(cd): 27(ptr) Variable Function 36(pvi): 7(ptr) Variable Function 40(pid): 7(ptr) Variable Function 45(tc): 44(ptr) Variable Function 49(tlo): 27(ptr) Variable Function 57(tli): 27(ptr) Variable Function Store 8(a) 9 25: 24(ptr) AccessChain 21(gl_in) 22 23 26: 11(fvec4) Load 25 Store 13(p) 26 30: 29(ptr) AccessChain 21(gl_in) 22 22 31: 10(float) Load 30 Store 28(ps) 31 34: 29(ptr) AccessChain 21(gl_in) 22 33 33 35: 10(float) Load 34 Store 32(cd) 35 39: 6(int) Load 38(gl_PatchVerticesIn) Store 36(pvi) 39 42: 6(int) Load 41(gl_PrimitiveID) Store 40(pid) 42 48: 43(fvec3) Load 47(gl_TessCoord) Store 45(tc) 48 55: 29(ptr) AccessChain 53(gl_TessLevelOuter) 54 56: 10(float) Load 55 Store 49(tlo) 56 62: 29(ptr) AccessChain 61(gl_TessLevelInner) 22 63: 10(float) Load 62 Store 57(tli) 63 67: 11(fvec4) Load 13(p) 69: 68(ptr) AccessChain 66 23 Store 69 67 70: 10(float) Load 28(ps) 72: 71(ptr) AccessChain 66 22 Store 72 70 73: 10(float) Load 32(cd) 74: 71(ptr) AccessChain 66 33 33 Store 74 73 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.420.geom.out000066400000000000000000000144731360464450000215210ustar00rootroot00000000000000spv.420.geom // Module Version 10000 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.430.frag.out000066400000000000000000000043711360464450000215060ustar00rootroot00000000000000spv.430.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader Capability Geometry Capability MultiViewport 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 9 14 19 ExecutionMode 4 OriginUpperLeft Source GLSL 430 Name 4 "main" Name 9 "color" Name 14 "gl_Layer" Name 19 "gl_ViewportIndex" Decorate 14(gl_Layer) Flat Decorate 14(gl_Layer) BuiltIn Layer Decorate 19(gl_ViewportIndex) Flat Decorate 19(gl_ViewportIndex) BuiltIn ViewportIndex 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Output 7(fvec4) 9(color): 8(ptr) Variable Output 10: 6(float) Constant 1065353216 11: 7(fvec4) ConstantComposite 10 10 10 10 12: TypeInt 32 1 13: TypePointer Input 12(int) 14(gl_Layer): 13(ptr) Variable Input 19(gl_ViewportIndex): 13(ptr) Variable Input 4(main): 2 Function None 3 5: Label Store 9(color) 11 15: 12(int) Load 14(gl_Layer) 16: 6(float) ConvertSToF 15 17: 7(fvec4) Load 9(color) 18: 7(fvec4) VectorTimesScalar 17 16 Store 9(color) 18 20: 12(int) Load 19(gl_ViewportIndex) 21: 6(float) ConvertSToF 20 22: 7(fvec4) Load 9(color) 23: 7(fvec4) VectorTimesScalar 22 21 Store 9(color) 23 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.430.vert.out000066400000000000000000000155121360464450000215460ustar00rootroot00000000000000spv.430.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 66 Capability Shader Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 12 23 34 38 41 42 62 65 Source GLSL 450 Name 4 "main" Name 10 "gl_PerVertex" MemberName 10(gl_PerVertex) 0 "gl_ClipDistance" Name 12 "" Name 23 "bad" Name 34 "badorder3" Name 38 "f" Name 41 "badorder" Name 42 "badorder2" Name 43 "boundblock" MemberName 43(boundblock) 0 "aoeu" Name 45 "boundInst" Name 46 "anonblock" MemberName 46(anonblock) 0 "aoeu" Name 48 "" Name 52 "sampb1" Name 55 "sampb2" Name 56 "sampb4" Name 59 "S" MemberName 59(S) 0 "a" MemberName 59(S) 1 "b" MemberName 59(S) 2 "c" Name 60 "SS" MemberName 60(SS) 0 "b" MemberName 60(SS) 1 "s" MemberName 60(SS) 2 "c" Name 62 "var" Name 63 "MS" MemberName 63(MS) 0 "f" Name 65 "outMS" MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance Decorate 10(gl_PerVertex) Block Decorate 34(badorder3) Flat Decorate 42(badorder2) Invariant MemberDecorate 43(boundblock) 0 Offset 0 Decorate 43(boundblock) Block Decorate 45(boundInst) DescriptorSet 0 Decorate 45(boundInst) Binding 3 MemberDecorate 46(anonblock) 0 Offset 0 Decorate 46(anonblock) Block Decorate 48 DescriptorSet 0 Decorate 48 Binding 7 Decorate 52(sampb1) DescriptorSet 0 Decorate 52(sampb1) Binding 4 Decorate 55(sampb2) DescriptorSet 0 Decorate 55(sampb2) Binding 5 Decorate 56(sampb4) DescriptorSet 0 Decorate 56(sampb4) Binding 31 MemberDecorate 59(S) 0 RelaxedPrecision Decorate 62(var) Flat Decorate 62(var) Location 0 MemberDecorate 63(MS) 0 Location 17 Decorate 63(MS) Block 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeInt 32 0 8: 7(int) Constant 3 9: TypeArray 6(float) 8 10(gl_PerVertex): TypeStruct 9 11: TypePointer Output 10(gl_PerVertex) 12: 11(ptr) Variable Output 13: TypeInt 32 1 14: 13(int) Constant 0 15: 13(int) Constant 2 16: 6(float) Constant 1080872141 17: TypePointer Output 6(float) 19: TypeVector 6(float) 4 20: 7(int) Constant 10 21: TypeArray 19(fvec4) 20 22: TypePointer Input 21 23(bad): 22(ptr) Variable Input 24: 7(int) Constant 0 25: TypePointer Input 6(float) 28: 6(float) Constant 1082549862 29: TypeBool 33: TypePointer Output 19(fvec4) 34(badorder3): 33(ptr) Variable Output 35: TypePointer Input 19(fvec4) 38(f): 25(ptr) Variable Input 41(badorder): 35(ptr) Variable Input 42(badorder2): 33(ptr) Variable Output 43(boundblock): TypeStruct 13(int) 44: TypePointer Uniform 43(boundblock) 45(boundInst): 44(ptr) Variable Uniform 46(anonblock): TypeStruct 13(int) 47: TypePointer Uniform 46(anonblock) 48: 47(ptr) Variable Uniform 49: TypeImage 6(float) 2D sampled format:Unknown 50: TypeSampledImage 49 51: TypePointer UniformConstant 50 52(sampb1): 51(ptr) Variable UniformConstant 53: TypeArray 50 20 54: TypePointer UniformConstant 53 55(sampb2): 54(ptr) Variable UniformConstant 56(sampb4): 51(ptr) Variable UniformConstant 57: TypeVector 7(int) 2 58: TypeVector 6(float) 3 59(S): TypeStruct 6(float) 57(ivec2) 58(fvec3) 60(SS): TypeStruct 19(fvec4) 59(S) 19(fvec4) 61: TypePointer Output 60(SS) 62(var): 61(ptr) Variable Output 63(MS): TypeStruct 6(float) 64: TypePointer Output 63(MS) 65(outMS): 64(ptr) Variable Output 4(main): 2 Function None 3 5: Label 18: 17(ptr) AccessChain 12 14 15 Store 18 16 26: 25(ptr) AccessChain 23(bad) 14 24 27: 6(float) Load 26 30: 29(bool) FOrdEqual 27 28 SelectionMerge 32 None BranchConditional 30 31 32 31: Label 36: 35(ptr) AccessChain 23(bad) 14 37: 19(fvec4) Load 36 Store 34(badorder3) 37 Branch 32 32: Label 39: 6(float) Load 38(f) 40: 17(ptr) AccessChain 12 14 14 Store 40 39 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.450.geom.out000066400000000000000000000103071360464450000215140ustar00rootroot00000000000000spv.450.geom // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.450.noRedecl.tesc.out000066400000000000000000000046271360464450000232650ustar00rootroot00000000000000spv.450.noRedecl.tesc // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 21 Capability Tessellation Capability TessellationPointSize 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 15 20 ExecutionMode 4 OutputVertices 4 Source GLSL 450 Name 4 "main" Name 11 "gl_PerVertex" MemberName 11(gl_PerVertex) 0 "gl_Position" MemberName 11(gl_PerVertex) 1 "gl_PointSize" MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" MemberName 11(gl_PerVertex) 3 "gl_CullDistance" Name 15 "gl_in" Name 20 "patchOut" MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance Decorate 11(gl_PerVertex) Block Decorate 20(patchOut) Patch 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeInt 32 0 9: 8(int) Constant 1 10: TypeArray 6(float) 9 11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 12: 8(int) Constant 32 13: TypeArray 11(gl_PerVertex) 12 14: TypePointer Input 13 15(gl_in): 14(ptr) Variable Input 16: TypeInt 32 1 17: 16(int) Constant 0 18: 16(int) Constant 1 19: TypePointer Output 7(fvec4) 20(patchOut): 19(ptr) Variable Output 4(main): 2 Function None 3 5: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.450.tesc.out000066400000000000000000000153041360464450000215250ustar00rootroot00000000000000spv.450.tesc // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 45 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 15 18 25 32 38 41 44 ExecutionMode 4 OutputVertices 4 Source GLSL 450 Name 4 "main" Name 11 "gl_PerVertex" MemberName 11(gl_PerVertex) 0 "gl_Position" MemberName 11(gl_PerVertex) 1 "gl_PointSize" MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" MemberName 11(gl_PerVertex) 3 "gl_CullDistance" Name 15 "gl_out" Name 18 "gl_InvocationID" Name 21 "gl_PerVertex" MemberName 21(gl_PerVertex) 0 "gl_Position" MemberName 21(gl_PerVertex) 1 "gl_PointSize" MemberName 21(gl_PerVertex) 2 "gl_ClipDistance" MemberName 21(gl_PerVertex) 3 "gl_CullDistance" Name 25 "gl_in" Name 32 "patchOut" Name 33 "S" MemberName 33(S) 0 "sMem1" MemberName 33(S) 1 "sMem2" Name 34 "TheBlock" MemberName 34(TheBlock) 0 "bMem1" MemberName 34(TheBlock) 1 "bMem2" MemberName 34(TheBlock) 2 "s" Name 38 "tcBlock" Name 39 "SingleBlock" MemberName 39(SingleBlock) 0 "bMem1" MemberName 39(SingleBlock) 1 "bMem2" MemberName 39(SingleBlock) 2 "s" Name 41 "singleBlock" Name 42 "bn" MemberName 42(bn) 0 "v1" MemberName 42(bn) 1 "v2" MemberName 42(bn) 2 "v3" Name 44 "" MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance Decorate 11(gl_PerVertex) Block Decorate 18(gl_InvocationID) BuiltIn InvocationId MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance Decorate 21(gl_PerVertex) Block Decorate 32(patchOut) Patch Decorate 32(patchOut) Location 1 MemberDecorate 34(TheBlock) 0 Patch MemberDecorate 34(TheBlock) 1 Patch MemberDecorate 34(TheBlock) 2 Patch Decorate 34(TheBlock) Block Decorate 38(tcBlock) Location 12 MemberDecorate 39(SingleBlock) 0 Patch MemberDecorate 39(SingleBlock) 1 Patch MemberDecorate 39(SingleBlock) 2 Patch Decorate 39(SingleBlock) Block Decorate 41(singleBlock) Location 2 MemberDecorate 42(bn) 0 Patch MemberDecorate 42(bn) 0 Location 20 MemberDecorate 42(bn) 1 Patch MemberDecorate 42(bn) 1 Location 24 MemberDecorate 42(bn) 2 Patch MemberDecorate 42(bn) 2 Location 25 Decorate 42(bn) Block 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeInt 32 0 9: 8(int) Constant 1 10: TypeArray 6(float) 9 11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 12: 8(int) Constant 4 13: TypeArray 11(gl_PerVertex) 12 14: TypePointer Output 13 15(gl_out): 14(ptr) Variable Output 16: TypeInt 32 1 17: TypePointer Input 16(int) 18(gl_InvocationID): 17(ptr) Variable Input 20: 16(int) Constant 0 21(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 22: 8(int) Constant 32 23: TypeArray 21(gl_PerVertex) 22 24: TypePointer Input 23 25(gl_in): 24(ptr) Variable Input 27: TypePointer Input 7(fvec4) 30: TypePointer Output 7(fvec4) 32(patchOut): 30(ptr) Variable Output 33(S): TypeStruct 6(float) 6(float) 34(TheBlock): TypeStruct 6(float) 6(float) 33(S) 35: 8(int) Constant 2 36: TypeArray 34(TheBlock) 35 37: TypePointer Output 36 38(tcBlock): 37(ptr) Variable Output 39(SingleBlock): TypeStruct 6(float) 6(float) 33(S) 40: TypePointer Output 39(SingleBlock) 41(singleBlock): 40(ptr) Variable Output 42(bn): TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 43: TypePointer Output 42(bn) 44: 43(ptr) Variable Output 4(main): 2 Function None 3 5: Label 19: 16(int) Load 18(gl_InvocationID) 26: 16(int) Load 18(gl_InvocationID) 28: 27(ptr) AccessChain 25(gl_in) 26 20 29: 7(fvec4) Load 28 31: 30(ptr) AccessChain 15(gl_out) 19 20 Store 31 29 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.460.comp.out000066400000000000000000000026421360464450000215270ustar00rootroot00000000000000spv.460.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.460.frag.out000066400000000000000000000045501360464450000215100ustar00rootroot00000000000000spv.460.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 32 Capability Shader Capability AtomicStorage Capability AtomicStorageOps Extension "SPV_KHR_shader_atomic_counter_ops" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Source GLSL 460 Name 4 "main" Name 8 "aui" Name 10 "ui" Decorate 8(aui) Offset 0 Decorate 8(aui) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer AtomicCounter 6(int) 8(aui): 7(ptr) Variable AtomicCounter 9: TypePointer Private 6(int) 10(ui): 9(ptr) Variable Private 12: 6(int) Constant 1 13: 6(int) Constant 0 4(main): 2 Function None 3 5: Label 11: 6(int) Load 10(ui) 14: 6(int) AtomicIAdd 8(aui) 12 13 11 15: 6(int) Load 10(ui) 16: 6(int) AtomicISub 8(aui) 12 13 15 17: 6(int) Load 10(ui) 18: 6(int) AtomicUMin 8(aui) 12 13 17 19: 6(int) Load 10(ui) 20: 6(int) AtomicUMax 8(aui) 12 13 19 21: 6(int) Load 10(ui) 22: 6(int) AtomicAnd 8(aui) 12 13 21 23: 6(int) Load 10(ui) 24: 6(int) AtomicOr 8(aui) 12 13 23 25: 6(int) Load 10(ui) 26: 6(int) AtomicXor 8(aui) 12 13 25 27: 6(int) Load 10(ui) 28: 6(int) AtomicExchange 8(aui) 12 13 27 29: 6(int) Load 10(ui) 30: 6(int) Load 10(ui) 31: 6(int) AtomicCompareExchange 8(aui) 12 13 13 30 29 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.460.vert.out000066400000000000000000000042421360464450000215470ustar00rootroot00000000000000spv.460.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.8bit-16bit-construction.frag.out000066400000000000000000000077031360464450000255230ustar00rootroot00000000000000spv.8bit-16bit-construction.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.8bitstorage-int.frag.out000066400000000000000000000421741360464450000242260ustar00rootroot00000000000000spv.8bitstorage-int.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 0 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 0 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 0 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 glslang-8.13.3559/Test/baseResults/spv.8bitstorage-ssbo.vert.out000066400000000000000000000053431360464450000244400ustar00rootroot00000000000000spv.8bitstorage-ssbo.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.8bitstorage-ubo.vert.out000066400000000000000000000052741360464450000242620ustar00rootroot00000000000000spv.8bitstorage-ubo.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.8bitstorage-uint.frag.out000066400000000000000000000423111360464450000244040ustar00rootroot00000000000000spv.8bitstorage-uint.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 0 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 0 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 0 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 glslang-8.13.3559/Test/baseResults/spv.8bitstorage_Error-int.frag.out000066400000000000000000000131771360464450000254000ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.8bitstorage_Error-uint.frag.out000066400000000000000000000132121360464450000255530ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.AnyHitShader.rahit.out000066400000000000000000000207211360464450000237100ustar00rootroot00000000000000spv.AnyHitShader.rahit // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 81 Capability RayTracingNV Extension "SPV_NV_ray_tracing" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint AnyHitNV 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 LaunchIdNV Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId Decorate 23(gl_InstanceID) BuiltIn InstanceId Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexNV Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginNV Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionNV Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginNV Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionNV Decorate 47(gl_RayTminNV) BuiltIn RayTminNV Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxNV Decorate 53(gl_HitTNV) BuiltIn HitTNV Decorate 58(gl_HitKindNV) BuiltIn HitKindNV Decorate 64(gl_ObjectToWorldNV) BuiltIn ObjectToWorldNV Decorate 67(gl_WorldToObjectNV) BuiltIn WorldToObjectNV 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 IncomingRayPayloadNV 69(fvec4) 71(incomingPayload): 70(ptr) Variable IncomingRayPayloadNV 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 glslang-8.13.3559/Test/baseResults/spv.AnyHitShader_Errors.rahit.out000066400000000000000000000005601360464450000252430ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.AofA.frag.out000066400000000000000000000161131360464450000220030ustar00rootroot00000000000000spv.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): 80008 // Id's are bound by 104 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 39 44 68 70 72 78 ExecutionMode 4 OriginUpperLeft Source GLSL 430 Name 4 "main" Name 17 "foo(f1[5][7];" Name 16 "a" Name 20 "r" Name 39 "outfloat" Name 42 "g4" Name 44 "g5" Name 45 "param" Name 48 "u" Name 52 "param" Name 66 "many" Name 68 "i" Name 70 "j" Name 72 "k" Name 78 "infloat" Name 94 "uAofA" MemberName 94(uAofA) 0 "f" Name 98 "nameAofA" Decorate 68(i) Flat Decorate 70(j) Flat Decorate 72(k) Flat Decorate 92 ArrayStride 16 Decorate 93 ArrayStride 64 MemberDecorate 94(uAofA) 0 Offset 0 Decorate 94(uAofA) Block Decorate 98(nameAofA) DescriptorSet 0 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 glslang-8.13.3559/Test/baseResults/spv.ClosestHitShader.rchit.out000066400000000000000000000216051360464450000246010ustar00rootroot00000000000000spv.ClosestHitShader.rchit // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 88 Capability RayTracingNV Extension "SPV_NV_ray_tracing" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint ClosestHitNV 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 LaunchIdNV Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId Decorate 23(gl_InstanceID) BuiltIn InstanceId Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexNV Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginNV Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionNV Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginNV Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionNV Decorate 47(gl_RayTminNV) BuiltIn RayTminNV Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxNV Decorate 53(gl_HitTNV) BuiltIn HitTNV Decorate 58(gl_HitKindNV) BuiltIn HitKindNV Decorate 64(gl_ObjectToWorldNV) BuiltIn ObjectToWorldNV Decorate 67(gl_WorldToObjectNV) BuiltIn WorldToObjectNV 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: TypeAccelerationStructureNV 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 RayPayloadNV 83(fvec4) 85(localPayload): 84(ptr) Variable RayPayloadNV 86: TypePointer IncomingRayPayloadNV 83(fvec4) 87(incomingPayload): 86(ptr) Variable IncomingRayPayloadNV 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 glslang-8.13.3559/Test/baseResults/spv.ClosestHitShader_Errors.rchit.out000066400000000000000000000007101360464450000261270ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.GeometryShaderPassthrough.geom.out000066400000000000000000000044421360464450000263610ustar00rootroot00000000000000spv.GeometryShaderPassthrough.geom // Module Version 10000 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.IntersectShader.rint.out000066400000000000000000000163241360464450000243250ustar00rootroot00000000000000spv.IntersectShader.rint // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 71 Capability RayTracingNV Extension "SPV_NV_ray_tracing" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint IntersectionNV 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 LaunchIdNV Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId Decorate 23(gl_InstanceID) BuiltIn InstanceId Decorate 26(gl_InstanceCustomIndexNV) BuiltIn InstanceCustomIndexNV Decorate 33(gl_WorldRayOriginNV) BuiltIn WorldRayOriginNV Decorate 36(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionNV Decorate 39(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginNV Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionNV Decorate 47(gl_RayTminNV) BuiltIn RayTminNV Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxNV Decorate 56(gl_ObjectToWorldNV) BuiltIn ObjectToWorldNV Decorate 59(gl_WorldToObjectNV) BuiltIn WorldToObjectNV 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 HitAttributeNV 61(fvec4) 63(iAttr): 62(ptr) Variable HitAttributeNV 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) ReportIntersectionNV 64 68 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.IntersectShader_Errors.rint.out000066400000000000000000000006731360464450000256610ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.MissShader.rmiss.out000066400000000000000000000135601360464450000234600ustar00rootroot00000000000000spv.MissShader.rmiss // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 60 Capability RayTracingNV Extension "SPV_NV_ray_tracing" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint MissNV 4 "main" 11 14 21 24 27 30 35 38 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 26 "v4" Name 27 "gl_ObjectRayOriginNV" Name 29 "v5" Name 30 "gl_ObjectRayDirectionNV" Name 33 "v6" Name 35 "gl_RayTminNV" Name 37 "v7" Name 38 "gl_RayTmaxNV" Name 42 "accNV" Name 57 "localPayload" Name 59 "incomingPayload" Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdNV Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV Decorate 21(gl_WorldRayOriginNV) BuiltIn WorldRayOriginNV Decorate 24(gl_WorldRayDirectionNV) BuiltIn WorldRayDirectionNV Decorate 27(gl_ObjectRayOriginNV) BuiltIn ObjectRayOriginNV Decorate 30(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionNV Decorate 35(gl_RayTminNV) BuiltIn RayTminNV Decorate 38(gl_RayTmaxNV) BuiltIn RayTmaxNV Decorate 42(accNV) DescriptorSet 0 Decorate 42(accNV) Binding 0 Decorate 57(localPayload) Location 0 Decorate 59(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 27(gl_ObjectRayOriginNV): 20(ptr) Variable Input 30(gl_ObjectRayDirectionNV): 20(ptr) Variable Input 32: TypePointer Function 16(float) 34: TypePointer Input 16(float) 35(gl_RayTminNV): 34(ptr) Variable Input 38(gl_RayTmaxNV): 34(ptr) Variable Input 40: TypeAccelerationStructureNV 41: TypePointer UniformConstant 40 42(accNV): 41(ptr) Variable UniformConstant 44: 6(int) Constant 0 45: 6(int) Constant 1 46: 6(int) Constant 2 47: 6(int) Constant 3 48: 16(float) Constant 1056964608 49: 17(fvec3) ConstantComposite 48 48 48 50: 16(float) Constant 1065353216 51: 17(fvec3) ConstantComposite 50 50 50 52: 16(float) Constant 1061158912 53: TypeInt 32 1 54: 53(int) Constant 1 55: TypeVector 16(float) 4 56: TypePointer RayPayloadNV 55(fvec4) 57(localPayload): 56(ptr) Variable RayPayloadNV 58: TypePointer IncomingRayPayloadNV 55(fvec4) 59(incomingPayload): 58(ptr) Variable IncomingRayPayloadNV 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 26(v4): 18(ptr) Variable Function 29(v5): 18(ptr) Variable Function 33(v6): 32(ptr) Variable Function 37(v7): 32(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 28: 17(fvec3) Load 27(gl_ObjectRayOriginNV) Store 26(v4) 28 31: 17(fvec3) Load 30(gl_ObjectRayDirectionNV) Store 29(v5) 31 36: 16(float) Load 35(gl_RayTminNV) Store 33(v6) 36 39: 16(float) Load 38(gl_RayTmaxNV) Store 37(v7) 39 43: 40 Load 42(accNV) TraceNV 43 44 45 46 47 44 49 48 51 52 54 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.MissShader_Errors.rmiss.out000066400000000000000000000023371360464450000250140ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.OVR_multiview.vert.out000066400000000000000000000056261360464450000240200ustar00rootroot00000000000000spv.OVR_multiview.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.Operations.frag.out000066400000000000000000000777301360464450000233340ustar00rootroot00000000000000spv.Operations.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 532 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 11 22 212 288 485 526 531 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "v" Name 11 "uv4" Name 20 "i" Name 22 "ui" Name 181 "ub41" Name 188 "f" Name 212 "uf" Name 285 "u" Name 288 "uui" Name 305 "b" Name 342 "ub42" Name 485 "FragColor" Name 503 "m1" Name 510 "m2" Name 526 "uiv4" Name 528 "ub" Name 531 "uuv4" Decorate 22(ui) Flat Decorate 288(uui) Flat Decorate 526(uiv4) Flat Decorate 531(uuv4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypePointer Input 7(fvec4) 11(uv4): 10(ptr) Variable Input 18: TypeInt 32 1 19: TypePointer Function 18(int) 21: TypePointer Input 18(int) 22(ui): 21(ptr) Variable Input 141: TypeInt 32 0 142: 141(int) Constant 0 143: TypePointer Function 6(float) 178: TypeBool 179: TypeVector 178(bool) 4 180: TypePointer Private 179(bvec4) 181(ub41): 180(ptr) Variable Private 211: TypePointer Input 6(float) 212(uf): 211(ptr) Variable Input 284: TypePointer Function 141(int) 287: TypePointer Input 141(int) 288(uui): 287(ptr) Variable Input 304: TypePointer Function 178(bool) 342(ub42): 180(ptr) Variable Private 398: 18(int) Constant 2 405: 18(int) Constant 1 435: TypeVector 6(float) 3 454: 6(float) Constant 1073741824 461: 6(float) Constant 1065353216 466: 18(int) Constant 66 472: 18(int) Constant 17 484: TypePointer Output 7(fvec4) 485(FragColor): 484(ptr) Variable Output 501: TypeMatrix 7(fvec4) 4 502: TypePointer Function 501 504: 6(float) Constant 0 505: 7(fvec4) ConstantComposite 461 504 504 504 506: 7(fvec4) ConstantComposite 504 461 504 504 507: 7(fvec4) ConstantComposite 504 504 461 504 508: 7(fvec4) ConstantComposite 504 504 504 461 509: 501 ConstantComposite 505 506 507 508 511: 7(fvec4) ConstantComposite 504 504 504 504 512: 501 ConstantComposite 511 511 511 511 524: TypeVector 18(int) 4 525: TypePointer Input 524(ivec4) 526(uiv4): 525(ptr) Variable Input 527: TypePointer Private 178(bool) 528(ub): 527(ptr) Variable Private 529: TypeVector 141(int) 4 530: TypePointer Input 529(ivec4) 531(uuv4): 530(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(v): 8(ptr) Variable Function 20(i): 19(ptr) Variable Function 188(f): 143(ptr) Variable Function 285(u): 284(ptr) Variable Function 305(b): 304(ptr) Variable Function 487: 8(ptr) Variable Function 503(m1): 502(ptr) Variable Function 510(m2): 502(ptr) Variable Function 514: 502(ptr) Variable Function 12: 7(fvec4) Load 11(uv4) 13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12 Store 9(v) 13 14: 7(fvec4) Load 9(v) 15: 7(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 14 16: 7(fvec4) Load 9(v) 17: 7(fvec4) FAdd 16 15 Store 9(v) 17 23: 18(int) Load 22(ui) 24: 18(int) Load 22(ui) 25: 18(int) IMul 23 24 Store 20(i) 25 26: 7(fvec4) Load 9(v) 27: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 26 28: 7(fvec4) Load 9(v) 29: 7(fvec4) FAdd 28 27 Store 9(v) 29 30: 7(fvec4) Load 9(v) 31: 7(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 30 32: 7(fvec4) Load 9(v) 33: 7(fvec4) FAdd 32 31 Store 9(v) 33 34: 7(fvec4) Load 9(v) 35: 7(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 34 36: 7(fvec4) Load 9(v) 37: 7(fvec4) FAdd 36 35 Store 9(v) 37 38: 7(fvec4) Load 9(v) 39: 7(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 38 40: 7(fvec4) Load 9(v) 41: 7(fvec4) FAdd 40 39 Store 9(v) 41 42: 7(fvec4) Load 9(v) 43: 7(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 42 44: 7(fvec4) Load 9(v) 45: 7(fvec4) FAdd 44 43 Store 9(v) 45 46: 7(fvec4) Load 9(v) 47: 7(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 46 48: 7(fvec4) Load 9(v) 49: 7(fvec4) FAdd 48 47 Store 9(v) 49 50: 7(fvec4) Load 9(v) 51: 7(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 50 52: 7(fvec4) Load 9(v) 53: 7(fvec4) FAdd 52 51 Store 9(v) 53 54: 7(fvec4) Load 9(v) 55: 7(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 54 56: 7(fvec4) Load 9(v) 57: 7(fvec4) FAdd 56 55 Store 9(v) 57 58: 7(fvec4) Load 9(v) 59: 7(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 58 60: 7(fvec4) Load 9(v) 61: 7(fvec4) FAdd 60 59 Store 9(v) 61 62: 7(fvec4) Load 9(v) 63: 7(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 62 64: 7(fvec4) Load 9(v) 65: 7(fvec4) FAdd 64 63 Store 9(v) 65 66: 7(fvec4) Load 9(v) 67: 7(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 66 68: 7(fvec4) Load 9(v) 69: 7(fvec4) FAdd 68 67 Store 9(v) 69 70: 7(fvec4) Load 9(v) 71: 7(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 70 72: 7(fvec4) Load 9(v) 73: 7(fvec4) FAdd 72 71 Store 9(v) 73 74: 7(fvec4) Load 9(v) 75: 7(fvec4) Load 9(v) 76: 7(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 74 75 77: 7(fvec4) Load 9(v) 78: 7(fvec4) FAdd 77 76 Store 9(v) 78 79: 7(fvec4) Load 9(v) 80: 7(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 79 81: 7(fvec4) Load 9(v) 82: 7(fvec4) FAdd 81 80 Store 9(v) 82 83: 7(fvec4) Load 9(v) 84: 7(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 83 85: 7(fvec4) Load 9(v) 86: 7(fvec4) FAdd 85 84 Store 9(v) 86 87: 7(fvec4) Load 9(v) 88: 7(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 87 89: 7(fvec4) Load 9(v) 90: 7(fvec4) FAdd 89 88 Store 9(v) 90 91: 7(fvec4) Load 9(v) 92: 7(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 91 93: 7(fvec4) Load 9(v) 94: 7(fvec4) FAdd 93 92 Store 9(v) 94 95: 7(fvec4) Load 9(v) 96: 7(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 95 97: 7(fvec4) Load 9(v) 98: 7(fvec4) FAdd 97 96 Store 9(v) 98 99: 7(fvec4) Load 9(v) 100: 7(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 99 101: 7(fvec4) Load 9(v) 102: 7(fvec4) FAdd 101 100 Store 9(v) 102 103: 7(fvec4) Load 9(v) 104: 7(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 103 105: 7(fvec4) Load 9(v) 106: 7(fvec4) FAdd 105 104 Store 9(v) 106 107: 7(fvec4) Load 9(v) 108: 7(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 107 109: 7(fvec4) Load 9(v) 110: 7(fvec4) FAdd 109 108 Store 9(v) 110 111: 7(fvec4) Load 9(v) 112: 7(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 111 113: 7(fvec4) Load 9(v) 114: 7(fvec4) FAdd 113 112 Store 9(v) 114 115: 7(fvec4) Load 9(v) 116: 7(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 115 117: 7(fvec4) Load 9(v) 118: 7(fvec4) FAdd 117 116 Store 9(v) 118 119: 7(fvec4) Load 9(v) 120: 7(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 119 121: 7(fvec4) Load 9(v) 122: 7(fvec4) FAdd 121 120 Store 9(v) 122 123: 7(fvec4) Load 9(v) 124: 7(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 123 125: 7(fvec4) Load 9(v) 126: 7(fvec4) FAdd 125 124 Store 9(v) 126 127: 7(fvec4) Load 9(v) 128: 7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 127 129: 7(fvec4) Load 9(v) 130: 7(fvec4) FAdd 129 128 Store 9(v) 130 131: 7(fvec4) Load 9(v) 132: 7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 131 133: 7(fvec4) Load 9(v) 134: 7(fvec4) FAdd 133 132 Store 9(v) 134 135: 7(fvec4) Load 9(v) 136: 7(fvec4) Load 9(v) 137: 7(fvec4) FMod 135 136 138: 7(fvec4) Load 9(v) 139: 7(fvec4) FAdd 138 137 Store 9(v) 139 140: 7(fvec4) Load 9(v) 144: 143(ptr) AccessChain 9(v) 142 145: 6(float) Load 144 146: 7(fvec4) CompositeConstruct 145 145 145 145 147: 7(fvec4) FMod 140 146 148: 7(fvec4) Load 9(v) 149: 7(fvec4) FAdd 148 147 Store 9(v) 149 150: 7(fvec4) Load 9(v) 151: 7(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 150 9(v) 152: 7(fvec4) Load 9(v) 153: 7(fvec4) FAdd 152 151 Store 9(v) 153 154: 7(fvec4) Load 9(v) 155: 7(fvec4) Load 11(uv4) 156: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 154 155 157: 7(fvec4) Load 9(v) 158: 7(fvec4) FAdd 157 156 Store 9(v) 158 159: 7(fvec4) Load 9(v) 160: 7(fvec4) Load 11(uv4) 161: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 159 160 162: 7(fvec4) Load 9(v) 163: 7(fvec4) FAdd 162 161 Store 9(v) 163 164: 7(fvec4) Load 9(v) 165: 7(fvec4) Load 11(uv4) 166: 7(fvec4) Load 11(uv4) 167: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 164 165 166 168: 7(fvec4) Load 9(v) 169: 7(fvec4) FAdd 168 167 Store 9(v) 169 170: 7(fvec4) Load 9(v) 171: 7(fvec4) Load 9(v) 172: 7(fvec4) Load 9(v) 173: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 170 171 172 174: 7(fvec4) Load 9(v) 175: 7(fvec4) FAdd 174 173 Store 9(v) 175 176: 7(fvec4) Load 9(v) 177: 7(fvec4) Load 9(v) 182: 179(bvec4) Load 181(ub41) 183: 7(fvec4) Select 182 177 176 184: 7(fvec4) Load 9(v) 185: 7(fvec4) FAdd 184 183 Store 9(v) 185 186: 7(fvec4) Load 9(v) 187: 7(fvec4) Load 9(v) 189: 6(float) Load 188(f) 190: 7(fvec4) CompositeConstruct 189 189 189 189 191: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 186 187 190 192: 7(fvec4) Load 9(v) 193: 7(fvec4) FAdd 192 191 Store 9(v) 193 194: 7(fvec4) Load 9(v) 195: 7(fvec4) Load 11(uv4) 196: 7(fvec4) Load 9(v) 197: 7(fvec4) ExtInst 1(GLSL.std.450) 50(Fma) 194 195 196 198: 7(fvec4) Load 9(v) 199: 7(fvec4) FAdd 198 197 Store 9(v) 199 200: 7(fvec4) Load 9(v) 201: 7(fvec4) Load 9(v) 202: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 200 201 203: 7(fvec4) Load 9(v) 204: 7(fvec4) FAdd 203 202 Store 9(v) 204 205: 7(fvec4) Load 9(v) 206: 7(fvec4) Load 9(v) 207: 7(fvec4) Load 9(v) 208: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 205 206 207 209: 7(fvec4) Load 9(v) 210: 7(fvec4) FAdd 209 208 Store 9(v) 210 213: 6(float) Load 212(uf) 214: 7(fvec4) Load 9(v) 215: 7(fvec4) CompositeConstruct 213 213 213 213 216: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 215 214 217: 7(fvec4) Load 9(v) 218: 7(fvec4) FAdd 217 216 Store 9(v) 218 219: 6(float) Load 212(uf) 220: 6(float) Load 212(uf) 221: 7(fvec4) Load 9(v) 222: 7(fvec4) CompositeConstruct 219 219 219 219 223: 7(fvec4) CompositeConstruct 220 220 220 220 224: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 222 223 221 225: 7(fvec4) Load 9(v) 226: 7(fvec4) FAdd 225 224 Store 9(v) 226 227: 7(fvec4) Load 9(v) 228: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 227 229: 7(fvec4) Load 9(v) 230: 7(fvec4) FAdd 229 228 Store 9(v) 230 231: 7(fvec4) Load 9(v) 232: 7(fvec4) Load 9(v) 233: 7(fvec4) Load 9(v) 234: 7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 231 232 233 235: 7(fvec4) Load 9(v) 236: 7(fvec4) FAdd 235 234 Store 9(v) 236 237: 7(fvec4) Load 9(v) 238: 7(fvec4) Load 9(v) 239: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 237 238 240: 7(fvec4) Load 9(v) 241: 7(fvec4) FAdd 240 239 Store 9(v) 241 242: 7(fvec4) Load 9(v) 243: 7(fvec4) Load 9(v) 244: 6(float) Load 212(uf) 245: 7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 242 243 244 246: 7(fvec4) Load 9(v) 247: 7(fvec4) FAdd 246 245 Store 9(v) 247 248: 7(fvec4) Load 9(v) 249: 7(fvec4) DPdx 248 250: 7(fvec4) Load 9(v) 251: 7(fvec4) FAdd 250 249 Store 9(v) 251 252: 7(fvec4) Load 9(v) 253: 7(fvec4) DPdy 252 254: 7(fvec4) Load 9(v) 255: 7(fvec4) FAdd 254 253 Store 9(v) 255 256: 7(fvec4) Load 9(v) 257: 7(fvec4) Fwidth 256 258: 7(fvec4) Load 9(v) 259: 7(fvec4) FAdd 258 257 Store 9(v) 259 260: 18(int) Load 22(ui) 261: 18(int) ExtInst 1(GLSL.std.450) 5(SAbs) 260 262: 18(int) Load 20(i) 263: 18(int) IAdd 262 261 Store 20(i) 263 264: 18(int) Load 20(i) 265: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 264 266: 18(int) Load 20(i) 267: 18(int) IAdd 266 265 Store 20(i) 267 268: 18(int) Load 20(i) 269: 18(int) Load 22(ui) 270: 18(int) ExtInst 1(GLSL.std.450) 39(SMin) 268 269 271: 18(int) Load 20(i) 272: 18(int) IAdd 271 270 Store 20(i) 272 273: 18(int) Load 20(i) 274: 18(int) Load 22(ui) 275: 18(int) ExtInst 1(GLSL.std.450) 42(SMax) 273 274 276: 18(int) Load 20(i) 277: 18(int) IAdd 276 275 Store 20(i) 277 278: 18(int) Load 20(i) 279: 18(int) Load 22(ui) 280: 18(int) Load 22(ui) 281: 18(int) ExtInst 1(GLSL.std.450) 45(SClamp) 278 279 280 282: 18(int) Load 20(i) 283: 18(int) IAdd 282 281 Store 20(i) 283 286: 141(int) Load 285(u) 289: 141(int) Load 288(uui) 290: 141(int) ExtInst 1(GLSL.std.450) 38(UMin) 286 289 291: 141(int) Load 285(u) 292: 141(int) IAdd 291 290 Store 285(u) 292 293: 141(int) Load 285(u) 294: 141(int) Load 288(uui) 295: 141(int) ExtInst 1(GLSL.std.450) 41(UMax) 293 294 296: 141(int) Load 285(u) 297: 141(int) IAdd 296 295 Store 285(u) 297 298: 141(int) Load 285(u) 299: 141(int) Load 288(uui) 300: 141(int) Load 288(uui) 301: 141(int) ExtInst 1(GLSL.std.450) 44(UClamp) 298 299 300 302: 141(int) Load 285(u) 303: 141(int) IAdd 302 301 Store 285(u) 303 306: 6(float) Load 212(uf) 307: 178(bool) IsNan 306 Store 305(b) 307 308: 6(float) Load 188(f) 309: 178(bool) IsInf 308 Store 305(b) 309 310: 7(fvec4) Load 9(v) 311: 7(fvec4) Load 11(uv4) 312: 179(bvec4) FOrdLessThan 310 311 313: 178(bool) Any 312 Store 305(b) 313 314: 178(bool) Load 305(b) SelectionMerge 316 None BranchConditional 314 315 316 315: Label 317: 7(fvec4) Load 9(v) 318: 7(fvec4) Load 11(uv4) 319: 179(bvec4) FOrdLessThanEqual 317 318 320: 178(bool) Any 319 Branch 316 316: Label 321: 178(bool) Phi 314 5 320 315 Store 305(b) 321 322: 178(bool) Load 305(b) SelectionMerge 324 None BranchConditional 322 323 324 323: Label 325: 7(fvec4) Load 9(v) 326: 7(fvec4) Load 11(uv4) 327: 179(bvec4) FOrdGreaterThan 325 326 328: 178(bool) Any 327 Branch 324 324: Label 329: 178(bool) Phi 322 316 328 323 Store 305(b) 329 330: 178(bool) Load 305(b) SelectionMerge 332 None BranchConditional 330 331 332 331: Label 333: 7(fvec4) Load 9(v) 334: 7(fvec4) Load 11(uv4) 335: 179(bvec4) FOrdGreaterThanEqual 333 334 336: 178(bool) Any 335 Branch 332 332: Label 337: 178(bool) Phi 330 324 336 331 Store 305(b) 337 338: 178(bool) Load 305(b) SelectionMerge 340 None BranchConditional 338 339 340 339: Label 341: 179(bvec4) Load 181(ub41) 343: 179(bvec4) Load 342(ub42) 344: 179(bvec4) LogicalEqual 341 343 345: 178(bool) Any 344 Branch 340 340: Label 346: 178(bool) Phi 338 332 345 339 Store 305(b) 346 347: 178(bool) Load 305(b) SelectionMerge 349 None BranchConditional 347 348 349 348: Label 350: 179(bvec4) Load 181(ub41) 351: 179(bvec4) Load 342(ub42) 352: 179(bvec4) LogicalNotEqual 350 351 353: 178(bool) Any 352 Branch 349 349: Label 354: 178(bool) Phi 347 340 353 348 Store 305(b) 354 355: 178(bool) Load 305(b) 356: 179(bvec4) Load 181(ub41) 357: 178(bool) Any 356 358: 178(bool) LogicalAnd 355 357 Store 305(b) 358 359: 178(bool) Load 305(b) 360: 179(bvec4) Load 181(ub41) 361: 178(bool) All 360 362: 178(bool) LogicalAnd 359 361 Store 305(b) 362 363: 178(bool) Load 305(b) SelectionMerge 365 None BranchConditional 363 364 365 364: Label 366: 179(bvec4) Load 181(ub41) 367: 179(bvec4) LogicalNot 366 368: 178(bool) Any 367 Branch 365 365: Label 369: 178(bool) Phi 363 349 368 364 Store 305(b) 369 370: 18(int) Load 20(i) 371: 18(int) Load 22(ui) 372: 18(int) IAdd 370 371 373: 18(int) Load 20(i) 374: 18(int) IMul 372 373 375: 18(int) Load 22(ui) 376: 18(int) ISub 374 375 377: 18(int) Load 20(i) 378: 18(int) SDiv 376 377 Store 20(i) 378 379: 18(int) Load 20(i) 380: 18(int) Load 22(ui) 381: 18(int) SMod 379 380 Store 20(i) 381 382: 18(int) Load 20(i) 383: 18(int) Load 22(ui) 384: 178(bool) IEqual 382 383 385: 178(bool) LogicalNot 384 SelectionMerge 387 None BranchConditional 385 386 387 386: Label 388: 18(int) Load 20(i) 389: 18(int) Load 22(ui) 390: 178(bool) INotEqual 388 389 SelectionMerge 392 None BranchConditional 390 391 392 391: Label 393: 18(int) Load 20(i) 394: 18(int) Load 22(ui) 395: 178(bool) IEqual 393 394 Branch 392 392: Label 396: 178(bool) Phi 390 386 395 391 397: 18(int) Load 20(i) 399: 178(bool) INotEqual 397 398 400: 178(bool) LogicalNotEqual 396 399 Branch 387 387: Label 401: 178(bool) Phi 384 365 400 392 SelectionMerge 403 None BranchConditional 401 402 403 402: Label 404: 18(int) Load 20(i) 406: 18(int) IAdd 404 405 Store 20(i) 406 Branch 403 403: Label 407: 6(float) Load 212(uf) 408: 6(float) Load 212(uf) 409: 6(float) FAdd 407 408 410: 6(float) Load 212(uf) 411: 6(float) FMul 409 410 412: 6(float) Load 212(uf) 413: 6(float) FSub 411 412 414: 6(float) Load 212(uf) 415: 6(float) FDiv 413 414 Store 188(f) 415 416: 7(fvec4) Load 9(v) 417: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 416 418: 6(float) Load 188(f) 419: 6(float) FAdd 418 417 Store 188(f) 419 420: 7(fvec4) Load 9(v) 421: 7(fvec4) Load 9(v) 422: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 420 421 423: 6(float) Load 188(f) 424: 6(float) FAdd 423 422 Store 188(f) 424 425: 7(fvec4) Load 9(v) 426: 7(fvec4) Load 9(v) 427: 6(float) Dot 425 426 428: 6(float) Load 188(f) 429: 6(float) FAdd 428 427 Store 188(f) 429 430: 6(float) Load 188(f) 431: 6(float) Load 212(uf) 432: 6(float) FMul 430 431 433: 6(float) Load 188(f) 434: 6(float) FAdd 433 432 Store 188(f) 434 436: 7(fvec4) Load 9(v) 437: 435(fvec3) VectorShuffle 436 436 0 1 2 438: 7(fvec4) Load 9(v) 439: 435(fvec3) VectorShuffle 438 438 0 1 2 440: 435(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 437 439 441: 6(float) CompositeExtract 440 0 442: 6(float) Load 188(f) 443: 6(float) FAdd 442 441 Store 188(f) 443 444: 6(float) Load 188(f) 445: 6(float) Load 212(uf) 446: 178(bool) FOrdEqual 444 445 447: 178(bool) LogicalNot 446 SelectionMerge 449 None BranchConditional 447 448 449 448: Label 450: 6(float) Load 188(f) 451: 6(float) Load 212(uf) 452: 178(bool) FOrdNotEqual 450 451 453: 6(float) Load 188(f) 455: 178(bool) FOrdNotEqual 453 454 456: 178(bool) LogicalAnd 452 455 Branch 449 449: Label 457: 178(bool) Phi 446 403 456 448 SelectionMerge 459 None BranchConditional 457 458 459 458: Label 460: 6(float) Load 188(f) 462: 6(float) FAdd 460 461 Store 188(f) 462 Branch 459 459: Label 463: 18(int) Load 22(ui) 464: 18(int) Load 20(i) 465: 18(int) BitwiseAnd 464 463 Store 20(i) 465 467: 18(int) Load 20(i) 468: 18(int) BitwiseOr 467 466 Store 20(i) 468 469: 18(int) Load 22(ui) 470: 18(int) Load 20(i) 471: 18(int) BitwiseXor 470 469 Store 20(i) 471 473: 18(int) Load 20(i) 474: 18(int) SMod 473 472 Store 20(i) 474 475: 18(int) Load 20(i) 476: 18(int) ShiftRightArithmetic 475 398 Store 20(i) 476 477: 18(int) Load 22(ui) 478: 18(int) Load 20(i) 479: 18(int) ShiftLeftLogical 478 477 Store 20(i) 479 480: 18(int) Load 20(i) 481: 18(int) Not 480 Store 20(i) 481 482: 178(bool) Load 305(b) 483: 178(bool) LogicalNot 482 Store 305(b) 483 486: 178(bool) Load 305(b) SelectionMerge 489 None BranchConditional 486 488 498 488: Label 490: 18(int) Load 20(i) 491: 6(float) ConvertSToF 490 492: 7(fvec4) CompositeConstruct 491 491 491 491 493: 6(float) Load 188(f) 494: 7(fvec4) CompositeConstruct 493 493 493 493 495: 7(fvec4) FAdd 492 494 496: 7(fvec4) Load 9(v) 497: 7(fvec4) FAdd 495 496 Store 487 497 Branch 489 498: Label 499: 7(fvec4) Load 9(v) Store 487 499 Branch 489 489: Label 500: 7(fvec4) Load 487 Store 485(FragColor) 500 Store 503(m1) 509 Store 510(m2) 512 513: 178(bool) Load 305(b) SelectionMerge 516 None BranchConditional 513 515 518 515: Label 517: 501 Load 503(m1) Store 514 517 Branch 516 518: Label 519: 501 Load 510(m2) Store 514 519 Branch 516 516: Label 520: 8(ptr) AccessChain 514 405 521: 7(fvec4) Load 520 522: 7(fvec4) Load 485(FragColor) 523: 7(fvec4) FAdd 522 521 Store 485(FragColor) 523 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.RayCallable.rcall.out000066400000000000000000000056451360464450000235360ustar00rootroot00000000000000spv.RayCallable.rcall // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 30 Capability RayTracingNV Extension "SPV_NV_ray_tracing" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint CallableNV 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 LaunchIdNV Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeNV 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 IncomingCallableDataNV 16(dataBlock) 18: 17(ptr) Variable IncomingCallableDataNV 19: TypeInt 32 1 20: 19(int) Constant 0 21: 6(int) Constant 256 22: TypePointer IncomingCallableDataNV 6(int) 24: 6(int) Constant 2 25: 19(int) Constant 1 26: TypeFloat 32 27: TypeVector 26(float) 4 28: TypePointer CallableDataNV 27(fvec4) 29(data0): 28(ptr) Variable CallableDataNV 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 glslang-8.13.3559/Test/baseResults/spv.RayCallable_Errors.rcall.out000066400000000000000000000043521360464450000250640ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.RayConstants.rgen.out000066400000000000000000000042321360464450000236400ustar00rootroot00000000000000spv.RayConstants.rgen // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 27 Capability RayTracingNV Extension "SPV_NV_ray_tracing" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint RayGenerationNV 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: TypeAccelerationStructureNV 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 RayPayloadNV 24(fvec4) 26(payload): 25(ptr) Variable RayPayloadNV 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 glslang-8.13.3559/Test/baseResults/spv.RayGenShader.rgen.out000066400000000000000000000112701360464450000235240ustar00rootroot00000000000000spv.RayGenShader.rgen // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 54 Capability RayTracingNV Extension "SPV_NV_ray_tracing" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint RayGenerationNV 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 LaunchIdNV Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV 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: TypeAccelerationStructureNV 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 ShaderRecordBufferNV 37(block) 39: 38(ptr) Variable ShaderRecordBufferNV 40: TypeInt 32 1 41: 40(int) Constant 1 42: TypePointer ShaderRecordBufferNV 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 RayPayloadNV 51(fvec4) 53(payload): 52(ptr) Variable RayPayloadNV 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 glslang-8.13.3559/Test/baseResults/spv.RayGenShader11.rgen.out000077500000000000000000000107131360464450000236720ustar00rootroot00000000000000spv.RayGenShader11.rgen // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 53 Capability RayTracingNV Extension "SPV_NV_ray_tracing" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint RayGenerationNV 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 LaunchIdNV Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV 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: TypeAccelerationStructureNV 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 ShaderRecordBufferNV 37(block) 39: 38(ptr) Variable ShaderRecordBufferNV 40: TypeInt 32 1 41: 40(int) Constant 1 42: TypePointer ShaderRecordBufferNV 36(fvec3) 45: 35(float) Constant 1056964608 46: 40(int) Constant 0 49: 35(float) Constant 1061158912 50: TypeVector 35(float) 4 51: TypePointer RayPayloadNV 50(fvec4) 52(payload): 51(ptr) Variable RayPayloadNV 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 glslang-8.13.3559/Test/baseResults/spv.RayGenShaderArray.rgen.out000066400000000000000000000156331360464450000245320ustar00rootroot00000000000000spv.RayGenShaderArray.rgen // Module Version 10000 // Generated by (magic number): 80008 // 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 RayGenerationNV 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 LaunchIdNV Decorate 21(gl_LaunchSizeNV) BuiltIn LaunchSizeNV 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 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: TypeAccelerationStructureNV 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 ShaderRecordBufferNV 34(block) 36: 35(ptr) Variable ShaderRecordBufferNV 37: 33(int) Constant 2 38: TypePointer ShaderRecordBufferNV 33(int) 41: TypePointer UniformConstant 27 48: 33(int) Constant 1 49: TypePointer ShaderRecordBufferNV 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 RayPayloadNV 86(fvec4) 88(payload): 87(ptr) Variable RayPayloadNV 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 glslang-8.13.3559/Test/baseResults/spv.RayGenShader_Errors.rgen.out000066400000000000000000000051741360464450000250660ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.accessChain.frag.out000066400000000000000000000422341360464450000234040ustar00rootroot00000000000000spv.accessChain.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 222 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 69 170 ExecutionMode 4 OriginUpperLeft Source GLSL 420 Name 4 "main" Name 8 "S" MemberName 8(S) 0 "color" Name 11 "GetColor1(struct-S-vf31;" Name 10 "i" Name 18 "GetColor2(struct-S-vf31;i1;" Name 16 "i" Name 17 "comp" Name 22 "GetColor3(struct-S-vf31;i1;" Name 20 "i" Name 21 "comp" Name 26 "GetColor4(struct-S-vf31;i1;" Name 24 "i" Name 25 "comp" Name 30 "GetColor5(struct-S-vf31;i1;" Name 28 "i" Name 29 "comp" Name 34 "GetColor6(struct-S-vf31;i1;" Name 32 "i" Name 33 "comp" Name 38 "GetColor7(struct-S-vf31;i1;" Name 36 "i" Name 37 "comp" Name 42 "GetColor8(struct-S-vf31;i1;" Name 40 "i" Name 41 "comp" Name 46 "GetColor9(struct-S-vf31;i1;" Name 44 "i" Name 45 "comp" Name 50 "GetColor10(struct-S-vf31;i1;" Name 48 "i" Name 49 "comp" Name 54 "GetColor11(struct-S-vf31;i1;" Name 52 "i" Name 53 "comp" Name 58 "GetColor12(struct-S-vf31;i1;" Name 56 "i" Name 57 "comp" Name 62 "GetColor13(struct-S-vf31;i1;" Name 60 "i" Name 61 "comp" Name 66 "GetColor14(struct-S-vf31;i1;" Name 64 "i" Name 65 "comp" Name 69 "OutColor" Name 165 "s" Name 170 "u" Name 171 "param" Name 175 "param" Name 179 "param" Name 183 "param" Name 187 "param" Name 191 "param" Name 195 "param" Name 199 "param" Name 203 "param" Name 207 "param" Name 211 "param" Name 215 "param" Name 219 "param" Decorate 69(OutColor) Location 0 Decorate 170(u) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8(S): TypeStruct 7(fvec3) 9: TypeFunction 2 8(S) 13: TypeInt 32 1 14: TypePointer Function 13(int) 15: TypeFunction 2 8(S) 14(ptr) 68: TypePointer Output 7(fvec3) 69(OutColor): 68(ptr) Variable Output 70: 13(int) Constant 0 71: TypeInt 32 0 72: 71(int) Constant 0 99: TypeVector 6(float) 2 113: 71(int) Constant 2 140: TypePointer Output 6(float) 147: 71(int) Constant 1 148: TypeVector 71(int) 2 149: 148(ivec2) ConstantComposite 113 147 158: TypeVector 71(int) 3 159: 158(ivec3) ConstantComposite 113 147 72 162: 6(float) Constant 0 163: 7(fvec3) ConstantComposite 162 162 162 164: TypePointer Function 8(S) 169: TypePointer Input 13(int) 170(u): 169(ptr) Variable Input 4(main): 2 Function None 3 5: Label 165(s): 164(ptr) Variable Function 171(param): 14(ptr) Variable Function 175(param): 14(ptr) Variable Function 179(param): 14(ptr) Variable Function 183(param): 14(ptr) Variable Function 187(param): 14(ptr) Variable Function 191(param): 14(ptr) Variable Function 195(param): 14(ptr) Variable Function 199(param): 14(ptr) Variable Function 203(param): 14(ptr) Variable Function 207(param): 14(ptr) Variable Function 211(param): 14(ptr) Variable Function 215(param): 14(ptr) Variable Function 219(param): 14(ptr) Variable Function Store 69(OutColor) 163 166: 8(S) Load 165(s) 167: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 166 168: 8(S) Load 165(s) 172: 13(int) Load 170(u) Store 171(param) 172 173: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 168 171(param) 174: 8(S) Load 165(s) 176: 13(int) Load 170(u) Store 175(param) 176 177: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 174 175(param) 178: 8(S) Load 165(s) 180: 13(int) Load 170(u) Store 179(param) 180 181: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 178 179(param) 182: 8(S) Load 165(s) 184: 13(int) Load 170(u) Store 183(param) 184 185: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 182 183(param) 186: 8(S) Load 165(s) 188: 13(int) Load 170(u) Store 187(param) 188 189: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 186 187(param) 190: 8(S) Load 165(s) 192: 13(int) Load 170(u) Store 191(param) 192 193: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 190 191(param) 194: 8(S) Load 165(s) 196: 13(int) Load 170(u) Store 195(param) 196 197: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 194 195(param) 198: 8(S) Load 165(s) 200: 13(int) Load 170(u) Store 199(param) 200 201: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 198 199(param) 202: 8(S) Load 165(s) 204: 13(int) Load 170(u) Store 203(param) 204 205: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 202 203(param) 206: 8(S) Load 165(s) 208: 13(int) Load 170(u) Store 207(param) 208 209: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 206 207(param) 210: 8(S) Load 165(s) 212: 13(int) Load 170(u) Store 211(param) 212 213: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 210 211(param) 214: 8(S) Load 165(s) 216: 13(int) Load 170(u) Store 215(param) 216 217: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 214 215(param) 218: 8(S) Load 165(s) 220: 13(int) Load 170(u) Store 219(param) 220 221: 2 FunctionCall 66(GetColor14(struct-S-vf31;i1;) 218 219(param) Return FunctionEnd 11(GetColor1(struct-S-vf31;): 2 Function None 9 10(i): 8(S) FunctionParameter 12: Label 73: 6(float) CompositeExtract 10(i) 0 0 74: 7(fvec3) Load 69(OutColor) 75: 7(fvec3) CompositeConstruct 73 73 73 76: 7(fvec3) FAdd 74 75 Store 69(OutColor) 76 Return FunctionEnd 18(GetColor2(struct-S-vf31;i1;): 2 Function None 15 16(i): 8(S) FunctionParameter 17(comp): 14(ptr) FunctionParameter 19: Label 77: 13(int) Load 17(comp) 78: 7(fvec3) CompositeExtract 16(i) 0 79: 6(float) VectorExtractDynamic 78 77 80: 7(fvec3) Load 69(OutColor) 81: 7(fvec3) CompositeConstruct 79 79 79 82: 7(fvec3) FAdd 80 81 Store 69(OutColor) 82 Return FunctionEnd 22(GetColor3(struct-S-vf31;i1;): 2 Function None 15 20(i): 8(S) FunctionParameter 21(comp): 14(ptr) FunctionParameter 23: Label 83: 13(int) Load 21(comp) 84: 7(fvec3) CompositeExtract 20(i) 0 85: 6(float) VectorExtractDynamic 84 83 86: 7(fvec3) Load 69(OutColor) 87: 7(fvec3) CompositeConstruct 85 85 85 88: 7(fvec3) FAdd 86 87 Store 69(OutColor) 88 Return FunctionEnd 26(GetColor4(struct-S-vf31;i1;): 2 Function None 15 24(i): 8(S) FunctionParameter 25(comp): 14(ptr) FunctionParameter 27: Label 89: 13(int) Load 25(comp) 90: 7(fvec3) CompositeExtract 24(i) 0 91: 6(float) VectorExtractDynamic 90 89 92: 7(fvec3) Load 69(OutColor) 93: 7(fvec3) CompositeConstruct 91 91 91 94: 7(fvec3) FAdd 92 93 Store 69(OutColor) 94 Return FunctionEnd 30(GetColor5(struct-S-vf31;i1;): 2 Function None 15 28(i): 8(S) FunctionParameter 29(comp): 14(ptr) FunctionParameter 31: Label 95: 7(fvec3) CompositeExtract 28(i) 0 96: 7(fvec3) Load 69(OutColor) 97: 7(fvec3) FAdd 96 95 Store 69(OutColor) 97 Return FunctionEnd 34(GetColor6(struct-S-vf31;i1;): 2 Function None 15 32(i): 8(S) FunctionParameter 33(comp): 14(ptr) FunctionParameter 35: Label 98: 13(int) Load 33(comp) 100: 7(fvec3) CompositeExtract 32(i) 0 101: 99(fvec2) VectorShuffle 100 100 1 0 102: 6(float) VectorExtractDynamic 101 98 103: 7(fvec3) Load 69(OutColor) 104: 7(fvec3) CompositeConstruct 102 102 102 105: 7(fvec3) FAdd 103 104 Store 69(OutColor) 105 Return FunctionEnd 38(GetColor7(struct-S-vf31;i1;): 2 Function None 15 36(i): 8(S) FunctionParameter 37(comp): 14(ptr) FunctionParameter 39: Label 106: 7(fvec3) CompositeExtract 36(i) 0 107: 99(fvec2) VectorShuffle 106 106 0 1 108: 7(fvec3) Load 69(OutColor) 109: 99(fvec2) VectorShuffle 108 108 0 1 110: 99(fvec2) FAdd 109 107 111: 7(fvec3) Load 69(OutColor) 112: 7(fvec3) VectorShuffle 111 110 3 4 2 Store 69(OutColor) 112 Return FunctionEnd 42(GetColor8(struct-S-vf31;i1;): 2 Function None 15 40(i): 8(S) FunctionParameter 41(comp): 14(ptr) FunctionParameter 43: Label 114: 6(float) CompositeExtract 40(i) 0 2 115: 7(fvec3) Load 69(OutColor) 116: 7(fvec3) CompositeConstruct 114 114 114 117: 7(fvec3) FAdd 115 116 Store 69(OutColor) 117 Return FunctionEnd 46(GetColor9(struct-S-vf31;i1;): 2 Function None 15 44(i): 8(S) FunctionParameter 45(comp): 14(ptr) FunctionParameter 47: Label 118: 7(fvec3) CompositeExtract 44(i) 0 119: 7(fvec3) Load 69(OutColor) 120: 7(fvec3) VectorShuffle 119 119 2 0 1 121: 7(fvec3) FAdd 120 118 122: 7(fvec3) Load 69(OutColor) 123: 7(fvec3) VectorShuffle 122 121 4 5 3 Store 69(OutColor) 123 Return FunctionEnd 50(GetColor10(struct-S-vf31;i1;): 2 Function None 15 48(i): 8(S) FunctionParameter 49(comp): 14(ptr) FunctionParameter 51: Label 124: 7(fvec3) CompositeExtract 48(i) 0 125: 99(fvec2) VectorShuffle 124 124 0 1 126: 7(fvec3) Load 69(OutColor) 127: 99(fvec2) VectorShuffle 126 126 2 1 128: 99(fvec2) FAdd 127 125 129: 7(fvec3) Load 69(OutColor) 130: 7(fvec3) VectorShuffle 129 128 0 4 3 Store 69(OutColor) 130 Return FunctionEnd 54(GetColor11(struct-S-vf31;i1;): 2 Function None 15 52(i): 8(S) FunctionParameter 53(comp): 14(ptr) FunctionParameter 55: Label 131: 7(fvec3) CompositeExtract 52(i) 0 132: 99(fvec2) VectorShuffle 131 131 0 1 133: 7(fvec3) Load 69(OutColor) 134: 99(fvec2) VectorShuffle 133 133 0 2 135: 99(fvec2) FAdd 134 132 136: 7(fvec3) Load 69(OutColor) 137: 7(fvec3) VectorShuffle 136 135 3 1 4 Store 69(OutColor) 137 Return FunctionEnd 58(GetColor12(struct-S-vf31;i1;): 2 Function None 15 56(i): 8(S) FunctionParameter 57(comp): 14(ptr) FunctionParameter 59: Label 138: 13(int) Load 57(comp) 139: 6(float) CompositeExtract 56(i) 0 0 141: 140(ptr) AccessChain 69(OutColor) 138 142: 6(float) Load 141 143: 6(float) FAdd 142 139 144: 140(ptr) AccessChain 69(OutColor) 138 Store 144 143 Return FunctionEnd 62(GetColor13(struct-S-vf31;i1;): 2 Function None 15 60(i): 8(S) FunctionParameter 61(comp): 14(ptr) FunctionParameter 63: Label 145: 13(int) Load 61(comp) 146: 6(float) CompositeExtract 60(i) 0 0 150: 71(int) VectorExtractDynamic 149 145 151: 140(ptr) AccessChain 69(OutColor) 150 152: 6(float) Load 151 153: 6(float) FAdd 152 146 154: 71(int) VectorExtractDynamic 149 145 155: 140(ptr) AccessChain 69(OutColor) 154 Store 155 153 Return FunctionEnd 66(GetColor14(struct-S-vf31;i1;): 2 Function None 15 64(i): 8(S) FunctionParameter 65(comp): 14(ptr) FunctionParameter 67: Label 156: 13(int) Load 65(comp) 157: 6(float) CompositeExtract 64(i) 0 0 160: 71(int) VectorExtractDynamic 159 156 161: 140(ptr) AccessChain 69(OutColor) 160 Store 161 157 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.aggOps.frag.out000066400000000000000000000364751360464450000224320ustar00rootroot00000000000000spv.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): 80008 // Id's are bound by 215 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 16 41 101 213 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 8 "s1" MemberName 8(s1) 0 "i" MemberName 8(s1) 1 "f" Name 13 "a" Name 16 "u" Name 37 "b" Name 41 "w" Name 55 "s1" MemberName 55(s1) 0 "i" MemberName 55(s1) 1 "f" Name 56 "s2" MemberName 56(s2) 0 "i" MemberName 56(s2) 1 "f" MemberName 56(s2) 2 "s1_1" Name 57 "ub1" MemberName 57(ub1) 0 "foo2a" Name 59 "uName1" Name 64 "s1" MemberName 64(s1) 0 "i" MemberName 64(s1) 1 "f" Name 65 "s2" MemberName 65(s2) 0 "i" MemberName 65(s2) 1 "f" MemberName 65(s2) 2 "s1_1" Name 66 "ub2" MemberName 66(ub2) 0 "foo2b" Name 68 "uName2" Name 93 "v" Name 97 "samp2D" Name 101 "coord" Name 213 "color" MemberDecorate 55(s1) 0 Offset 0 MemberDecorate 55(s1) 1 Offset 4 MemberDecorate 56(s2) 0 Offset 0 MemberDecorate 56(s2) 1 Offset 4 MemberDecorate 56(s2) 2 Offset 16 MemberDecorate 57(ub1) 0 Offset 0 Decorate 57(ub1) Block Decorate 59(uName1) DescriptorSet 0 Decorate 59(uName1) Binding 0 MemberDecorate 64(s1) 0 Offset 0 MemberDecorate 64(s1) 1 Offset 4 MemberDecorate 65(s2) 0 Offset 0 MemberDecorate 65(s2) 1 Offset 4 MemberDecorate 65(s2) 2 Offset 8 MemberDecorate 66(ub2) 0 Offset 0 Decorate 66(ub2) BufferBlock Decorate 68(uName2) DescriptorSet 0 Decorate 68(uName2) Binding 0 Decorate 97(samp2D) DescriptorSet 0 Decorate 97(samp2D) Binding 0 Decorate 101(coord) RelaxedPrecision Decorate 102 RelaxedPrecision Decorate 107 RelaxedPrecision Decorate 108 RelaxedPrecision Decorate 129 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeFloat 32 8(s1): TypeStruct 6(int) 7(float) 9: TypeInt 32 0 10: 9(int) Constant 3 11: TypeArray 8(s1) 10 12: TypePointer Function 11 14: TypeVector 7(float) 4 15: TypePointer Input 14(fvec4) 16(u): 15(ptr) Variable Input 17: 9(int) Constant 0 18: TypePointer Input 7(float) 22: 9(int) Constant 1 26: 9(int) Constant 2 33: 6(int) Constant 14 34: 7(float) Constant 1096810496 35: 8(s1) ConstantComposite 33 34 38: 6(int) Constant 17 39: 7(float) Constant 1099431936 40: 8(s1) ConstantComposite 38 39 41(w): 15(ptr) Variable Input 55(s1): TypeStruct 6(int) 7(float) 56(s2): TypeStruct 6(int) 7(float) 55(s1) 57(ub1): TypeStruct 56(s2) 58: TypePointer Uniform 57(ub1) 59(uName1): 58(ptr) Variable Uniform 60: 6(int) Constant 0 61: TypePointer Uniform 56(s2) 64(s1): TypeStruct 6(int) 7(float) 65(s2): TypeStruct 6(int) 7(float) 64(s1) 66(ub2): TypeStruct 65(s2) 67: TypePointer Uniform 66(ub2) 68(uName2): 67(ptr) Variable Uniform 69: TypePointer Uniform 65(s2) 72: TypeBool 92: TypePointer Function 14(fvec4) 94: TypeImage 7(float) 2D sampled format:Unknown 95: TypeSampledImage 94 96: TypePointer UniformConstant 95 97(samp2D): 96(ptr) Variable UniformConstant 99: TypeVector 7(float) 2 100: TypePointer Input 99(fvec2) 101(coord): 100(ptr) Variable Input 106: 7(float) Constant 1073741824 112: TypeVector 72(bool) 4 117: 7(float) Constant 1077936128 126: 7(float) Constant 1082130432 132: TypeVector 72(bool) 2 137: 7(float) Constant 1084227584 173: 7(float) Constant 1086324736 209: 7(float) Constant 1088421888 212: TypePointer Output 14(fvec4) 213(color): 212(ptr) Variable Output 4(main): 2 Function None 3 5: Label 13(a): 12(ptr) Variable Function 37(b): 12(ptr) Variable Function 93(v): 92(ptr) Variable Function 19: 18(ptr) AccessChain 16(u) 17 20: 7(float) Load 19 21: 6(int) ConvertFToS 20 23: 18(ptr) AccessChain 16(u) 22 24: 7(float) Load 23 25: 8(s1) CompositeConstruct 21 24 27: 18(ptr) AccessChain 16(u) 26 28: 7(float) Load 27 29: 6(int) ConvertFToS 28 30: 18(ptr) AccessChain 16(u) 10 31: 7(float) Load 30 32: 8(s1) CompositeConstruct 29 31 36: 11 CompositeConstruct 25 32 35 Store 13(a) 36 42: 18(ptr) AccessChain 41(w) 17 43: 7(float) Load 42 44: 6(int) ConvertFToS 43 45: 18(ptr) AccessChain 41(w) 22 46: 7(float) Load 45 47: 8(s1) CompositeConstruct 44 46 48: 18(ptr) AccessChain 41(w) 26 49: 7(float) Load 48 50: 6(int) ConvertFToS 49 51: 18(ptr) AccessChain 41(w) 10 52: 7(float) Load 51 53: 8(s1) CompositeConstruct 50 52 54: 11 CompositeConstruct 40 47 53 Store 37(b) 54 62: 61(ptr) AccessChain 59(uName1) 60 63: 56(s2) Load 62 70: 69(ptr) AccessChain 68(uName2) 60 71: 65(s2) Load 70 73: 6(int) CompositeExtract 63 0 74: 6(int) CompositeExtract 71 0 75: 72(bool) IEqual 73 74 76: 7(float) CompositeExtract 63 1 77: 7(float) CompositeExtract 71 1 78: 72(bool) FOrdEqual 76 77 79: 72(bool) LogicalAnd 75 78 80: 55(s1) CompositeExtract 63 2 81: 64(s1) CompositeExtract 71 2 82: 6(int) CompositeExtract 80 0 83: 6(int) CompositeExtract 81 0 84: 72(bool) IEqual 82 83 85: 7(float) CompositeExtract 80 1 86: 7(float) CompositeExtract 81 1 87: 72(bool) FOrdEqual 85 86 88: 72(bool) LogicalAnd 84 87 89: 72(bool) LogicalAnd 79 88 SelectionMerge 91 None BranchConditional 89 90 104 90: Label 98: 95 Load 97(samp2D) 102: 99(fvec2) Load 101(coord) 103: 14(fvec4) ImageSampleImplicitLod 98 102 Store 93(v) 103 Branch 91 104: Label 105: 95 Load 97(samp2D) 107: 99(fvec2) Load 101(coord) 108: 99(fvec2) VectorTimesScalar 107 106 109: 14(fvec4) ImageSampleImplicitLod 105 108 Store 93(v) 109 Branch 91 91: Label 110: 14(fvec4) Load 16(u) 111: 14(fvec4) Load 93(v) 113: 112(bvec4) FOrdEqual 110 111 114: 72(bool) All 113 SelectionMerge 116 None BranchConditional 114 115 116 115: Label 118: 14(fvec4) Load 93(v) 119: 14(fvec4) VectorTimesScalar 118 117 Store 93(v) 119 Branch 116 116: Label 120: 14(fvec4) Load 16(u) 121: 14(fvec4) Load 93(v) 122: 112(bvec4) FOrdNotEqual 120 121 123: 72(bool) Any 122 SelectionMerge 125 None BranchConditional 123 124 125 124: Label 127: 14(fvec4) Load 93(v) 128: 14(fvec4) VectorTimesScalar 127 126 Store 93(v) 128 Branch 125 125: Label 129: 99(fvec2) Load 101(coord) 130: 14(fvec4) Load 93(v) 131: 99(fvec2) VectorShuffle 130 130 1 3 133: 132(bvec2) FOrdEqual 129 131 134: 72(bool) All 133 SelectionMerge 136 None BranchConditional 134 135 136 135: Label 138: 14(fvec4) Load 93(v) 139: 14(fvec4) VectorTimesScalar 138 137 Store 93(v) 139 Branch 136 136: Label 140: 11 Load 13(a) 141: 11 Load 37(b) 142: 8(s1) CompositeExtract 140 0 143: 8(s1) CompositeExtract 141 0 144: 6(int) CompositeExtract 142 0 145: 6(int) CompositeExtract 143 0 146: 72(bool) IEqual 144 145 147: 7(float) CompositeExtract 142 1 148: 7(float) CompositeExtract 143 1 149: 72(bool) FOrdEqual 147 148 150: 72(bool) LogicalAnd 146 149 151: 8(s1) CompositeExtract 140 1 152: 8(s1) CompositeExtract 141 1 153: 6(int) CompositeExtract 151 0 154: 6(int) CompositeExtract 152 0 155: 72(bool) IEqual 153 154 156: 7(float) CompositeExtract 151 1 157: 7(float) CompositeExtract 152 1 158: 72(bool) FOrdEqual 156 157 159: 72(bool) LogicalAnd 155 158 160: 72(bool) LogicalAnd 150 159 161: 8(s1) CompositeExtract 140 2 162: 8(s1) CompositeExtract 141 2 163: 6(int) CompositeExtract 161 0 164: 6(int) CompositeExtract 162 0 165: 72(bool) IEqual 163 164 166: 7(float) CompositeExtract 161 1 167: 7(float) CompositeExtract 162 1 168: 72(bool) FOrdEqual 166 167 169: 72(bool) LogicalAnd 165 168 170: 72(bool) LogicalAnd 160 169 SelectionMerge 172 None BranchConditional 170 171 172 171: Label 174: 14(fvec4) Load 93(v) 175: 14(fvec4) VectorTimesScalar 174 173 Store 93(v) 175 Branch 172 172: Label 176: 11 Load 13(a) 177: 11 Load 37(b) 178: 8(s1) CompositeExtract 176 0 179: 8(s1) CompositeExtract 177 0 180: 6(int) CompositeExtract 178 0 181: 6(int) CompositeExtract 179 0 182: 72(bool) INotEqual 180 181 183: 7(float) CompositeExtract 178 1 184: 7(float) CompositeExtract 179 1 185: 72(bool) FOrdNotEqual 183 184 186: 72(bool) LogicalOr 182 185 187: 8(s1) CompositeExtract 176 1 188: 8(s1) CompositeExtract 177 1 189: 6(int) CompositeExtract 187 0 190: 6(int) CompositeExtract 188 0 191: 72(bool) INotEqual 189 190 192: 7(float) CompositeExtract 187 1 193: 7(float) CompositeExtract 188 1 194: 72(bool) FOrdNotEqual 192 193 195: 72(bool) LogicalOr 191 194 196: 72(bool) LogicalOr 186 195 197: 8(s1) CompositeExtract 176 2 198: 8(s1) CompositeExtract 177 2 199: 6(int) CompositeExtract 197 0 200: 6(int) CompositeExtract 198 0 201: 72(bool) INotEqual 199 200 202: 7(float) CompositeExtract 197 1 203: 7(float) CompositeExtract 198 1 204: 72(bool) FOrdNotEqual 202 203 205: 72(bool) LogicalOr 201 204 206: 72(bool) LogicalOr 196 205 SelectionMerge 208 None BranchConditional 206 207 208 207: Label 210: 14(fvec4) Load 93(v) 211: 14(fvec4) VectorTimesScalar 210 209 Store 93(v) 211 Branch 208 208: Label 214: 14(fvec4) Load 93(v) Store 213(color) 214 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.always-discard.frag.out000066400000000000000000000121301360464450000240770ustar00rootroot00000000000000spv.always-discard.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 84 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 21 59 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "white" Name 12 "black" Name 15 "color" Name 18 "x" Name 21 "tex_coord" Name 30 "y" Name 36 "radius" Name 59 "gl_FragColor" Decorate 59(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: 6(float) Constant 1065353216 11: 7(fvec4) ConstantComposite 10 10 10 10 13: 6(float) Constant 1045220557 14: 7(fvec4) ConstantComposite 13 13 13 13 17: TypePointer Function 6(float) 19: TypeVector 6(float) 2 20: TypePointer Input 19(fvec2) 21(tex_coord): 20(ptr) Variable Input 22: TypeInt 32 0 23: 22(int) Constant 0 24: TypePointer Input 6(float) 27: 6(float) Constant 1073741824 31: 22(int) Constant 1 46: TypeBool 51: 6(float) Constant 1066192077 58: TypePointer Output 7(fvec4) 59(gl_FragColor): 58(ptr) Variable Output 62: 6(float) Constant 1067030938 71: 6(float) Constant 1061158912 76: 6(float) Constant 1098907648 4(main): 2 Function None 3 5: Label 9(white): 8(ptr) Variable Function 12(black): 8(ptr) Variable Function 15(color): 8(ptr) Variable Function 18(x): 17(ptr) Variable Function 30(y): 17(ptr) Variable Function 36(radius): 17(ptr) Variable Function Store 9(white) 11 Store 12(black) 14 16: 7(fvec4) Load 9(white) Store 15(color) 16 25: 24(ptr) AccessChain 21(tex_coord) 23 26: 6(float) Load 25 28: 6(float) FMul 26 27 29: 6(float) FSub 28 10 Store 18(x) 29 32: 24(ptr) AccessChain 21(tex_coord) 31 33: 6(float) Load 32 34: 6(float) FMul 33 27 35: 6(float) FSub 34 10 Store 30(y) 35 37: 6(float) Load 18(x) 38: 6(float) Load 18(x) 39: 6(float) FMul 37 38 40: 6(float) Load 30(y) 41: 6(float) Load 30(y) 42: 6(float) FMul 40 41 43: 6(float) FAdd 39 42 44: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43 Store 36(radius) 44 45: 6(float) Load 36(radius) 47: 46(bool) FOrdGreaterThan 45 10 SelectionMerge 49 None BranchConditional 47 48 49 48: Label 50: 6(float) Load 36(radius) 52: 46(bool) FOrdGreaterThan 50 51 SelectionMerge 54 None BranchConditional 52 53 54 53: Label 55: 7(fvec4) Load 15(color) 56: 7(fvec4) CompositeConstruct 10 10 10 10 57: 7(fvec4) FAdd 55 56 Store 15(color) 57 Branch 54 54: Label 60: 7(fvec4) Load 15(color) Store 59(gl_FragColor) 60 61: 6(float) Load 36(radius) 63: 46(bool) FOrdGreaterThan 61 62 SelectionMerge 65 None BranchConditional 63 64 65 64: Label 66: 7(fvec4) Load 15(color) 67: 7(fvec4) CompositeConstruct 10 10 10 10 68: 7(fvec4) FAdd 66 67 Store 15(color) 68 Branch 65 65: Label Branch 49 49: Label Kill FunctionEnd glslang-8.13.3559/Test/baseResults/spv.always-discard2.frag.out000066400000000000000000000055761360464450000242010ustar00rootroot00000000000000spv.always-discard2.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 40 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 21 38 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "white" Name 12 "black" Name 15 "color" Name 18 "x" Name 21 "tex_coord" Name 30 "y" Name 38 "gl_FragColor" Decorate 38(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: 6(float) Constant 1065353216 11: 7(fvec4) ConstantComposite 10 10 10 10 13: 6(float) Constant 1045220557 14: 7(fvec4) ConstantComposite 13 13 13 13 17: TypePointer Function 6(float) 19: TypeVector 6(float) 2 20: TypePointer Input 19(fvec2) 21(tex_coord): 20(ptr) Variable Input 22: TypeInt 32 0 23: 22(int) Constant 0 24: TypePointer Input 6(float) 27: 6(float) Constant 1073741824 31: 22(int) Constant 1 37: TypePointer Output 7(fvec4) 38(gl_FragColor): 37(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(white): 8(ptr) Variable Function 12(black): 8(ptr) Variable Function 15(color): 8(ptr) Variable Function 18(x): 17(ptr) Variable Function 30(y): 17(ptr) Variable Function Store 9(white) 11 Store 12(black) 14 16: 7(fvec4) Load 9(white) Store 15(color) 16 25: 24(ptr) AccessChain 21(tex_coord) 23 26: 6(float) Load 25 28: 6(float) FMul 26 27 29: 6(float) FSub 28 10 Store 18(x) 29 32: 24(ptr) AccessChain 21(tex_coord) 31 33: 6(float) Load 32 34: 6(float) FMul 33 27 35: 6(float) FSub 34 10 Store 30(y) 35 Kill FunctionEnd glslang-8.13.3559/Test/baseResults/spv.arbPostDepthCoverage.frag.out000066400000000000000000000041241360464450000252470ustar00rootroot00000000000000spv.arbPostDepthCoverage.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.arbPostDepthCoverage_Error.frag.out000066400000000000000000000004471360464450000264240ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.atomic.comp.out000066400000000000000000000144141360464450000224720ustar00rootroot00000000000000spv.atomic.comp // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 74 Capability Shader Capability AtomicStorage 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" ExecutionMode 4 LocalSize 1 1 1 Source GLSL 450 Name 4 "main" Name 10 "func(au1;" Name 9 "c" Name 12 "atoms(" Name 20 "counter" Name 23 "val" Name 27 "countArr" Name 37 "origi" Name 39 "atomi" Name 42 "origu" Name 44 "atomu" Name 45 "value" Name 62 "dataSSB" MemberName 62(dataSSB) 0 "f" MemberName 62(dataSSB) 1 "n_frames_rendered" Name 64 "result" Name 71 "arrX" Name 72 "arrY" Name 73 "arrZ" Decorate 20(counter) Offset 0 Decorate 20(counter) Binding 0 Decorate 27(countArr) Offset 4 Decorate 27(countArr) Binding 0 MemberDecorate 62(dataSSB) 0 Restrict MemberDecorate 62(dataSSB) 0 Offset 0 MemberDecorate 62(dataSSB) 1 Restrict MemberDecorate 62(dataSSB) 1 Offset 16 Decorate 62(dataSSB) BufferBlock Decorate 64(result) DescriptorSet 0 Decorate 64(result) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer AtomicCounter 6(int) 8: TypeFunction 6(int) 7(ptr) 14: 6(int) Constant 1 15: 6(int) Constant 0 19: 6(int) Constant 1032 20(counter): 7(ptr) Variable AtomicCounter 22: TypePointer Function 6(int) 24: 6(int) Constant 4 25: TypeArray 6(int) 24 26: TypePointer AtomicCounter 25 27(countArr): 26(ptr) Variable AtomicCounter 28: TypeInt 32 1 29: 28(int) Constant 2 33: 28(int) Constant 1 36: TypePointer Function 28(int) 38: TypePointer Workgroup 28(int) 39(atomi): 38(ptr) Variable Workgroup 40: 28(int) Constant 3 43: TypePointer Workgroup 6(int) 44(atomu): 43(ptr) Variable Workgroup 45(value): 43(ptr) Variable Workgroup 48: 6(int) Constant 7 53: 28(int) Constant 7 57: 6(int) Constant 10 60: TypeFloat 32 61: TypeVector 28(int) 4 62(dataSSB): TypeStruct 60(float) 61(ivec4) 63: TypePointer Uniform 62(dataSSB) 64(result): 63(ptr) Variable Uniform 65: 6(int) Constant 2 66: TypePointer Uniform 28(int) 69: TypeArray 28(int) 14 70: TypePointer Private 69 71(arrX): 70(ptr) Variable Private 72(arrY): 70(ptr) Variable Private 73(arrZ): 70(ptr) Variable Private 4(main): 2 Function None 3 5: Label 23(val): 22(ptr) Variable Function MemoryBarrier 14 19 21: 6(int) FunctionCall 10(func(au1;) 20(counter) 30: 7(ptr) AccessChain 27(countArr) 29 31: 6(int) AtomicLoad 30 14 15 Store 23(val) 31 32: 6(int) AtomicIDecrement 20(counter) 14 15 34: 6(int) ISub 32 33 35: 6(int) AtomicIIncrement 20(counter) 14 15 Return FunctionEnd 10(func(au1;): 6(int) Function None 8 9(c): 7(ptr) FunctionParameter 11: Label 16: 6(int) AtomicIIncrement 9(c) 14 15 ReturnValue 16 FunctionEnd 12(atoms(): 2 Function None 3 13: Label 37(origi): 36(ptr) Variable Function 42(origu): 22(ptr) Variable Function 41: 28(int) AtomicIAdd 39(atomi) 14 15 40 Store 37(origi) 41 46: 6(int) Load 45(value) 47: 6(int) AtomicAnd 44(atomu) 14 15 46 Store 42(origu) 47 49: 6(int) AtomicOr 44(atomu) 14 15 48 Store 42(origu) 49 50: 6(int) AtomicXor 44(atomu) 14 15 48 Store 42(origu) 50 51: 6(int) Load 45(value) 52: 6(int) AtomicUMin 44(atomu) 14 15 51 Store 42(origu) 52 54: 28(int) AtomicSMax 39(atomi) 14 15 53 Store 37(origi) 54 55: 28(int) Load 37(origi) 56: 28(int) AtomicExchange 39(atomi) 14 15 55 Store 37(origi) 56 58: 6(int) Load 45(value) 59: 6(int) AtomicCompareExchange 44(atomu) 14 15 15 58 57 Store 42(origu) 59 67: 66(ptr) AccessChain 64(result) 33 65 68: 28(int) AtomicIAdd 67 14 15 33 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.atomicInt64.comp.out000066400000000000000000000242051360464450000233160ustar00rootroot00000000000000spv.atomicInt64.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.barrier.vert.out000066400000000000000000000040071360464450000226630ustar00rootroot00000000000000spv.barrier.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.bitCast.frag.out000066400000000000000000000255041360464450000225720ustar00rootroot00000000000000spv.bitCast.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 172 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 154 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "idata" Name 14 "f1" Name 26 "f2" Name 37 "f3" Name 48 "f4" Name 55 "udata" Name 85 "fdata" Name 89 "i1" Name 98 "i2" Name 107 "i3" Name 116 "i4" Name 122 "u1" Name 130 "u2" Name 139 "u3" Name 148 "u4" Name 154 "fragColor" Decorate 89(i1) Flat Decorate 98(i2) Flat Decorate 107(i3) Flat Decorate 116(i4) Flat Decorate 122(u1) Flat Decorate 130(u2) Flat Decorate 139(u3) Flat Decorate 148(u4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeVector 6(int) 4 8: TypePointer Function 7(ivec4) 10: 6(int) Constant 0 11: 7(ivec4) ConstantComposite 10 10 10 10 12: TypeFloat 32 13: TypePointer Input 12(float) 14(f1): 13(ptr) Variable Input 17: TypeInt 32 0 18: 17(int) Constant 0 19: TypePointer Function 6(int) 24: TypeVector 12(float) 2 25: TypePointer Input 24(fvec2) 26(f2): 25(ptr) Variable Input 28: TypeVector 6(int) 2 35: TypeVector 12(float) 3 36: TypePointer Input 35(fvec3) 37(f3): 36(ptr) Variable Input 39: TypeVector 6(int) 3 46: TypeVector 12(float) 4 47: TypePointer Input 46(fvec4) 48(f4): 47(ptr) Variable Input 53: TypeVector 17(int) 4 54: TypePointer Function 53(ivec4) 56: 53(ivec4) ConstantComposite 18 18 18 18 59: TypePointer Function 17(int) 65: TypeVector 17(int) 2 73: TypeVector 17(int) 3 84: TypePointer Function 46(fvec4) 86: 12(float) Constant 0 87: 46(fvec4) ConstantComposite 86 86 86 86 88: TypePointer Input 6(int) 89(i1): 88(ptr) Variable Input 92: TypePointer Function 12(float) 97: TypePointer Input 28(ivec2) 98(i2): 97(ptr) Variable Input 106: TypePointer Input 39(ivec3) 107(i3): 106(ptr) Variable Input 115: TypePointer Input 7(ivec4) 116(i4): 115(ptr) Variable Input 121: TypePointer Input 17(int) 122(u1): 121(ptr) Variable Input 129: TypePointer Input 65(ivec2) 130(u2): 129(ptr) Variable Input 138: TypePointer Input 73(ivec3) 139(u3): 138(ptr) Variable Input 147: TypePointer Input 53(ivec4) 148(u4): 147(ptr) Variable Input 153: TypePointer Output 46(fvec4) 154(fragColor): 153(ptr) Variable Output 158: TypeBool 159: TypeVector 158(bool) 4 168: 12(float) Constant 1045220557 169: 46(fvec4) ConstantComposite 168 168 168 168 4(main): 2 Function None 3 5: Label 9(idata): 8(ptr) Variable Function 55(udata): 54(ptr) Variable Function 85(fdata): 84(ptr) Variable Function 162: 84(ptr) Variable Function Store 9(idata) 11 15: 12(float) Load 14(f1) 16: 6(int) Bitcast 15 20: 19(ptr) AccessChain 9(idata) 18 21: 6(int) Load 20 22: 6(int) IAdd 21 16 23: 19(ptr) AccessChain 9(idata) 18 Store 23 22 27: 24(fvec2) Load 26(f2) 29: 28(ivec2) Bitcast 27 30: 7(ivec4) Load 9(idata) 31: 28(ivec2) VectorShuffle 30 30 0 1 32: 28(ivec2) IAdd 31 29 33: 7(ivec4) Load 9(idata) 34: 7(ivec4) VectorShuffle 33 32 4 5 2 3 Store 9(idata) 34 38: 35(fvec3) Load 37(f3) 40: 39(ivec3) Bitcast 38 41: 7(ivec4) Load 9(idata) 42: 39(ivec3) VectorShuffle 41 41 0 1 2 43: 39(ivec3) IAdd 42 40 44: 7(ivec4) Load 9(idata) 45: 7(ivec4) VectorShuffle 44 43 4 5 6 3 Store 9(idata) 45 49: 46(fvec4) Load 48(f4) 50: 7(ivec4) Bitcast 49 51: 7(ivec4) Load 9(idata) 52: 7(ivec4) IAdd 51 50 Store 9(idata) 52 Store 55(udata) 56 57: 12(float) Load 14(f1) 58: 17(int) Bitcast 57 60: 59(ptr) AccessChain 55(udata) 18 61: 17(int) Load 60 62: 17(int) IAdd 61 58 63: 59(ptr) AccessChain 55(udata) 18 Store 63 62 64: 24(fvec2) Load 26(f2) 66: 65(ivec2) Bitcast 64 67: 53(ivec4) Load 55(udata) 68: 65(ivec2) VectorShuffle 67 67 0 1 69: 65(ivec2) IAdd 68 66 70: 53(ivec4) Load 55(udata) 71: 53(ivec4) VectorShuffle 70 69 4 5 2 3 Store 55(udata) 71 72: 35(fvec3) Load 37(f3) 74: 73(ivec3) Bitcast 72 75: 53(ivec4) Load 55(udata) 76: 73(ivec3) VectorShuffle 75 75 0 1 2 77: 73(ivec3) IAdd 76 74 78: 53(ivec4) Load 55(udata) 79: 53(ivec4) VectorShuffle 78 77 4 5 6 3 Store 55(udata) 79 80: 46(fvec4) Load 48(f4) 81: 53(ivec4) Bitcast 80 82: 53(ivec4) Load 55(udata) 83: 53(ivec4) IAdd 82 81 Store 55(udata) 83 Store 85(fdata) 87 90: 6(int) Load 89(i1) 91: 12(float) Bitcast 90 93: 92(ptr) AccessChain 85(fdata) 18 94: 12(float) Load 93 95: 12(float) FAdd 94 91 96: 92(ptr) AccessChain 85(fdata) 18 Store 96 95 99: 28(ivec2) Load 98(i2) 100: 24(fvec2) Bitcast 99 101: 46(fvec4) Load 85(fdata) 102: 24(fvec2) VectorShuffle 101 101 0 1 103: 24(fvec2) FAdd 102 100 104: 46(fvec4) Load 85(fdata) 105: 46(fvec4) VectorShuffle 104 103 4 5 2 3 Store 85(fdata) 105 108: 39(ivec3) Load 107(i3) 109: 35(fvec3) Bitcast 108 110: 46(fvec4) Load 85(fdata) 111: 35(fvec3) VectorShuffle 110 110 0 1 2 112: 35(fvec3) FAdd 111 109 113: 46(fvec4) Load 85(fdata) 114: 46(fvec4) VectorShuffle 113 112 4 5 6 3 Store 85(fdata) 114 117: 7(ivec4) Load 116(i4) 118: 46(fvec4) Bitcast 117 119: 46(fvec4) Load 85(fdata) 120: 46(fvec4) FAdd 119 118 Store 85(fdata) 120 123: 17(int) Load 122(u1) 124: 12(float) Bitcast 123 125: 92(ptr) AccessChain 85(fdata) 18 126: 12(float) Load 125 127: 12(float) FAdd 126 124 128: 92(ptr) AccessChain 85(fdata) 18 Store 128 127 131: 65(ivec2) Load 130(u2) 132: 24(fvec2) Bitcast 131 133: 46(fvec4) Load 85(fdata) 134: 24(fvec2) VectorShuffle 133 133 0 1 135: 24(fvec2) FAdd 134 132 136: 46(fvec4) Load 85(fdata) 137: 46(fvec4) VectorShuffle 136 135 4 5 2 3 Store 85(fdata) 137 140: 73(ivec3) Load 139(u3) 141: 35(fvec3) Bitcast 140 142: 46(fvec4) Load 85(fdata) 143: 35(fvec3) VectorShuffle 142 142 0 1 2 144: 35(fvec3) FAdd 143 141 145: 46(fvec4) Load 85(fdata) 146: 46(fvec4) VectorShuffle 145 144 4 5 6 3 Store 85(fdata) 146 149: 53(ivec4) Load 148(u4) 150: 46(fvec4) Bitcast 149 151: 46(fvec4) Load 85(fdata) 152: 46(fvec4) FAdd 151 150 Store 85(fdata) 152 155: 7(ivec4) Load 9(idata) 156: 53(ivec4) Bitcast 155 157: 53(ivec4) Load 55(udata) 160: 159(bvec4) IEqual 156 157 161: 158(bool) All 160 SelectionMerge 164 None BranchConditional 161 163 166 163: Label 165: 46(fvec4) Load 85(fdata) Store 162 165 Branch 164 166: Label 167: 46(fvec4) Load 85(fdata) 170: 46(fvec4) FAdd 167 169 Store 162 170 Branch 164 164: Label 171: 46(fvec4) Load 162 Store 154(fragColor) 171 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.bool.vert.out000066400000000000000000000077671360464450000222100ustar00rootroot00000000000000spv.bool.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.boolInBlock.frag.out000066400000000000000000000166651360464450000234060ustar00rootroot00000000000000spv.boolInBlock.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.branch-return.vert.out000066400000000000000000000060351360464450000240120ustar00rootroot00000000000000spv.branch-return.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.buffer.autoassign.frag.out000066400000000000000000000110251360464450000246170ustar00rootroot00000000000000spv.buffer.autoassign.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle1.frag.out000066400000000000000000000125551360464450000237110ustar00rootroot00000000000000spv.bufferhandle1.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 52 Capability Shader Capability VulkanMemoryModelKHR Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle10.frag.out000066400000000000000000000104211360464450000237570ustar00rootroot00000000000000spv.bufferhandle10.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 40 Capability Shader Capability VulkanMemoryModelKHR Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle11.frag.out000066400000000000000000000136211360464450000237650ustar00rootroot00000000000000spv.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): 80008 // Id's are bound by 61 Capability Shader Capability StorageBuffer8BitAccess Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_physical_storage_buffer" Extension "SPV_KHR_8bit_storage" 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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle12.frag.out000066400000000000000000000367021360464450000237730ustar00rootroot00000000000000spv.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): 80008 // Id's are bound by 183 Capability Shader Capability StorageUniformBufferBlock16 Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_physical_storage_buffer" Extension "SPV_KHR_16bit_storage" 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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle13.frag.out000066400000000000000000000133141360464450000237660ustar00rootroot00000000000000spv.bufferhandle13.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 58 Capability Shader Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle14.frag.out000066400000000000000000000133171360464450000237720ustar00rootroot00000000000000spv.bufferhandle14.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 46 Capability Shader Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle15.frag.out000066400000000000000000000153141360464450000237720ustar00rootroot00000000000000spv.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): 80008 // Id's are bound by 60 Capability Shader Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle16.frag.out000066400000000000000000000106751360464450000240000ustar00rootroot00000000000000spv.bufferhandle16.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 48 Capability Shader Capability Int64 Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle17_Errors.frag.out000066400000000000000000000006331360464450000253260ustar00rootroot00000000000000spv.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:19: '!=' : can't use with reference types ERROR: 4 compilation errors. No code generated. SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/spv.bufferhandle18.frag.out000066400000000000000000000314511360464450000237750ustar00rootroot00000000000000spv.bufferhandle18.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 196 Capability Shader Capability Int64 Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle19_Errors.frag.out000066400000000000000000000034721360464450000253340ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle2.frag.out000066400000000000000000000114731360464450000237100ustar00rootroot00000000000000spv.bufferhandle2.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 45 Capability Shader Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle3.frag.out000066400000000000000000000125601360464450000237070ustar00rootroot00000000000000spv.bufferhandle3.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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) 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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle4.frag.out000066400000000000000000000136411360464450000237110ustar00rootroot00000000000000spv.bufferhandle4.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 61 Capability Shader Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle5.frag.out000066400000000000000000000050651360464450000237130ustar00rootroot00000000000000spv.bufferhandle5.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle6.frag.out000066400000000000000000000270371360464450000237170ustar00rootroot00000000000000spv.bufferhandle6.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 165 Capability Shader Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle7.frag.out000066400000000000000000000101461360464450000237110ustar00rootroot00000000000000spv.bufferhandle7.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 0 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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle8.frag.out000066400000000000000000000114521360464450000237130ustar00rootroot00000000000000spv.bufferhandle8.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle9.frag.out000066400000000000000000000133551360464450000237200ustar00rootroot00000000000000spv.bufferhandle9.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 56 Capability Shader Capability Int64 Capability PhysicalStorageBufferAddressesEXT Extension "SPV_EXT_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 19(i) Flat 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 glslang-8.13.3559/Test/baseResults/spv.bufferhandleUvec2.frag.out000077500000000000000000000151301360464450000245300ustar00rootroot00000000000000spv.bufferhandleUvec2.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 19(i) Flat 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 glslang-8.13.3559/Test/baseResults/spv.bufferhandle_Error.frag.out000066400000000000000000000035051360464450000247740ustar00rootroot00000000000000spv.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:35: '=' : cannot convert from 'layout( column_major std430) buffer reference' to ' temp reference' ERROR: 0:40: 'assign' : cannot convert from 'layout( column_major std430) buffer reference' to 'layout( column_major std430) buffer 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:45: '' : syntax error, unexpected LEFT_BRACE, expecting COMMA or SEMICOLON ERROR: 20 compilation errors. No code generated. SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/spv.builtInXFB.vert.out000066400000000000000000000044521360464450000232070ustar00rootroot00000000000000spv.builtInXFB.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.computeShaderDerivatives.comp.out000066400000000000000000000444521360464450000262340ustar00rootroot00000000000000spv.computeShaderDerivatives.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.computeShaderDerivatives2.comp.out000066400000000000000000000444551360464450000263210ustar00rootroot00000000000000spv.computeShaderDerivatives2.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.conditionalDemote.frag.out000066400000000000000000000064601360464450000246420ustar00rootroot00000000000000spv.conditionalDemote.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.conditionalDiscard.frag.out000066400000000000000000000053651360464450000250010ustar00rootroot00000000000000spv.conditionalDiscard.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.constConstruct.vert.out000066400000000000000000000173211360464450000242730ustar00rootroot00000000000000spv.constConstruct.vert Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 150 Capability Shader Capability Float64 Capability Int64 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 glslang-8.13.3559/Test/baseResults/spv.constStruct.vert.out000066400000000000000000000037661360464450000236030ustar00rootroot00000000000000spv.constStruct.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.constructComposite.comp.out000066400000000000000000000060251360464450000251240ustar00rootroot00000000000000spv.constructComposite.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.controlFlowAttributes.frag.out000066400000000000000000000253101360464450000255530ustar00rootroot00000000000000spv.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.conversion.frag.out000066400000000000000000000647101360464450000233700ustar00rootroot00000000000000spv.conversion.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 455 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 39 53 157 322 446 448 450 452 454 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 8 "b" Name 11 "u_i" Name 18 "u_f" Name 25 "b2" Name 33 "b3" Name 39 "i_i" Name 45 "b4" Name 53 "i_f" Name 58 "i" Name 68 "i2" Name 71 "u_f2" Name 81 "i3" Name 84 "u_f3" Name 94 "i4" Name 97 "u_f4" Name 106 "f" Name 110 "f2" Name 114 "f3" Name 118 "f4" Name 157 "i_i4" Name 322 "gl_FragColor" Name 417 "cv2" Name 418 "cv5" Name 428 "u_b" Name 430 "u_b2" Name 432 "u_b3" Name 434 "u_b4" Name 436 "u_i2" Name 438 "u_i3" Name 440 "u_i4" Name 441 "i_b" Name 442 "i_b2" Name 443 "i_b3" Name 444 "i_b4" Name 446 "i_i2" Name 448 "i_i3" Name 450 "i_f2" Name 452 "i_f3" Name 454 "i_f4" Decorate 39(i_i) Flat Decorate 157(i_i4) Flat Decorate 322(gl_FragColor) Location 0 Decorate 446(i_i2) Flat Decorate 448(i_i3) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeBool 7: TypePointer Function 6(bool) 9: TypeInt 32 1 10: TypePointer Private 9(int) 11(u_i): 10(ptr) Variable Private 13: TypeInt 32 0 14: 13(int) Constant 0 16: TypeFloat 32 17: TypePointer Private 16(float) 18(u_f): 17(ptr) Variable Private 20: 16(float) Constant 0 23: TypeVector 6(bool) 2 24: TypePointer Function 23(bvec2) 31: TypeVector 6(bool) 3 32: TypePointer Function 31(bvec3) 38: TypePointer Input 9(int) 39(i_i): 38(ptr) Variable Input 43: TypeVector 6(bool) 4 44: TypePointer Function 43(bvec4) 52: TypePointer Input 16(float) 53(i_f): 52(ptr) Variable Input 57: TypePointer Function 9(int) 62: 9(int) Constant 0 63: 9(int) Constant 1 66: TypeVector 9(int) 2 67: TypePointer Function 66(ivec2) 69: TypeVector 16(float) 2 70: TypePointer Private 69(fvec2) 71(u_f2): 70(ptr) Variable Private 75: 66(ivec2) ConstantComposite 62 62 76: 66(ivec2) ConstantComposite 63 63 79: TypeVector 9(int) 3 80: TypePointer Function 79(ivec3) 82: TypeVector 16(float) 3 83: TypePointer Private 82(fvec3) 84(u_f3): 83(ptr) Variable Private 88: 79(ivec3) ConstantComposite 62 62 62 89: 79(ivec3) ConstantComposite 63 63 63 92: TypeVector 9(int) 4 93: TypePointer Function 92(ivec4) 95: TypeVector 16(float) 4 96: TypePointer Private 95(fvec4) 97(u_f4): 96(ptr) Variable Private 101: 92(ivec4) ConstantComposite 62 62 62 62 102: 92(ivec4) ConstantComposite 63 63 63 63 105: TypePointer Function 16(float) 109: TypePointer Function 69(fvec2) 113: TypePointer Function 82(fvec3) 117: TypePointer Function 95(fvec4) 124: 16(float) Constant 1065353216 132: 69(fvec2) ConstantComposite 20 20 133: 69(fvec2) ConstantComposite 124 124 141: 82(fvec3) ConstantComposite 20 20 20 142: 82(fvec3) ConstantComposite 124 124 124 150: 95(fvec4) ConstantComposite 20 20 20 20 151: 95(fvec4) ConstantComposite 124 124 124 124 156: TypePointer Input 92(ivec4) 157(i_i4): 156(ptr) Variable Input 159: TypeVector 13(int) 4 160: 159(ivec4) ConstantComposite 14 14 14 14 315: 13(int) Constant 1 321: TypePointer Output 95(fvec4) 322(gl_FragColor): 321(ptr) Variable Output 336: 13(int) Constant 2 349: 13(int) Constant 3 427: TypePointer Private 6(bool) 428(u_b): 427(ptr) Variable Private 429: TypePointer Private 23(bvec2) 430(u_b2): 429(ptr) Variable Private 431: TypePointer Private 31(bvec3) 432(u_b3): 431(ptr) Variable Private 433: TypePointer Private 43(bvec4) 434(u_b4): 433(ptr) Variable Private 435: TypePointer Private 66(ivec2) 436(u_i2): 435(ptr) Variable Private 437: TypePointer Private 79(ivec3) 438(u_i3): 437(ptr) Variable Private 439: TypePointer Private 92(ivec4) 440(u_i4): 439(ptr) Variable Private 441(i_b): 427(ptr) Variable Private 442(i_b2): 429(ptr) Variable Private 443(i_b3): 431(ptr) Variable Private 444(i_b4): 433(ptr) Variable Private 445: TypePointer Input 66(ivec2) 446(i_i2): 445(ptr) Variable Input 447: TypePointer Input 79(ivec3) 448(i_i3): 447(ptr) Variable Input 449: TypePointer Input 69(fvec2) 450(i_f2): 449(ptr) Variable Input 451: TypePointer Input 82(fvec3) 452(i_f3): 451(ptr) Variable Input 453: TypePointer Input 95(fvec4) 454(i_f4): 453(ptr) Variable Input 4(main): 2 Function None 3 5: Label 8(b): 7(ptr) Variable Function 25(b2): 24(ptr) Variable Function 33(b3): 32(ptr) Variable Function 45(b4): 44(ptr) Variable Function 58(i): 57(ptr) Variable Function 68(i2): 67(ptr) Variable Function 81(i3): 80(ptr) Variable Function 94(i4): 93(ptr) Variable Function 106(f): 105(ptr) Variable Function 110(f2): 109(ptr) Variable Function 114(f3): 113(ptr) Variable Function 118(f4): 117(ptr) Variable Function 298: 105(ptr) Variable Function 309: 105(ptr) Variable Function 353: 117(ptr) Variable Function 417(cv2): 93(ptr) Variable Function 418(cv5): 44(ptr) Variable Function 12: 9(int) Load 11(u_i) 15: 6(bool) INotEqual 12 14 19: 16(float) Load 18(u_f) 21: 6(bool) FOrdNotEqual 19 20 22: 6(bool) LogicalNotEqual 15 21 Store 8(b) 22 26: 9(int) Load 11(u_i) 27: 6(bool) INotEqual 26 14 28: 16(float) Load 18(u_f) 29: 6(bool) FOrdNotEqual 28 20 30: 23(bvec2) CompositeConstruct 27 29 Store 25(b2) 30 34: 9(int) Load 11(u_i) 35: 6(bool) INotEqual 34 14 36: 16(float) Load 18(u_f) 37: 6(bool) FOrdNotEqual 36 20 40: 9(int) Load 39(i_i) 41: 6(bool) INotEqual 40 14 42: 31(bvec3) CompositeConstruct 35 37 41 Store 33(b3) 42 46: 9(int) Load 11(u_i) 47: 6(bool) INotEqual 46 14 48: 16(float) Load 18(u_f) 49: 6(bool) FOrdNotEqual 48 20 50: 9(int) Load 39(i_i) 51: 6(bool) INotEqual 50 14 54: 16(float) Load 53(i_f) 55: 6(bool) FOrdNotEqual 54 20 56: 43(bvec4) CompositeConstruct 47 49 51 55 Store 45(b4) 56 59: 16(float) Load 18(u_f) 60: 9(int) ConvertFToS 59 61: 6(bool) Load 8(b) 64: 9(int) Select 61 63 62 65: 9(int) IAdd 60 64 Store 58(i) 65 72: 69(fvec2) Load 71(u_f2) 73: 66(ivec2) ConvertFToS 72 74: 23(bvec2) Load 25(b2) 77: 66(ivec2) Select 74 76 75 78: 66(ivec2) IAdd 73 77 Store 68(i2) 78 85: 82(fvec3) Load 84(u_f3) 86: 79(ivec3) ConvertFToS 85 87: 31(bvec3) Load 33(b3) 90: 79(ivec3) Select 87 89 88 91: 79(ivec3) IAdd 86 90 Store 81(i3) 91 98: 95(fvec4) Load 97(u_f4) 99: 92(ivec4) ConvertFToS 98 100: 43(bvec4) Load 45(b4) 103: 92(ivec4) Select 100 102 101 104: 92(ivec4) IAdd 99 103 Store 94(i4) 104 107: 9(int) Load 58(i) 108: 16(float) ConvertSToF 107 Store 106(f) 108 111: 66(ivec2) Load 68(i2) 112: 69(fvec2) ConvertSToF 111 Store 110(f2) 112 115: 79(ivec3) Load 81(i3) 116: 82(fvec3) ConvertSToF 115 Store 114(f3) 116 119: 92(ivec4) Load 94(i4) 120: 95(fvec4) ConvertSToF 119 Store 118(f4) 120 121: 9(int) Load 58(i) 122: 16(float) ConvertSToF 121 123: 6(bool) Load 8(b) 125: 16(float) Select 123 124 20 126: 16(float) FAdd 122 125 127: 16(float) Load 106(f) 128: 16(float) FAdd 127 126 Store 106(f) 128 129: 66(ivec2) Load 68(i2) 130: 69(fvec2) ConvertSToF 129 131: 23(bvec2) Load 25(b2) 134: 69(fvec2) Select 131 133 132 135: 69(fvec2) FAdd 130 134 136: 69(fvec2) Load 110(f2) 137: 69(fvec2) FSub 136 135 Store 110(f2) 137 138: 79(ivec3) Load 81(i3) 139: 82(fvec3) ConvertSToF 138 140: 31(bvec3) Load 33(b3) 143: 82(fvec3) Select 140 142 141 144: 82(fvec3) FAdd 139 143 145: 82(fvec3) Load 114(f3) 146: 82(fvec3) FDiv 145 144 Store 114(f3) 146 147: 92(ivec4) Load 94(i4) 148: 95(fvec4) ConvertSToF 147 149: 43(bvec4) Load 45(b4) 152: 95(fvec4) Select 149 151 150 153: 95(fvec4) FAdd 148 152 154: 95(fvec4) Load 118(f4) 155: 95(fvec4) FAdd 154 153 Store 118(f4) 155 158: 92(ivec4) Load 157(i_i4) 161: 43(bvec4) INotEqual 158 160 162: 95(fvec4) Select 161 151 150 163: 95(fvec4) Load 118(f4) 164: 95(fvec4) FAdd 163 162 Store 118(f4) 164 165: 95(fvec4) Load 97(u_f4) 166: 43(bvec4) FOrdNotEqual 165 150 167: 95(fvec4) Select 166 151 150 168: 95(fvec4) Load 118(f4) 169: 95(fvec4) FAdd 168 167 Store 118(f4) 169 170: 16(float) Load 106(f) 171: 9(int) Load 58(i) 172: 16(float) ConvertSToF 171 173: 16(float) FSub 170 172 174: 16(float) Load 106(f) 175: 16(float) FAdd 174 173 Store 106(f) 175 176: 16(float) Load 106(f) 177: 9(int) Load 58(i) 178: 16(float) ConvertSToF 177 179: 69(fvec2) CompositeConstruct 176 178 180: 66(ivec2) Load 68(i2) 181: 69(fvec2) ConvertSToF 180 182: 69(fvec2) FAdd 179 181 183: 69(fvec2) Load 110(f2) 184: 69(fvec2) FAdd 183 182 Store 110(f2) 184 185: 79(ivec3) Load 81(i3) 186: 82(fvec3) ConvertSToF 185 187: 16(float) Load 106(f) 188: 9(int) Load 58(i) 189: 16(float) ConvertSToF 188 190: 16(float) Load 106(f) 191: 82(fvec3) CompositeConstruct 187 189 190 192: 82(fvec3) FAdd 186 191 193: 82(fvec3) Load 114(f3) 194: 82(fvec3) FAdd 193 192 Store 114(f3) 194 195: 6(bool) Load 8(b) 196: 16(float) Select 195 124 20 197: 9(int) Load 58(i) 198: 16(float) ConvertSToF 197 199: 16(float) Load 106(f) 200: 9(int) Load 58(i) 201: 16(float) ConvertSToF 200 202: 95(fvec4) CompositeConstruct 196 198 199 201 203: 92(ivec4) Load 94(i4) 204: 95(fvec4) ConvertSToF 203 205: 95(fvec4) FAdd 202 204 206: 95(fvec4) Load 118(f4) 207: 95(fvec4) FAdd 206 205 Store 118(f4) 207 208: 16(float) Load 106(f) 209: 9(int) Load 58(i) 210: 16(float) ConvertSToF 209 211: 69(fvec2) CompositeConstruct 208 210 212: 9(int) Load 58(i) 213: 16(float) ConvertSToF 212 214: 69(fvec2) VectorTimesScalar 211 213 215: 69(fvec2) Load 110(f2) 216: 69(fvec2) FAdd 215 214 Store 110(f2) 216 217: 16(float) Load 106(f) 218: 9(int) Load 58(i) 219: 16(float) ConvertSToF 218 220: 16(float) Load 106(f) 221: 82(fvec3) CompositeConstruct 217 219 220 222: 9(int) Load 58(i) 223: 16(float) ConvertSToF 222 224: 82(fvec3) CompositeConstruct 223 223 223 225: 82(fvec3) FAdd 221 224 226: 82(fvec3) Load 114(f3) 227: 82(fvec3) FAdd 226 225 Store 114(f3) 227 228: 9(int) Load 58(i) 229: 16(float) ConvertSToF 228 230: 6(bool) Load 8(b) 231: 16(float) Select 230 124 20 232: 9(int) Load 58(i) 233: 16(float) ConvertSToF 232 234: 16(float) Load 106(f) 235: 9(int) Load 58(i) 236: 16(float) ConvertSToF 235 237: 95(fvec4) CompositeConstruct 231 233 234 236 238: 95(fvec4) CompositeConstruct 229 229 229 229 239: 95(fvec4) FSub 238 237 240: 95(fvec4) Load 118(f4) 241: 95(fvec4) FAdd 240 239 Store 118(f4) 241 242: 16(float) Load 106(f) 243: 9(int) ConvertFToS 242 244: 9(int) Load 58(i) 245: 66(ivec2) CompositeConstruct 243 244 246: 66(ivec2) Load 68(i2) 247: 66(ivec2) IAdd 246 245 Store 68(i2) 247 248: 16(float) Load 106(f) 249: 9(int) ConvertFToS 248 250: 9(int) Load 58(i) 251: 16(float) Load 106(f) 252: 9(int) ConvertFToS 251 253: 79(ivec3) CompositeConstruct 249 250 252 254: 79(ivec3) Load 81(i3) 255: 79(ivec3) IAdd 254 253 Store 81(i3) 255 256: 6(bool) Load 8(b) 257: 9(int) Select 256 63 62 258: 9(int) Load 58(i) 259: 16(float) Load 106(f) 260: 9(int) ConvertFToS 259 261: 9(int) Load 58(i) 262: 92(ivec4) CompositeConstruct 257 258 260 261 263: 92(ivec4) Load 94(i4) 264: 92(ivec4) IAdd 263 262 Store 94(i4) 264 265: 16(float) Load 106(f) 266: 9(int) Load 58(i) 267: 16(float) ConvertSToF 266 268: 6(bool) FOrdLessThan 265 267 269: 6(bool) LogicalNot 268 SelectionMerge 271 None BranchConditional 269 270 271 270: Label 272: 9(int) Load 58(i) 273: 16(float) ConvertSToF 272 274: 16(float) Load 106(f) 275: 6(bool) FOrdLessThan 273 274 Branch 271 271: Label 276: 6(bool) Phi 268 5 275 270 277: 6(bool) LogicalNot 276 SelectionMerge 279 None BranchConditional 277 278 279 278: Label 280: 69(fvec2) Load 110(f2) 281: 66(ivec2) Load 68(i2) 282: 69(fvec2) ConvertSToF 281 283: 23(bvec2) FOrdEqual 280 282 284: 6(bool) All 283 Branch 279 279: Label 285: 6(bool) Phi 276 271 284 278 286: 6(bool) LogicalNot 285 SelectionMerge 288 None BranchConditional 286 287 288 287: Label 289: 79(ivec3) Load 81(i3) 290: 82(fvec3) ConvertSToF 289 291: 82(fvec3) Load 114(f3) 292: 31(bvec3) FOrdNotEqual 290 291 293: 6(bool) Any 292 Branch 288 288: Label 294: 6(bool) Phi 285 279 293 287 SelectionMerge 296 None BranchConditional 294 295 296 295: Label 297: 6(bool) Load 8(b) SelectionMerge 300 None BranchConditional 297 299 303 299: Label 301: 9(int) Load 58(i) 302: 16(float) ConvertSToF 301 Store 298 302 Branch 300 303: Label 304: 105(ptr) AccessChain 110(f2) 14 305: 16(float) Load 304 Store 298 305 Branch 300 300: Label 306: 16(float) Load 298 307: 7(ptr) AccessChain 25(b2) 14 308: 6(bool) Load 307 SelectionMerge 311 None BranchConditional 308 310 314 310: Label 312: 105(ptr) AccessChain 114(f3) 14 313: 16(float) Load 312 Store 309 313 Branch 311 314: Label 316: 57(ptr) AccessChain 68(i2) 315 317: 9(int) Load 316 318: 16(float) ConvertSToF 317 Store 309 318 Branch 311 311: Label 319: 16(float) Load 309 320: 16(float) FAdd 306 319 Store 106(f) 320 Branch 296 296: Label 323: 6(bool) Load 8(b) 324: 7(ptr) AccessChain 25(b2) 14 325: 6(bool) Load 324 326: 6(bool) LogicalOr 323 325 327: 7(ptr) AccessChain 25(b2) 315 328: 6(bool) Load 327 329: 6(bool) LogicalOr 326 328 330: 7(ptr) AccessChain 33(b3) 14 331: 6(bool) Load 330 332: 6(bool) LogicalOr 329 331 333: 7(ptr) AccessChain 33(b3) 315 334: 6(bool) Load 333 335: 6(bool) LogicalOr 332 334 337: 7(ptr) AccessChain 33(b3) 336 338: 6(bool) Load 337 339: 6(bool) LogicalOr 335 338 340: 7(ptr) AccessChain 45(b4) 14 341: 6(bool) Load 340 342: 6(bool) LogicalOr 339 341 343: 7(ptr) AccessChain 45(b4) 315 344: 6(bool) Load 343 345: 6(bool) LogicalOr 342 344 346: 7(ptr) AccessChain 45(b4) 336 347: 6(bool) Load 346 348: 6(bool) LogicalOr 345 347 350: 7(ptr) AccessChain 45(b4) 349 351: 6(bool) Load 350 352: 6(bool) LogicalOr 348 351 SelectionMerge 355 None BranchConditional 352 354 415 354: Label 356: 9(int) Load 58(i) 357: 57(ptr) AccessChain 68(i2) 14 358: 9(int) Load 357 359: 9(int) IAdd 356 358 360: 57(ptr) AccessChain 68(i2) 315 361: 9(int) Load 360 362: 9(int) IAdd 359 361 363: 57(ptr) AccessChain 81(i3) 14 364: 9(int) Load 363 365: 9(int) IAdd 362 364 366: 57(ptr) AccessChain 81(i3) 315 367: 9(int) Load 366 368: 9(int) IAdd 365 367 369: 57(ptr) AccessChain 81(i3) 336 370: 9(int) Load 369 371: 9(int) IAdd 368 370 372: 57(ptr) AccessChain 94(i4) 14 373: 9(int) Load 372 374: 9(int) IAdd 371 373 375: 57(ptr) AccessChain 94(i4) 315 376: 9(int) Load 375 377: 9(int) IAdd 374 376 378: 57(ptr) AccessChain 94(i4) 336 379: 9(int) Load 378 380: 9(int) IAdd 377 379 381: 57(ptr) AccessChain 94(i4) 349 382: 9(int) Load 381 383: 9(int) IAdd 380 382 384: 16(float) ConvertSToF 383 385: 16(float) Load 106(f) 386: 16(float) FAdd 384 385 387: 105(ptr) AccessChain 110(f2) 14 388: 16(float) Load 387 389: 16(float) FAdd 386 388 390: 105(ptr) AccessChain 110(f2) 315 391: 16(float) Load 390 392: 16(float) FAdd 389 391 393: 105(ptr) AccessChain 114(f3) 14 394: 16(float) Load 393 395: 16(float) FAdd 392 394 396: 105(ptr) AccessChain 114(f3) 315 397: 16(float) Load 396 398: 16(float) FAdd 395 397 399: 105(ptr) AccessChain 114(f3) 336 400: 16(float) Load 399 401: 16(float) FAdd 398 400 402: 105(ptr) AccessChain 118(f4) 14 403: 16(float) Load 402 404: 16(float) FAdd 401 403 405: 105(ptr) AccessChain 118(f4) 315 406: 16(float) Load 405 407: 16(float) FAdd 404 406 408: 105(ptr) AccessChain 118(f4) 336 409: 16(float) Load 408 410: 16(float) FAdd 407 409 411: 105(ptr) AccessChain 118(f4) 349 412: 16(float) Load 411 413: 16(float) FAdd 410 412 414: 95(fvec4) CompositeConstruct 413 413 413 413 Store 353 414 Branch 355 415: Label Store 353 151 Branch 355 355: Label 416: 95(fvec4) Load 353 Store 322(gl_FragColor) 416 Store 417(cv2) 102 419: 92(ivec4) Load 417(cv2) 420: 43(bvec4) INotEqual 419 160 Store 418(cv5) 420 421: 43(bvec4) Load 418(cv5) 422: 95(fvec4) Select 421 151 150 423: 16(float) CompositeExtract 422 0 424: 95(fvec4) Load 322(gl_FragColor) 425: 95(fvec4) CompositeConstruct 423 423 423 423 426: 95(fvec4) FAdd 424 425 Store 322(gl_FragColor) 426 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.coopmat.comp.out000066400000000000000000000467311360464450000226670ustar00rootroot00000000000000spv.coopmat.comp // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 228 Capability Shader Capability Float16 Capability StorageUniformBufferBlock16 Capability VulkanMemoryModelKHR Capability PhysicalStorageBufferAddressesEXT Capability CooperativeMatrixNV Extension "SPV_EXT_physical_storage_buffer" Extension "SPV_KHR_16bit_storage" 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 glslang-8.13.3559/Test/baseResults/spv.coopmat_Error.comp.out000066400000000000000000000072671360464450000240410ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.dataOut.frag.out000066400000000000000000000030231360464450000225720ustar00rootroot00000000000000spv.dataOut.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 12 16 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 12 "gl_FragData" Name 16 "Color" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeInt 32 0 9: 8(int) Constant 32 10: TypeArray 7(fvec4) 9 11: TypePointer Output 10 12(gl_FragData): 11(ptr) Variable Output 13: TypeInt 32 1 14: 13(int) Constant 1 15: TypePointer Input 7(fvec4) 16(Color): 15(ptr) Variable Input 18: TypePointer Output 7(fvec4) 4(main): 2 Function None 3 5: Label 17: 7(fvec4) Load 16(Color) 19: 18(ptr) AccessChain 12(gl_FragData) 14 Store 19 17 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.dataOutIndirect.frag.out000066400000000000000000000042741360464450000242650ustar00rootroot00000000000000spv.dataOutIndirect.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 26 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 12 22 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 12 "fcolor" Name 14 "b" MemberName 14(b) 0 "i" Name 16 "bName" Name 22 "Color" MemberDecorate 14(b) 0 Offset 0 Decorate 14(b) Block Decorate 16(bName) DescriptorSet 0 Decorate 16(bName) Binding 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 glslang-8.13.3559/Test/baseResults/spv.dataOutIndirect.vert.out000066400000000000000000000055731360464450000243310ustar00rootroot00000000000000spv.dataOutIndirect.vert WARNING: 0:3: attribute deprecated in version 130; may be removed in future release // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 38 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 25 28 34 Source GLSL 140 Name 4 "main" Name 8 "i" Name 25 "colorOut" Name 28 "color" Name 34 "gl_Position" Decorate 34(gl_Position) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 9: 6(int) Constant 1 16: 6(int) Constant 5 17: TypeBool 19: TypeFloat 32 20: TypeVector 19(float) 4 21: TypeInt 32 0 22: 21(int) Constant 6 23: TypeArray 20(fvec4) 22 24: TypePointer Output 23 25(colorOut): 24(ptr) Variable Output 27: TypePointer Input 20(fvec4) 28(color): 27(ptr) Variable Input 30: TypePointer Output 20(fvec4) 34(gl_Position): 30(ptr) Variable Output 35: 6(int) Constant 2 4(main): 2 Function None 3 5: Label 8(i): 7(ptr) Variable Function Store 8(i) 9 Branch 10 10: Label LoopMerge 12 13 None Branch 14 14: Label 15: 6(int) Load 8(i) 18: 17(bool) SLessThan 15 16 BranchConditional 18 11 12 11: Label 26: 6(int) Load 8(i) 29: 20(fvec4) Load 28(color) 31: 30(ptr) AccessChain 25(colorOut) 26 Store 31 29 Branch 13 13: Label 32: 6(int) Load 8(i) 33: 6(int) IAdd 32 9 Store 8(i) 33 Branch 10 12: Label 36: 30(ptr) AccessChain 25(colorOut) 35 37: 20(fvec4) Load 36 Store 34(gl_Position) 37 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.dead-after-continue.vert.out000066400000000000000000000044251360464450000250570ustar00rootroot00000000000000spv.dead-after-continue.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.dead-after-discard.frag.out000066400000000000000000000025121360464450000245760ustar00rootroot00000000000000spv.dead-after-discard.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.dead-after-loop-break.vert.out000066400000000000000000000055411360464450000252660ustar00rootroot00000000000000spv.dead-after-loop-break.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.dead-after-return.vert.out000066400000000000000000000023351360464450000245500ustar00rootroot00000000000000spv.dead-after-return.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.dead-after-switch-break.vert.out000066400000000000000000000032711360464450000256140ustar00rootroot00000000000000spv.dead-after-switch-break.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.dead-complex-continue-after-return.vert.out000066400000000000000000000045111360464450000300350ustar00rootroot00000000000000spv.dead-complex-continue-after-return.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.dead-complex-merge-after-return.vert.out000066400000000000000000000042151360464450000273110ustar00rootroot00000000000000spv.dead-complex-merge-after-return.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.debugInfo.1.1.frag.out000066400000000000000000000272631360464450000234050ustar00rootroot00000000000000spv.debugInfo.frag error: SPIRV-Tools Validation Errors error: Invalid SPIR-V binary version 1.3 for target environment SPIR-V 1.0 (under OpenGL 4.5 semantics). // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 124 Capability Shader 2: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 5 "main" 24 52 ExecutionMode 5 OriginLowerLeft 1: String "spv.debugInfo.frag" Source GLSL 450 1 "#version 450 struct S { int a; }; uniform ubuf { S s; }; uniform sampler2D s2d; layout(location = 0) in vec4 inv; layout(location = 0) out vec4 outv; vec4 foo(S s) { vec4 r = s.a * inv; ++r; if (r.x > 3.0) --r; else r *= 2; return r; } void main() { outv = foo(s); outv += texture(s2d, vec2(0.5)); switch (s.a) { case 10: ++outv; break; case 20: outv = 2 * outv; ++outv; break; default: --outv; break; } for (int i = 0; i < 10; ++i) outv *= 3.0; outv.x < 10.0 ? outv = sin(outv) : outv = cos(outv); }" Name 5 "main" Name 8 "S" MemberName 8(S) 0 "a" Name 14 "foo(struct-S-i11;" Name 13 "s" Name 17 "r" Name 24 "inv" Name 52 "outv" Name 53 "S" MemberName 53(S) 0 "a" Name 54 "ubuf" MemberName 54(ubuf) 0 "s" Name 56 "" Name 57 "param" Name 67 "s2d" Name 97 "i" ModuleProcessed "no-storage-format" ModuleProcessed "resource-set-binding 3" ModuleProcessed "auto-map-bindings" ModuleProcessed "auto-map-locations" ModuleProcessed "client opengl100" ModuleProcessed "target-env spirv1.3" ModuleProcessed "target-env opengl" ModuleProcessed "relaxed-errors" ModuleProcessed "suppress-warnings" ModuleProcessed "hlsl-offsets" ModuleProcessed "entry-point main" ModuleProcessed "use-storage-buffer" 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 glslang-8.13.3559/Test/baseResults/spv.debugInfo.frag.out000066400000000000000000000262141360464450000231020ustar00rootroot00000000000000spv.debugInfo.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.deepRvalue.frag.out000066400000000000000000000230031360464450000232650ustar00rootroot00000000000000spv.deepRvalue.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.demoteDisabled.frag.out000066400000000000000000000002541360464450000241010ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.depthOut.frag.out000066400000000000000000000030551360464450000227720ustar00rootroot00000000000000spv.depthOut.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.deviceGroup.frag.out000066400000000000000000000032401360464450000234460ustar00rootroot00000000000000spv.deviceGroup.frag // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 17 Capability Shader Capability DeviceGroup 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 9 12 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_EXT_device_group" Name 4 "main" Name 9 "color" Name 12 "gl_DeviceIndex" Decorate 12(gl_DeviceIndex) Flat Decorate 12(gl_DeviceIndex) BuiltIn DeviceIndex 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Output 7(fvec4) 9(color): 8(ptr) Variable Output 10: TypeInt 32 1 11: TypePointer Input 10(int) 12(gl_DeviceIndex): 11(ptr) Variable Input 15: 6(float) Constant 0 4(main): 2 Function None 3 5: Label 13: 10(int) Load 12(gl_DeviceIndex) 14: 6(float) ConvertSToF 13 16: 7(fvec4) CompositeConstruct 14 15 15 15 Store 9(color) 16 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.discard-dce.frag.out000066400000000000000000000136601360464450000233430ustar00rootroot00000000000000spv.discard-dce.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 84 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 21 59 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "white" Name 12 "black" Name 15 "color" Name 18 "x" Name 21 "tex_coord" Name 30 "y" Name 36 "radius" Name 59 "gl_FragColor" Decorate 59(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: 6(float) Constant 1065353216 11: 7(fvec4) ConstantComposite 10 10 10 10 13: 6(float) Constant 1045220557 14: 7(fvec4) ConstantComposite 13 13 13 13 17: TypePointer Function 6(float) 19: TypeVector 6(float) 2 20: TypePointer Input 19(fvec2) 21(tex_coord): 20(ptr) Variable Input 22: TypeInt 32 0 23: 22(int) Constant 0 24: TypePointer Input 6(float) 27: 6(float) Constant 1073741824 31: 22(int) Constant 1 46: TypeBool 51: 6(float) Constant 1066192077 58: TypePointer Output 7(fvec4) 59(gl_FragColor): 58(ptr) Variable Output 62: 6(float) Constant 1067030938 71: 6(float) Constant 1061158912 76: 6(float) Constant 1098907648 4(main): 2 Function None 3 5: Label 9(white): 8(ptr) Variable Function 12(black): 8(ptr) Variable Function 15(color): 8(ptr) Variable Function 18(x): 17(ptr) Variable Function 30(y): 17(ptr) Variable Function 36(radius): 17(ptr) Variable Function Store 9(white) 11 Store 12(black) 14 16: 7(fvec4) Load 9(white) Store 15(color) 16 25: 24(ptr) AccessChain 21(tex_coord) 23 26: 6(float) Load 25 28: 6(float) FMul 26 27 29: 6(float) FSub 28 10 Store 18(x) 29 32: 24(ptr) AccessChain 21(tex_coord) 31 33: 6(float) Load 32 34: 6(float) FMul 33 27 35: 6(float) FSub 34 10 Store 30(y) 35 37: 6(float) Load 18(x) 38: 6(float) Load 18(x) 39: 6(float) FMul 37 38 40: 6(float) Load 30(y) 41: 6(float) Load 30(y) 42: 6(float) FMul 40 41 43: 6(float) FAdd 39 42 44: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 43 Store 36(radius) 44 45: 6(float) Load 36(radius) 47: 46(bool) FOrdGreaterThan 45 10 SelectionMerge 49 None BranchConditional 47 48 49 48: Label 50: 6(float) Load 36(radius) 52: 46(bool) FOrdGreaterThan 50 51 SelectionMerge 54 None BranchConditional 52 53 54 53: Label 55: 7(fvec4) Load 15(color) 56: 7(fvec4) CompositeConstruct 10 10 10 10 57: 7(fvec4) FAdd 55 56 Store 15(color) 57 Branch 54 54: Label 60: 7(fvec4) Load 15(color) Store 59(gl_FragColor) 60 61: 6(float) Load 36(radius) 63: 46(bool) FOrdGreaterThan 61 62 SelectionMerge 65 None BranchConditional 63 64 65 64: Label 66: 7(fvec4) Load 15(color) 67: 7(fvec4) CompositeConstruct 10 10 10 10 68: 7(fvec4) FAdd 66 67 Store 15(color) 68 Branch 65 65: Label Kill 49: Label 70: 6(float) Load 36(radius) 72: 46(bool) FOrdGreaterThanEqual 70 71 SelectionMerge 74 None BranchConditional 72 73 74 73: Label 75: 6(float) Load 36(radius) 77: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 75 76 78: 6(float) FDiv 77 27 79: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 78 80: 7(fvec4) Load 15(color) 81: 7(fvec4) CompositeConstruct 79 79 79 79 82: 7(fvec4) FSub 80 81 Store 15(color) 82 Branch 74 74: Label 83: 7(fvec4) Load 15(color) Store 59(gl_FragColor) 83 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.do-simple.vert.out000066400000000000000000000031561360464450000231320ustar00rootroot00000000000000spv.do-simple.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.do-while-continue-break.vert.out000066400000000000000000000064301360464450000256530ustar00rootroot00000000000000spv.do-while-continue-break.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.doWhileLoop.frag.out000066400000000000000000000052461360464450000234270ustar00rootroot00000000000000spv.doWhileLoop.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 34 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 11 17 27 32 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "color" Name 11 "BaseColor" Name 17 "bigColor" Name 27 "d" Name 32 "gl_FragColor" Decorate 32(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypePointer Input 7(fvec4) 11(BaseColor): 10(ptr) Variable Input 17(bigColor): 10(ptr) Variable Input 21: TypeInt 32 0 22: 21(int) Constant 0 23: TypePointer Function 6(float) 26: TypePointer Input 6(float) 27(d): 26(ptr) Variable Input 29: TypeBool 31: TypePointer Output 7(fvec4) 32(gl_FragColor): 31(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(color): 8(ptr) Variable Function 12: 7(fvec4) Load 11(BaseColor) Store 9(color) 12 Branch 13 13: Label LoopMerge 15 16 None Branch 14 14: Label 18: 7(fvec4) Load 17(bigColor) 19: 7(fvec4) Load 9(color) 20: 7(fvec4) FAdd 19 18 Store 9(color) 20 Branch 16 16: Label 24: 23(ptr) AccessChain 9(color) 22 25: 6(float) Load 24 28: 6(float) Load 27(d) 30: 29(bool) FOrdLessThan 25 28 BranchConditional 30 13 15 15: Label 33: 7(fvec4) Load 9(color) Store 32(gl_FragColor) 33 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.double.comp.out000066400000000000000000000121571360464450000224720ustar00rootroot00000000000000spv.double.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.drawParams.vert.out000066400000000000000000000052171360464450000233420ustar00rootroot00000000000000spv.drawParams.vert // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 29 Capability Shader Capability DrawParameters 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 10 13 16 21 Source GLSL 450 SourceExtension "GL_ARB_shader_draw_parameters" Name 4 "main" Name 8 "a" Name 10 "gl_BaseVertexARB" Name 12 "b" Name 13 "gl_BaseInstanceARB" Name 15 "c" Name 16 "gl_DrawIDARB" Name 21 "pos" Decorate 10(gl_BaseVertexARB) BuiltIn BaseVertex Decorate 13(gl_BaseInstanceARB) BuiltIn BaseInstance Decorate 16(gl_DrawIDARB) BuiltIn DrawIndex 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 9: TypePointer Input 6(int) 10(gl_BaseVertexARB): 9(ptr) Variable Input 13(gl_BaseInstanceARB): 9(ptr) Variable Input 16(gl_DrawIDARB): 9(ptr) Variable Input 18: TypeFloat 32 19: TypeVector 18(float) 3 20: TypePointer Output 19(fvec3) 21(pos): 20(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(a): 7(ptr) Variable Function 12(b): 7(ptr) Variable Function 15(c): 7(ptr) Variable Function 11: 6(int) Load 10(gl_BaseVertexARB) Store 8(a) 11 14: 6(int) Load 13(gl_BaseInstanceARB) Store 12(b) 14 17: 6(int) Load 16(gl_DrawIDARB) Store 15(c) 17 22: 6(int) Load 8(a) 23: 18(float) ConvertSToF 22 24: 6(int) Load 12(b) 25: 18(float) ConvertSToF 24 26: 6(int) Load 15(c) 27: 18(float) ConvertSToF 26 28: 19(fvec3) CompositeConstruct 23 25 27 Store 21(pos) 28 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.earlyReturnDiscard.frag.out000066400000000000000000000175211360464450000250070ustar00rootroot00000000000000spv.earlyReturnDiscard.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 110 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 11 14 17 19 25 30 39 51 63 105 109 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "color" Name 11 "BaseColor" Name 13 "color2" Name 14 "otherColor" Name 17 "c" Name 19 "d" Name 25 "bigColor" Name 30 "smallColor" Name 39 "minimum" Name 51 "threshhold" Name 63 "threshhold2" Name 77 "b" Name 105 "gl_FragColor" Name 109 "threshhold3" Decorate 105(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypePointer Input 7(fvec4) 11(BaseColor): 10(ptr) Variable Input 14(otherColor): 10(ptr) Variable Input 16: TypePointer Input 6(float) 17(c): 16(ptr) Variable Input 19(d): 16(ptr) Variable Input 21: TypeBool 25(bigColor): 10(ptr) Variable Input 30(smallColor): 10(ptr) Variable Input 34: TypeInt 32 0 35: 34(int) Constant 2 36: TypePointer Function 6(float) 39(minimum): 16(ptr) Variable Input 47: 6(float) Constant 1065353216 51(threshhold): 16(ptr) Variable Input 60: 34(int) Constant 3 63(threshhold2): 16(ptr) Variable Input 76: TypePointer Private 21(bool) 77(b): 76(ptr) Variable Private 85: 34(int) Constant 0 104: TypePointer Output 7(fvec4) 105(gl_FragColor): 104(ptr) Variable Output 109(threshhold3): 16(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(color): 8(ptr) Variable Function 13(color2): 8(ptr) Variable Function 12: 7(fvec4) Load 11(BaseColor) Store 9(color) 12 15: 7(fvec4) Load 14(otherColor) Store 13(color2) 15 18: 6(float) Load 17(c) 20: 6(float) Load 19(d) 22: 21(bool) FOrdGreaterThan 18 20 SelectionMerge 24 None BranchConditional 22 23 29 23: Label 26: 7(fvec4) Load 25(bigColor) 27: 7(fvec4) Load 9(color) 28: 7(fvec4) FAdd 27 26 Store 9(color) 28 Branch 24 29: Label 31: 7(fvec4) Load 30(smallColor) 32: 7(fvec4) Load 9(color) 33: 7(fvec4) FAdd 32 31 Store 9(color) 33 Branch 24 24: Label 37: 36(ptr) AccessChain 9(color) 35 38: 6(float) Load 37 40: 6(float) Load 39(minimum) 41: 21(bool) FOrdLessThan 38 40 SelectionMerge 43 None BranchConditional 41 42 43 42: Label Return 43: Label 45: 36(ptr) AccessChain 9(color) 35 46: 6(float) Load 45 48: 6(float) FAdd 46 47 Store 45 48 49: 36(ptr) AccessChain 9(color) 35 50: 6(float) Load 49 52: 6(float) Load 51(threshhold) 53: 21(bool) FOrdGreaterThan 50 52 SelectionMerge 55 None BranchConditional 53 54 55 54: Label Kill 55: Label 57: 7(fvec4) Load 9(color) 58: 7(fvec4) CompositeConstruct 47 47 47 47 59: 7(fvec4) FAdd 57 58 Store 9(color) 59 61: 36(ptr) AccessChain 9(color) 60 62: 6(float) Load 61 64: 6(float) Load 63(threshhold2) 65: 21(bool) FOrdGreaterThan 62 64 SelectionMerge 67 None BranchConditional 65 66 97 66: Label 68: 36(ptr) AccessChain 9(color) 35 69: 6(float) Load 68 70: 6(float) Load 63(threshhold2) 71: 21(bool) FOrdGreaterThan 69 70 SelectionMerge 73 None BranchConditional 71 72 75 72: Label Return 75: Label 78: 21(bool) Load 77(b) SelectionMerge 80 None BranchConditional 78 79 84 79: Label 81: 36(ptr) AccessChain 9(color) 35 82: 6(float) Load 81 83: 6(float) FAdd 82 47 Store 81 83 Branch 80 84: Label 86: 36(ptr) AccessChain 9(color) 85 87: 6(float) Load 86 88: 6(float) Load 39(minimum) 89: 21(bool) FOrdLessThan 87 88 SelectionMerge 91 None BranchConditional 89 90 93 90: Label Kill 93: Label 94: 7(fvec4) Load 9(color) 95: 7(fvec4) CompositeConstruct 47 47 47 47 96: 7(fvec4) FAdd 94 95 Store 9(color) 96 Branch 91 91: Label Branch 80 80: Label Branch 73 73: Label Branch 67 97: Label 98: 21(bool) Load 77(b) SelectionMerge 100 None BranchConditional 98 99 102 99: Label Kill 102: Label Return 100: Label 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 glslang-8.13.3559/Test/baseResults/spv.explicittypes.frag.out000066400000000000000000001236501360464450000241100ustar00rootroot00000000000000spv.explicittypes.frag // Module Version 10300 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.extPostDepthCoverage.frag.out000066400000000000000000000020751360464450000253060ustar00rootroot00000000000000spv.extPostDepthCoverage.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.extPostDepthCoverage_Error.frag.out000066400000000000000000000002511360464450000264510ustar00rootroot00000000000000spv.extPostDepthCoverage_Error.frag ERROR: Linking fragment stage: post_depth_coverage requires early_fragment_tests SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/spv.float16.frag.out000066400000000000000000001240601360464450000224520ustar00rootroot00000000000000spv.float16.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 534 Capability Shader Capability Float16 Capability Float64 Capability Int64 Capability DerivativeControl Capability InterpolationFunction Capability StorageUniformBufferBlock16 Capability StorageUniform16 Capability StorageInputOutput16 Extension "SPV_AMD_gpu_shader_half_float" Extension "SPV_KHR_16bit_storage" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 465 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_AMD_gpu_shader_half_float" SourceExtension "GL_ARB_gpu_shader_int64" Name 4 "main" Name 6 "literal(" Name 8 "operators(" Name 10 "typeCast(" Name 12 "builtinAngleTrigFuncs(" Name 14 "builtinExpFuncs(" Name 16 "builtinCommonFuncs(" Name 18 "builtinPackUnpackFuncs(" Name 20 "builtinGeometryFuncs(" Name 22 "builtinMatrixFuncs(" Name 24 "builtinVecRelFuncs(" Name 26 "builtinFragProcFuncs(" Name 31 "f16v" Name 42 "f16v" Name 64 "f16m" Name 87 "f16" Name 111 "b" Name 153 "f16v" Name 156 "bv" Name 167 "fv" Name 175 "dv" Name 186 "iv" Name 193 "uv" Name 201 "i64v" Name 209 "u64v" Name 216 "f16v2" Name 217 "f16v1" Name 249 "f16v2" Name 250 "f16v1" Name 266 "f16v2" Name 267 "f16v1" Name 288 "f16" Name 292 "f16v3" Name 332 "bv" Name 353 "b" Name 363 "iv" Name 364 "ResType" Name 372 "u" Name 373 "f16v" Name 378 "f16" Name 379 "f16v1" Name 383 "f16v2" Name 389 "f16v3" Name 408 "f16m3" Name 409 "f16m1" Name 411 "f16m2" Name 420 "f16v1" Name 422 "f16v2" Name 427 "f16m4" Name 430 "f16" Name 433 "f16m5" Name 438 "f16m6" Name 439 "f16m7" Name 442 "bv" Name 443 "f16v1" Name 445 "f16v2" Name 463 "f16v" Name 465 "if16v" Name 514 "S" MemberName 514(S) 0 "x" MemberName 514(S) 1 "y" MemberName 514(S) 2 "z" Name 516 "B1" MemberName 516(B1) 0 "a" MemberName 516(B1) 1 "b" MemberName 516(B1) 2 "c" MemberName 516(B1) 3 "d" MemberName 516(B1) 4 "e" MemberName 516(B1) 5 "f" MemberName 516(B1) 6 "g" MemberName 516(B1) 7 "h" Name 518 "" Name 521 "S" MemberName 521(S) 0 "x" MemberName 521(S) 1 "y" MemberName 521(S) 2 "z" Name 523 "B2" MemberName 523(B2) 0 "o" MemberName 523(B2) 1 "p" MemberName 523(B2) 2 "q" MemberName 523(B2) 3 "r" MemberName 523(B2) 4 "s" MemberName 523(B2) 5 "t" MemberName 523(B2) 6 "u" MemberName 523(B2) 7 "v" Name 525 "" Name 526 "sf16" Name 527 "sf" Name 528 "sd" Name 529 "f16_to_f" Name 531 "f16_to_d" Name 532 "f_to_f16" Name 533 "d_to_f16" Decorate 512 ArrayStride 16 Decorate 513 ArrayStride 32 MemberDecorate 514(S) 0 Offset 0 MemberDecorate 514(S) 1 Offset 4 MemberDecorate 514(S) 2 Offset 8 Decorate 515 ArrayStride 16 MemberDecorate 516(B1) 0 Offset 0 MemberDecorate 516(B1) 1 Offset 4 MemberDecorate 516(B1) 2 Offset 8 MemberDecorate 516(B1) 3 Offset 16 MemberDecorate 516(B1) 4 ColMajor MemberDecorate 516(B1) 4 Offset 48 MemberDecorate 516(B1) 4 MatrixStride 16 MemberDecorate 516(B1) 5 ColMajor MemberDecorate 516(B1) 5 Offset 80 MemberDecorate 516(B1) 5 MatrixStride 16 MemberDecorate 516(B1) 6 Offset 144 MemberDecorate 516(B1) 7 Offset 160 Decorate 516(B1) Block Decorate 518 DescriptorSet 0 Decorate 518 Binding 0 Decorate 519 ArrayStride 2 Decorate 520 ArrayStride 12 MemberDecorate 521(S) 0 Offset 0 MemberDecorate 521(S) 1 Offset 4 MemberDecorate 521(S) 2 Offset 8 Decorate 522 ArrayStride 16 MemberDecorate 523(B2) 0 Offset 0 MemberDecorate 523(B2) 1 Offset 4 MemberDecorate 523(B2) 2 Offset 8 MemberDecorate 523(B2) 3 Offset 14 MemberDecorate 523(B2) 4 RowMajor MemberDecorate 523(B2) 4 Offset 20 MemberDecorate 523(B2) 4 MatrixStride 4 MemberDecorate 523(B2) 5 RowMajor MemberDecorate 523(B2) 5 Offset 32 MemberDecorate 523(B2) 5 MatrixStride 4 MemberDecorate 523(B2) 6 Offset 56 MemberDecorate 523(B2) 7 Offset 72 Decorate 523(B2) BufferBlock Decorate 525 DescriptorSet 0 Decorate 525 Binding 0 Decorate 526(sf16) SpecId 100 Decorate 527(sf) SpecId 101 Decorate 528(sd) SpecId 102 2: TypeVoid 3: TypeFunction 2 28: TypeFloat 16 29: TypeVector 28(float16_t) 2 30: TypePointer Function 29(f16vec2) 32:28(float16_t) Constant 16 33: TypeInt 32 0 34: 33(int) Constant 0 35: TypePointer Function 28(float16_t) 37:28(float16_t) Constant 46080 38:28(float16_t) Constant 10158 39: 29(f16vec2) ConstantComposite 37 38 56:28(float16_t) Constant 15360 62: TypeMatrix 29(f16vec2) 2 63: TypePointer Function 62 90: 33(int) Constant 1 109: TypeBool 110: TypePointer Function 109(bool) 151: TypeVector 28(float16_t) 3 152: TypePointer Function 151(f16vec3) 154: TypeVector 109(bool) 3 155: TypePointer Function 154(bvec3) 158:28(float16_t) Constant 0 159:151(f16vec3) ConstantComposite 158 158 158 160:151(f16vec3) ConstantComposite 56 56 56 164: TypeFloat 32 165: TypeVector 164(float) 3 166: TypePointer Function 165(fvec3) 172: TypeFloat 64 173: TypeVector 172(float64_t) 3 174: TypePointer Function 173(f64vec3) 183: TypeInt 32 1 184: TypeVector 183(int) 3 185: TypePointer Function 184(ivec3) 191: TypeVector 33(int) 3 192: TypePointer Function 191(ivec3) 198: TypeInt 64 1 199: TypeVector 198(int64_t) 3 200: TypePointer Function 199(i64vec3) 206: TypeInt 64 0 207: TypeVector 206(int64_t) 3 208: TypePointer Function 207(i64vec3) 214: TypeVector 28(float16_t) 4 215: TypePointer Function 214(f16vec4) 364(ResType): TypeStruct 151(f16vec3) 184(ivec3) 371: TypePointer Function 33(int) 406: TypeMatrix 151(f16vec3) 2 407: TypePointer Function 406 425: TypeMatrix 29(f16vec2) 3 426: TypePointer Function 425 431: TypeMatrix 151(f16vec3) 3 432: TypePointer Function 431 436: TypeMatrix 214(f16vec4) 4 437: TypePointer Function 436 464: TypePointer Input 151(f16vec3) 465(if16v): 464(ptr) Variable Input 466: TypePointer Input 28(float16_t) 503: 183(int) Constant 1 508:28(float16_t) Constant 14336 509: 29(f16vec2) ConstantComposite 508 508 511: 33(int) Constant 2 512: TypeArray 28(float16_t) 511 513: TypeArray 406 511 514(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 515: TypeArray 514(S) 511 516(B1): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 512 406 513 514(S) 515 517: TypePointer Uniform 516(B1) 518: 517(ptr) Variable Uniform 519: TypeArray 28(float16_t) 511 520: TypeArray 406 511 521(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 522: TypeArray 521(S) 511 523(B2): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 519 406 520 521(S) 522 524: TypePointer Uniform 523(B2) 525: 524(ptr) Variable Uniform 526(sf16):28(float16_t) SpecConstant 12288 527(sf): 164(float) SpecConstant 1048576000 528(sd):172(float64_t) SpecConstant 0 1071644672 529(f16_to_f): 164(float) SpecConstantOp 115 526(sf16) 530: 164(float) SpecConstantOp 115 526(sf16) 531(f16_to_d):172(float64_t) SpecConstantOp 115 530 532(f_to_f16):28(float16_t) SpecConstantOp 115 527(sf) 533(d_to_f16):28(float16_t) SpecConstantOp 115 528(sd) 4(main): 2 Function None 3 5: Label Return FunctionEnd 6(literal(): 2 Function None 3 7: Label 31(f16v): 30(ptr) Variable Function 36: 35(ptr) AccessChain 31(f16v) 34 Store 36 32 40: 29(f16vec2) Load 31(f16v) 41: 29(f16vec2) FAdd 40 39 Store 31(f16v) 41 Return FunctionEnd 8(operators(): 2 Function None 3 9: Label 42(f16v): 30(ptr) Variable Function 64(f16m): 63(ptr) Variable Function 87(f16): 35(ptr) Variable Function 111(b): 110(ptr) Variable Function 43: 29(f16vec2) Load 42(f16v) 44: 29(f16vec2) Load 42(f16v) 45: 29(f16vec2) FAdd 44 43 Store 42(f16v) 45 46: 29(f16vec2) Load 42(f16v) 47: 29(f16vec2) Load 42(f16v) 48: 29(f16vec2) FSub 47 46 Store 42(f16v) 48 49: 29(f16vec2) Load 42(f16v) 50: 29(f16vec2) Load 42(f16v) 51: 29(f16vec2) FMul 50 49 Store 42(f16v) 51 52: 29(f16vec2) Load 42(f16v) 53: 29(f16vec2) Load 42(f16v) 54: 29(f16vec2) FDiv 53 52 Store 42(f16v) 54 55: 29(f16vec2) Load 42(f16v) 57: 29(f16vec2) CompositeConstruct 56 56 58: 29(f16vec2) FAdd 55 57 Store 42(f16v) 58 59: 29(f16vec2) Load 42(f16v) 60: 29(f16vec2) CompositeConstruct 56 56 61: 29(f16vec2) FSub 59 60 Store 42(f16v) 61 65: 62 Load 64(f16m) 66: 29(f16vec2) CompositeConstruct 56 56 67: 29(f16vec2) CompositeExtract 65 0 68: 29(f16vec2) FAdd 67 66 69: 29(f16vec2) CompositeExtract 65 1 70: 29(f16vec2) FAdd 69 66 71: 62 CompositeConstruct 68 70 Store 64(f16m) 71 72: 62 Load 64(f16m) 73: 29(f16vec2) CompositeConstruct 56 56 74: 29(f16vec2) CompositeExtract 72 0 75: 29(f16vec2) FSub 74 73 76: 29(f16vec2) CompositeExtract 72 1 77: 29(f16vec2) FSub 76 73 78: 62 CompositeConstruct 75 77 Store 64(f16m) 78 79: 29(f16vec2) Load 42(f16v) 80: 29(f16vec2) FNegate 79 Store 42(f16v) 80 81: 62 Load 64(f16m) 82: 29(f16vec2) CompositeExtract 81 0 83: 29(f16vec2) FNegate 82 84: 29(f16vec2) CompositeExtract 81 1 85: 29(f16vec2) FNegate 84 86: 62 CompositeConstruct 83 85 Store 64(f16m) 86 88: 35(ptr) AccessChain 42(f16v) 34 89:28(float16_t) Load 88 91: 35(ptr) AccessChain 42(f16v) 90 92:28(float16_t) Load 91 93:28(float16_t) FAdd 89 92 Store 87(f16) 93 94: 35(ptr) AccessChain 42(f16v) 34 95:28(float16_t) Load 94 96: 35(ptr) AccessChain 42(f16v) 90 97:28(float16_t) Load 96 98:28(float16_t) FSub 95 97 Store 87(f16) 98 99: 35(ptr) AccessChain 42(f16v) 34 100:28(float16_t) Load 99 101: 35(ptr) AccessChain 42(f16v) 90 102:28(float16_t) Load 101 103:28(float16_t) FMul 100 102 Store 87(f16) 103 104: 35(ptr) AccessChain 42(f16v) 34 105:28(float16_t) Load 104 106: 35(ptr) AccessChain 42(f16v) 90 107:28(float16_t) Load 106 108:28(float16_t) FDiv 105 107 Store 87(f16) 108 112: 35(ptr) AccessChain 42(f16v) 34 113:28(float16_t) Load 112 114:28(float16_t) Load 87(f16) 115: 109(bool) FOrdNotEqual 113 114 Store 111(b) 115 116: 35(ptr) AccessChain 42(f16v) 90 117:28(float16_t) Load 116 118:28(float16_t) Load 87(f16) 119: 109(bool) FOrdEqual 117 118 Store 111(b) 119 120: 35(ptr) AccessChain 42(f16v) 34 121:28(float16_t) Load 120 122:28(float16_t) Load 87(f16) 123: 109(bool) FOrdGreaterThan 121 122 Store 111(b) 123 124: 35(ptr) AccessChain 42(f16v) 90 125:28(float16_t) Load 124 126:28(float16_t) Load 87(f16) 127: 109(bool) FOrdLessThan 125 126 Store 111(b) 127 128: 35(ptr) AccessChain 42(f16v) 34 129:28(float16_t) Load 128 130:28(float16_t) Load 87(f16) 131: 109(bool) FOrdGreaterThanEqual 129 130 Store 111(b) 131 132: 35(ptr) AccessChain 42(f16v) 90 133:28(float16_t) Load 132 134:28(float16_t) Load 87(f16) 135: 109(bool) FOrdLessThanEqual 133 134 Store 111(b) 135 136: 29(f16vec2) Load 42(f16v) 137:28(float16_t) Load 87(f16) 138: 29(f16vec2) VectorTimesScalar 136 137 Store 42(f16v) 138 139: 62 Load 64(f16m) 140:28(float16_t) Load 87(f16) 141: 62 MatrixTimesScalar 139 140 Store 64(f16m) 141 142: 62 Load 64(f16m) 143: 29(f16vec2) Load 42(f16v) 144: 29(f16vec2) MatrixTimesVector 142 143 Store 42(f16v) 144 145: 29(f16vec2) Load 42(f16v) 146: 62 Load 64(f16m) 147: 29(f16vec2) VectorTimesMatrix 145 146 Store 42(f16v) 147 148: 62 Load 64(f16m) 149: 62 Load 64(f16m) 150: 62 MatrixTimesMatrix 148 149 Store 64(f16m) 150 Return FunctionEnd 10(typeCast(): 2 Function None 3 11: Label 153(f16v): 152(ptr) Variable Function 156(bv): 155(ptr) Variable Function 167(fv): 166(ptr) Variable Function 175(dv): 174(ptr) Variable Function 186(iv): 185(ptr) Variable Function 193(uv): 192(ptr) Variable Function 201(i64v): 200(ptr) Variable Function 209(u64v): 208(ptr) Variable Function 157: 154(bvec3) Load 156(bv) 161:151(f16vec3) Select 157 160 159 Store 153(f16v) 161 162:151(f16vec3) Load 153(f16v) 163: 154(bvec3) FOrdNotEqual 162 159 Store 156(bv) 163 168: 165(fvec3) Load 167(fv) 169:151(f16vec3) FConvert 168 Store 153(f16v) 169 170:151(f16vec3) Load 153(f16v) 171: 165(fvec3) FConvert 170 Store 167(fv) 171 176:173(f64vec3) Load 175(dv) 177:151(f16vec3) FConvert 176 Store 153(f16v) 177 178:173(f64vec3) Load 175(dv) 179:172(float64_t) CompositeExtract 178 0 180:172(float64_t) CompositeExtract 178 1 181:172(float64_t) CompositeExtract 178 2 182:173(f64vec3) CompositeConstruct 179 180 181 Store 175(dv) 182 187: 184(ivec3) Load 186(iv) 188:151(f16vec3) ConvertSToF 187 Store 153(f16v) 188 189:151(f16vec3) Load 153(f16v) 190: 184(ivec3) ConvertFToS 189 Store 186(iv) 190 194: 191(ivec3) Load 193(uv) 195:151(f16vec3) ConvertUToF 194 Store 153(f16v) 195 196:151(f16vec3) Load 153(f16v) 197: 191(ivec3) ConvertFToU 196 Store 193(uv) 197 202:199(i64vec3) Load 201(i64v) 203:151(f16vec3) ConvertSToF 202 Store 153(f16v) 203 204:151(f16vec3) Load 153(f16v) 205:199(i64vec3) ConvertFToS 204 Store 201(i64v) 205 210:207(i64vec3) Load 209(u64v) 211:151(f16vec3) ConvertUToF 210 Store 153(f16v) 211 212:151(f16vec3) Load 153(f16v) 213:207(i64vec3) ConvertFToU 212 Store 209(u64v) 213 Return FunctionEnd 12(builtinAngleTrigFuncs(): 2 Function None 3 13: Label 216(f16v2): 215(ptr) Variable Function 217(f16v1): 215(ptr) Variable Function 218:214(f16vec4) Load 217(f16v1) 219:214(f16vec4) ExtInst 1(GLSL.std.450) 11(Radians) 218 Store 216(f16v2) 219 220:214(f16vec4) Load 217(f16v1) 221:214(f16vec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220 Store 216(f16v2) 221 222:214(f16vec4) Load 217(f16v1) 223:214(f16vec4) ExtInst 1(GLSL.std.450) 13(Sin) 222 Store 216(f16v2) 223 224:214(f16vec4) Load 217(f16v1) 225:214(f16vec4) ExtInst 1(GLSL.std.450) 14(Cos) 224 Store 216(f16v2) 225 226:214(f16vec4) Load 217(f16v1) 227:214(f16vec4) ExtInst 1(GLSL.std.450) 15(Tan) 226 Store 216(f16v2) 227 228:214(f16vec4) Load 217(f16v1) 229:214(f16vec4) ExtInst 1(GLSL.std.450) 16(Asin) 228 Store 216(f16v2) 229 230:214(f16vec4) Load 217(f16v1) 231:214(f16vec4) ExtInst 1(GLSL.std.450) 17(Acos) 230 Store 216(f16v2) 231 232:214(f16vec4) Load 217(f16v1) 233:214(f16vec4) Load 216(f16v2) 234:214(f16vec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233 Store 216(f16v2) 234 235:214(f16vec4) Load 217(f16v1) 236:214(f16vec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 Store 216(f16v2) 236 237:214(f16vec4) Load 217(f16v1) 238:214(f16vec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237 Store 216(f16v2) 238 239:214(f16vec4) Load 217(f16v1) 240:214(f16vec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239 Store 216(f16v2) 240 241:214(f16vec4) Load 217(f16v1) 242:214(f16vec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241 Store 216(f16v2) 242 243:214(f16vec4) Load 217(f16v1) 244:214(f16vec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243 Store 216(f16v2) 244 245:214(f16vec4) Load 217(f16v1) 246:214(f16vec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245 Store 216(f16v2) 246 247:214(f16vec4) Load 217(f16v1) 248:214(f16vec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 Store 216(f16v2) 248 Return FunctionEnd 14(builtinExpFuncs(): 2 Function None 3 15: Label 249(f16v2): 30(ptr) Variable Function 250(f16v1): 30(ptr) Variable Function 251: 29(f16vec2) Load 250(f16v1) 252: 29(f16vec2) Load 249(f16v2) 253: 29(f16vec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252 Store 249(f16v2) 253 254: 29(f16vec2) Load 250(f16v1) 255: 29(f16vec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 Store 249(f16v2) 255 256: 29(f16vec2) Load 250(f16v1) 257: 29(f16vec2) ExtInst 1(GLSL.std.450) 28(Log) 256 Store 249(f16v2) 257 258: 29(f16vec2) Load 250(f16v1) 259: 29(f16vec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258 Store 249(f16v2) 259 260: 29(f16vec2) Load 250(f16v1) 261: 29(f16vec2) ExtInst 1(GLSL.std.450) 30(Log2) 260 Store 249(f16v2) 261 262: 29(f16vec2) Load 250(f16v1) 263: 29(f16vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262 Store 249(f16v2) 263 264: 29(f16vec2) Load 250(f16v1) 265: 29(f16vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 Store 249(f16v2) 265 Return FunctionEnd 16(builtinCommonFuncs(): 2 Function None 3 17: Label 266(f16v2): 152(ptr) Variable Function 267(f16v1): 152(ptr) Variable Function 288(f16): 35(ptr) Variable Function 292(f16v3): 152(ptr) Variable Function 332(bv): 155(ptr) Variable Function 353(b): 110(ptr) Variable Function 363(iv): 185(ptr) Variable Function 268:151(f16vec3) Load 267(f16v1) 269:151(f16vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268 Store 266(f16v2) 269 270:151(f16vec3) Load 267(f16v1) 271:151(f16vec3) ExtInst 1(GLSL.std.450) 6(FSign) 270 Store 266(f16v2) 271 272:151(f16vec3) Load 267(f16v1) 273:151(f16vec3) ExtInst 1(GLSL.std.450) 8(Floor) 272 Store 266(f16v2) 273 274:151(f16vec3) Load 267(f16v1) 275:151(f16vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274 Store 266(f16v2) 275 276:151(f16vec3) Load 267(f16v1) 277:151(f16vec3) ExtInst 1(GLSL.std.450) 1(Round) 276 Store 266(f16v2) 277 278:151(f16vec3) Load 267(f16v1) 279:151(f16vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278 Store 266(f16v2) 279 280:151(f16vec3) Load 267(f16v1) 281:151(f16vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280 Store 266(f16v2) 281 282:151(f16vec3) Load 267(f16v1) 283:151(f16vec3) ExtInst 1(GLSL.std.450) 10(Fract) 282 Store 266(f16v2) 283 284:151(f16vec3) Load 267(f16v1) 285:151(f16vec3) Load 266(f16v2) 286:151(f16vec3) FMod 284 285 Store 266(f16v2) 286 287:151(f16vec3) Load 267(f16v1) 289:28(float16_t) Load 288(f16) 290:151(f16vec3) CompositeConstruct 289 289 289 291:151(f16vec3) FMod 287 290 Store 266(f16v2) 291 293:151(f16vec3) Load 267(f16v1) 294:151(f16vec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f16v2) Store 292(f16v3) 294 295:151(f16vec3) Load 267(f16v1) 296:151(f16vec3) Load 266(f16v2) 297:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 Store 292(f16v3) 297 298:151(f16vec3) Load 267(f16v1) 299:28(float16_t) Load 288(f16) 300:151(f16vec3) CompositeConstruct 299 299 299 301:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300 Store 292(f16v3) 301 302:151(f16vec3) Load 267(f16v1) 303:151(f16vec3) Load 266(f16v2) 304:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 Store 292(f16v3) 304 305:151(f16vec3) Load 267(f16v1) 306:28(float16_t) Load 288(f16) 307:151(f16vec3) CompositeConstruct 306 306 306 308:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307 Store 292(f16v3) 308 309:151(f16vec3) Load 267(f16v1) 310:28(float16_t) Load 288(f16) 311: 35(ptr) AccessChain 266(f16v2) 34 312:28(float16_t) Load 311 313:151(f16vec3) CompositeConstruct 310 310 310 314:151(f16vec3) CompositeConstruct 312 312 312 315:151(f16vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314 Store 292(f16v3) 315 316:151(f16vec3) Load 267(f16v1) 317:151(f16vec3) Load 266(f16v2) 318:28(float16_t) Load 288(f16) 319:151(f16vec3) CompositeConstruct 318 318 318 320:151(f16vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319 Store 292(f16v3) 320 321:151(f16vec3) Load 267(f16v1) 322:151(f16vec3) Load 266(f16v2) 323:28(float16_t) Load 288(f16) 324:151(f16vec3) CompositeConstruct 323 323 323 325:151(f16vec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324 Store 292(f16v3) 325 326:151(f16vec3) Load 267(f16v1) 327:151(f16vec3) Load 266(f16v2) 328:151(f16vec3) Load 292(f16v3) 329:151(f16vec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328 Store 292(f16v3) 329 330:151(f16vec3) Load 267(f16v1) 331:151(f16vec3) Load 266(f16v2) 333: 154(bvec3) Load 332(bv) 334:151(f16vec3) Select 333 331 330 Store 292(f16v3) 334 335:151(f16vec3) Load 267(f16v1) 336:151(f16vec3) Load 266(f16v2) 337:151(f16vec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336 Store 292(f16v3) 337 338:28(float16_t) Load 288(f16) 339:151(f16vec3) Load 292(f16v3) 340:151(f16vec3) CompositeConstruct 338 338 338 341:151(f16vec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339 Store 292(f16v3) 341 342:151(f16vec3) Load 267(f16v1) 343:151(f16vec3) Load 266(f16v2) 344:151(f16vec3) Load 292(f16v3) 345:151(f16vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344 Store 292(f16v3) 345 346:28(float16_t) Load 288(f16) 347: 35(ptr) AccessChain 267(f16v1) 34 348:28(float16_t) Load 347 349:151(f16vec3) Load 266(f16v2) 350:151(f16vec3) CompositeConstruct 346 346 346 351:151(f16vec3) CompositeConstruct 348 348 348 352:151(f16vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349 Store 292(f16v3) 352 354:28(float16_t) Load 288(f16) 355: 109(bool) IsNan 354 Store 353(b) 355 356:151(f16vec3) Load 267(f16v1) 357: 154(bvec3) IsInf 356 Store 332(bv) 357 358:151(f16vec3) Load 267(f16v1) 359:151(f16vec3) Load 266(f16v2) 360:151(f16vec3) Load 292(f16v3) 361:151(f16vec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360 Store 292(f16v3) 361 362:151(f16vec3) Load 267(f16v1) 365:364(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 362 366: 184(ivec3) CompositeExtract 365 1 Store 363(iv) 366 367:151(f16vec3) CompositeExtract 365 0 Store 266(f16v2) 367 368:151(f16vec3) Load 267(f16v1) 369: 184(ivec3) Load 363(iv) 370:151(f16vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 Store 266(f16v2) 370 Return FunctionEnd 18(builtinPackUnpackFuncs(): 2 Function None 3 19: Label 372(u): 371(ptr) Variable Function 373(f16v): 30(ptr) Variable Function 374: 29(f16vec2) Load 373(f16v) 375: 33(int) Bitcast 374 Store 372(u) 375 376: 33(int) Load 372(u) 377: 29(f16vec2) Bitcast 376 Store 373(f16v) 377 Return FunctionEnd 20(builtinGeometryFuncs(): 2 Function None 3 21: Label 378(f16): 35(ptr) Variable Function 379(f16v1): 152(ptr) Variable Function 383(f16v2): 152(ptr) Variable Function 389(f16v3): 152(ptr) Variable Function 380:151(f16vec3) Load 379(f16v1) 381:28(float16_t) ExtInst 1(GLSL.std.450) 66(Length) 380 Store 378(f16) 381 382:151(f16vec3) Load 379(f16v1) 384:151(f16vec3) Load 383(f16v2) 385:28(float16_t) ExtInst 1(GLSL.std.450) 67(Distance) 382 384 Store 378(f16) 385 386:151(f16vec3) Load 379(f16v1) 387:151(f16vec3) Load 383(f16v2) 388:28(float16_t) Dot 386 387 Store 378(f16) 388 390:151(f16vec3) Load 379(f16v1) 391:151(f16vec3) Load 383(f16v2) 392:151(f16vec3) ExtInst 1(GLSL.std.450) 68(Cross) 390 391 Store 389(f16v3) 392 393:151(f16vec3) Load 379(f16v1) 394:151(f16vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 393 Store 383(f16v2) 394 395:151(f16vec3) Load 379(f16v1) 396:151(f16vec3) Load 383(f16v2) 397:151(f16vec3) Load 389(f16v3) 398:151(f16vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 395 396 397 Store 389(f16v3) 398 399:151(f16vec3) Load 379(f16v1) 400:151(f16vec3) Load 383(f16v2) 401:151(f16vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 399 400 Store 389(f16v3) 401 402:151(f16vec3) Load 379(f16v1) 403:151(f16vec3) Load 383(f16v2) 404:28(float16_t) Load 378(f16) 405:151(f16vec3) ExtInst 1(GLSL.std.450) 72(Refract) 402 403 404 Store 389(f16v3) 405 Return FunctionEnd 22(builtinMatrixFuncs(): 2 Function None 3 23: Label 408(f16m3): 407(ptr) Variable Function 409(f16m1): 407(ptr) Variable Function 411(f16m2): 407(ptr) Variable Function 420(f16v1): 152(ptr) Variable Function 422(f16v2): 30(ptr) Variable Function 427(f16m4): 426(ptr) Variable Function 430(f16): 35(ptr) Variable Function 433(f16m5): 432(ptr) Variable Function 438(f16m6): 437(ptr) Variable Function 439(f16m7): 437(ptr) Variable Function 410: 406 Load 409(f16m1) 412: 406 Load 411(f16m2) 413:151(f16vec3) CompositeExtract 410 0 414:151(f16vec3) CompositeExtract 412 0 415:151(f16vec3) FMul 413 414 416:151(f16vec3) CompositeExtract 410 1 417:151(f16vec3) CompositeExtract 412 1 418:151(f16vec3) FMul 416 417 419: 406 CompositeConstruct 415 418 Store 408(f16m3) 419 421:151(f16vec3) Load 420(f16v1) 423: 29(f16vec2) Load 422(f16v2) 424: 406 OuterProduct 421 423 Store 409(f16m1) 424 428: 406 Load 409(f16m1) 429: 425 Transpose 428 Store 427(f16m4) 429 434: 431 Load 433(f16m5) 435:28(float16_t) ExtInst 1(GLSL.std.450) 33(Determinant) 434 Store 430(f16) 435 440: 436 Load 439(f16m7) 441: 436 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 440 Store 438(f16m6) 441 Return FunctionEnd 24(builtinVecRelFuncs(): 2 Function None 3 25: Label 442(bv): 155(ptr) Variable Function 443(f16v1): 152(ptr) Variable Function 445(f16v2): 152(ptr) Variable Function 444:151(f16vec3) Load 443(f16v1) 446:151(f16vec3) Load 445(f16v2) 447: 154(bvec3) FOrdLessThan 444 446 Store 442(bv) 447 448:151(f16vec3) Load 443(f16v1) 449:151(f16vec3) Load 445(f16v2) 450: 154(bvec3) FOrdLessThanEqual 448 449 Store 442(bv) 450 451:151(f16vec3) Load 443(f16v1) 452:151(f16vec3) Load 445(f16v2) 453: 154(bvec3) FOrdGreaterThan 451 452 Store 442(bv) 453 454:151(f16vec3) Load 443(f16v1) 455:151(f16vec3) Load 445(f16v2) 456: 154(bvec3) FOrdGreaterThanEqual 454 455 Store 442(bv) 456 457:151(f16vec3) Load 443(f16v1) 458:151(f16vec3) Load 445(f16v2) 459: 154(bvec3) FOrdEqual 457 458 Store 442(bv) 459 460:151(f16vec3) Load 443(f16v1) 461:151(f16vec3) Load 445(f16v2) 462: 154(bvec3) FOrdNotEqual 460 461 Store 442(bv) 462 Return FunctionEnd 26(builtinFragProcFuncs(): 2 Function None 3 27: Label 463(f16v): 152(ptr) Variable Function 467: 466(ptr) AccessChain 465(if16v) 34 468:28(float16_t) Load 467 469:28(float16_t) DPdx 468 470: 35(ptr) AccessChain 463(f16v) 34 Store 470 469 471: 466(ptr) AccessChain 465(if16v) 90 472:28(float16_t) Load 471 473:28(float16_t) DPdy 472 474: 35(ptr) AccessChain 463(f16v) 90 Store 474 473 475:151(f16vec3) Load 465(if16v) 476: 29(f16vec2) VectorShuffle 475 475 0 1 477: 29(f16vec2) DPdxFine 476 478:151(f16vec3) Load 463(f16v) 479:151(f16vec3) VectorShuffle 478 477 3 4 2 Store 463(f16v) 479 480:151(f16vec3) Load 465(if16v) 481: 29(f16vec2) VectorShuffle 480 480 0 1 482: 29(f16vec2) DPdyFine 481 483:151(f16vec3) Load 463(f16v) 484:151(f16vec3) VectorShuffle 483 482 3 4 2 Store 463(f16v) 484 485:151(f16vec3) Load 465(if16v) 486:151(f16vec3) DPdxCoarse 485 Store 463(f16v) 486 487:151(f16vec3) Load 465(if16v) 488:151(f16vec3) DPdxCoarse 487 Store 463(f16v) 488 489: 466(ptr) AccessChain 465(if16v) 34 490:28(float16_t) Load 489 491:28(float16_t) Fwidth 490 492: 35(ptr) AccessChain 463(f16v) 34 Store 492 491 493:151(f16vec3) Load 465(if16v) 494: 29(f16vec2) VectorShuffle 493 493 0 1 495: 29(f16vec2) FwidthFine 494 496:151(f16vec3) Load 463(f16v) 497:151(f16vec3) VectorShuffle 496 495 3 4 2 Store 463(f16v) 497 498:151(f16vec3) Load 465(if16v) 499:151(f16vec3) FwidthCoarse 498 Store 463(f16v) 499 500: 466(ptr) AccessChain 465(if16v) 34 501:28(float16_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 500 502: 35(ptr) AccessChain 463(f16v) 34 Store 502 501 504:151(f16vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 503 505: 29(f16vec2) VectorShuffle 504 504 0 1 506:151(f16vec3) Load 463(f16v) 507:151(f16vec3) VectorShuffle 506 505 3 4 2 Store 463(f16v) 507 510:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509 Store 463(f16v) 510 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.float16Fetch.frag.out000066400000000000000000013331261360464450000234320ustar00rootroot00000000000000spv.float16Fetch.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 5923 Capability Shader Capability Float16 Capability ImageGatherExtended Capability StorageImageMultisample Capability ImageCubeArray Capability ImageRect Capability SampledRect Capability InputAttachment Capability SparseResidency Capability MinLod Capability Sampled1D Capability Image1D Capability SampledCubeArray Capability SampledBuffer Capability ImageBuffer Capability ImageMSArray Capability ImageQuery Capability StorageInputOutput16 Capability Float16ImageAMD Capability ImageGatherBiasLodAMD Extension "SPV_AMD_gpu_shader_half_float_fetch" Extension "SPV_AMD_texture_gather_bias_lod" Extension "SPV_KHR_16bit_storage" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 128 135 137 148 156 169 177 215 251 309 565 572 1393 1401 1409 1417 1425 1433 4257 4264 5913 5922 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_AMD_gpu_shader_half_float" SourceExtension "GL_AMD_gpu_shader_half_float_fetch" SourceExtension "GL_AMD_texture_gather_bias_lod" SourceExtension "GL_ARB_sparse_texture2" SourceExtension "GL_ARB_sparse_texture_clamp" Name 4 "main" Name 9 "testTexture(" Name 11 "testTextureProj(" Name 13 "testTextureLod(" Name 15 "testTextureOffset(" Name 17 "testTextureProjOffset(" Name 19 "testTextureLodOffset(" Name 21 "testTextureProjLodOffset(" Name 23 "testTexelFetch(" Name 25 "testTexelFetchOffset(" Name 27 "testTextureGrad(" Name 29 "testTextureGradOffset(" Name 31 "testTextureProjGrad(" Name 33 "testTextureProjGradoffset(" Name 35 "testTextureGather(" Name 37 "testTextureGatherOffset(" Name 39 "testTextureGatherOffsets(" Name 41 "testTextureGatherLod(" Name 43 "testTextureGatherLodOffset(" Name 45 "testTextureGatherLodOffsets(" Name 50 "testTextureSize(" Name 55 "testTextureQueryLod(" Name 58 "testTextureQueryLevels(" Name 60 "testTextureSamples(" Name 62 "testImageLoad(" Name 67 "testImageStore(vf164;" Name 66 "data" Name 69 "testSparseTexture(" Name 71 "testSparseTextureLod(" Name 73 "testSparseTextureOffset(" Name 75 "testSparseTextureLodOffset(" Name 77 "testSparseTextureGrad(" Name 79 "testSparseTextureGradOffset(" Name 81 "testSparseTexelFetch(" Name 83 "testSparseTexelFetchOffset(" Name 85 "testSparseTextureGather(" Name 87 "testSparseTextureGatherOffset(" Name 89 "testSparseTextureGatherOffsets(" Name 91 "testSparseTextureGatherLod(" Name 93 "testSparseTextureGatherLodOffset(" Name 95 "testSparseTextureGatherLodOffsets(" Name 97 "testSparseImageLoad(" Name 99 "testSparseTextureClamp(" Name 101 "testTextureClamp(" Name 103 "testSparseTextureOffsetClamp(" Name 105 "testTextureOffsetClamp(" Name 107 "testSparseTextureGradClamp(" Name 109 "testTextureGradClamp(" Name 111 "testSparseTextureGradOffsetClamp(" Name 113 "testTextureGradOffsetClamp(" Name 115 "testCombinedTextureSampler(" Name 117 "testSubpassLoad(" Name 119 "texel" Name 125 "s1D" Name 128 "c1" Name 135 "f16c1" Name 137 "f16bias" Name 145 "s2D" Name 148 "c2" Name 156 "f16c2" Name 165 "s3D" Name 169 "c3" Name 177 "f16c3" Name 186 "sCube" Name 201 "s1DShadow" Name 215 "compare" Name 226 "s2DShadow" Name 247 "sCubeShadow" Name 251 "c4" Name 271 "s1DArray" Name 286 "s2DArray" Name 301 "sCubeArray" Name 309 "f16c4" Name 318 "s1DArrayShadow" Name 339 "s2DArrayShadow" Name 359 "s2DRect" Name 373 "s2DRectShadow" Name 393 "sCubeArrayShadow" Name 413 "texel" Name 562 "texel" Name 565 "lod" Name 572 "f16lod" Name 706 "texel" Name 863 "texel" Name 1012 "texel" Name 1130 "texel" Name 1244 "texel" Name 1300 "sBuffer" Name 1311 "s2DMS" Name 1322 "s2DMSArray" Name 1334 "texel" Name 1390 "texel" Name 1393 "dPdxy1" Name 1401 "f16dPdxy1" Name 1409 "dPdxy2" Name 1417 "f16dPdxy2" Name 1425 "dPdxy3" Name 1433 "f16dPdxy3" Name 1632 "texel" Name 1820 "texel" Name 2002 "texel" Name 2184 "texel" Name 2303 "texel" Name 2375 "texel" Name 2450 "texel" Name 2502 "texel" Name 2530 "texel" Name 2559 "size" Name 2733 "lod" Name 2869 "levels" Name 2938 "samples" Name 2952 "texel" Name 2955 "i1D" Name 2964 "i2D" Name 2973 "i3D" Name 2982 "i2DRect" Name 2991 "iCube" Name 3000 "iBuffer" Name 3009 "i1DArray" Name 3018 "i2DArray" Name 3027 "iCubeArray" Name 3036 "i2DMS" Name 3045 "i2DMSArray" Name 3099 "texel" Name 3102 "ResType" Name 3138 "ResType" Name 3242 "texel" Name 3322 "texel" Name 3412 "texel" Name 3468 "texel" Name 3628 "texel" Name 3742 "texel" Name 3794 "texel" Name 3832 "texel" Name 3950 "texel" Name 4022 "texel" Name 4094 "texel" Name 4146 "texel" Name 4174 "texel" Name 4202 "texel" Name 4254 "texel" Name 4257 "lodClamp" Name 4264 "f16lodClamp" Name 4391 "texel" Name 4598 "texel" Name 4674 "texel" Name 4818 "texel" Name 4962 "texel" Name 5188 "texel" Name 5280 "texel" Name 5452 "texel" Name 5454 "t1D" Name 5458 "s" Name 5474 "t2D" Name 5491 "t3D" Name 5508 "tCube" Name 5525 "sShadow" Name 5589 "t1DArray" Name 5606 "t2DArray" Name 5623 "tCubeArray" Name 5681 "t2DRect" Name 5741 "subpass" Name 5747 "subpassMS" Name 5753 "result" Name 5834 "param" Name 5913 "fragColor" Name 5917 "tBuffer" Name 5919 "t2DMS" Name 5921 "t2DMSArray" Name 5922 "bias" Decorate 125(s1D) DescriptorSet 0 Decorate 125(s1D) Binding 0 Decorate 128(c1) Location 0 Decorate 135(f16c1) Location 11 Decorate 137(f16bias) Location 16 Decorate 145(s2D) DescriptorSet 0 Decorate 145(s2D) Binding 1 Decorate 148(c2) Location 1 Decorate 156(f16c2) Location 12 Decorate 165(s3D) DescriptorSet 0 Decorate 165(s3D) Binding 2 Decorate 169(c3) Location 2 Decorate 177(f16c3) Location 13 Decorate 186(sCube) DescriptorSet 0 Decorate 186(sCube) Binding 4 Decorate 201(s1DShadow) DescriptorSet 0 Decorate 201(s1DShadow) Binding 11 Decorate 215(compare) Location 4 Decorate 226(s2DShadow) DescriptorSet 0 Decorate 226(s2DShadow) Binding 12 Decorate 247(sCubeShadow) DescriptorSet 0 Decorate 247(sCubeShadow) Binding 14 Decorate 251(c4) Location 3 Decorate 271(s1DArray) DescriptorSet 0 Decorate 271(s1DArray) Binding 7 Decorate 286(s2DArray) DescriptorSet 0 Decorate 286(s2DArray) Binding 8 Decorate 301(sCubeArray) DescriptorSet 0 Decorate 301(sCubeArray) Binding 9 Decorate 309(f16c4) Location 14 Decorate 318(s1DArrayShadow) DescriptorSet 0 Decorate 318(s1DArrayShadow) Binding 15 Decorate 339(s2DArrayShadow) DescriptorSet 0 Decorate 339(s2DArrayShadow) Binding 16 Decorate 359(s2DRect) DescriptorSet 0 Decorate 359(s2DRect) Binding 3 Decorate 373(s2DRectShadow) DescriptorSet 0 Decorate 373(s2DRectShadow) Binding 13 Decorate 393(sCubeArrayShadow) DescriptorSet 0 Decorate 393(sCubeArrayShadow) Binding 17 Decorate 565(lod) Location 5 Decorate 572(f16lod) Location 15 Decorate 1300(sBuffer) DescriptorSet 0 Decorate 1300(sBuffer) Binding 5 Decorate 1311(s2DMS) DescriptorSet 0 Decorate 1311(s2DMS) Binding 6 Decorate 1322(s2DMSArray) DescriptorSet 0 Decorate 1322(s2DMSArray) Binding 10 Decorate 1393(dPdxy1) Location 8 Decorate 1401(f16dPdxy1) Location 18 Decorate 1409(dPdxy2) Location 9 Decorate 1417(f16dPdxy2) Location 19 Decorate 1425(dPdxy3) Location 10 Decorate 1433(f16dPdxy3) Location 20 Decorate 2955(i1D) DescriptorSet 1 Decorate 2955(i1D) Binding 0 Decorate 2964(i2D) DescriptorSet 1 Decorate 2964(i2D) Binding 1 Decorate 2973(i3D) DescriptorSet 1 Decorate 2973(i3D) Binding 2 Decorate 2982(i2DRect) DescriptorSet 1 Decorate 2982(i2DRect) Binding 3 Decorate 2991(iCube) DescriptorSet 1 Decorate 2991(iCube) Binding 4 Decorate 3000(iBuffer) DescriptorSet 1 Decorate 3000(iBuffer) Binding 8 Decorate 3009(i1DArray) DescriptorSet 1 Decorate 3009(i1DArray) Binding 5 Decorate 3018(i2DArray) DescriptorSet 1 Decorate 3018(i2DArray) Binding 6 Decorate 3027(iCubeArray) DescriptorSet 1 Decorate 3027(iCubeArray) Binding 7 Decorate 3036(i2DMS) DescriptorSet 1 Decorate 3036(i2DMS) Binding 9 Decorate 3045(i2DMSArray) DescriptorSet 1 Decorate 3045(i2DMSArray) Binding 10 Decorate 4257(lodClamp) Location 7 Decorate 4264(f16lodClamp) Location 17 Decorate 5454(t1D) DescriptorSet 2 Decorate 5454(t1D) Binding 0 Decorate 5458(s) DescriptorSet 2 Decorate 5458(s) Binding 11 Decorate 5474(t2D) DescriptorSet 2 Decorate 5474(t2D) Binding 1 Decorate 5491(t3D) DescriptorSet 2 Decorate 5491(t3D) Binding 2 Decorate 5508(tCube) DescriptorSet 2 Decorate 5508(tCube) Binding 4 Decorate 5525(sShadow) DescriptorSet 2 Decorate 5525(sShadow) Binding 12 Decorate 5589(t1DArray) DescriptorSet 2 Decorate 5589(t1DArray) Binding 5 Decorate 5606(t2DArray) DescriptorSet 2 Decorate 5606(t2DArray) Binding 6 Decorate 5623(tCubeArray) DescriptorSet 2 Decorate 5623(tCubeArray) Binding 7 Decorate 5681(t2DRect) DescriptorSet 2 Decorate 5681(t2DRect) Binding 3 Decorate 5741(subpass) DescriptorSet 3 Decorate 5741(subpass) Binding 0 Decorate 5741(subpass) InputAttachmentIndex 0 Decorate 5747(subpassMS) DescriptorSet 3 Decorate 5747(subpassMS) Binding 1 Decorate 5747(subpassMS) InputAttachmentIndex 0 Decorate 5913(fragColor) Location 0 Decorate 5917(tBuffer) DescriptorSet 2 Decorate 5917(tBuffer) Binding 8 Decorate 5919(t2DMS) DescriptorSet 2 Decorate 5919(t2DMS) Binding 9 Decorate 5921(t2DMSArray) DescriptorSet 2 Decorate 5921(t2DMSArray) Binding 10 Decorate 5922(bias) Location 6 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 16 7: TypeVector 6(float16_t) 4 8: TypeFunction 7(f16vec4) 47: TypeInt 32 1 48: TypeVector 47(int) 4 49: TypeFunction 48(ivec4) 52: TypeFloat 32 53: TypeVector 52(float) 2 54: TypeFunction 53(fvec2) 57: TypeFunction 47(int) 64: TypePointer Function 7(f16vec4) 65: TypeFunction 2 64(ptr) 120:6(float16_t) Constant 0 121: 7(f16vec4) ConstantComposite 120 120 120 120 122: TypeImage 6(float16_t) 1D sampled format:Unknown 123: TypeSampledImage 122 124: TypePointer UniformConstant 123 125(s1D): 124(ptr) Variable UniformConstant 127: TypePointer Input 52(float) 128(c1): 127(ptr) Variable Input 134: TypePointer Input 6(float16_t) 135(f16c1): 134(ptr) Variable Input 137(f16bias): 134(ptr) Variable Input 142: TypeImage 6(float16_t) 2D sampled format:Unknown 143: TypeSampledImage 142 144: TypePointer UniformConstant 143 145(s2D): 144(ptr) Variable UniformConstant 147: TypePointer Input 53(fvec2) 148(c2): 147(ptr) Variable Input 154: TypeVector 6(float16_t) 2 155: TypePointer Input 154(f16vec2) 156(f16c2): 155(ptr) Variable Input 162: TypeImage 6(float16_t) 3D sampled format:Unknown 163: TypeSampledImage 162 164: TypePointer UniformConstant 163 165(s3D): 164(ptr) Variable UniformConstant 167: TypeVector 52(float) 3 168: TypePointer Input 167(fvec3) 169(c3): 168(ptr) Variable Input 175: TypeVector 6(float16_t) 3 176: TypePointer Input 175(f16vec3) 177(f16c3): 176(ptr) Variable Input 183: TypeImage 6(float16_t) Cube sampled format:Unknown 184: TypeSampledImage 183 185: TypePointer UniformConstant 184 186(sCube): 185(ptr) Variable UniformConstant 198: TypeImage 6(float16_t) 1D depth sampled format:Unknown 199: TypeSampledImage 198 200: TypePointer UniformConstant 199 201(s1DShadow): 200(ptr) Variable UniformConstant 206: TypeInt 32 0 207: 206(int) Constant 0 208: TypePointer Function 6(float16_t) 215(compare): 127(ptr) Variable Input 223: TypeImage 6(float16_t) 2D depth sampled format:Unknown 224: TypeSampledImage 223 225: TypePointer UniformConstant 224 226(s2DShadow): 225(ptr) Variable UniformConstant 244: TypeImage 6(float16_t) Cube depth sampled format:Unknown 245: TypeSampledImage 244 246: TypePointer UniformConstant 245 247(sCubeShadow): 246(ptr) Variable UniformConstant 249: TypeVector 52(float) 4 250: TypePointer Input 249(fvec4) 251(c4): 250(ptr) Variable Input 268: TypeImage 6(float16_t) 1D array sampled format:Unknown 269: TypeSampledImage 268 270: TypePointer UniformConstant 269 271(s1DArray): 270(ptr) Variable UniformConstant 283: TypeImage 6(float16_t) 2D array sampled format:Unknown 284: TypeSampledImage 283 285: TypePointer UniformConstant 284 286(s2DArray): 285(ptr) Variable UniformConstant 298: TypeImage 6(float16_t) Cube array sampled format:Unknown 299: TypeSampledImage 298 300: TypePointer UniformConstant 299 301(sCubeArray): 300(ptr) Variable UniformConstant 308: TypePointer Input 7(f16vec4) 309(f16c4): 308(ptr) Variable Input 315: TypeImage 6(float16_t) 1D depth array sampled format:Unknown 316: TypeSampledImage 315 317: TypePointer UniformConstant 316 318(s1DArrayShadow): 317(ptr) Variable UniformConstant 336: TypeImage 6(float16_t) 2D depth array sampled format:Unknown 337: TypeSampledImage 336 338: TypePointer UniformConstant 337 339(s2DArrayShadow): 338(ptr) Variable UniformConstant 356: TypeImage 6(float16_t) Rect sampled format:Unknown 357: TypeSampledImage 356 358: TypePointer UniformConstant 357 359(s2DRect): 358(ptr) Variable UniformConstant 370: TypeImage 6(float16_t) Rect depth sampled format:Unknown 371: TypeSampledImage 370 372: TypePointer UniformConstant 371 373(s2DRectShadow): 372(ptr) Variable UniformConstant 390: TypeImage 6(float16_t) Cube depth array sampled format:Unknown 391: TypeSampledImage 390 392: TypePointer UniformConstant 391 393(sCubeArrayShadow): 392(ptr) Variable UniformConstant 565(lod): 127(ptr) Variable Input 572(f16lod): 134(ptr) Variable Input 709: 47(int) Constant 1 721: TypeVector 47(int) 2 722: 721(ivec2) ConstantComposite 709 709 734: TypeVector 47(int) 3 735: 734(ivec3) ConstantComposite 709 709 709 1297: TypeImage 6(float16_t) Buffer sampled format:Unknown 1298: TypeSampledImage 1297 1299: TypePointer UniformConstant 1298 1300(sBuffer): 1299(ptr) Variable UniformConstant 1308: TypeImage 6(float16_t) 2D multi-sampled sampled format:Unknown 1309: TypeSampledImage 1308 1310: TypePointer UniformConstant 1309 1311(s2DMS): 1310(ptr) Variable UniformConstant 1319: TypeImage 6(float16_t) 2D array multi-sampled sampled format:Unknown 1320: TypeSampledImage 1319 1321: TypePointer UniformConstant 1320 1322(s2DMSArray): 1321(ptr) Variable UniformConstant 1326: 47(int) Constant 2 1393(dPdxy1): 127(ptr) Variable Input 1401(f16dPdxy1): 134(ptr) Variable Input 1409(dPdxy2): 147(ptr) Variable Input 1417(f16dPdxy2): 155(ptr) Variable Input 1425(dPdxy3): 168(ptr) Variable Input 1433(f16dPdxy3): 176(ptr) Variable Input 2187: 47(int) Constant 0 2378: 206(int) Constant 4 2379: TypeArray 721(ivec2) 2378 2380: 2379 ConstantComposite 722 722 722 722 2558: TypePointer Function 48(ivec4) 2560: 48(ivec4) ConstantComposite 2187 2187 2187 2187 2566: TypePointer Function 47(int) 2732: TypePointer Function 53(fvec2) 2734: 52(float) Constant 0 2735: 53(fvec2) ConstantComposite 2734 2734 2953: TypeImage 6(float16_t) 1D nonsampled format:Rgba16f 2954: TypePointer UniformConstant 2953 2955(i1D): 2954(ptr) Variable UniformConstant 2962: TypeImage 6(float16_t) 2D nonsampled format:Rgba16f 2963: TypePointer UniformConstant 2962 2964(i2D): 2963(ptr) Variable UniformConstant 2971: TypeImage 6(float16_t) 3D nonsampled format:Rgba16f 2972: TypePointer UniformConstant 2971 2973(i3D): 2972(ptr) Variable UniformConstant 2980: TypeImage 6(float16_t) Rect nonsampled format:Rgba16f 2981: TypePointer UniformConstant 2980 2982(i2DRect): 2981(ptr) Variable UniformConstant 2989: TypeImage 6(float16_t) Cube nonsampled format:Rgba16f 2990: TypePointer UniformConstant 2989 2991(iCube): 2990(ptr) Variable UniformConstant 2998: TypeImage 6(float16_t) Buffer nonsampled format:Rgba16f 2999: TypePointer UniformConstant 2998 3000(iBuffer): 2999(ptr) Variable UniformConstant 3007: TypeImage 6(float16_t) 1D array nonsampled format:Rgba16f 3008: TypePointer UniformConstant 3007 3009(i1DArray): 3008(ptr) Variable UniformConstant 3016: TypeImage 6(float16_t) 2D array nonsampled format:Rgba16f 3017: TypePointer UniformConstant 3016 3018(i2DArray): 3017(ptr) Variable UniformConstant 3025: TypeImage 6(float16_t) Cube array nonsampled format:Rgba16f 3026: TypePointer UniformConstant 3025 3027(iCubeArray): 3026(ptr) Variable UniformConstant 3034: TypeImage 6(float16_t) 2D multi-sampled nonsampled format:Rgba16f 3035: TypePointer UniformConstant 3034 3036(i2DMS): 3035(ptr) Variable UniformConstant 3043: TypeImage 6(float16_t) 2D array multi-sampled nonsampled format:Rgba16f 3044: TypePointer UniformConstant 3043 3045(i2DMSArray): 3044(ptr) Variable UniformConstant 3102(ResType): TypeStruct 47(int) 7(f16vec4) 3138(ResType): TypeStruct 47(int) 6(float16_t) 4257(lodClamp): 127(ptr) Variable Input 4264(f16lodClamp): 134(ptr) Variable Input 5453: TypePointer UniformConstant 122 5454(t1D): 5453(ptr) Variable UniformConstant 5456: TypeSampler 5457: TypePointer UniformConstant 5456 5458(s): 5457(ptr) Variable UniformConstant 5473: TypePointer UniformConstant 142 5474(t2D): 5473(ptr) Variable UniformConstant 5490: TypePointer UniformConstant 162 5491(t3D): 5490(ptr) Variable UniformConstant 5507: TypePointer UniformConstant 183 5508(tCube): 5507(ptr) Variable UniformConstant 5525(sShadow): 5457(ptr) Variable UniformConstant 5588: TypePointer UniformConstant 268 5589(t1DArray): 5588(ptr) Variable UniformConstant 5605: TypePointer UniformConstant 283 5606(t2DArray): 5605(ptr) Variable UniformConstant 5622: TypePointer UniformConstant 298 5623(tCubeArray): 5622(ptr) Variable UniformConstant 5680: TypePointer UniformConstant 356 5681(t2DRect): 5680(ptr) Variable UniformConstant 5739: TypeImage 6(float16_t) SubpassData nonsampled format:Unknown 5740: TypePointer UniformConstant 5739 5741(subpass): 5740(ptr) Variable UniformConstant 5743: 721(ivec2) ConstantComposite 2187 2187 5745: TypeImage 6(float16_t) SubpassData multi-sampled nonsampled format:Unknown 5746: TypePointer UniformConstant 5745 5747(subpassMS): 5746(ptr) Variable UniformConstant 5912: TypePointer Output 249(fvec4) 5913(fragColor): 5912(ptr) Variable Output 5916: TypePointer UniformConstant 1297 5917(tBuffer): 5916(ptr) Variable UniformConstant 5918: TypePointer UniformConstant 1308 5919(t2DMS): 5918(ptr) Variable UniformConstant 5920: TypePointer UniformConstant 1319 5921(t2DMSArray): 5920(ptr) Variable UniformConstant 5922(bias): 127(ptr) Variable Input 4(main): 2 Function None 3 5: Label 5753(result): 64(ptr) Variable Function 5834(param): 64(ptr) Variable Function Store 5753(result) 121 5754: 7(f16vec4) FunctionCall 9(testTexture() 5755: 7(f16vec4) Load 5753(result) 5756: 7(f16vec4) FAdd 5755 5754 Store 5753(result) 5756 5757: 7(f16vec4) FunctionCall 11(testTextureProj() 5758: 7(f16vec4) Load 5753(result) 5759: 7(f16vec4) FAdd 5758 5757 Store 5753(result) 5759 5760: 7(f16vec4) FunctionCall 13(testTextureLod() 5761: 7(f16vec4) Load 5753(result) 5762: 7(f16vec4) FAdd 5761 5760 Store 5753(result) 5762 5763: 7(f16vec4) FunctionCall 15(testTextureOffset() 5764: 7(f16vec4) Load 5753(result) 5765: 7(f16vec4) FAdd 5764 5763 Store 5753(result) 5765 5766: 7(f16vec4) FunctionCall 19(testTextureLodOffset() 5767: 7(f16vec4) Load 5753(result) 5768: 7(f16vec4) FAdd 5767 5766 Store 5753(result) 5768 5769: 7(f16vec4) FunctionCall 21(testTextureProjLodOffset() 5770: 7(f16vec4) Load 5753(result) 5771: 7(f16vec4) FAdd 5770 5769 Store 5753(result) 5771 5772: 7(f16vec4) FunctionCall 23(testTexelFetch() 5773: 7(f16vec4) Load 5753(result) 5774: 7(f16vec4) FAdd 5773 5772 Store 5753(result) 5774 5775: 7(f16vec4) FunctionCall 25(testTexelFetchOffset() 5776: 7(f16vec4) Load 5753(result) 5777: 7(f16vec4) FAdd 5776 5775 Store 5753(result) 5777 5778: 7(f16vec4) FunctionCall 27(testTextureGrad() 5779: 7(f16vec4) Load 5753(result) 5780: 7(f16vec4) FAdd 5779 5778 Store 5753(result) 5780 5781: 7(f16vec4) FunctionCall 29(testTextureGradOffset() 5782: 7(f16vec4) Load 5753(result) 5783: 7(f16vec4) FAdd 5782 5781 Store 5753(result) 5783 5784: 7(f16vec4) FunctionCall 31(testTextureProjGrad() 5785: 7(f16vec4) Load 5753(result) 5786: 7(f16vec4) FAdd 5785 5784 Store 5753(result) 5786 5787: 7(f16vec4) FunctionCall 33(testTextureProjGradoffset() 5788: 7(f16vec4) Load 5753(result) 5789: 7(f16vec4) FAdd 5788 5787 Store 5753(result) 5789 5790: 7(f16vec4) FunctionCall 35(testTextureGather() 5791: 7(f16vec4) Load 5753(result) 5792: 7(f16vec4) FAdd 5791 5790 Store 5753(result) 5792 5793: 7(f16vec4) FunctionCall 37(testTextureGatherOffset() 5794: 7(f16vec4) Load 5753(result) 5795: 7(f16vec4) FAdd 5794 5793 Store 5753(result) 5795 5796: 7(f16vec4) FunctionCall 39(testTextureGatherOffsets() 5797: 7(f16vec4) Load 5753(result) 5798: 7(f16vec4) FAdd 5797 5796 Store 5753(result) 5798 5799: 7(f16vec4) FunctionCall 41(testTextureGatherLod() 5800: 7(f16vec4) Load 5753(result) 5801: 7(f16vec4) FAdd 5800 5799 Store 5753(result) 5801 5802: 7(f16vec4) FunctionCall 43(testTextureGatherLodOffset() 5803: 7(f16vec4) Load 5753(result) 5804: 7(f16vec4) FAdd 5803 5802 Store 5753(result) 5804 5805: 7(f16vec4) FunctionCall 45(testTextureGatherLodOffsets() 5806: 7(f16vec4) Load 5753(result) 5807: 7(f16vec4) FAdd 5806 5805 Store 5753(result) 5807 5808: 48(ivec4) FunctionCall 50(testTextureSize() 5809: 7(f16vec4) ConvertSToF 5808 5810: 7(f16vec4) Load 5753(result) 5811: 7(f16vec4) FAdd 5810 5809 Store 5753(result) 5811 5812: 53(fvec2) FunctionCall 55(testTextureQueryLod() 5813:154(f16vec2) FConvert 5812 5814: 7(f16vec4) Load 5753(result) 5815:154(f16vec2) VectorShuffle 5814 5814 0 1 5816:154(f16vec2) FAdd 5815 5813 5817: 7(f16vec4) Load 5753(result) 5818: 7(f16vec4) VectorShuffle 5817 5816 4 5 2 3 Store 5753(result) 5818 5819: 47(int) FunctionCall 58(testTextureQueryLevels() 5820:6(float16_t) ConvertSToF 5819 5821: 208(ptr) AccessChain 5753(result) 207 5822:6(float16_t) Load 5821 5823:6(float16_t) FAdd 5822 5820 5824: 208(ptr) AccessChain 5753(result) 207 Store 5824 5823 5825: 47(int) FunctionCall 60(testTextureSamples() 5826:6(float16_t) ConvertSToF 5825 5827: 208(ptr) AccessChain 5753(result) 207 5828:6(float16_t) Load 5827 5829:6(float16_t) FAdd 5828 5826 5830: 208(ptr) AccessChain 5753(result) 207 Store 5830 5829 5831: 7(f16vec4) FunctionCall 62(testImageLoad() 5832: 7(f16vec4) Load 5753(result) 5833: 7(f16vec4) FAdd 5832 5831 Store 5753(result) 5833 5835: 7(f16vec4) Load 5753(result) Store 5834(param) 5835 5836: 2 FunctionCall 67(testImageStore(vf164;) 5834(param) 5837: 7(f16vec4) FunctionCall 69(testSparseTexture() 5838: 7(f16vec4) Load 5753(result) 5839: 7(f16vec4) FAdd 5838 5837 Store 5753(result) 5839 5840: 7(f16vec4) FunctionCall 71(testSparseTextureLod() 5841: 7(f16vec4) Load 5753(result) 5842: 7(f16vec4) FAdd 5841 5840 Store 5753(result) 5842 5843: 7(f16vec4) FunctionCall 73(testSparseTextureOffset() 5844: 7(f16vec4) Load 5753(result) 5845: 7(f16vec4) FAdd 5844 5843 Store 5753(result) 5845 5846: 7(f16vec4) FunctionCall 75(testSparseTextureLodOffset() 5847: 7(f16vec4) Load 5753(result) 5848: 7(f16vec4) FAdd 5847 5846 Store 5753(result) 5848 5849: 7(f16vec4) FunctionCall 77(testSparseTextureGrad() 5850: 7(f16vec4) Load 5753(result) 5851: 7(f16vec4) FAdd 5850 5849 Store 5753(result) 5851 5852: 7(f16vec4) FunctionCall 79(testSparseTextureGradOffset() 5853: 7(f16vec4) Load 5753(result) 5854: 7(f16vec4) FAdd 5853 5852 Store 5753(result) 5854 5855: 7(f16vec4) FunctionCall 81(testSparseTexelFetch() 5856: 7(f16vec4) Load 5753(result) 5857: 7(f16vec4) FAdd 5856 5855 Store 5753(result) 5857 5858: 7(f16vec4) FunctionCall 83(testSparseTexelFetchOffset() 5859: 7(f16vec4) Load 5753(result) 5860: 7(f16vec4) FAdd 5859 5858 Store 5753(result) 5860 5861: 7(f16vec4) FunctionCall 85(testSparseTextureGather() 5862: 7(f16vec4) Load 5753(result) 5863: 7(f16vec4) FAdd 5862 5861 Store 5753(result) 5863 5864: 7(f16vec4) FunctionCall 87(testSparseTextureGatherOffset() 5865: 7(f16vec4) Load 5753(result) 5866: 7(f16vec4) FAdd 5865 5864 Store 5753(result) 5866 5867: 7(f16vec4) FunctionCall 89(testSparseTextureGatherOffsets() 5868: 7(f16vec4) Load 5753(result) 5869: 7(f16vec4) FAdd 5868 5867 Store 5753(result) 5869 5870: 7(f16vec4) FunctionCall 91(testSparseTextureGatherLod() 5871: 7(f16vec4) Load 5753(result) 5872: 7(f16vec4) FAdd 5871 5870 Store 5753(result) 5872 5873: 7(f16vec4) FunctionCall 93(testSparseTextureGatherLodOffset() 5874: 7(f16vec4) Load 5753(result) 5875: 7(f16vec4) FAdd 5874 5873 Store 5753(result) 5875 5876: 7(f16vec4) FunctionCall 95(testSparseTextureGatherLodOffsets() 5877: 7(f16vec4) Load 5753(result) 5878: 7(f16vec4) FAdd 5877 5876 Store 5753(result) 5878 5879: 7(f16vec4) FunctionCall 97(testSparseImageLoad() 5880: 7(f16vec4) Load 5753(result) 5881: 7(f16vec4) FAdd 5880 5879 Store 5753(result) 5881 5882: 7(f16vec4) FunctionCall 99(testSparseTextureClamp() 5883: 7(f16vec4) Load 5753(result) 5884: 7(f16vec4) FAdd 5883 5882 Store 5753(result) 5884 5885: 7(f16vec4) FunctionCall 101(testTextureClamp() 5886: 7(f16vec4) Load 5753(result) 5887: 7(f16vec4) FAdd 5886 5885 Store 5753(result) 5887 5888: 7(f16vec4) FunctionCall 103(testSparseTextureOffsetClamp() 5889: 7(f16vec4) Load 5753(result) 5890: 7(f16vec4) FAdd 5889 5888 Store 5753(result) 5890 5891: 7(f16vec4) FunctionCall 105(testTextureOffsetClamp() 5892: 7(f16vec4) Load 5753(result) 5893: 7(f16vec4) FAdd 5892 5891 Store 5753(result) 5893 5894: 7(f16vec4) FunctionCall 77(testSparseTextureGrad() 5895: 7(f16vec4) Load 5753(result) 5896: 7(f16vec4) FAdd 5895 5894 Store 5753(result) 5896 5897: 7(f16vec4) FunctionCall 27(testTextureGrad() 5898: 7(f16vec4) Load 5753(result) 5899: 7(f16vec4) FAdd 5898 5897 Store 5753(result) 5899 5900: 7(f16vec4) FunctionCall 111(testSparseTextureGradOffsetClamp() 5901: 7(f16vec4) Load 5753(result) 5902: 7(f16vec4) FAdd 5901 5900 Store 5753(result) 5902 5903: 7(f16vec4) FunctionCall 113(testTextureGradOffsetClamp() 5904: 7(f16vec4) Load 5753(result) 5905: 7(f16vec4) FAdd 5904 5903 Store 5753(result) 5905 5906: 7(f16vec4) FunctionCall 115(testCombinedTextureSampler() 5907: 7(f16vec4) Load 5753(result) 5908: 7(f16vec4) FAdd 5907 5906 Store 5753(result) 5908 5909: 7(f16vec4) FunctionCall 117(testSubpassLoad() 5910: 7(f16vec4) Load 5753(result) 5911: 7(f16vec4) FAdd 5910 5909 Store 5753(result) 5911 5914: 7(f16vec4) Load 5753(result) 5915: 249(fvec4) FConvert 5914 Store 5913(fragColor) 5915 Return FunctionEnd 9(testTexture(): 7(f16vec4) Function None 8 10: Label 119(texel): 64(ptr) Variable Function Store 119(texel) 121 126: 123 Load 125(s1D) 129: 52(float) Load 128(c1) 130: 7(f16vec4) ImageSampleImplicitLod 126 129 131: 7(f16vec4) Load 119(texel) 132: 7(f16vec4) FAdd 131 130 Store 119(texel) 132 133: 123 Load 125(s1D) 136:6(float16_t) Load 135(f16c1) 138:6(float16_t) Load 137(f16bias) 139: 7(f16vec4) ImageSampleImplicitLod 133 136 Bias 138 140: 7(f16vec4) Load 119(texel) 141: 7(f16vec4) FAdd 140 139 Store 119(texel) 141 146: 143 Load 145(s2D) 149: 53(fvec2) Load 148(c2) 150: 7(f16vec4) ImageSampleImplicitLod 146 149 151: 7(f16vec4) Load 119(texel) 152: 7(f16vec4) FAdd 151 150 Store 119(texel) 152 153: 143 Load 145(s2D) 157:154(f16vec2) Load 156(f16c2) 158:6(float16_t) Load 137(f16bias) 159: 7(f16vec4) ImageSampleImplicitLod 153 157 Bias 158 160: 7(f16vec4) Load 119(texel) 161: 7(f16vec4) FAdd 160 159 Store 119(texel) 161 166: 163 Load 165(s3D) 170: 167(fvec3) Load 169(c3) 171: 7(f16vec4) ImageSampleImplicitLod 166 170 172: 7(f16vec4) Load 119(texel) 173: 7(f16vec4) FAdd 172 171 Store 119(texel) 173 174: 163 Load 165(s3D) 178:175(f16vec3) Load 177(f16c3) 179:6(float16_t) Load 137(f16bias) 180: 7(f16vec4) ImageSampleImplicitLod 174 178 Bias 179 181: 7(f16vec4) Load 119(texel) 182: 7(f16vec4) FAdd 181 180 Store 119(texel) 182 187: 184 Load 186(sCube) 188: 167(fvec3) Load 169(c3) 189: 7(f16vec4) ImageSampleImplicitLod 187 188 190: 7(f16vec4) Load 119(texel) 191: 7(f16vec4) FAdd 190 189 Store 119(texel) 191 192: 184 Load 186(sCube) 193:175(f16vec3) Load 177(f16c3) 194:6(float16_t) Load 137(f16bias) 195: 7(f16vec4) ImageSampleImplicitLod 192 193 Bias 194 196: 7(f16vec4) Load 119(texel) 197: 7(f16vec4) FAdd 196 195 Store 119(texel) 197 202: 199 Load 201(s1DShadow) 203: 167(fvec3) Load 169(c3) 204: 52(float) CompositeExtract 203 2 205:6(float16_t) ImageSampleDrefImplicitLod 202 203 204 209: 208(ptr) AccessChain 119(texel) 207 210:6(float16_t) Load 209 211:6(float16_t) FAdd 210 205 212: 208(ptr) AccessChain 119(texel) 207 Store 212 211 213: 199 Load 201(s1DShadow) 214:154(f16vec2) Load 156(f16c2) 216: 52(float) Load 215(compare) 217:6(float16_t) Load 137(f16bias) 218:6(float16_t) ImageSampleDrefImplicitLod 213 214 216 Bias 217 219: 208(ptr) AccessChain 119(texel) 207 220:6(float16_t) Load 219 221:6(float16_t) FAdd 220 218 222: 208(ptr) AccessChain 119(texel) 207 Store 222 221 227: 224 Load 226(s2DShadow) 228: 167(fvec3) Load 169(c3) 229: 52(float) CompositeExtract 228 2 230:6(float16_t) ImageSampleDrefImplicitLod 227 228 229 231: 208(ptr) AccessChain 119(texel) 207 232:6(float16_t) Load 231 233:6(float16_t) FAdd 232 230 234: 208(ptr) AccessChain 119(texel) 207 Store 234 233 235: 224 Load 226(s2DShadow) 236:154(f16vec2) Load 156(f16c2) 237: 52(float) Load 215(compare) 238:6(float16_t) Load 137(f16bias) 239:6(float16_t) ImageSampleDrefImplicitLod 235 236 237 Bias 238 240: 208(ptr) AccessChain 119(texel) 207 241:6(float16_t) Load 240 242:6(float16_t) FAdd 241 239 243: 208(ptr) AccessChain 119(texel) 207 Store 243 242 248: 245 Load 247(sCubeShadow) 252: 249(fvec4) Load 251(c4) 253: 52(float) CompositeExtract 252 3 254:6(float16_t) ImageSampleDrefImplicitLod 248 252 253 255: 208(ptr) AccessChain 119(texel) 207 256:6(float16_t) Load 255 257:6(float16_t) FAdd 256 254 258: 208(ptr) AccessChain 119(texel) 207 Store 258 257 259: 245 Load 247(sCubeShadow) 260:175(f16vec3) Load 177(f16c3) 261: 52(float) Load 215(compare) 262:6(float16_t) Load 137(f16bias) 263:6(float16_t) ImageSampleDrefImplicitLod 259 260 261 Bias 262 264: 208(ptr) AccessChain 119(texel) 207 265:6(float16_t) Load 264 266:6(float16_t) FAdd 265 263 267: 208(ptr) AccessChain 119(texel) 207 Store 267 266 272: 269 Load 271(s1DArray) 273: 53(fvec2) Load 148(c2) 274: 7(f16vec4) ImageSampleImplicitLod 272 273 275: 7(f16vec4) Load 119(texel) 276: 7(f16vec4) FAdd 275 274 Store 119(texel) 276 277: 269 Load 271(s1DArray) 278:154(f16vec2) Load 156(f16c2) 279:6(float16_t) Load 137(f16bias) 280: 7(f16vec4) ImageSampleImplicitLod 277 278 Bias 279 281: 7(f16vec4) Load 119(texel) 282: 7(f16vec4) FAdd 281 280 Store 119(texel) 282 287: 284 Load 286(s2DArray) 288: 167(fvec3) Load 169(c3) 289: 7(f16vec4) ImageSampleImplicitLod 287 288 290: 7(f16vec4) Load 119(texel) 291: 7(f16vec4) FAdd 290 289 Store 119(texel) 291 292: 284 Load 286(s2DArray) 293:175(f16vec3) Load 177(f16c3) 294:6(float16_t) Load 137(f16bias) 295: 7(f16vec4) ImageSampleImplicitLod 292 293 Bias 294 296: 7(f16vec4) Load 119(texel) 297: 7(f16vec4) FAdd 296 295 Store 119(texel) 297 302: 299 Load 301(sCubeArray) 303: 249(fvec4) Load 251(c4) 304: 7(f16vec4) ImageSampleImplicitLod 302 303 305: 7(f16vec4) Load 119(texel) 306: 7(f16vec4) FAdd 305 304 Store 119(texel) 306 307: 299 Load 301(sCubeArray) 310: 7(f16vec4) Load 309(f16c4) 311:6(float16_t) Load 137(f16bias) 312: 7(f16vec4) ImageSampleImplicitLod 307 310 Bias 311 313: 7(f16vec4) Load 119(texel) 314: 7(f16vec4) FAdd 313 312 Store 119(texel) 314 319: 316 Load 318(s1DArrayShadow) 320: 167(fvec3) Load 169(c3) 321: 52(float) CompositeExtract 320 2 322:6(float16_t) ImageSampleDrefImplicitLod 319 320 321 323: 208(ptr) AccessChain 119(texel) 207 324:6(float16_t) Load 323 325:6(float16_t) FAdd 324 322 326: 208(ptr) AccessChain 119(texel) 207 Store 326 325 327: 316 Load 318(s1DArrayShadow) 328:154(f16vec2) Load 156(f16c2) 329: 52(float) Load 215(compare) 330:6(float16_t) Load 137(f16bias) 331:6(float16_t) ImageSampleDrefImplicitLod 327 328 329 Bias 330 332: 208(ptr) AccessChain 119(texel) 207 333:6(float16_t) Load 332 334:6(float16_t) FAdd 333 331 335: 208(ptr) AccessChain 119(texel) 207 Store 335 334 340: 337 Load 339(s2DArrayShadow) 341: 249(fvec4) Load 251(c4) 342: 52(float) CompositeExtract 341 3 343:6(float16_t) ImageSampleDrefImplicitLod 340 341 342 344: 208(ptr) AccessChain 119(texel) 207 345:6(float16_t) Load 344 346:6(float16_t) FAdd 345 343 347: 208(ptr) AccessChain 119(texel) 207 Store 347 346 348: 337 Load 339(s2DArrayShadow) 349:175(f16vec3) Load 177(f16c3) 350: 52(float) Load 215(compare) 351:6(float16_t) ImageSampleDrefImplicitLod 348 349 350 352: 208(ptr) AccessChain 119(texel) 207 353:6(float16_t) Load 352 354:6(float16_t) FAdd 353 351 355: 208(ptr) AccessChain 119(texel) 207 Store 355 354 360: 357 Load 359(s2DRect) 361: 53(fvec2) Load 148(c2) 362: 7(f16vec4) ImageSampleImplicitLod 360 361 363: 7(f16vec4) Load 119(texel) 364: 7(f16vec4) FAdd 363 362 Store 119(texel) 364 365: 357 Load 359(s2DRect) 366:154(f16vec2) Load 156(f16c2) 367: 7(f16vec4) ImageSampleImplicitLod 365 366 368: 7(f16vec4) Load 119(texel) 369: 7(f16vec4) FAdd 368 367 Store 119(texel) 369 374: 371 Load 373(s2DRectShadow) 375: 167(fvec3) Load 169(c3) 376: 52(float) CompositeExtract 375 2 377:6(float16_t) ImageSampleDrefImplicitLod 374 375 376 378: 208(ptr) AccessChain 119(texel) 207 379:6(float16_t) Load 378 380:6(float16_t) FAdd 379 377 381: 208(ptr) AccessChain 119(texel) 207 Store 381 380 382: 371 Load 373(s2DRectShadow) 383:154(f16vec2) Load 156(f16c2) 384: 52(float) Load 215(compare) 385:6(float16_t) ImageSampleDrefImplicitLod 382 383 384 386: 208(ptr) AccessChain 119(texel) 207 387:6(float16_t) Load 386 388:6(float16_t) FAdd 387 385 389: 208(ptr) AccessChain 119(texel) 207 Store 389 388 394: 391 Load 393(sCubeArrayShadow) 395: 249(fvec4) Load 251(c4) 396: 52(float) Load 215(compare) 397:6(float16_t) ImageSampleDrefImplicitLod 394 395 396 398: 208(ptr) AccessChain 119(texel) 207 399:6(float16_t) Load 398 400:6(float16_t) FAdd 399 397 401: 208(ptr) AccessChain 119(texel) 207 Store 401 400 402: 391 Load 393(sCubeArrayShadow) 403: 7(f16vec4) Load 309(f16c4) 404: 52(float) Load 215(compare) 405:6(float16_t) ImageSampleDrefImplicitLod 402 403 404 406: 208(ptr) AccessChain 119(texel) 207 407:6(float16_t) Load 406 408:6(float16_t) FAdd 407 405 409: 208(ptr) AccessChain 119(texel) 207 Store 409 408 410: 7(f16vec4) Load 119(texel) ReturnValue 410 FunctionEnd 11(testTextureProj(): 7(f16vec4) Function None 8 12: Label 413(texel): 64(ptr) Variable Function Store 413(texel) 121 414: 123 Load 125(s1D) 415: 53(fvec2) Load 148(c2) 416: 7(f16vec4) ImageSampleProjImplicitLod 414 415 417: 7(f16vec4) Load 413(texel) 418: 7(f16vec4) FAdd 417 416 Store 413(texel) 418 419: 123 Load 125(s1D) 420:154(f16vec2) Load 156(f16c2) 421:6(float16_t) Load 137(f16bias) 422: 7(f16vec4) ImageSampleProjImplicitLod 419 420 Bias 421 423: 7(f16vec4) Load 413(texel) 424: 7(f16vec4) FAdd 423 422 Store 413(texel) 424 425: 123 Load 125(s1D) 426: 249(fvec4) Load 251(c4) 427: 52(float) CompositeExtract 426 3 428: 249(fvec4) CompositeInsert 427 426 1 429: 7(f16vec4) ImageSampleProjImplicitLod 425 428 430: 7(f16vec4) Load 413(texel) 431: 7(f16vec4) FAdd 430 429 Store 413(texel) 431 432: 123 Load 125(s1D) 433: 7(f16vec4) Load 309(f16c4) 434:6(float16_t) Load 137(f16bias) 435:6(float16_t) CompositeExtract 433 3 436: 7(f16vec4) CompositeInsert 435 433 1 437: 7(f16vec4) ImageSampleProjImplicitLod 432 436 Bias 434 438: 7(f16vec4) Load 413(texel) 439: 7(f16vec4) FAdd 438 437 Store 413(texel) 439 440: 143 Load 145(s2D) 441: 167(fvec3) Load 169(c3) 442: 7(f16vec4) ImageSampleProjImplicitLod 440 441 443: 7(f16vec4) Load 413(texel) 444: 7(f16vec4) FAdd 443 442 Store 413(texel) 444 445: 143 Load 145(s2D) 446:175(f16vec3) Load 177(f16c3) 447:6(float16_t) Load 137(f16bias) 448: 7(f16vec4) ImageSampleProjImplicitLod 445 446 Bias 447 449: 7(f16vec4) Load 413(texel) 450: 7(f16vec4) FAdd 449 448 Store 413(texel) 450 451: 143 Load 145(s2D) 452: 249(fvec4) Load 251(c4) 453: 52(float) CompositeExtract 452 3 454: 249(fvec4) CompositeInsert 453 452 2 455: 7(f16vec4) ImageSampleProjImplicitLod 451 454 456: 7(f16vec4) Load 413(texel) 457: 7(f16vec4) FAdd 456 455 Store 413(texel) 457 458: 143 Load 145(s2D) 459: 7(f16vec4) Load 309(f16c4) 460:6(float16_t) Load 137(f16bias) 461:6(float16_t) CompositeExtract 459 3 462: 7(f16vec4) CompositeInsert 461 459 2 463: 7(f16vec4) ImageSampleProjImplicitLod 458 462 Bias 460 464: 7(f16vec4) Load 413(texel) 465: 7(f16vec4) FAdd 464 463 Store 413(texel) 465 466: 163 Load 165(s3D) 467: 249(fvec4) Load 251(c4) 468: 7(f16vec4) ImageSampleProjImplicitLod 466 467 469: 7(f16vec4) Load 413(texel) 470: 7(f16vec4) FAdd 469 468 Store 413(texel) 470 471: 163 Load 165(s3D) 472: 7(f16vec4) Load 309(f16c4) 473:6(float16_t) Load 137(f16bias) 474: 7(f16vec4) ImageSampleProjImplicitLod 471 472 Bias 473 475: 7(f16vec4) Load 413(texel) 476: 7(f16vec4) FAdd 475 474 Store 413(texel) 476 477: 199 Load 201(s1DShadow) 478: 249(fvec4) Load 251(c4) 479: 52(float) CompositeExtract 478 2 480: 52(float) CompositeExtract 478 3 481: 249(fvec4) CompositeInsert 480 478 1 482:6(float16_t) ImageSampleProjDrefImplicitLod 477 481 479 483: 208(ptr) AccessChain 413(texel) 207 484:6(float16_t) Load 483 485:6(float16_t) FAdd 484 482 486: 208(ptr) AccessChain 413(texel) 207 Store 486 485 487: 199 Load 201(s1DShadow) 488:175(f16vec3) Load 177(f16c3) 489: 52(float) Load 215(compare) 490:6(float16_t) Load 137(f16bias) 491:6(float16_t) CompositeExtract 488 2 492:175(f16vec3) CompositeInsert 491 488 1 493:6(float16_t) ImageSampleProjDrefImplicitLod 487 492 489 Bias 490 494: 208(ptr) AccessChain 413(texel) 207 495:6(float16_t) Load 494 496:6(float16_t) FAdd 495 493 497: 208(ptr) AccessChain 413(texel) 207 Store 497 496 498: 224 Load 226(s2DShadow) 499: 249(fvec4) Load 251(c4) 500: 52(float) CompositeExtract 499 2 501: 52(float) CompositeExtract 499 3 502: 249(fvec4) CompositeInsert 501 499 2 503:6(float16_t) ImageSampleProjDrefImplicitLod 498 502 500 504: 208(ptr) AccessChain 413(texel) 207 505:6(float16_t) Load 504 506:6(float16_t) FAdd 505 503 507: 208(ptr) AccessChain 413(texel) 207 Store 507 506 508: 224 Load 226(s2DShadow) 509:175(f16vec3) Load 177(f16c3) 510: 52(float) Load 215(compare) 511:6(float16_t) Load 137(f16bias) 512:6(float16_t) ImageSampleProjDrefImplicitLod 508 509 510 Bias 511 513: 208(ptr) AccessChain 413(texel) 207 514:6(float16_t) Load 513 515:6(float16_t) FAdd 514 512 516: 208(ptr) AccessChain 413(texel) 207 Store 516 515 517: 357 Load 359(s2DRect) 518: 167(fvec3) Load 169(c3) 519: 7(f16vec4) ImageSampleProjImplicitLod 517 518 520: 7(f16vec4) Load 413(texel) 521: 7(f16vec4) FAdd 520 519 Store 413(texel) 521 522: 357 Load 359(s2DRect) 523:175(f16vec3) Load 177(f16c3) 524: 7(f16vec4) ImageSampleProjImplicitLod 522 523 525: 7(f16vec4) Load 413(texel) 526: 7(f16vec4) FAdd 525 524 Store 413(texel) 526 527: 357 Load 359(s2DRect) 528: 249(fvec4) Load 251(c4) 529: 52(float) CompositeExtract 528 3 530: 249(fvec4) CompositeInsert 529 528 2 531: 7(f16vec4) ImageSampleProjImplicitLod 527 530 532: 7(f16vec4) Load 413(texel) 533: 7(f16vec4) FAdd 532 531 Store 413(texel) 533 534: 357 Load 359(s2DRect) 535: 7(f16vec4) Load 309(f16c4) 536:6(float16_t) CompositeExtract 535 3 537: 7(f16vec4) CompositeInsert 536 535 2 538: 7(f16vec4) ImageSampleProjImplicitLod 534 537 539: 7(f16vec4) Load 413(texel) 540: 7(f16vec4) FAdd 539 538 Store 413(texel) 540 541: 371 Load 373(s2DRectShadow) 542: 249(fvec4) Load 251(c4) 543: 52(float) CompositeExtract 542 2 544: 52(float) CompositeExtract 542 3 545: 249(fvec4) CompositeInsert 544 542 2 546:6(float16_t) ImageSampleProjDrefImplicitLod 541 545 543 547: 208(ptr) AccessChain 413(texel) 207 548:6(float16_t) Load 547 549:6(float16_t) FAdd 548 546 550: 208(ptr) AccessChain 413(texel) 207 Store 550 549 551: 371 Load 373(s2DRectShadow) 552:175(f16vec3) Load 177(f16c3) 553: 52(float) Load 215(compare) 554:6(float16_t) ImageSampleProjDrefImplicitLod 551 552 553 555: 208(ptr) AccessChain 413(texel) 207 556:6(float16_t) Load 555 557:6(float16_t) FAdd 556 554 558: 208(ptr) AccessChain 413(texel) 207 Store 558 557 559: 7(f16vec4) Load 413(texel) ReturnValue 559 FunctionEnd 13(testTextureLod(): 7(f16vec4) Function None 8 14: Label 562(texel): 64(ptr) Variable Function Store 562(texel) 121 563: 123 Load 125(s1D) 564: 52(float) Load 128(c1) 566: 52(float) Load 565(lod) 567: 7(f16vec4) ImageSampleExplicitLod 563 564 Lod 566 568: 7(f16vec4) Load 562(texel) 569: 7(f16vec4) FAdd 568 567 Store 562(texel) 569 570: 123 Load 125(s1D) 571:6(float16_t) Load 135(f16c1) 573:6(float16_t) Load 572(f16lod) 574: 7(f16vec4) ImageSampleExplicitLod 570 571 Lod 573 575: 7(f16vec4) Load 562(texel) 576: 7(f16vec4) FAdd 575 574 Store 562(texel) 576 577: 143 Load 145(s2D) 578: 53(fvec2) Load 148(c2) 579: 52(float) Load 565(lod) 580: 7(f16vec4) ImageSampleExplicitLod 577 578 Lod 579 581: 7(f16vec4) Load 562(texel) 582: 7(f16vec4) FAdd 581 580 Store 562(texel) 582 583: 143 Load 145(s2D) 584:154(f16vec2) Load 156(f16c2) 585:6(float16_t) Load 572(f16lod) 586: 7(f16vec4) ImageSampleExplicitLod 583 584 Lod 585 587: 7(f16vec4) Load 562(texel) 588: 7(f16vec4) FAdd 587 586 Store 562(texel) 588 589: 163 Load 165(s3D) 590: 167(fvec3) Load 169(c3) 591: 52(float) Load 565(lod) 592: 7(f16vec4) ImageSampleExplicitLod 589 590 Lod 591 593: 7(f16vec4) Load 562(texel) 594: 7(f16vec4) FAdd 593 592 Store 562(texel) 594 595: 163 Load 165(s3D) 596:175(f16vec3) Load 177(f16c3) 597:6(float16_t) Load 572(f16lod) 598: 7(f16vec4) ImageSampleExplicitLod 595 596 Lod 597 599: 7(f16vec4) Load 562(texel) 600: 7(f16vec4) FAdd 599 598 Store 562(texel) 600 601: 184 Load 186(sCube) 602: 167(fvec3) Load 169(c3) 603: 52(float) Load 565(lod) 604: 7(f16vec4) ImageSampleExplicitLod 601 602 Lod 603 605: 7(f16vec4) Load 562(texel) 606: 7(f16vec4) FAdd 605 604 Store 562(texel) 606 607: 184 Load 186(sCube) 608:175(f16vec3) Load 177(f16c3) 609:6(float16_t) Load 572(f16lod) 610: 7(f16vec4) ImageSampleExplicitLod 607 608 Lod 609 611: 7(f16vec4) Load 562(texel) 612: 7(f16vec4) FAdd 611 610 Store 562(texel) 612 613: 199 Load 201(s1DShadow) 614: 167(fvec3) Load 169(c3) 615: 52(float) Load 565(lod) 616: 52(float) CompositeExtract 614 2 617:6(float16_t) ImageSampleDrefExplicitLod 613 614 616 Lod 615 618: 208(ptr) AccessChain 562(texel) 207 619:6(float16_t) Load 618 620:6(float16_t) FAdd 619 617 621: 208(ptr) AccessChain 562(texel) 207 Store 621 620 622: 199 Load 201(s1DShadow) 623:154(f16vec2) Load 156(f16c2) 624: 52(float) Load 215(compare) 625:6(float16_t) Load 572(f16lod) 626:6(float16_t) ImageSampleDrefExplicitLod 622 623 624 Lod 625 627: 208(ptr) AccessChain 562(texel) 207 628:6(float16_t) Load 627 629:6(float16_t) FAdd 628 626 630: 208(ptr) AccessChain 562(texel) 207 Store 630 629 631: 224 Load 226(s2DShadow) 632: 167(fvec3) Load 169(c3) 633: 52(float) Load 565(lod) 634: 52(float) CompositeExtract 632 2 635:6(float16_t) ImageSampleDrefExplicitLod 631 632 634 Lod 633 636: 208(ptr) AccessChain 562(texel) 207 637:6(float16_t) Load 636 638:6(float16_t) FAdd 637 635 639: 208(ptr) AccessChain 562(texel) 207 Store 639 638 640: 224 Load 226(s2DShadow) 641:154(f16vec2) Load 156(f16c2) 642: 52(float) Load 215(compare) 643:6(float16_t) Load 572(f16lod) 644:6(float16_t) ImageSampleDrefExplicitLod 640 641 642 Lod 643 645: 208(ptr) AccessChain 562(texel) 207 646:6(float16_t) Load 645 647:6(float16_t) FAdd 646 644 648: 208(ptr) AccessChain 562(texel) 207 Store 648 647 649: 269 Load 271(s1DArray) 650: 53(fvec2) Load 148(c2) 651: 52(float) Load 565(lod) 652: 7(f16vec4) ImageSampleExplicitLod 649 650 Lod 651 653: 7(f16vec4) Load 562(texel) 654: 7(f16vec4) FAdd 653 652 Store 562(texel) 654 655: 269 Load 271(s1DArray) 656:154(f16vec2) Load 156(f16c2) 657:6(float16_t) Load 572(f16lod) 658: 7(f16vec4) ImageSampleExplicitLod 655 656 Lod 657 659: 7(f16vec4) Load 562(texel) 660: 7(f16vec4) FAdd 659 658 Store 562(texel) 660 661: 284 Load 286(s2DArray) 662: 167(fvec3) Load 169(c3) 663: 52(float) Load 565(lod) 664: 7(f16vec4) ImageSampleExplicitLod 661 662 Lod 663 665: 7(f16vec4) Load 562(texel) 666: 7(f16vec4) FAdd 665 664 Store 562(texel) 666 667: 284 Load 286(s2DArray) 668:175(f16vec3) Load 177(f16c3) 669:6(float16_t) Load 572(f16lod) 670: 7(f16vec4) ImageSampleExplicitLod 667 668 Lod 669 671: 7(f16vec4) Load 562(texel) 672: 7(f16vec4) FAdd 671 670 Store 562(texel) 672 673: 316 Load 318(s1DArrayShadow) 674: 167(fvec3) Load 169(c3) 675: 52(float) Load 565(lod) 676: 52(float) CompositeExtract 674 2 677:6(float16_t) ImageSampleDrefExplicitLod 673 674 676 Lod 675 678: 208(ptr) AccessChain 562(texel) 207 679:6(float16_t) Load 678 680:6(float16_t) FAdd 679 677 681: 208(ptr) AccessChain 562(texel) 207 Store 681 680 682: 316 Load 318(s1DArrayShadow) 683:154(f16vec2) Load 156(f16c2) 684: 52(float) Load 215(compare) 685:6(float16_t) Load 572(f16lod) 686:6(float16_t) ImageSampleDrefExplicitLod 682 683 684 Lod 685 687: 208(ptr) AccessChain 562(texel) 207 688:6(float16_t) Load 687 689:6(float16_t) FAdd 688 686 690: 208(ptr) AccessChain 562(texel) 207 Store 690 689 691: 299 Load 301(sCubeArray) 692: 249(fvec4) Load 251(c4) 693: 52(float) Load 565(lod) 694: 7(f16vec4) ImageSampleExplicitLod 691 692 Lod 693 695: 7(f16vec4) Load 562(texel) 696: 7(f16vec4) FAdd 695 694 Store 562(texel) 696 697: 299 Load 301(sCubeArray) 698: 7(f16vec4) Load 309(f16c4) 699:6(float16_t) Load 572(f16lod) 700: 7(f16vec4) ImageSampleExplicitLod 697 698 Lod 699 701: 7(f16vec4) Load 562(texel) 702: 7(f16vec4) FAdd 701 700 Store 562(texel) 702 703: 7(f16vec4) Load 562(texel) ReturnValue 703 FunctionEnd 15(testTextureOffset(): 7(f16vec4) Function None 8 16: Label 706(texel): 64(ptr) Variable Function Store 706(texel) 121 707: 123 Load 125(s1D) 708: 52(float) Load 128(c1) 710: 7(f16vec4) ImageSampleImplicitLod 707 708 ConstOffset 709 711: 7(f16vec4) Load 706(texel) 712: 7(f16vec4) FAdd 711 710 Store 706(texel) 712 713: 123 Load 125(s1D) 714:6(float16_t) Load 135(f16c1) 715:6(float16_t) Load 137(f16bias) 716: 7(f16vec4) ImageSampleImplicitLod 713 714 Bias ConstOffset 715 709 717: 7(f16vec4) Load 706(texel) 718: 7(f16vec4) FAdd 717 716 Store 706(texel) 718 719: 143 Load 145(s2D) 720: 53(fvec2) Load 148(c2) 723: 7(f16vec4) ImageSampleImplicitLod 719 720 ConstOffset 722 724: 7(f16vec4) Load 706(texel) 725: 7(f16vec4) FAdd 724 723 Store 706(texel) 725 726: 143 Load 145(s2D) 727:154(f16vec2) Load 156(f16c2) 728:6(float16_t) Load 137(f16bias) 729: 7(f16vec4) ImageSampleImplicitLod 726 727 Bias ConstOffset 728 722 730: 7(f16vec4) Load 706(texel) 731: 7(f16vec4) FAdd 730 729 Store 706(texel) 731 732: 163 Load 165(s3D) 733: 167(fvec3) Load 169(c3) 736: 7(f16vec4) ImageSampleImplicitLod 732 733 ConstOffset 735 737: 7(f16vec4) Load 706(texel) 738: 7(f16vec4) FAdd 737 736 Store 706(texel) 738 739: 163 Load 165(s3D) 740:175(f16vec3) Load 177(f16c3) 741:6(float16_t) Load 137(f16bias) 742: 7(f16vec4) ImageSampleImplicitLod 739 740 Bias ConstOffset 741 735 743: 7(f16vec4) Load 706(texel) 744: 7(f16vec4) FAdd 743 742 Store 706(texel) 744 745: 357 Load 359(s2DRect) 746: 53(fvec2) Load 148(c2) 747: 7(f16vec4) ImageSampleImplicitLod 745 746 ConstOffset 722 748: 7(f16vec4) Load 706(texel) 749: 7(f16vec4) FAdd 748 747 Store 706(texel) 749 750: 357 Load 359(s2DRect) 751:154(f16vec2) Load 156(f16c2) 752: 7(f16vec4) ImageSampleImplicitLod 750 751 ConstOffset 722 753: 7(f16vec4) Load 706(texel) 754: 7(f16vec4) FAdd 753 752 Store 706(texel) 754 755: 371 Load 373(s2DRectShadow) 756: 167(fvec3) Load 169(c3) 757: 52(float) CompositeExtract 756 2 758:6(float16_t) ImageSampleDrefImplicitLod 755 756 757 ConstOffset 722 759: 208(ptr) AccessChain 706(texel) 207 760:6(float16_t) Load 759 761:6(float16_t) FAdd 760 758 762: 208(ptr) AccessChain 706(texel) 207 Store 762 761 763: 371 Load 373(s2DRectShadow) 764:154(f16vec2) Load 156(f16c2) 765: 52(float) Load 215(compare) 766:6(float16_t) ImageSampleDrefImplicitLod 763 764 765 ConstOffset 722 767: 208(ptr) AccessChain 706(texel) 207 768:6(float16_t) Load 767 769:6(float16_t) FAdd 768 766 770: 208(ptr) AccessChain 706(texel) 207 Store 770 769 771: 199 Load 201(s1DShadow) 772: 167(fvec3) Load 169(c3) 773: 52(float) CompositeExtract 772 2 774:6(float16_t) ImageSampleDrefImplicitLod 771 772 773 ConstOffset 709 775: 208(ptr) AccessChain 706(texel) 207 776:6(float16_t) Load 775 777:6(float16_t) FAdd 776 774 778: 208(ptr) AccessChain 706(texel) 207 Store 778 777 779: 199 Load 201(s1DShadow) 780:154(f16vec2) Load 156(f16c2) 781: 52(float) Load 215(compare) 782:6(float16_t) Load 137(f16bias) 783:6(float16_t) ImageSampleDrefImplicitLod 779 780 781 Bias ConstOffset 782 709 784: 208(ptr) AccessChain 706(texel) 207 785:6(float16_t) Load 784 786:6(float16_t) FAdd 785 783 787: 208(ptr) AccessChain 706(texel) 207 Store 787 786 788: 224 Load 226(s2DShadow) 789: 167(fvec3) Load 169(c3) 790: 52(float) CompositeExtract 789 2 791:6(float16_t) ImageSampleDrefImplicitLod 788 789 790 ConstOffset 722 792: 208(ptr) AccessChain 706(texel) 207 793:6(float16_t) Load 792 794:6(float16_t) FAdd 793 791 795: 208(ptr) AccessChain 706(texel) 207 Store 795 794 796: 224 Load 226(s2DShadow) 797:154(f16vec2) Load 156(f16c2) 798: 52(float) Load 215(compare) 799:6(float16_t) Load 137(f16bias) 800:6(float16_t) ImageSampleDrefImplicitLod 796 797 798 Bias ConstOffset 799 722 801: 208(ptr) AccessChain 706(texel) 207 802:6(float16_t) Load 801 803:6(float16_t) FAdd 802 800 804: 208(ptr) AccessChain 706(texel) 207 Store 804 803 805: 269 Load 271(s1DArray) 806: 53(fvec2) Load 148(c2) 807: 7(f16vec4) ImageSampleImplicitLod 805 806 ConstOffset 709 808: 7(f16vec4) Load 706(texel) 809: 7(f16vec4) FAdd 808 807 Store 706(texel) 809 810: 269 Load 271(s1DArray) 811:154(f16vec2) Load 156(f16c2) 812:6(float16_t) Load 137(f16bias) 813: 7(f16vec4) ImageSampleImplicitLod 810 811 Bias ConstOffset 812 709 814: 7(f16vec4) Load 706(texel) 815: 7(f16vec4) FAdd 814 813 Store 706(texel) 815 816: 284 Load 286(s2DArray) 817: 167(fvec3) Load 169(c3) 818: 7(f16vec4) ImageSampleImplicitLod 816 817 ConstOffset 722 819: 7(f16vec4) Load 706(texel) 820: 7(f16vec4) FAdd 819 818 Store 706(texel) 820 821: 284 Load 286(s2DArray) 822:175(f16vec3) Load 177(f16c3) 823:6(float16_t) Load 137(f16bias) 824: 7(f16vec4) ImageSampleImplicitLod 821 822 Bias ConstOffset 823 722 825: 7(f16vec4) Load 706(texel) 826: 7(f16vec4) FAdd 825 824 Store 706(texel) 826 827: 316 Load 318(s1DArrayShadow) 828: 167(fvec3) Load 169(c3) 829: 52(float) CompositeExtract 828 2 830:6(float16_t) ImageSampleDrefImplicitLod 827 828 829 ConstOffset 709 831: 208(ptr) AccessChain 706(texel) 207 832:6(float16_t) Load 831 833:6(float16_t) FAdd 832 830 834: 208(ptr) AccessChain 706(texel) 207 Store 834 833 835: 316 Load 318(s1DArrayShadow) 836:154(f16vec2) Load 156(f16c2) 837: 52(float) Load 215(compare) 838:6(float16_t) Load 137(f16bias) 839:6(float16_t) ImageSampleDrefImplicitLod 835 836 837 Bias ConstOffset 838 709 840: 208(ptr) AccessChain 706(texel) 207 841:6(float16_t) Load 840 842:6(float16_t) FAdd 841 839 843: 208(ptr) AccessChain 706(texel) 207 Store 843 842 844: 337 Load 339(s2DArrayShadow) 845: 249(fvec4) Load 251(c4) 846: 52(float) CompositeExtract 845 3 847:6(float16_t) ImageSampleDrefImplicitLod 844 845 846 ConstOffset 722 848: 208(ptr) AccessChain 706(texel) 207 849:6(float16_t) Load 848 850:6(float16_t) FAdd 849 847 851: 208(ptr) AccessChain 706(texel) 207 Store 851 850 852: 337 Load 339(s2DArrayShadow) 853:175(f16vec3) Load 177(f16c3) 854: 52(float) Load 215(compare) 855:6(float16_t) ImageSampleDrefImplicitLod 852 853 854 ConstOffset 722 856: 208(ptr) AccessChain 706(texel) 207 857:6(float16_t) Load 856 858:6(float16_t) FAdd 857 855 859: 208(ptr) AccessChain 706(texel) 207 Store 859 858 860: 7(f16vec4) Load 706(texel) ReturnValue 860 FunctionEnd 17(testTextureProjOffset(): 7(f16vec4) Function None 8 18: Label 863(texel): 64(ptr) Variable Function Store 863(texel) 121 864: 123 Load 125(s1D) 865: 53(fvec2) Load 148(c2) 866: 7(f16vec4) ImageSampleProjImplicitLod 864 865 ConstOffset 709 867: 7(f16vec4) Load 863(texel) 868: 7(f16vec4) FAdd 867 866 Store 863(texel) 868 869: 123 Load 125(s1D) 870:154(f16vec2) Load 156(f16c2) 871:6(float16_t) Load 137(f16bias) 872: 7(f16vec4) ImageSampleProjImplicitLod 869 870 Bias ConstOffset 871 709 873: 7(f16vec4) Load 863(texel) 874: 7(f16vec4) FAdd 873 872 Store 863(texel) 874 875: 123 Load 125(s1D) 876: 249(fvec4) Load 251(c4) 877: 52(float) CompositeExtract 876 3 878: 249(fvec4) CompositeInsert 877 876 1 879: 7(f16vec4) ImageSampleProjImplicitLod 875 878 ConstOffset 709 880: 7(f16vec4) Load 863(texel) 881: 7(f16vec4) FAdd 880 879 Store 863(texel) 881 882: 123 Load 125(s1D) 883: 7(f16vec4) Load 309(f16c4) 884:6(float16_t) Load 137(f16bias) 885:6(float16_t) CompositeExtract 883 3 886: 7(f16vec4) CompositeInsert 885 883 1 887: 7(f16vec4) ImageSampleProjImplicitLod 882 886 Bias ConstOffset 884 709 888: 7(f16vec4) Load 863(texel) 889: 7(f16vec4) FAdd 888 887 Store 863(texel) 889 890: 143 Load 145(s2D) 891: 167(fvec3) Load 169(c3) 892: 7(f16vec4) ImageSampleProjImplicitLod 890 891 ConstOffset 722 893: 7(f16vec4) Load 863(texel) 894: 7(f16vec4) FAdd 893 892 Store 863(texel) 894 895: 143 Load 145(s2D) 896:175(f16vec3) Load 177(f16c3) 897:6(float16_t) Load 137(f16bias) 898: 7(f16vec4) ImageSampleProjImplicitLod 895 896 Bias ConstOffset 897 722 899: 7(f16vec4) Load 863(texel) 900: 7(f16vec4) FAdd 899 898 Store 863(texel) 900 901: 143 Load 145(s2D) 902: 249(fvec4) Load 251(c4) 903: 52(float) CompositeExtract 902 3 904: 249(fvec4) CompositeInsert 903 902 2 905: 7(f16vec4) ImageSampleProjImplicitLod 901 904 ConstOffset 722 906: 7(f16vec4) Load 863(texel) 907: 7(f16vec4) FAdd 906 905 Store 863(texel) 907 908: 143 Load 145(s2D) 909: 7(f16vec4) Load 309(f16c4) 910:6(float16_t) Load 137(f16bias) 911:6(float16_t) CompositeExtract 909 3 912: 7(f16vec4) CompositeInsert 911 909 2 913: 7(f16vec4) ImageSampleProjImplicitLod 908 912 Bias ConstOffset 910 722 914: 7(f16vec4) Load 863(texel) 915: 7(f16vec4) FAdd 914 913 Store 863(texel) 915 916: 163 Load 165(s3D) 917: 249(fvec4) Load 251(c4) 918: 7(f16vec4) ImageSampleProjImplicitLod 916 917 ConstOffset 735 919: 7(f16vec4) Load 863(texel) 920: 7(f16vec4) FAdd 919 918 Store 863(texel) 920 921: 163 Load 165(s3D) 922: 7(f16vec4) Load 309(f16c4) 923:6(float16_t) Load 137(f16bias) 924: 7(f16vec4) ImageSampleProjImplicitLod 921 922 Bias ConstOffset 923 735 925: 7(f16vec4) Load 863(texel) 926: 7(f16vec4) FAdd 925 924 Store 863(texel) 926 927: 357 Load 359(s2DRect) 928: 167(fvec3) Load 169(c3) 929: 7(f16vec4) ImageSampleProjImplicitLod 927 928 ConstOffset 722 930: 7(f16vec4) Load 863(texel) 931: 7(f16vec4) FAdd 930 929 Store 863(texel) 931 932: 357 Load 359(s2DRect) 933:175(f16vec3) Load 177(f16c3) 934: 7(f16vec4) ImageSampleProjImplicitLod 932 933 ConstOffset 722 935: 7(f16vec4) Load 863(texel) 936: 7(f16vec4) FAdd 935 934 Store 863(texel) 936 937: 357 Load 359(s2DRect) 938: 249(fvec4) Load 251(c4) 939: 52(float) CompositeExtract 938 3 940: 249(fvec4) CompositeInsert 939 938 2 941: 7(f16vec4) ImageSampleProjImplicitLod 937 940 ConstOffset 722 942: 7(f16vec4) Load 863(texel) 943: 7(f16vec4) FAdd 942 941 Store 863(texel) 943 944: 357 Load 359(s2DRect) 945: 7(f16vec4) Load 309(f16c4) 946:6(float16_t) CompositeExtract 945 3 947: 7(f16vec4) CompositeInsert 946 945 2 948: 7(f16vec4) ImageSampleProjImplicitLod 944 947 ConstOffset 722 949: 7(f16vec4) Load 863(texel) 950: 7(f16vec4) FAdd 949 948 Store 863(texel) 950 951: 371 Load 373(s2DRectShadow) 952: 249(fvec4) Load 251(c4) 953: 52(float) CompositeExtract 952 2 954: 52(float) CompositeExtract 952 3 955: 249(fvec4) CompositeInsert 954 952 2 956:6(float16_t) ImageSampleProjDrefImplicitLod 951 955 953 ConstOffset 722 957: 208(ptr) AccessChain 863(texel) 207 958:6(float16_t) Load 957 959:6(float16_t) FAdd 958 956 960: 208(ptr) AccessChain 863(texel) 207 Store 960 959 961: 371 Load 373(s2DRectShadow) 962:175(f16vec3) Load 177(f16c3) 963: 52(float) Load 215(compare) 964:6(float16_t) ImageSampleProjDrefImplicitLod 961 962 963 ConstOffset 722 965: 208(ptr) AccessChain 863(texel) 207 966:6(float16_t) Load 965 967:6(float16_t) FAdd 966 964 968: 208(ptr) AccessChain 863(texel) 207 Store 968 967 969: 199 Load 201(s1DShadow) 970: 249(fvec4) Load 251(c4) 971: 52(float) CompositeExtract 970 2 972: 52(float) CompositeExtract 970 3 973: 249(fvec4) CompositeInsert 972 970 1 974:6(float16_t) ImageSampleProjDrefImplicitLod 969 973 971 ConstOffset 709 975: 208(ptr) AccessChain 863(texel) 207 976:6(float16_t) Load 975 977:6(float16_t) FAdd 976 974 978: 208(ptr) AccessChain 863(texel) 207 Store 978 977 979: 199 Load 201(s1DShadow) 980:175(f16vec3) Load 177(f16c3) 981: 52(float) Load 215(compare) 982:6(float16_t) Load 137(f16bias) 983:6(float16_t) CompositeExtract 980 2 984:175(f16vec3) CompositeInsert 983 980 1 985:6(float16_t) ImageSampleProjDrefImplicitLod 979 984 981 Bias ConstOffset 982 709 986: 208(ptr) AccessChain 863(texel) 207 987:6(float16_t) Load 986 988:6(float16_t) FAdd 987 985 989: 208(ptr) AccessChain 863(texel) 207 Store 989 988 990: 224 Load 226(s2DShadow) 991: 249(fvec4) Load 251(c4) 992: 52(float) CompositeExtract 991 2 993: 52(float) CompositeExtract 991 3 994: 249(fvec4) CompositeInsert 993 991 2 995:6(float16_t) ImageSampleProjDrefImplicitLod 990 994 992 ConstOffset 722 996: 208(ptr) AccessChain 863(texel) 207 997:6(float16_t) Load 996 998:6(float16_t) FAdd 997 995 999: 208(ptr) AccessChain 863(texel) 207 Store 999 998 1000: 224 Load 226(s2DShadow) 1001:175(f16vec3) Load 177(f16c3) 1002: 52(float) Load 215(compare) 1003:6(float16_t) Load 137(f16bias) 1004:6(float16_t) ImageSampleProjDrefImplicitLod 1000 1001 1002 Bias ConstOffset 1003 722 1005: 208(ptr) AccessChain 863(texel) 207 1006:6(float16_t) Load 1005 1007:6(float16_t) FAdd 1006 1004 1008: 208(ptr) AccessChain 863(texel) 207 Store 1008 1007 1009: 7(f16vec4) Load 863(texel) ReturnValue 1009 FunctionEnd 19(testTextureLodOffset(): 7(f16vec4) Function None 8 20: Label 1012(texel): 64(ptr) Variable Function Store 1012(texel) 121 1013: 123 Load 125(s1D) 1014: 52(float) Load 128(c1) 1015: 52(float) Load 565(lod) 1016: 7(f16vec4) ImageSampleExplicitLod 1013 1014 Lod ConstOffset 1015 709 1017: 7(f16vec4) Load 1012(texel) 1018: 7(f16vec4) FAdd 1017 1016 Store 1012(texel) 1018 1019: 123 Load 125(s1D) 1020:6(float16_t) Load 135(f16c1) 1021:6(float16_t) Load 572(f16lod) 1022: 7(f16vec4) ImageSampleExplicitLod 1019 1020 Lod ConstOffset 1021 709 1023: 7(f16vec4) Load 1012(texel) 1024: 7(f16vec4) FAdd 1023 1022 Store 1012(texel) 1024 1025: 143 Load 145(s2D) 1026: 53(fvec2) Load 148(c2) 1027: 52(float) Load 565(lod) 1028: 7(f16vec4) ImageSampleExplicitLod 1025 1026 Lod ConstOffset 1027 722 1029: 7(f16vec4) Load 1012(texel) 1030: 7(f16vec4) FAdd 1029 1028 Store 1012(texel) 1030 1031: 143 Load 145(s2D) 1032:154(f16vec2) Load 156(f16c2) 1033:6(float16_t) Load 572(f16lod) 1034: 7(f16vec4) ImageSampleExplicitLod 1031 1032 Lod ConstOffset 1033 722 1035: 7(f16vec4) Load 1012(texel) 1036: 7(f16vec4) FAdd 1035 1034 Store 1012(texel) 1036 1037: 163 Load 165(s3D) 1038: 167(fvec3) Load 169(c3) 1039: 52(float) Load 565(lod) 1040: 7(f16vec4) ImageSampleExplicitLod 1037 1038 Lod ConstOffset 1039 735 1041: 7(f16vec4) Load 1012(texel) 1042: 7(f16vec4) FAdd 1041 1040 Store 1012(texel) 1042 1043: 163 Load 165(s3D) 1044:175(f16vec3) Load 177(f16c3) 1045:6(float16_t) Load 572(f16lod) 1046: 7(f16vec4) ImageSampleExplicitLod 1043 1044 Lod ConstOffset 1045 735 1047: 7(f16vec4) Load 1012(texel) 1048: 7(f16vec4) FAdd 1047 1046 Store 1012(texel) 1048 1049: 199 Load 201(s1DShadow) 1050: 167(fvec3) Load 169(c3) 1051: 52(float) Load 565(lod) 1052: 52(float) CompositeExtract 1050 2 1053:6(float16_t) ImageSampleDrefExplicitLod 1049 1050 1052 Lod ConstOffset 1051 709 1054: 208(ptr) AccessChain 1012(texel) 207 1055:6(float16_t) Load 1054 1056:6(float16_t) FAdd 1055 1053 1057: 208(ptr) AccessChain 1012(texel) 207 Store 1057 1056 1058: 199 Load 201(s1DShadow) 1059:154(f16vec2) Load 156(f16c2) 1060: 52(float) Load 215(compare) 1061:6(float16_t) Load 572(f16lod) 1062:6(float16_t) ImageSampleDrefExplicitLod 1058 1059 1060 Lod ConstOffset 1061 709 1063: 208(ptr) AccessChain 1012(texel) 207 1064:6(float16_t) Load 1063 1065:6(float16_t) FAdd 1064 1062 1066: 208(ptr) AccessChain 1012(texel) 207 Store 1066 1065 1067: 224 Load 226(s2DShadow) 1068: 167(fvec3) Load 169(c3) 1069: 52(float) Load 565(lod) 1070: 52(float) CompositeExtract 1068 2 1071:6(float16_t) ImageSampleDrefExplicitLod 1067 1068 1070 Lod ConstOffset 1069 722 1072: 208(ptr) AccessChain 1012(texel) 207 1073:6(float16_t) Load 1072 1074:6(float16_t) FAdd 1073 1071 1075: 208(ptr) AccessChain 1012(texel) 207 Store 1075 1074 1076: 224 Load 226(s2DShadow) 1077:154(f16vec2) Load 156(f16c2) 1078: 52(float) Load 215(compare) 1079:6(float16_t) Load 572(f16lod) 1080:6(float16_t) ImageSampleDrefExplicitLod 1076 1077 1078 Lod ConstOffset 1079 722 1081: 208(ptr) AccessChain 1012(texel) 207 1082:6(float16_t) Load 1081 1083:6(float16_t) FAdd 1082 1080 1084: 208(ptr) AccessChain 1012(texel) 207 Store 1084 1083 1085: 269 Load 271(s1DArray) 1086: 53(fvec2) Load 148(c2) 1087: 52(float) Load 565(lod) 1088: 7(f16vec4) ImageSampleExplicitLod 1085 1086 Lod ConstOffset 1087 709 1089: 7(f16vec4) Load 1012(texel) 1090: 7(f16vec4) FAdd 1089 1088 Store 1012(texel) 1090 1091: 269 Load 271(s1DArray) 1092:154(f16vec2) Load 156(f16c2) 1093:6(float16_t) Load 572(f16lod) 1094: 7(f16vec4) ImageSampleExplicitLod 1091 1092 Lod ConstOffset 1093 709 1095: 7(f16vec4) Load 1012(texel) 1096: 7(f16vec4) FAdd 1095 1094 Store 1012(texel) 1096 1097: 284 Load 286(s2DArray) 1098: 167(fvec3) Load 169(c3) 1099: 52(float) Load 565(lod) 1100: 7(f16vec4) ImageSampleExplicitLod 1097 1098 Lod ConstOffset 1099 722 1101: 7(f16vec4) Load 1012(texel) 1102: 7(f16vec4) FAdd 1101 1100 Store 1012(texel) 1102 1103: 284 Load 286(s2DArray) 1104:175(f16vec3) Load 177(f16c3) 1105:6(float16_t) Load 572(f16lod) 1106: 7(f16vec4) ImageSampleExplicitLod 1103 1104 Lod ConstOffset 1105 722 1107: 7(f16vec4) Load 1012(texel) 1108: 7(f16vec4) FAdd 1107 1106 Store 1012(texel) 1108 1109: 316 Load 318(s1DArrayShadow) 1110: 167(fvec3) Load 169(c3) 1111: 52(float) Load 565(lod) 1112: 52(float) CompositeExtract 1110 2 1113:6(float16_t) ImageSampleDrefExplicitLod 1109 1110 1112 Lod ConstOffset 1111 709 1114: 208(ptr) AccessChain 1012(texel) 207 1115:6(float16_t) Load 1114 1116:6(float16_t) FAdd 1115 1113 1117: 208(ptr) AccessChain 1012(texel) 207 Store 1117 1116 1118: 316 Load 318(s1DArrayShadow) 1119:154(f16vec2) Load 156(f16c2) 1120: 52(float) Load 215(compare) 1121:6(float16_t) Load 572(f16lod) 1122:6(float16_t) ImageSampleDrefExplicitLod 1118 1119 1120 Lod ConstOffset 1121 709 1123: 208(ptr) AccessChain 1012(texel) 207 1124:6(float16_t) Load 1123 1125:6(float16_t) FAdd 1124 1122 1126: 208(ptr) AccessChain 1012(texel) 207 Store 1126 1125 1127: 7(f16vec4) Load 1012(texel) ReturnValue 1127 FunctionEnd 21(testTextureProjLodOffset(): 7(f16vec4) Function None 8 22: Label 1130(texel): 64(ptr) Variable Function Store 1130(texel) 121 1131: 123 Load 125(s1D) 1132: 53(fvec2) Load 148(c2) 1133: 52(float) Load 565(lod) 1134: 7(f16vec4) ImageSampleProjExplicitLod 1131 1132 Lod ConstOffset 1133 709 1135: 7(f16vec4) Load 1130(texel) 1136: 7(f16vec4) FAdd 1135 1134 Store 1130(texel) 1136 1137: 123 Load 125(s1D) 1138:154(f16vec2) Load 156(f16c2) 1139:6(float16_t) Load 572(f16lod) 1140: 7(f16vec4) ImageSampleProjExplicitLod 1137 1138 Lod ConstOffset 1139 709 1141: 7(f16vec4) Load 1130(texel) 1142: 7(f16vec4) FAdd 1141 1140 Store 1130(texel) 1142 1143: 123 Load 125(s1D) 1144: 249(fvec4) Load 251(c4) 1145: 52(float) Load 565(lod) 1146: 52(float) CompositeExtract 1144 3 1147: 249(fvec4) CompositeInsert 1146 1144 1 1148: 7(f16vec4) ImageSampleProjExplicitLod 1143 1147 Lod ConstOffset 1145 709 1149: 7(f16vec4) Load 1130(texel) 1150: 7(f16vec4) FAdd 1149 1148 Store 1130(texel) 1150 1151: 123 Load 125(s1D) 1152: 7(f16vec4) Load 309(f16c4) 1153:6(float16_t) Load 572(f16lod) 1154:6(float16_t) CompositeExtract 1152 3 1155: 7(f16vec4) CompositeInsert 1154 1152 1 1156: 7(f16vec4) ImageSampleProjExplicitLod 1151 1155 Lod ConstOffset 1153 709 1157: 7(f16vec4) Load 1130(texel) 1158: 7(f16vec4) FAdd 1157 1156 Store 1130(texel) 1158 1159: 143 Load 145(s2D) 1160: 167(fvec3) Load 169(c3) 1161: 52(float) Load 565(lod) 1162: 7(f16vec4) ImageSampleProjExplicitLod 1159 1160 Lod ConstOffset 1161 722 1163: 7(f16vec4) Load 1130(texel) 1164: 7(f16vec4) FAdd 1163 1162 Store 1130(texel) 1164 1165: 143 Load 145(s2D) 1166:175(f16vec3) Load 177(f16c3) 1167:6(float16_t) Load 572(f16lod) 1168: 7(f16vec4) ImageSampleProjExplicitLod 1165 1166 Lod ConstOffset 1167 722 1169: 7(f16vec4) Load 1130(texel) 1170: 7(f16vec4) FAdd 1169 1168 Store 1130(texel) 1170 1171: 143 Load 145(s2D) 1172: 249(fvec4) Load 251(c4) 1173: 52(float) Load 565(lod) 1174: 52(float) CompositeExtract 1172 3 1175: 249(fvec4) CompositeInsert 1174 1172 2 1176: 7(f16vec4) ImageSampleProjExplicitLod 1171 1175 Lod ConstOffset 1173 722 1177: 7(f16vec4) Load 1130(texel) 1178: 7(f16vec4) FAdd 1177 1176 Store 1130(texel) 1178 1179: 143 Load 145(s2D) 1180: 7(f16vec4) Load 309(f16c4) 1181:6(float16_t) Load 572(f16lod) 1182:6(float16_t) CompositeExtract 1180 3 1183: 7(f16vec4) CompositeInsert 1182 1180 2 1184: 7(f16vec4) ImageSampleProjExplicitLod 1179 1183 Lod ConstOffset 1181 722 1185: 7(f16vec4) Load 1130(texel) 1186: 7(f16vec4) FAdd 1185 1184 Store 1130(texel) 1186 1187: 163 Load 165(s3D) 1188: 249(fvec4) Load 251(c4) 1189: 52(float) Load 565(lod) 1190: 7(f16vec4) ImageSampleProjExplicitLod 1187 1188 Lod ConstOffset 1189 735 1191: 7(f16vec4) Load 1130(texel) 1192: 7(f16vec4) FAdd 1191 1190 Store 1130(texel) 1192 1193: 163 Load 165(s3D) 1194: 7(f16vec4) Load 309(f16c4) 1195:6(float16_t) Load 572(f16lod) 1196: 7(f16vec4) ImageSampleProjExplicitLod 1193 1194 Lod ConstOffset 1195 735 1197: 7(f16vec4) Load 1130(texel) 1198: 7(f16vec4) FAdd 1197 1196 Store 1130(texel) 1198 1199: 199 Load 201(s1DShadow) 1200: 249(fvec4) Load 251(c4) 1201: 52(float) Load 565(lod) 1202: 52(float) CompositeExtract 1200 2 1203: 52(float) CompositeExtract 1200 3 1204: 249(fvec4) CompositeInsert 1203 1200 1 1205:6(float16_t) ImageSampleProjDrefExplicitLod 1199 1204 1202 Lod ConstOffset 1201 709 1206: 208(ptr) AccessChain 1130(texel) 207 1207:6(float16_t) Load 1206 1208:6(float16_t) FAdd 1207 1205 1209: 208(ptr) AccessChain 1130(texel) 207 Store 1209 1208 1210: 199 Load 201(s1DShadow) 1211:175(f16vec3) Load 177(f16c3) 1212: 52(float) Load 215(compare) 1213:6(float16_t) Load 572(f16lod) 1214:6(float16_t) CompositeExtract 1211 2 1215:175(f16vec3) CompositeInsert 1214 1211 1 1216:6(float16_t) ImageSampleProjDrefExplicitLod 1210 1215 1212 Lod ConstOffset 1213 709 1217: 208(ptr) AccessChain 1130(texel) 207 1218:6(float16_t) Load 1217 1219:6(float16_t) FAdd 1218 1216 1220: 208(ptr) AccessChain 1130(texel) 207 Store 1220 1219 1221: 224 Load 226(s2DShadow) 1222: 249(fvec4) Load 251(c4) 1223: 52(float) Load 565(lod) 1224: 52(float) CompositeExtract 1222 2 1225: 52(float) CompositeExtract 1222 3 1226: 249(fvec4) CompositeInsert 1225 1222 2 1227:6(float16_t) ImageSampleProjDrefExplicitLod 1221 1226 1224 Lod ConstOffset 1223 722 1228: 208(ptr) AccessChain 1130(texel) 207 1229:6(float16_t) Load 1228 1230:6(float16_t) FAdd 1229 1227 1231: 208(ptr) AccessChain 1130(texel) 207 Store 1231 1230 1232: 224 Load 226(s2DShadow) 1233:175(f16vec3) Load 177(f16c3) 1234: 52(float) Load 215(compare) 1235:6(float16_t) Load 572(f16lod) 1236:6(float16_t) ImageSampleProjDrefExplicitLod 1232 1233 1234 Lod ConstOffset 1235 722 1237: 208(ptr) AccessChain 1130(texel) 207 1238:6(float16_t) Load 1237 1239:6(float16_t) FAdd 1238 1236 1240: 208(ptr) AccessChain 1130(texel) 207 Store 1240 1239 1241: 7(f16vec4) Load 1130(texel) ReturnValue 1241 FunctionEnd 23(testTexelFetch(): 7(f16vec4) Function None 8 24: Label 1244(texel): 64(ptr) Variable Function Store 1244(texel) 121 1245: 123 Load 125(s1D) 1246: 52(float) Load 128(c1) 1247: 47(int) ConvertFToS 1246 1248: 52(float) Load 565(lod) 1249: 47(int) ConvertFToS 1248 1250: 122 Image 1245 1251: 7(f16vec4) ImageFetch 1250 1247 Lod 1249 1252: 7(f16vec4) Load 1244(texel) 1253: 7(f16vec4) FAdd 1252 1251 Store 1244(texel) 1253 1254: 143 Load 145(s2D) 1255: 53(fvec2) Load 148(c2) 1256: 721(ivec2) ConvertFToS 1255 1257: 52(float) Load 565(lod) 1258: 47(int) ConvertFToS 1257 1259: 142 Image 1254 1260: 7(f16vec4) ImageFetch 1259 1256 Lod 1258 1261: 7(f16vec4) Load 1244(texel) 1262: 7(f16vec4) FAdd 1261 1260 Store 1244(texel) 1262 1263: 163 Load 165(s3D) 1264: 167(fvec3) Load 169(c3) 1265: 734(ivec3) ConvertFToS 1264 1266: 52(float) Load 565(lod) 1267: 47(int) ConvertFToS 1266 1268: 162 Image 1263 1269: 7(f16vec4) ImageFetch 1268 1265 Lod 1267 1270: 7(f16vec4) Load 1244(texel) 1271: 7(f16vec4) FAdd 1270 1269 Store 1244(texel) 1271 1272: 357 Load 359(s2DRect) 1273: 53(fvec2) Load 148(c2) 1274: 721(ivec2) ConvertFToS 1273 1275: 356 Image 1272 1276: 7(f16vec4) ImageFetch 1275 1274 1277: 7(f16vec4) Load 1244(texel) 1278: 7(f16vec4) FAdd 1277 1276 Store 1244(texel) 1278 1279: 269 Load 271(s1DArray) 1280: 53(fvec2) Load 148(c2) 1281: 721(ivec2) ConvertFToS 1280 1282: 52(float) Load 565(lod) 1283: 47(int) ConvertFToS 1282 1284: 268 Image 1279 1285: 7(f16vec4) ImageFetch 1284 1281 Lod 1283 1286: 7(f16vec4) Load 1244(texel) 1287: 7(f16vec4) FAdd 1286 1285 Store 1244(texel) 1287 1288: 284 Load 286(s2DArray) 1289: 167(fvec3) Load 169(c3) 1290: 734(ivec3) ConvertFToS 1289 1291: 52(float) Load 565(lod) 1292: 47(int) ConvertFToS 1291 1293: 283 Image 1288 1294: 7(f16vec4) ImageFetch 1293 1290 Lod 1292 1295: 7(f16vec4) Load 1244(texel) 1296: 7(f16vec4) FAdd 1295 1294 Store 1244(texel) 1296 1301: 1298 Load 1300(sBuffer) 1302: 52(float) Load 128(c1) 1303: 47(int) ConvertFToS 1302 1304: 1297 Image 1301 1305: 7(f16vec4) ImageFetch 1304 1303 1306: 7(f16vec4) Load 1244(texel) 1307: 7(f16vec4) FAdd 1306 1305 Store 1244(texel) 1307 1312: 1309 Load 1311(s2DMS) 1313: 53(fvec2) Load 148(c2) 1314: 721(ivec2) ConvertFToS 1313 1315: 1308 Image 1312 1316: 7(f16vec4) ImageFetch 1315 1314 Sample 709 1317: 7(f16vec4) Load 1244(texel) 1318: 7(f16vec4) FAdd 1317 1316 Store 1244(texel) 1318 1323: 1320 Load 1322(s2DMSArray) 1324: 167(fvec3) Load 169(c3) 1325: 734(ivec3) ConvertFToS 1324 1327: 1319 Image 1323 1328: 7(f16vec4) ImageFetch 1327 1325 Sample 1326 1329: 7(f16vec4) Load 1244(texel) 1330: 7(f16vec4) FAdd 1329 1328 Store 1244(texel) 1330 1331: 7(f16vec4) Load 1244(texel) ReturnValue 1331 FunctionEnd 25(testTexelFetchOffset(): 7(f16vec4) Function None 8 26: Label 1334(texel): 64(ptr) Variable Function Store 1334(texel) 121 1335: 123 Load 125(s1D) 1336: 52(float) Load 128(c1) 1337: 47(int) ConvertFToS 1336 1338: 52(float) Load 565(lod) 1339: 47(int) ConvertFToS 1338 1340: 122 Image 1335 1341: 7(f16vec4) ImageFetch 1340 1337 Lod ConstOffset 1339 709 1342: 7(f16vec4) Load 1334(texel) 1343: 7(f16vec4) FAdd 1342 1341 Store 1334(texel) 1343 1344: 143 Load 145(s2D) 1345: 53(fvec2) Load 148(c2) 1346: 721(ivec2) ConvertFToS 1345 1347: 52(float) Load 565(lod) 1348: 47(int) ConvertFToS 1347 1349: 142 Image 1344 1350: 7(f16vec4) ImageFetch 1349 1346 Lod ConstOffset 1348 722 1351: 7(f16vec4) Load 1334(texel) 1352: 7(f16vec4) FAdd 1351 1350 Store 1334(texel) 1352 1353: 163 Load 165(s3D) 1354: 167(fvec3) Load 169(c3) 1355: 734(ivec3) ConvertFToS 1354 1356: 52(float) Load 565(lod) 1357: 47(int) ConvertFToS 1356 1358: 162 Image 1353 1359: 7(f16vec4) ImageFetch 1358 1355 Lod ConstOffset 1357 735 1360: 7(f16vec4) Load 1334(texel) 1361: 7(f16vec4) FAdd 1360 1359 Store 1334(texel) 1361 1362: 357 Load 359(s2DRect) 1363: 53(fvec2) Load 148(c2) 1364: 721(ivec2) ConvertFToS 1363 1365: 356 Image 1362 1366: 7(f16vec4) ImageFetch 1365 1364 ConstOffset 722 1367: 7(f16vec4) Load 1334(texel) 1368: 7(f16vec4) FAdd 1367 1366 Store 1334(texel) 1368 1369: 269 Load 271(s1DArray) 1370: 53(fvec2) Load 148(c2) 1371: 721(ivec2) ConvertFToS 1370 1372: 52(float) Load 565(lod) 1373: 47(int) ConvertFToS 1372 1374: 268 Image 1369 1375: 7(f16vec4) ImageFetch 1374 1371 Lod ConstOffset 1373 709 1376: 7(f16vec4) Load 1334(texel) 1377: 7(f16vec4) FAdd 1376 1375 Store 1334(texel) 1377 1378: 284 Load 286(s2DArray) 1379: 167(fvec3) Load 169(c3) 1380: 734(ivec3) ConvertFToS 1379 1381: 52(float) Load 565(lod) 1382: 47(int) ConvertFToS 1381 1383: 283 Image 1378 1384: 7(f16vec4) ImageFetch 1383 1380 Lod ConstOffset 1382 722 1385: 7(f16vec4) Load 1334(texel) 1386: 7(f16vec4) FAdd 1385 1384 Store 1334(texel) 1386 1387: 7(f16vec4) Load 1334(texel) ReturnValue 1387 FunctionEnd 27(testTextureGrad(): 7(f16vec4) Function None 8 28: Label 1390(texel): 64(ptr) Variable Function Store 1390(texel) 121 1391: 123 Load 125(s1D) 1392: 52(float) Load 128(c1) 1394: 52(float) Load 1393(dPdxy1) 1395: 52(float) Load 1393(dPdxy1) 1396: 7(f16vec4) ImageSampleExplicitLod 1391 1392 Grad 1394 1395 1397: 7(f16vec4) Load 1390(texel) 1398: 7(f16vec4) FAdd 1397 1396 Store 1390(texel) 1398 1399: 123 Load 125(s1D) 1400:6(float16_t) Load 135(f16c1) 1402:6(float16_t) Load 1401(f16dPdxy1) 1403:6(float16_t) Load 1401(f16dPdxy1) 1404: 7(f16vec4) ImageSampleExplicitLod 1399 1400 Grad 1402 1403 1405: 7(f16vec4) Load 1390(texel) 1406: 7(f16vec4) FAdd 1405 1404 Store 1390(texel) 1406 1407: 143 Load 145(s2D) 1408: 53(fvec2) Load 148(c2) 1410: 53(fvec2) Load 1409(dPdxy2) 1411: 53(fvec2) Load 1409(dPdxy2) 1412: 7(f16vec4) ImageSampleExplicitLod 1407 1408 Grad 1410 1411 1413: 7(f16vec4) Load 1390(texel) 1414: 7(f16vec4) FAdd 1413 1412 Store 1390(texel) 1414 1415: 143 Load 145(s2D) 1416:154(f16vec2) Load 156(f16c2) 1418:154(f16vec2) Load 1417(f16dPdxy2) 1419:154(f16vec2) Load 1417(f16dPdxy2) 1420: 7(f16vec4) ImageSampleExplicitLod 1415 1416 Grad 1418 1419 1421: 7(f16vec4) Load 1390(texel) 1422: 7(f16vec4) FAdd 1421 1420 Store 1390(texel) 1422 1423: 163 Load 165(s3D) 1424: 167(fvec3) Load 169(c3) 1426: 167(fvec3) Load 1425(dPdxy3) 1427: 167(fvec3) Load 1425(dPdxy3) 1428: 7(f16vec4) ImageSampleExplicitLod 1423 1424 Grad 1426 1427 1429: 7(f16vec4) Load 1390(texel) 1430: 7(f16vec4) FAdd 1429 1428 Store 1390(texel) 1430 1431: 163 Load 165(s3D) 1432:175(f16vec3) Load 177(f16c3) 1434:175(f16vec3) Load 1433(f16dPdxy3) 1435:175(f16vec3) Load 1433(f16dPdxy3) 1436: 7(f16vec4) ImageSampleExplicitLod 1431 1432 Grad 1434 1435 1437: 7(f16vec4) Load 1390(texel) 1438: 7(f16vec4) FAdd 1437 1436 Store 1390(texel) 1438 1439: 184 Load 186(sCube) 1440: 167(fvec3) Load 169(c3) 1441: 167(fvec3) Load 1425(dPdxy3) 1442: 167(fvec3) Load 1425(dPdxy3) 1443: 7(f16vec4) ImageSampleExplicitLod 1439 1440 Grad 1441 1442 1444: 7(f16vec4) Load 1390(texel) 1445: 7(f16vec4) FAdd 1444 1443 Store 1390(texel) 1445 1446: 184 Load 186(sCube) 1447:175(f16vec3) Load 177(f16c3) 1448:175(f16vec3) Load 1433(f16dPdxy3) 1449:175(f16vec3) Load 1433(f16dPdxy3) 1450: 7(f16vec4) ImageSampleExplicitLod 1446 1447 Grad 1448 1449 1451: 7(f16vec4) Load 1390(texel) 1452: 7(f16vec4) FAdd 1451 1450 Store 1390(texel) 1452 1453: 357 Load 359(s2DRect) 1454: 53(fvec2) Load 148(c2) 1455: 53(fvec2) Load 1409(dPdxy2) 1456: 53(fvec2) Load 1409(dPdxy2) 1457: 7(f16vec4) ImageSampleExplicitLod 1453 1454 Grad 1455 1456 1458: 7(f16vec4) Load 1390(texel) 1459: 7(f16vec4) FAdd 1458 1457 Store 1390(texel) 1459 1460: 357 Load 359(s2DRect) 1461:154(f16vec2) Load 156(f16c2) 1462:154(f16vec2) Load 1417(f16dPdxy2) 1463:154(f16vec2) Load 1417(f16dPdxy2) 1464: 7(f16vec4) ImageSampleExplicitLod 1460 1461 Grad 1462 1463 1465: 7(f16vec4) Load 1390(texel) 1466: 7(f16vec4) FAdd 1465 1464 Store 1390(texel) 1466 1467: 371 Load 373(s2DRectShadow) 1468: 167(fvec3) Load 169(c3) 1469: 53(fvec2) Load 1409(dPdxy2) 1470: 53(fvec2) Load 1409(dPdxy2) 1471: 52(float) CompositeExtract 1468 2 1472:6(float16_t) ImageSampleDrefExplicitLod 1467 1468 1471 Grad 1469 1470 1473: 208(ptr) AccessChain 1390(texel) 207 1474:6(float16_t) Load 1473 1475:6(float16_t) FAdd 1474 1472 1476: 208(ptr) AccessChain 1390(texel) 207 Store 1476 1475 1477: 371 Load 373(s2DRectShadow) 1478:154(f16vec2) Load 156(f16c2) 1479: 52(float) Load 215(compare) 1480:154(f16vec2) Load 1417(f16dPdxy2) 1481:154(f16vec2) Load 1417(f16dPdxy2) 1482:6(float16_t) ImageSampleDrefExplicitLod 1477 1478 1479 Grad 1480 1481 1483: 208(ptr) AccessChain 1390(texel) 207 1484:6(float16_t) Load 1483 1485:6(float16_t) FAdd 1484 1482 1486: 208(ptr) AccessChain 1390(texel) 207 Store 1486 1485 1487: 199 Load 201(s1DShadow) 1488: 167(fvec3) Load 169(c3) 1489: 52(float) Load 1393(dPdxy1) 1490: 52(float) Load 1393(dPdxy1) 1491: 52(float) CompositeExtract 1488 2 1492:6(float16_t) ImageSampleDrefExplicitLod 1487 1488 1491 Grad 1489 1490 1493: 208(ptr) AccessChain 1390(texel) 207 1494:6(float16_t) Load 1493 1495:6(float16_t) FAdd 1494 1492 1496: 208(ptr) AccessChain 1390(texel) 207 Store 1496 1495 1497: 199 Load 201(s1DShadow) 1498:154(f16vec2) Load 156(f16c2) 1499: 52(float) Load 215(compare) 1500:6(float16_t) Load 1401(f16dPdxy1) 1501:6(float16_t) Load 1401(f16dPdxy1) 1502:6(float16_t) ImageSampleDrefExplicitLod 1497 1498 1499 Grad 1500 1501 1503: 208(ptr) AccessChain 1390(texel) 207 1504:6(float16_t) Load 1503 1505:6(float16_t) FAdd 1504 1502 1506: 208(ptr) AccessChain 1390(texel) 207 Store 1506 1505 1507: 224 Load 226(s2DShadow) 1508: 167(fvec3) Load 169(c3) 1509: 53(fvec2) Load 1409(dPdxy2) 1510: 53(fvec2) Load 1409(dPdxy2) 1511: 52(float) CompositeExtract 1508 2 1512:6(float16_t) ImageSampleDrefExplicitLod 1507 1508 1511 Grad 1509 1510 1513: 208(ptr) AccessChain 1390(texel) 207 1514:6(float16_t) Load 1513 1515:6(float16_t) FAdd 1514 1512 1516: 208(ptr) AccessChain 1390(texel) 207 Store 1516 1515 1517: 224 Load 226(s2DShadow) 1518:154(f16vec2) Load 156(f16c2) 1519: 52(float) Load 215(compare) 1520:154(f16vec2) Load 1417(f16dPdxy2) 1521:154(f16vec2) Load 1417(f16dPdxy2) 1522:6(float16_t) ImageSampleDrefExplicitLod 1517 1518 1519 Grad 1520 1521 1523: 208(ptr) AccessChain 1390(texel) 207 1524:6(float16_t) Load 1523 1525:6(float16_t) FAdd 1524 1522 1526: 208(ptr) AccessChain 1390(texel) 207 Store 1526 1525 1527: 245 Load 247(sCubeShadow) 1528: 249(fvec4) Load 251(c4) 1529: 167(fvec3) Load 1425(dPdxy3) 1530: 167(fvec3) Load 1425(dPdxy3) 1531: 52(float) CompositeExtract 1528 3 1532:6(float16_t) ImageSampleDrefExplicitLod 1527 1528 1531 Grad 1529 1530 1533: 208(ptr) AccessChain 1390(texel) 207 1534:6(float16_t) Load 1533 1535:6(float16_t) FAdd 1534 1532 1536: 208(ptr) AccessChain 1390(texel) 207 Store 1536 1535 1537: 245 Load 247(sCubeShadow) 1538:175(f16vec3) Load 177(f16c3) 1539: 52(float) Load 215(compare) 1540:175(f16vec3) Load 1433(f16dPdxy3) 1541:175(f16vec3) Load 1433(f16dPdxy3) 1542:6(float16_t) ImageSampleDrefExplicitLod 1537 1538 1539 Grad 1540 1541 1543: 208(ptr) AccessChain 1390(texel) 207 1544:6(float16_t) Load 1543 1545:6(float16_t) FAdd 1544 1542 1546: 208(ptr) AccessChain 1390(texel) 207 Store 1546 1545 1547: 269 Load 271(s1DArray) 1548: 53(fvec2) Load 148(c2) 1549: 52(float) Load 1393(dPdxy1) 1550: 52(float) Load 1393(dPdxy1) 1551: 7(f16vec4) ImageSampleExplicitLod 1547 1548 Grad 1549 1550 1552: 7(f16vec4) Load 1390(texel) 1553: 7(f16vec4) FAdd 1552 1551 Store 1390(texel) 1553 1554: 269 Load 271(s1DArray) 1555:154(f16vec2) Load 156(f16c2) 1556:6(float16_t) Load 1401(f16dPdxy1) 1557:6(float16_t) Load 1401(f16dPdxy1) 1558: 7(f16vec4) ImageSampleExplicitLod 1554 1555 Grad 1556 1557 1559: 7(f16vec4) Load 1390(texel) 1560: 7(f16vec4) FAdd 1559 1558 Store 1390(texel) 1560 1561: 284 Load 286(s2DArray) 1562: 167(fvec3) Load 169(c3) 1563: 53(fvec2) Load 1409(dPdxy2) 1564: 53(fvec2) Load 1409(dPdxy2) 1565: 7(f16vec4) ImageSampleExplicitLod 1561 1562 Grad 1563 1564 1566: 7(f16vec4) Load 1390(texel) 1567: 7(f16vec4) FAdd 1566 1565 Store 1390(texel) 1567 1568: 284 Load 286(s2DArray) 1569:175(f16vec3) Load 177(f16c3) 1570:154(f16vec2) Load 1417(f16dPdxy2) 1571:154(f16vec2) Load 1417(f16dPdxy2) 1572: 7(f16vec4) ImageSampleExplicitLod 1568 1569 Grad 1570 1571 1573: 7(f16vec4) Load 1390(texel) 1574: 7(f16vec4) FAdd 1573 1572 Store 1390(texel) 1574 1575: 316 Load 318(s1DArrayShadow) 1576: 167(fvec3) Load 169(c3) 1577: 52(float) Load 1393(dPdxy1) 1578: 52(float) Load 1393(dPdxy1) 1579: 52(float) CompositeExtract 1576 2 1580:6(float16_t) ImageSampleDrefExplicitLod 1575 1576 1579 Grad 1577 1578 1581: 208(ptr) AccessChain 1390(texel) 207 1582:6(float16_t) Load 1581 1583:6(float16_t) FAdd 1582 1580 1584: 208(ptr) AccessChain 1390(texel) 207 Store 1584 1583 1585: 316 Load 318(s1DArrayShadow) 1586:154(f16vec2) Load 156(f16c2) 1587: 52(float) Load 215(compare) 1588:6(float16_t) Load 1401(f16dPdxy1) 1589:6(float16_t) Load 1401(f16dPdxy1) 1590:6(float16_t) ImageSampleDrefExplicitLod 1585 1586 1587 Grad 1588 1589 1591: 208(ptr) AccessChain 1390(texel) 207 1592:6(float16_t) Load 1591 1593:6(float16_t) FAdd 1592 1590 1594: 208(ptr) AccessChain 1390(texel) 207 Store 1594 1593 1595: 337 Load 339(s2DArrayShadow) 1596: 249(fvec4) Load 251(c4) 1597: 53(fvec2) Load 1409(dPdxy2) 1598: 53(fvec2) Load 1409(dPdxy2) 1599: 52(float) CompositeExtract 1596 3 1600:6(float16_t) ImageSampleDrefExplicitLod 1595 1596 1599 Grad 1597 1598 1601: 208(ptr) AccessChain 1390(texel) 207 1602:6(float16_t) Load 1601 1603:6(float16_t) FAdd 1602 1600 1604: 208(ptr) AccessChain 1390(texel) 207 Store 1604 1603 1605: 337 Load 339(s2DArrayShadow) 1606:175(f16vec3) Load 177(f16c3) 1607: 52(float) Load 215(compare) 1608:154(f16vec2) Load 1417(f16dPdxy2) 1609:154(f16vec2) Load 1417(f16dPdxy2) 1610:6(float16_t) ImageSampleDrefExplicitLod 1605 1606 1607 Grad 1608 1609 1611: 208(ptr) AccessChain 1390(texel) 207 1612:6(float16_t) Load 1611 1613:6(float16_t) FAdd 1612 1610 1614: 208(ptr) AccessChain 1390(texel) 207 Store 1614 1613 1615: 299 Load 301(sCubeArray) 1616: 249(fvec4) Load 251(c4) 1617: 167(fvec3) Load 1425(dPdxy3) 1618: 167(fvec3) Load 1425(dPdxy3) 1619: 7(f16vec4) ImageSampleExplicitLod 1615 1616 Grad 1617 1618 1620: 7(f16vec4) Load 1390(texel) 1621: 7(f16vec4) FAdd 1620 1619 Store 1390(texel) 1621 1622: 299 Load 301(sCubeArray) 1623: 7(f16vec4) Load 309(f16c4) 1624:175(f16vec3) Load 1433(f16dPdxy3) 1625:175(f16vec3) Load 1433(f16dPdxy3) 1626: 7(f16vec4) ImageSampleExplicitLod 1622 1623 Grad 1624 1625 1627: 7(f16vec4) Load 1390(texel) 1628: 7(f16vec4) FAdd 1627 1626 Store 1390(texel) 1628 1629: 7(f16vec4) Load 1390(texel) ReturnValue 1629 FunctionEnd 29(testTextureGradOffset(): 7(f16vec4) Function None 8 30: Label 1632(texel): 64(ptr) Variable Function Store 1632(texel) 121 1633: 123 Load 125(s1D) 1634: 52(float) Load 128(c1) 1635: 52(float) Load 1393(dPdxy1) 1636: 52(float) Load 1393(dPdxy1) 1637: 7(f16vec4) ImageSampleExplicitLod 1633 1634 Grad ConstOffset 1635 1636 709 1638: 7(f16vec4) Load 1632(texel) 1639: 7(f16vec4) FAdd 1638 1637 Store 1632(texel) 1639 1640: 123 Load 125(s1D) 1641:6(float16_t) Load 135(f16c1) 1642:6(float16_t) Load 1401(f16dPdxy1) 1643:6(float16_t) Load 1401(f16dPdxy1) 1644: 7(f16vec4) ImageSampleExplicitLod 1640 1641 Grad ConstOffset 1642 1643 709 1645: 7(f16vec4) Load 1632(texel) 1646: 7(f16vec4) FAdd 1645 1644 Store 1632(texel) 1646 1647: 143 Load 145(s2D) 1648: 53(fvec2) Load 148(c2) 1649: 53(fvec2) Load 1409(dPdxy2) 1650: 53(fvec2) Load 1409(dPdxy2) 1651: 7(f16vec4) ImageSampleExplicitLod 1647 1648 Grad ConstOffset 1649 1650 722 1652: 7(f16vec4) Load 1632(texel) 1653: 7(f16vec4) FAdd 1652 1651 Store 1632(texel) 1653 1654: 143 Load 145(s2D) 1655:154(f16vec2) Load 156(f16c2) 1656:154(f16vec2) Load 1417(f16dPdxy2) 1657:154(f16vec2) Load 1417(f16dPdxy2) 1658: 7(f16vec4) ImageSampleExplicitLod 1654 1655 Grad ConstOffset 1656 1657 722 1659: 7(f16vec4) Load 1632(texel) 1660: 7(f16vec4) FAdd 1659 1658 Store 1632(texel) 1660 1661: 163 Load 165(s3D) 1662: 167(fvec3) Load 169(c3) 1663: 167(fvec3) Load 1425(dPdxy3) 1664: 167(fvec3) Load 1425(dPdxy3) 1665: 7(f16vec4) ImageSampleExplicitLod 1661 1662 Grad ConstOffset 1663 1664 735 1666: 7(f16vec4) Load 1632(texel) 1667: 7(f16vec4) FAdd 1666 1665 Store 1632(texel) 1667 1668: 163 Load 165(s3D) 1669:175(f16vec3) Load 177(f16c3) 1670:175(f16vec3) Load 1433(f16dPdxy3) 1671:175(f16vec3) Load 1433(f16dPdxy3) 1672: 7(f16vec4) ImageSampleExplicitLod 1668 1669 Grad ConstOffset 1670 1671 735 1673: 7(f16vec4) Load 1632(texel) 1674: 7(f16vec4) FAdd 1673 1672 Store 1632(texel) 1674 1675: 357 Load 359(s2DRect) 1676: 53(fvec2) Load 148(c2) 1677: 53(fvec2) Load 1409(dPdxy2) 1678: 53(fvec2) Load 1409(dPdxy2) 1679: 7(f16vec4) ImageSampleExplicitLod 1675 1676 Grad ConstOffset 1677 1678 722 1680: 7(f16vec4) Load 1632(texel) 1681: 7(f16vec4) FAdd 1680 1679 Store 1632(texel) 1681 1682: 357 Load 359(s2DRect) 1683:154(f16vec2) Load 156(f16c2) 1684:154(f16vec2) Load 1417(f16dPdxy2) 1685:154(f16vec2) Load 1417(f16dPdxy2) 1686: 7(f16vec4) ImageSampleExplicitLod 1682 1683 Grad ConstOffset 1684 1685 722 1687: 7(f16vec4) Load 1632(texel) 1688: 7(f16vec4) FAdd 1687 1686 Store 1632(texel) 1688 1689: 371 Load 373(s2DRectShadow) 1690: 167(fvec3) Load 169(c3) 1691: 53(fvec2) Load 1409(dPdxy2) 1692: 53(fvec2) Load 1409(dPdxy2) 1693: 52(float) CompositeExtract 1690 2 1694:6(float16_t) ImageSampleDrefExplicitLod 1689 1690 1693 Grad ConstOffset 1691 1692 722 1695: 208(ptr) AccessChain 1632(texel) 207 1696:6(float16_t) Load 1695 1697:6(float16_t) FAdd 1696 1694 1698: 208(ptr) AccessChain 1632(texel) 207 Store 1698 1697 1699: 371 Load 373(s2DRectShadow) 1700:154(f16vec2) Load 156(f16c2) 1701: 52(float) Load 215(compare) 1702:154(f16vec2) Load 1417(f16dPdxy2) 1703:154(f16vec2) Load 1417(f16dPdxy2) 1704:6(float16_t) ImageSampleDrefExplicitLod 1699 1700 1701 Grad ConstOffset 1702 1703 722 1705: 208(ptr) AccessChain 1632(texel) 207 1706:6(float16_t) Load 1705 1707:6(float16_t) FAdd 1706 1704 1708: 208(ptr) AccessChain 1632(texel) 207 Store 1708 1707 1709: 199 Load 201(s1DShadow) 1710: 167(fvec3) Load 169(c3) 1711: 52(float) Load 1393(dPdxy1) 1712: 52(float) Load 1393(dPdxy1) 1713: 52(float) CompositeExtract 1710 2 1714:6(float16_t) ImageSampleDrefExplicitLod 1709 1710 1713 Grad ConstOffset 1711 1712 709 1715: 208(ptr) AccessChain 1632(texel) 207 1716:6(float16_t) Load 1715 1717:6(float16_t) FAdd 1716 1714 1718: 208(ptr) AccessChain 1632(texel) 207 Store 1718 1717 1719: 199 Load 201(s1DShadow) 1720:154(f16vec2) Load 156(f16c2) 1721: 52(float) Load 215(compare) 1722:6(float16_t) Load 1401(f16dPdxy1) 1723:6(float16_t) Load 1401(f16dPdxy1) 1724:6(float16_t) ImageSampleDrefExplicitLod 1719 1720 1721 Grad ConstOffset 1722 1723 709 1725: 208(ptr) AccessChain 1632(texel) 207 1726:6(float16_t) Load 1725 1727:6(float16_t) FAdd 1726 1724 1728: 208(ptr) AccessChain 1632(texel) 207 Store 1728 1727 1729: 224 Load 226(s2DShadow) 1730: 167(fvec3) Load 169(c3) 1731: 53(fvec2) Load 1409(dPdxy2) 1732: 53(fvec2) Load 1409(dPdxy2) 1733: 52(float) CompositeExtract 1730 2 1734:6(float16_t) ImageSampleDrefExplicitLod 1729 1730 1733 Grad ConstOffset 1731 1732 722 1735: 208(ptr) AccessChain 1632(texel) 207 1736:6(float16_t) Load 1735 1737:6(float16_t) FAdd 1736 1734 1738: 208(ptr) AccessChain 1632(texel) 207 Store 1738 1737 1739: 224 Load 226(s2DShadow) 1740:154(f16vec2) Load 156(f16c2) 1741: 52(float) Load 215(compare) 1742:154(f16vec2) Load 1417(f16dPdxy2) 1743:154(f16vec2) Load 1417(f16dPdxy2) 1744:6(float16_t) ImageSampleDrefExplicitLod 1739 1740 1741 Grad ConstOffset 1742 1743 722 1745: 208(ptr) AccessChain 1632(texel) 207 1746:6(float16_t) Load 1745 1747:6(float16_t) FAdd 1746 1744 1748: 208(ptr) AccessChain 1632(texel) 207 Store 1748 1747 1749: 269 Load 271(s1DArray) 1750: 53(fvec2) Load 148(c2) 1751: 52(float) Load 1393(dPdxy1) 1752: 52(float) Load 1393(dPdxy1) 1753: 7(f16vec4) ImageSampleExplicitLod 1749 1750 Grad ConstOffset 1751 1752 709 1754: 7(f16vec4) Load 1632(texel) 1755: 7(f16vec4) FAdd 1754 1753 Store 1632(texel) 1755 1756: 269 Load 271(s1DArray) 1757:154(f16vec2) Load 156(f16c2) 1758:6(float16_t) Load 1401(f16dPdxy1) 1759:6(float16_t) Load 1401(f16dPdxy1) 1760: 7(f16vec4) ImageSampleExplicitLod 1756 1757 Grad ConstOffset 1758 1759 709 1761: 7(f16vec4) Load 1632(texel) 1762: 7(f16vec4) FAdd 1761 1760 Store 1632(texel) 1762 1763: 284 Load 286(s2DArray) 1764: 167(fvec3) Load 169(c3) 1765: 53(fvec2) Load 1409(dPdxy2) 1766: 53(fvec2) Load 1409(dPdxy2) 1767: 7(f16vec4) ImageSampleExplicitLod 1763 1764 Grad ConstOffset 1765 1766 722 1768: 7(f16vec4) Load 1632(texel) 1769: 7(f16vec4) FAdd 1768 1767 Store 1632(texel) 1769 1770: 284 Load 286(s2DArray) 1771:175(f16vec3) Load 177(f16c3) 1772:154(f16vec2) Load 1417(f16dPdxy2) 1773:154(f16vec2) Load 1417(f16dPdxy2) 1774: 7(f16vec4) ImageSampleExplicitLod 1770 1771 Grad ConstOffset 1772 1773 722 1775: 7(f16vec4) Load 1632(texel) 1776: 7(f16vec4) FAdd 1775 1774 Store 1632(texel) 1776 1777: 316 Load 318(s1DArrayShadow) 1778: 167(fvec3) Load 169(c3) 1779: 52(float) Load 1393(dPdxy1) 1780: 52(float) Load 1393(dPdxy1) 1781: 52(float) CompositeExtract 1778 2 1782:6(float16_t) ImageSampleDrefExplicitLod 1777 1778 1781 Grad ConstOffset 1779 1780 709 1783: 208(ptr) AccessChain 1632(texel) 207 1784:6(float16_t) Load 1783 1785:6(float16_t) FAdd 1784 1782 1786: 208(ptr) AccessChain 1632(texel) 207 Store 1786 1785 1787: 316 Load 318(s1DArrayShadow) 1788:154(f16vec2) Load 156(f16c2) 1789: 52(float) Load 215(compare) 1790:6(float16_t) Load 1401(f16dPdxy1) 1791:6(float16_t) Load 1401(f16dPdxy1) 1792:6(float16_t) ImageSampleDrefExplicitLod 1787 1788 1789 Grad ConstOffset 1790 1791 709 1793: 208(ptr) AccessChain 1632(texel) 207 1794:6(float16_t) Load 1793 1795:6(float16_t) FAdd 1794 1792 1796: 208(ptr) AccessChain 1632(texel) 207 Store 1796 1795 1797: 337 Load 339(s2DArrayShadow) 1798: 249(fvec4) Load 251(c4) 1799: 53(fvec2) Load 1409(dPdxy2) 1800: 53(fvec2) Load 1409(dPdxy2) 1801: 52(float) CompositeExtract 1798 3 1802:6(float16_t) ImageSampleDrefExplicitLod 1797 1798 1801 Grad ConstOffset 1799 1800 722 1803: 208(ptr) AccessChain 1632(texel) 207 1804:6(float16_t) Load 1803 1805:6(float16_t) FAdd 1804 1802 1806: 208(ptr) AccessChain 1632(texel) 207 Store 1806 1805 1807: 337 Load 339(s2DArrayShadow) 1808:175(f16vec3) Load 177(f16c3) 1809: 52(float) Load 215(compare) 1810:154(f16vec2) Load 1417(f16dPdxy2) 1811:154(f16vec2) Load 1417(f16dPdxy2) 1812:6(float16_t) ImageSampleDrefExplicitLod 1807 1808 1809 Grad ConstOffset 1810 1811 722 1813: 208(ptr) AccessChain 1632(texel) 207 1814:6(float16_t) Load 1813 1815:6(float16_t) FAdd 1814 1812 1816: 208(ptr) AccessChain 1632(texel) 207 Store 1816 1815 1817: 7(f16vec4) Load 1632(texel) ReturnValue 1817 FunctionEnd 31(testTextureProjGrad(): 7(f16vec4) Function None 8 32: Label 1820(texel): 64(ptr) Variable Function Store 1820(texel) 121 1821: 123 Load 125(s1D) 1822: 53(fvec2) Load 148(c2) 1823: 52(float) Load 1393(dPdxy1) 1824: 52(float) Load 1393(dPdxy1) 1825: 7(f16vec4) ImageSampleProjExplicitLod 1821 1822 Grad 1823 1824 1826: 7(f16vec4) Load 1820(texel) 1827: 7(f16vec4) FAdd 1826 1825 Store 1820(texel) 1827 1828: 123 Load 125(s1D) 1829:154(f16vec2) Load 156(f16c2) 1830:6(float16_t) Load 1401(f16dPdxy1) 1831:6(float16_t) Load 1401(f16dPdxy1) 1832: 7(f16vec4) ImageSampleProjExplicitLod 1828 1829 Grad 1830 1831 1833: 7(f16vec4) Load 1820(texel) 1834: 7(f16vec4) FAdd 1833 1832 Store 1820(texel) 1834 1835: 123 Load 125(s1D) 1836: 249(fvec4) Load 251(c4) 1837: 52(float) Load 1393(dPdxy1) 1838: 52(float) Load 1393(dPdxy1) 1839: 52(float) CompositeExtract 1836 3 1840: 249(fvec4) CompositeInsert 1839 1836 1 1841: 7(f16vec4) ImageSampleProjExplicitLod 1835 1840 Grad 1837 1838 1842: 7(f16vec4) Load 1820(texel) 1843: 7(f16vec4) FAdd 1842 1841 Store 1820(texel) 1843 1844: 123 Load 125(s1D) 1845: 7(f16vec4) Load 309(f16c4) 1846:6(float16_t) Load 1401(f16dPdxy1) 1847:6(float16_t) Load 1401(f16dPdxy1) 1848:6(float16_t) CompositeExtract 1845 3 1849: 7(f16vec4) CompositeInsert 1848 1845 1 1850: 7(f16vec4) ImageSampleProjExplicitLod 1844 1849 Grad 1846 1847 1851: 7(f16vec4) Load 1820(texel) 1852: 7(f16vec4) FAdd 1851 1850 Store 1820(texel) 1852 1853: 143 Load 145(s2D) 1854: 167(fvec3) Load 169(c3) 1855: 53(fvec2) Load 1409(dPdxy2) 1856: 53(fvec2) Load 1409(dPdxy2) 1857: 7(f16vec4) ImageSampleProjExplicitLod 1853 1854 Grad 1855 1856 1858: 7(f16vec4) Load 1820(texel) 1859: 7(f16vec4) FAdd 1858 1857 Store 1820(texel) 1859 1860: 143 Load 145(s2D) 1861:175(f16vec3) Load 177(f16c3) 1862:154(f16vec2) Load 1417(f16dPdxy2) 1863:154(f16vec2) Load 1417(f16dPdxy2) 1864: 7(f16vec4) ImageSampleProjExplicitLod 1860 1861 Grad 1862 1863 1865: 7(f16vec4) Load 1820(texel) 1866: 7(f16vec4) FAdd 1865 1864 Store 1820(texel) 1866 1867: 143 Load 145(s2D) 1868: 249(fvec4) Load 251(c4) 1869: 53(fvec2) Load 1409(dPdxy2) 1870: 53(fvec2) Load 1409(dPdxy2) 1871: 52(float) CompositeExtract 1868 3 1872: 249(fvec4) CompositeInsert 1871 1868 2 1873: 7(f16vec4) ImageSampleProjExplicitLod 1867 1872 Grad 1869 1870 1874: 7(f16vec4) Load 1820(texel) 1875: 7(f16vec4) FAdd 1874 1873 Store 1820(texel) 1875 1876: 143 Load 145(s2D) 1877: 7(f16vec4) Load 309(f16c4) 1878:154(f16vec2) Load 1417(f16dPdxy2) 1879:154(f16vec2) Load 1417(f16dPdxy2) 1880:6(float16_t) CompositeExtract 1877 3 1881: 7(f16vec4) CompositeInsert 1880 1877 2 1882: 7(f16vec4) ImageSampleProjExplicitLod 1876 1881 Grad 1878 1879 1883: 7(f16vec4) Load 1820(texel) 1884: 7(f16vec4) FAdd 1883 1882 Store 1820(texel) 1884 1885: 163 Load 165(s3D) 1886: 249(fvec4) Load 251(c4) 1887: 167(fvec3) Load 1425(dPdxy3) 1888: 167(fvec3) Load 1425(dPdxy3) 1889: 7(f16vec4) ImageSampleProjExplicitLod 1885 1886 Grad 1887 1888 1890: 7(f16vec4) Load 1820(texel) 1891: 7(f16vec4) FAdd 1890 1889 Store 1820(texel) 1891 1892: 163 Load 165(s3D) 1893: 7(f16vec4) Load 309(f16c4) 1894:175(f16vec3) Load 1433(f16dPdxy3) 1895:175(f16vec3) Load 1433(f16dPdxy3) 1896: 7(f16vec4) ImageSampleProjExplicitLod 1892 1893 Grad 1894 1895 1897: 7(f16vec4) Load 1820(texel) 1898: 7(f16vec4) FAdd 1897 1896 Store 1820(texel) 1898 1899: 357 Load 359(s2DRect) 1900: 167(fvec3) Load 169(c3) 1901: 53(fvec2) Load 1409(dPdxy2) 1902: 53(fvec2) Load 1409(dPdxy2) 1903: 7(f16vec4) ImageSampleProjExplicitLod 1899 1900 Grad 1901 1902 1904: 7(f16vec4) Load 1820(texel) 1905: 7(f16vec4) FAdd 1904 1903 Store 1820(texel) 1905 1906: 357 Load 359(s2DRect) 1907:175(f16vec3) Load 177(f16c3) 1908:154(f16vec2) Load 1417(f16dPdxy2) 1909:154(f16vec2) Load 1417(f16dPdxy2) 1910: 7(f16vec4) ImageSampleProjExplicitLod 1906 1907 Grad 1908 1909 1911: 7(f16vec4) Load 1820(texel) 1912: 7(f16vec4) FAdd 1911 1910 Store 1820(texel) 1912 1913: 357 Load 359(s2DRect) 1914: 249(fvec4) Load 251(c4) 1915: 53(fvec2) Load 1409(dPdxy2) 1916: 53(fvec2) Load 1409(dPdxy2) 1917: 52(float) CompositeExtract 1914 3 1918: 249(fvec4) CompositeInsert 1917 1914 2 1919: 7(f16vec4) ImageSampleProjExplicitLod 1913 1918 Grad 1915 1916 1920: 7(f16vec4) Load 1820(texel) 1921: 7(f16vec4) FAdd 1920 1919 Store 1820(texel) 1921 1922: 357 Load 359(s2DRect) 1923: 7(f16vec4) Load 309(f16c4) 1924:154(f16vec2) Load 1417(f16dPdxy2) 1925:154(f16vec2) Load 1417(f16dPdxy2) 1926:6(float16_t) CompositeExtract 1923 3 1927: 7(f16vec4) CompositeInsert 1926 1923 2 1928: 7(f16vec4) ImageSampleProjExplicitLod 1922 1927 Grad 1924 1925 1929: 7(f16vec4) Load 1820(texel) 1930: 7(f16vec4) FAdd 1929 1928 Store 1820(texel) 1930 1931: 371 Load 373(s2DRectShadow) 1932: 249(fvec4) Load 251(c4) 1933: 53(fvec2) Load 1409(dPdxy2) 1934: 53(fvec2) Load 1409(dPdxy2) 1935: 52(float) CompositeExtract 1932 2 1936: 52(float) CompositeExtract 1932 3 1937: 249(fvec4) CompositeInsert 1936 1932 2 1938:6(float16_t) ImageSampleProjDrefExplicitLod 1931 1937 1935 Grad 1933 1934 1939: 208(ptr) AccessChain 1820(texel) 207 1940:6(float16_t) Load 1939 1941:6(float16_t) FAdd 1940 1938 1942: 208(ptr) AccessChain 1820(texel) 207 Store 1942 1941 1943: 371 Load 373(s2DRectShadow) 1944:175(f16vec3) Load 177(f16c3) 1945: 52(float) Load 215(compare) 1946:154(f16vec2) Load 1417(f16dPdxy2) 1947:154(f16vec2) Load 1417(f16dPdxy2) 1948:6(float16_t) ImageSampleProjDrefExplicitLod 1943 1944 1945 Grad 1946 1947 1949: 208(ptr) AccessChain 1820(texel) 207 1950:6(float16_t) Load 1949 1951:6(float16_t) FAdd 1950 1948 1952: 208(ptr) AccessChain 1820(texel) 207 Store 1952 1951 1953: 199 Load 201(s1DShadow) 1954: 249(fvec4) Load 251(c4) 1955: 52(float) Load 1393(dPdxy1) 1956: 52(float) Load 1393(dPdxy1) 1957: 52(float) CompositeExtract 1954 2 1958: 52(float) CompositeExtract 1954 3 1959: 249(fvec4) CompositeInsert 1958 1954 1 1960:6(float16_t) ImageSampleProjDrefExplicitLod 1953 1959 1957 Grad 1955 1956 1961: 208(ptr) AccessChain 1820(texel) 207 1962:6(float16_t) Load 1961 1963:6(float16_t) FAdd 1962 1960 1964: 208(ptr) AccessChain 1820(texel) 207 Store 1964 1963 1965: 199 Load 201(s1DShadow) 1966:175(f16vec3) Load 177(f16c3) 1967: 52(float) Load 215(compare) 1968:6(float16_t) Load 1401(f16dPdxy1) 1969:6(float16_t) Load 1401(f16dPdxy1) 1970:6(float16_t) CompositeExtract 1966 2 1971:175(f16vec3) CompositeInsert 1970 1966 1 1972:6(float16_t) ImageSampleProjDrefExplicitLod 1965 1971 1967 Grad 1968 1969 1973: 208(ptr) AccessChain 1820(texel) 207 1974:6(float16_t) Load 1973 1975:6(float16_t) FAdd 1974 1972 1976: 208(ptr) AccessChain 1820(texel) 207 Store 1976 1975 1977: 224 Load 226(s2DShadow) 1978: 249(fvec4) Load 251(c4) 1979: 53(fvec2) Load 1409(dPdxy2) 1980: 53(fvec2) Load 1409(dPdxy2) 1981: 52(float) CompositeExtract 1978 2 1982: 52(float) CompositeExtract 1978 3 1983: 249(fvec4) CompositeInsert 1982 1978 2 1984:6(float16_t) ImageSampleProjDrefExplicitLod 1977 1983 1981 Grad 1979 1980 1985: 208(ptr) AccessChain 1820(texel) 207 1986:6(float16_t) Load 1985 1987:6(float16_t) FAdd 1986 1984 1988: 208(ptr) AccessChain 1820(texel) 207 Store 1988 1987 1989: 224 Load 226(s2DShadow) 1990:175(f16vec3) Load 177(f16c3) 1991: 52(float) Load 215(compare) 1992:154(f16vec2) Load 1417(f16dPdxy2) 1993:154(f16vec2) Load 1417(f16dPdxy2) 1994:6(float16_t) ImageSampleProjDrefExplicitLod 1989 1990 1991 Grad 1992 1993 1995: 208(ptr) AccessChain 1820(texel) 207 1996:6(float16_t) Load 1995 1997:6(float16_t) FAdd 1996 1994 1998: 208(ptr) AccessChain 1820(texel) 207 Store 1998 1997 1999: 7(f16vec4) Load 1820(texel) ReturnValue 1999 FunctionEnd 33(testTextureProjGradoffset(): 7(f16vec4) Function None 8 34: Label 2002(texel): 64(ptr) Variable Function Store 2002(texel) 121 2003: 123 Load 125(s1D) 2004: 53(fvec2) Load 148(c2) 2005: 52(float) Load 1393(dPdxy1) 2006: 52(float) Load 1393(dPdxy1) 2007: 7(f16vec4) ImageSampleProjExplicitLod 2003 2004 Grad ConstOffset 2005 2006 709 2008: 7(f16vec4) Load 2002(texel) 2009: 7(f16vec4) FAdd 2008 2007 Store 2002(texel) 2009 2010: 123 Load 125(s1D) 2011:154(f16vec2) Load 156(f16c2) 2012:6(float16_t) Load 1401(f16dPdxy1) 2013:6(float16_t) Load 1401(f16dPdxy1) 2014: 7(f16vec4) ImageSampleProjExplicitLod 2010 2011 Grad ConstOffset 2012 2013 709 2015: 7(f16vec4) Load 2002(texel) 2016: 7(f16vec4) FAdd 2015 2014 Store 2002(texel) 2016 2017: 123 Load 125(s1D) 2018: 249(fvec4) Load 251(c4) 2019: 52(float) Load 1393(dPdxy1) 2020: 52(float) Load 1393(dPdxy1) 2021: 52(float) CompositeExtract 2018 3 2022: 249(fvec4) CompositeInsert 2021 2018 1 2023: 7(f16vec4) ImageSampleProjExplicitLod 2017 2022 Grad ConstOffset 2019 2020 709 2024: 7(f16vec4) Load 2002(texel) 2025: 7(f16vec4) FAdd 2024 2023 Store 2002(texel) 2025 2026: 123 Load 125(s1D) 2027: 7(f16vec4) Load 309(f16c4) 2028:6(float16_t) Load 1401(f16dPdxy1) 2029:6(float16_t) Load 1401(f16dPdxy1) 2030:6(float16_t) CompositeExtract 2027 3 2031: 7(f16vec4) CompositeInsert 2030 2027 1 2032: 7(f16vec4) ImageSampleProjExplicitLod 2026 2031 Grad ConstOffset 2028 2029 709 2033: 7(f16vec4) Load 2002(texel) 2034: 7(f16vec4) FAdd 2033 2032 Store 2002(texel) 2034 2035: 143 Load 145(s2D) 2036: 167(fvec3) Load 169(c3) 2037: 53(fvec2) Load 1409(dPdxy2) 2038: 53(fvec2) Load 1409(dPdxy2) 2039: 7(f16vec4) ImageSampleProjExplicitLod 2035 2036 Grad ConstOffset 2037 2038 722 2040: 7(f16vec4) Load 2002(texel) 2041: 7(f16vec4) FAdd 2040 2039 Store 2002(texel) 2041 2042: 143 Load 145(s2D) 2043:175(f16vec3) Load 177(f16c3) 2044:154(f16vec2) Load 1417(f16dPdxy2) 2045:154(f16vec2) Load 1417(f16dPdxy2) 2046: 7(f16vec4) ImageSampleProjExplicitLod 2042 2043 Grad ConstOffset 2044 2045 722 2047: 7(f16vec4) Load 2002(texel) 2048: 7(f16vec4) FAdd 2047 2046 Store 2002(texel) 2048 2049: 143 Load 145(s2D) 2050: 249(fvec4) Load 251(c4) 2051: 53(fvec2) Load 1409(dPdxy2) 2052: 53(fvec2) Load 1409(dPdxy2) 2053: 52(float) CompositeExtract 2050 3 2054: 249(fvec4) CompositeInsert 2053 2050 2 2055: 7(f16vec4) ImageSampleProjExplicitLod 2049 2054 Grad ConstOffset 2051 2052 722 2056: 7(f16vec4) Load 2002(texel) 2057: 7(f16vec4) FAdd 2056 2055 Store 2002(texel) 2057 2058: 143 Load 145(s2D) 2059: 7(f16vec4) Load 309(f16c4) 2060:154(f16vec2) Load 1417(f16dPdxy2) 2061:154(f16vec2) Load 1417(f16dPdxy2) 2062:6(float16_t) CompositeExtract 2059 3 2063: 7(f16vec4) CompositeInsert 2062 2059 2 2064: 7(f16vec4) ImageSampleProjExplicitLod 2058 2063 Grad ConstOffset 2060 2061 722 2065: 7(f16vec4) Load 2002(texel) 2066: 7(f16vec4) FAdd 2065 2064 Store 2002(texel) 2066 2067: 357 Load 359(s2DRect) 2068: 167(fvec3) Load 169(c3) 2069: 53(fvec2) Load 1409(dPdxy2) 2070: 53(fvec2) Load 1409(dPdxy2) 2071: 7(f16vec4) ImageSampleProjExplicitLod 2067 2068 Grad ConstOffset 2069 2070 722 2072: 7(f16vec4) Load 2002(texel) 2073: 7(f16vec4) FAdd 2072 2071 Store 2002(texel) 2073 2074: 357 Load 359(s2DRect) 2075:175(f16vec3) Load 177(f16c3) 2076:154(f16vec2) Load 1417(f16dPdxy2) 2077:154(f16vec2) Load 1417(f16dPdxy2) 2078: 7(f16vec4) ImageSampleProjExplicitLod 2074 2075 Grad ConstOffset 2076 2077 722 2079: 7(f16vec4) Load 2002(texel) 2080: 7(f16vec4) FAdd 2079 2078 Store 2002(texel) 2080 2081: 357 Load 359(s2DRect) 2082: 249(fvec4) Load 251(c4) 2083: 53(fvec2) Load 1409(dPdxy2) 2084: 53(fvec2) Load 1409(dPdxy2) 2085: 52(float) CompositeExtract 2082 3 2086: 249(fvec4) CompositeInsert 2085 2082 2 2087: 7(f16vec4) ImageSampleProjExplicitLod 2081 2086 Grad ConstOffset 2083 2084 722 2088: 7(f16vec4) Load 2002(texel) 2089: 7(f16vec4) FAdd 2088 2087 Store 2002(texel) 2089 2090: 357 Load 359(s2DRect) 2091: 7(f16vec4) Load 309(f16c4) 2092:154(f16vec2) Load 1417(f16dPdxy2) 2093:154(f16vec2) Load 1417(f16dPdxy2) 2094:6(float16_t) CompositeExtract 2091 3 2095: 7(f16vec4) CompositeInsert 2094 2091 2 2096: 7(f16vec4) ImageSampleProjExplicitLod 2090 2095 Grad ConstOffset 2092 2093 722 2097: 7(f16vec4) Load 2002(texel) 2098: 7(f16vec4) FAdd 2097 2096 Store 2002(texel) 2098 2099: 371 Load 373(s2DRectShadow) 2100: 249(fvec4) Load 251(c4) 2101: 53(fvec2) Load 1409(dPdxy2) 2102: 53(fvec2) Load 1409(dPdxy2) 2103: 52(float) CompositeExtract 2100 2 2104: 52(float) CompositeExtract 2100 3 2105: 249(fvec4) CompositeInsert 2104 2100 2 2106:6(float16_t) ImageSampleProjDrefExplicitLod 2099 2105 2103 Grad ConstOffset 2101 2102 722 2107: 208(ptr) AccessChain 2002(texel) 207 2108:6(float16_t) Load 2107 2109:6(float16_t) FAdd 2108 2106 2110: 208(ptr) AccessChain 2002(texel) 207 Store 2110 2109 2111: 371 Load 373(s2DRectShadow) 2112:175(f16vec3) Load 177(f16c3) 2113: 52(float) Load 215(compare) 2114:154(f16vec2) Load 1417(f16dPdxy2) 2115:154(f16vec2) Load 1417(f16dPdxy2) 2116:6(float16_t) ImageSampleProjDrefExplicitLod 2111 2112 2113 Grad ConstOffset 2114 2115 722 2117: 208(ptr) AccessChain 2002(texel) 207 2118:6(float16_t) Load 2117 2119:6(float16_t) FAdd 2118 2116 2120: 208(ptr) AccessChain 2002(texel) 207 Store 2120 2119 2121: 163 Load 165(s3D) 2122: 249(fvec4) Load 251(c4) 2123: 167(fvec3) Load 1425(dPdxy3) 2124: 167(fvec3) Load 1425(dPdxy3) 2125: 7(f16vec4) ImageSampleProjExplicitLod 2121 2122 Grad ConstOffset 2123 2124 735 2126: 7(f16vec4) Load 2002(texel) 2127: 7(f16vec4) FAdd 2126 2125 Store 2002(texel) 2127 2128: 163 Load 165(s3D) 2129: 7(f16vec4) Load 309(f16c4) 2130:175(f16vec3) Load 1433(f16dPdxy3) 2131:175(f16vec3) Load 1433(f16dPdxy3) 2132: 7(f16vec4) ImageSampleProjExplicitLod 2128 2129 Grad ConstOffset 2130 2131 735 2133: 7(f16vec4) Load 2002(texel) 2134: 7(f16vec4) FAdd 2133 2132 Store 2002(texel) 2134 2135: 199 Load 201(s1DShadow) 2136: 249(fvec4) Load 251(c4) 2137: 52(float) Load 1393(dPdxy1) 2138: 52(float) Load 1393(dPdxy1) 2139: 52(float) CompositeExtract 2136 2 2140: 52(float) CompositeExtract 2136 3 2141: 249(fvec4) CompositeInsert 2140 2136 1 2142:6(float16_t) ImageSampleProjDrefExplicitLod 2135 2141 2139 Grad ConstOffset 2137 2138 709 2143: 208(ptr) AccessChain 2002(texel) 207 2144:6(float16_t) Load 2143 2145:6(float16_t) FAdd 2144 2142 2146: 208(ptr) AccessChain 2002(texel) 207 Store 2146 2145 2147: 199 Load 201(s1DShadow) 2148:175(f16vec3) Load 177(f16c3) 2149: 52(float) Load 215(compare) 2150:6(float16_t) Load 1401(f16dPdxy1) 2151:6(float16_t) Load 1401(f16dPdxy1) 2152:6(float16_t) CompositeExtract 2148 2 2153:175(f16vec3) CompositeInsert 2152 2148 1 2154:6(float16_t) ImageSampleProjDrefExplicitLod 2147 2153 2149 Grad ConstOffset 2150 2151 709 2155: 208(ptr) AccessChain 2002(texel) 207 2156:6(float16_t) Load 2155 2157:6(float16_t) FAdd 2156 2154 2158: 208(ptr) AccessChain 2002(texel) 207 Store 2158 2157 2159: 224 Load 226(s2DShadow) 2160: 249(fvec4) Load 251(c4) 2161: 53(fvec2) Load 1409(dPdxy2) 2162: 53(fvec2) Load 1409(dPdxy2) 2163: 52(float) CompositeExtract 2160 2 2164: 52(float) CompositeExtract 2160 3 2165: 249(fvec4) CompositeInsert 2164 2160 2 2166:6(float16_t) ImageSampleProjDrefExplicitLod 2159 2165 2163 Grad ConstOffset 2161 2162 722 2167: 208(ptr) AccessChain 2002(texel) 207 2168:6(float16_t) Load 2167 2169:6(float16_t) FAdd 2168 2166 2170: 208(ptr) AccessChain 2002(texel) 207 Store 2170 2169 2171: 224 Load 226(s2DShadow) 2172:175(f16vec3) Load 177(f16c3) 2173: 52(float) Load 215(compare) 2174:154(f16vec2) Load 1417(f16dPdxy2) 2175:154(f16vec2) Load 1417(f16dPdxy2) 2176:6(float16_t) ImageSampleProjDrefExplicitLod 2171 2172 2173 Grad ConstOffset 2174 2175 722 2177: 208(ptr) AccessChain 2002(texel) 207 2178:6(float16_t) Load 2177 2179:6(float16_t) FAdd 2178 2176 2180: 208(ptr) AccessChain 2002(texel) 207 Store 2180 2179 2181: 7(f16vec4) Load 2002(texel) ReturnValue 2181 FunctionEnd 35(testTextureGather(): 7(f16vec4) Function None 8 36: Label 2184(texel): 64(ptr) Variable Function Store 2184(texel) 121 2185: 143 Load 145(s2D) 2186: 53(fvec2) Load 148(c2) 2188: 7(f16vec4) ImageGather 2185 2186 2187 2189: 7(f16vec4) Load 2184(texel) 2190: 7(f16vec4) FAdd 2189 2188 Store 2184(texel) 2190 2191: 143 Load 145(s2D) 2192:154(f16vec2) Load 156(f16c2) 2193:6(float16_t) Load 137(f16bias) 2194: 7(f16vec4) ImageGather 2191 2192 2187 Bias 2193 2195: 7(f16vec4) Load 2184(texel) 2196: 7(f16vec4) FAdd 2195 2194 Store 2184(texel) 2196 2197: 284 Load 286(s2DArray) 2198: 167(fvec3) Load 169(c3) 2199: 7(f16vec4) ImageGather 2197 2198 2187 2200: 7(f16vec4) Load 2184(texel) 2201: 7(f16vec4) FAdd 2200 2199 Store 2184(texel) 2201 2202: 284 Load 286(s2DArray) 2203:175(f16vec3) Load 177(f16c3) 2204:6(float16_t) Load 137(f16bias) 2205: 7(f16vec4) ImageGather 2202 2203 2187 Bias 2204 2206: 7(f16vec4) Load 2184(texel) 2207: 7(f16vec4) FAdd 2206 2205 Store 2184(texel) 2207 2208: 184 Load 186(sCube) 2209: 167(fvec3) Load 169(c3) 2210: 7(f16vec4) ImageGather 2208 2209 2187 2211: 7(f16vec4) Load 2184(texel) 2212: 7(f16vec4) FAdd 2211 2210 Store 2184(texel) 2212 2213: 184 Load 186(sCube) 2214:175(f16vec3) Load 177(f16c3) 2215:6(float16_t) Load 137(f16bias) 2216: 7(f16vec4) ImageGather 2213 2214 2187 Bias 2215 2217: 7(f16vec4) Load 2184(texel) 2218: 7(f16vec4) FAdd 2217 2216 Store 2184(texel) 2218 2219: 299 Load 301(sCubeArray) 2220: 249(fvec4) Load 251(c4) 2221: 7(f16vec4) ImageGather 2219 2220 2187 2222: 7(f16vec4) Load 2184(texel) 2223: 7(f16vec4) FAdd 2222 2221 Store 2184(texel) 2223 2224: 299 Load 301(sCubeArray) 2225: 7(f16vec4) Load 309(f16c4) 2226:6(float16_t) Load 137(f16bias) 2227: 7(f16vec4) ImageGather 2224 2225 2187 Bias 2226 2228: 7(f16vec4) Load 2184(texel) 2229: 7(f16vec4) FAdd 2228 2227 Store 2184(texel) 2229 2230: 357 Load 359(s2DRect) 2231: 53(fvec2) Load 148(c2) 2232: 7(f16vec4) ImageGather 2230 2231 2187 2233: 7(f16vec4) Load 2184(texel) 2234: 7(f16vec4) FAdd 2233 2232 Store 2184(texel) 2234 2235: 357 Load 359(s2DRect) 2236:154(f16vec2) Load 156(f16c2) 2237: 7(f16vec4) ImageGather 2235 2236 2187 2238: 7(f16vec4) Load 2184(texel) 2239: 7(f16vec4) FAdd 2238 2237 Store 2184(texel) 2239 2240: 224 Load 226(s2DShadow) 2241: 53(fvec2) Load 148(c2) 2242: 52(float) Load 215(compare) 2243: 7(f16vec4) ImageDrefGather 2240 2241 2242 2244: 7(f16vec4) Load 2184(texel) 2245: 7(f16vec4) FAdd 2244 2243 Store 2184(texel) 2245 2246: 224 Load 226(s2DShadow) 2247:154(f16vec2) Load 156(f16c2) 2248: 52(float) Load 215(compare) 2249: 7(f16vec4) ImageDrefGather 2246 2247 2248 2250: 7(f16vec4) Load 2184(texel) 2251: 7(f16vec4) FAdd 2250 2249 Store 2184(texel) 2251 2252: 337 Load 339(s2DArrayShadow) 2253: 167(fvec3) Load 169(c3) 2254: 52(float) Load 215(compare) 2255: 7(f16vec4) ImageDrefGather 2252 2253 2254 2256: 7(f16vec4) Load 2184(texel) 2257: 7(f16vec4) FAdd 2256 2255 Store 2184(texel) 2257 2258: 337 Load 339(s2DArrayShadow) 2259:175(f16vec3) Load 177(f16c3) 2260: 52(float) Load 215(compare) 2261: 7(f16vec4) ImageDrefGather 2258 2259 2260 2262: 7(f16vec4) Load 2184(texel) 2263: 7(f16vec4) FAdd 2262 2261 Store 2184(texel) 2263 2264: 245 Load 247(sCubeShadow) 2265: 167(fvec3) Load 169(c3) 2266: 52(float) Load 215(compare) 2267: 7(f16vec4) ImageDrefGather 2264 2265 2266 2268: 7(f16vec4) Load 2184(texel) 2269: 7(f16vec4) FAdd 2268 2267 Store 2184(texel) 2269 2270: 245 Load 247(sCubeShadow) 2271:175(f16vec3) Load 177(f16c3) 2272: 52(float) Load 215(compare) 2273: 7(f16vec4) ImageDrefGather 2270 2271 2272 2274: 7(f16vec4) Load 2184(texel) 2275: 7(f16vec4) FAdd 2274 2273 Store 2184(texel) 2275 2276: 391 Load 393(sCubeArrayShadow) 2277: 249(fvec4) Load 251(c4) 2278: 52(float) Load 215(compare) 2279: 7(f16vec4) ImageDrefGather 2276 2277 2278 2280: 7(f16vec4) Load 2184(texel) 2281: 7(f16vec4) FAdd 2280 2279 Store 2184(texel) 2281 2282: 391 Load 393(sCubeArrayShadow) 2283: 7(f16vec4) Load 309(f16c4) 2284: 52(float) Load 215(compare) 2285: 7(f16vec4) ImageDrefGather 2282 2283 2284 2286: 7(f16vec4) Load 2184(texel) 2287: 7(f16vec4) FAdd 2286 2285 Store 2184(texel) 2287 2288: 371 Load 373(s2DRectShadow) 2289: 53(fvec2) Load 148(c2) 2290: 52(float) Load 215(compare) 2291: 7(f16vec4) ImageDrefGather 2288 2289 2290 2292: 7(f16vec4) Load 2184(texel) 2293: 7(f16vec4) FAdd 2292 2291 Store 2184(texel) 2293 2294: 371 Load 373(s2DRectShadow) 2295:154(f16vec2) Load 156(f16c2) 2296: 52(float) Load 215(compare) 2297: 7(f16vec4) ImageDrefGather 2294 2295 2296 2298: 7(f16vec4) Load 2184(texel) 2299: 7(f16vec4) FAdd 2298 2297 Store 2184(texel) 2299 2300: 7(f16vec4) Load 2184(texel) ReturnValue 2300 FunctionEnd 37(testTextureGatherOffset(): 7(f16vec4) Function None 8 38: Label 2303(texel): 64(ptr) Variable Function Store 2303(texel) 121 2304: 143 Load 145(s2D) 2305: 53(fvec2) Load 148(c2) 2306: 7(f16vec4) ImageGather 2304 2305 2187 ConstOffset 722 2307: 7(f16vec4) Load 2303(texel) 2308: 7(f16vec4) FAdd 2307 2306 Store 2303(texel) 2308 2309: 143 Load 145(s2D) 2310:154(f16vec2) Load 156(f16c2) 2311:6(float16_t) Load 137(f16bias) 2312: 7(f16vec4) ImageGather 2309 2310 2187 Bias ConstOffset 2311 722 2313: 7(f16vec4) Load 2303(texel) 2314: 7(f16vec4) FAdd 2313 2312 Store 2303(texel) 2314 2315: 284 Load 286(s2DArray) 2316: 167(fvec3) Load 169(c3) 2317: 7(f16vec4) ImageGather 2315 2316 2187 ConstOffset 722 2318: 7(f16vec4) Load 2303(texel) 2319: 7(f16vec4) FAdd 2318 2317 Store 2303(texel) 2319 2320: 284 Load 286(s2DArray) 2321:175(f16vec3) Load 177(f16c3) 2322:6(float16_t) Load 137(f16bias) 2323: 7(f16vec4) ImageGather 2320 2321 2187 Bias ConstOffset 2322 722 2324: 7(f16vec4) Load 2303(texel) 2325: 7(f16vec4) FAdd 2324 2323 Store 2303(texel) 2325 2326: 357 Load 359(s2DRect) 2327: 53(fvec2) Load 148(c2) 2328: 7(f16vec4) ImageGather 2326 2327 2187 ConstOffset 722 2329: 7(f16vec4) Load 2303(texel) 2330: 7(f16vec4) FAdd 2329 2328 Store 2303(texel) 2330 2331: 357 Load 359(s2DRect) 2332:154(f16vec2) Load 156(f16c2) 2333: 7(f16vec4) ImageGather 2331 2332 2187 ConstOffset 722 2334: 7(f16vec4) Load 2303(texel) 2335: 7(f16vec4) FAdd 2334 2333 Store 2303(texel) 2335 2336: 224 Load 226(s2DShadow) 2337: 53(fvec2) Load 148(c2) 2338: 52(float) Load 215(compare) 2339: 7(f16vec4) ImageDrefGather 2336 2337 2338 ConstOffset 722 2340: 7(f16vec4) Load 2303(texel) 2341: 7(f16vec4) FAdd 2340 2339 Store 2303(texel) 2341 2342: 224 Load 226(s2DShadow) 2343:154(f16vec2) Load 156(f16c2) 2344: 52(float) Load 215(compare) 2345: 7(f16vec4) ImageDrefGather 2342 2343 2344 ConstOffset 722 2346: 7(f16vec4) Load 2303(texel) 2347: 7(f16vec4) FAdd 2346 2345 Store 2303(texel) 2347 2348: 337 Load 339(s2DArrayShadow) 2349: 167(fvec3) Load 169(c3) 2350: 52(float) Load 215(compare) 2351: 7(f16vec4) ImageDrefGather 2348 2349 2350 ConstOffset 722 2352: 7(f16vec4) Load 2303(texel) 2353: 7(f16vec4) FAdd 2352 2351 Store 2303(texel) 2353 2354: 337 Load 339(s2DArrayShadow) 2355:175(f16vec3) Load 177(f16c3) 2356: 52(float) Load 215(compare) 2357: 7(f16vec4) ImageDrefGather 2354 2355 2356 ConstOffset 722 2358: 7(f16vec4) Load 2303(texel) 2359: 7(f16vec4) FAdd 2358 2357 Store 2303(texel) 2359 2360: 371 Load 373(s2DRectShadow) 2361: 53(fvec2) Load 148(c2) 2362: 52(float) Load 215(compare) 2363: 7(f16vec4) ImageDrefGather 2360 2361 2362 ConstOffset 722 2364: 7(f16vec4) Load 2303(texel) 2365: 7(f16vec4) FAdd 2364 2363 Store 2303(texel) 2365 2366: 371 Load 373(s2DRectShadow) 2367:154(f16vec2) Load 156(f16c2) 2368: 52(float) Load 215(compare) 2369: 7(f16vec4) ImageDrefGather 2366 2367 2368 ConstOffset 722 2370: 7(f16vec4) Load 2303(texel) 2371: 7(f16vec4) FAdd 2370 2369 Store 2303(texel) 2371 2372: 7(f16vec4) Load 2303(texel) ReturnValue 2372 FunctionEnd 39(testTextureGatherOffsets(): 7(f16vec4) Function None 8 40: Label 2375(texel): 64(ptr) Variable Function Store 2375(texel) 121 2376: 143 Load 145(s2D) 2377: 53(fvec2) Load 148(c2) 2381: 7(f16vec4) ImageGather 2376 2377 2187 ConstOffsets 2380 2382: 7(f16vec4) Load 2375(texel) 2383: 7(f16vec4) FAdd 2382 2381 Store 2375(texel) 2383 2384: 143 Load 145(s2D) 2385:154(f16vec2) Load 156(f16c2) 2386:6(float16_t) Load 137(f16bias) 2387: 7(f16vec4) ImageGather 2384 2385 2187 Bias ConstOffsets 2386 2380 2388: 7(f16vec4) Load 2375(texel) 2389: 7(f16vec4) FAdd 2388 2387 Store 2375(texel) 2389 2390: 284 Load 286(s2DArray) 2391: 167(fvec3) Load 169(c3) 2392: 7(f16vec4) ImageGather 2390 2391 2187 ConstOffsets 2380 2393: 7(f16vec4) Load 2375(texel) 2394: 7(f16vec4) FAdd 2393 2392 Store 2375(texel) 2394 2395: 284 Load 286(s2DArray) 2396:175(f16vec3) Load 177(f16c3) 2397:6(float16_t) Load 137(f16bias) 2398: 7(f16vec4) ImageGather 2395 2396 2187 Bias ConstOffsets 2397 2380 2399: 7(f16vec4) Load 2375(texel) 2400: 7(f16vec4) FAdd 2399 2398 Store 2375(texel) 2400 2401: 357 Load 359(s2DRect) 2402: 53(fvec2) Load 148(c2) 2403: 7(f16vec4) ImageGather 2401 2402 2187 ConstOffsets 2380 2404: 7(f16vec4) Load 2375(texel) 2405: 7(f16vec4) FAdd 2404 2403 Store 2375(texel) 2405 2406: 357 Load 359(s2DRect) 2407:154(f16vec2) Load 156(f16c2) 2408: 7(f16vec4) ImageGather 2406 2407 2187 ConstOffsets 2380 2409: 7(f16vec4) Load 2375(texel) 2410: 7(f16vec4) FAdd 2409 2408 Store 2375(texel) 2410 2411: 224 Load 226(s2DShadow) 2412: 53(fvec2) Load 148(c2) 2413: 52(float) Load 215(compare) 2414: 7(f16vec4) ImageDrefGather 2411 2412 2413 ConstOffsets 2380 2415: 7(f16vec4) Load 2375(texel) 2416: 7(f16vec4) FAdd 2415 2414 Store 2375(texel) 2416 2417: 224 Load 226(s2DShadow) 2418:154(f16vec2) Load 156(f16c2) 2419: 52(float) Load 215(compare) 2420: 7(f16vec4) ImageDrefGather 2417 2418 2419 ConstOffsets 2380 2421: 7(f16vec4) Load 2375(texel) 2422: 7(f16vec4) FAdd 2421 2420 Store 2375(texel) 2422 2423: 337 Load 339(s2DArrayShadow) 2424: 167(fvec3) Load 169(c3) 2425: 52(float) Load 215(compare) 2426: 7(f16vec4) ImageDrefGather 2423 2424 2425 ConstOffsets 2380 2427: 7(f16vec4) Load 2375(texel) 2428: 7(f16vec4) FAdd 2427 2426 Store 2375(texel) 2428 2429: 337 Load 339(s2DArrayShadow) 2430:175(f16vec3) Load 177(f16c3) 2431: 52(float) Load 215(compare) 2432: 7(f16vec4) ImageDrefGather 2429 2430 2431 ConstOffsets 2380 2433: 7(f16vec4) Load 2375(texel) 2434: 7(f16vec4) FAdd 2433 2432 Store 2375(texel) 2434 2435: 371 Load 373(s2DRectShadow) 2436: 53(fvec2) Load 148(c2) 2437: 52(float) Load 215(compare) 2438: 7(f16vec4) ImageDrefGather 2435 2436 2437 ConstOffsets 2380 2439: 7(f16vec4) Load 2375(texel) 2440: 7(f16vec4) FAdd 2439 2438 Store 2375(texel) 2440 2441: 371 Load 373(s2DRectShadow) 2442:154(f16vec2) Load 156(f16c2) 2443: 52(float) Load 215(compare) 2444: 7(f16vec4) ImageDrefGather 2441 2442 2443 ConstOffsets 2380 2445: 7(f16vec4) Load 2375(texel) 2446: 7(f16vec4) FAdd 2445 2444 Store 2375(texel) 2446 2447: 7(f16vec4) Load 2375(texel) ReturnValue 2447 FunctionEnd 41(testTextureGatherLod(): 7(f16vec4) Function None 8 42: Label 2450(texel): 64(ptr) Variable Function Store 2450(texel) 121 2451: 143 Load 145(s2D) 2452: 53(fvec2) Load 148(c2) 2453: 52(float) Load 565(lod) 2454: 7(f16vec4) ImageGather 2451 2452 2187 Lod 2453 2455: 7(f16vec4) Load 2450(texel) 2456: 7(f16vec4) FAdd 2455 2454 Store 2450(texel) 2456 2457: 143 Load 145(s2D) 2458:154(f16vec2) Load 156(f16c2) 2459:6(float16_t) Load 572(f16lod) 2460: 7(f16vec4) ImageGather 2457 2458 2187 Lod 2459 2461: 7(f16vec4) Load 2450(texel) 2462: 7(f16vec4) FAdd 2461 2460 Store 2450(texel) 2462 2463: 284 Load 286(s2DArray) 2464: 167(fvec3) Load 169(c3) 2465: 52(float) Load 565(lod) 2466: 7(f16vec4) ImageGather 2463 2464 2187 Lod 2465 2467: 7(f16vec4) Load 2450(texel) 2468: 7(f16vec4) FAdd 2467 2466 Store 2450(texel) 2468 2469: 284 Load 286(s2DArray) 2470:175(f16vec3) Load 177(f16c3) 2471:6(float16_t) Load 572(f16lod) 2472: 7(f16vec4) ImageGather 2469 2470 2187 Lod 2471 2473: 7(f16vec4) Load 2450(texel) 2474: 7(f16vec4) FAdd 2473 2472 Store 2450(texel) 2474 2475: 184 Load 186(sCube) 2476: 167(fvec3) Load 169(c3) 2477: 52(float) Load 565(lod) 2478: 7(f16vec4) ImageGather 2475 2476 2187 Lod 2477 2479: 7(f16vec4) Load 2450(texel) 2480: 7(f16vec4) FAdd 2479 2478 Store 2450(texel) 2480 2481: 184 Load 186(sCube) 2482:175(f16vec3) Load 177(f16c3) 2483:6(float16_t) Load 572(f16lod) 2484: 7(f16vec4) ImageGather 2481 2482 2187 Lod 2483 2485: 7(f16vec4) Load 2450(texel) 2486: 7(f16vec4) FAdd 2485 2484 Store 2450(texel) 2486 2487: 299 Load 301(sCubeArray) 2488: 249(fvec4) Load 251(c4) 2489: 52(float) Load 565(lod) 2490: 7(f16vec4) ImageGather 2487 2488 2187 Lod 2489 2491: 7(f16vec4) Load 2450(texel) 2492: 7(f16vec4) FAdd 2491 2490 Store 2450(texel) 2492 2493: 299 Load 301(sCubeArray) 2494: 7(f16vec4) Load 309(f16c4) 2495:6(float16_t) Load 572(f16lod) 2496: 7(f16vec4) ImageGather 2493 2494 2187 Lod 2495 2497: 7(f16vec4) Load 2450(texel) 2498: 7(f16vec4) FAdd 2497 2496 Store 2450(texel) 2498 2499: 7(f16vec4) Load 2450(texel) ReturnValue 2499 FunctionEnd 43(testTextureGatherLodOffset(): 7(f16vec4) Function None 8 44: Label 2502(texel): 64(ptr) Variable Function Store 2502(texel) 121 2503: 143 Load 145(s2D) 2504: 53(fvec2) Load 148(c2) 2505: 52(float) Load 565(lod) 2506: 7(f16vec4) ImageGather 2503 2504 2187 Lod ConstOffset 2505 722 2507: 7(f16vec4) Load 2502(texel) 2508: 7(f16vec4) FAdd 2507 2506 Store 2502(texel) 2508 2509: 143 Load 145(s2D) 2510:154(f16vec2) Load 156(f16c2) 2511:6(float16_t) Load 572(f16lod) 2512: 7(f16vec4) ImageGather 2509 2510 2187 Lod ConstOffset 2511 722 2513: 7(f16vec4) Load 2502(texel) 2514: 7(f16vec4) FAdd 2513 2512 Store 2502(texel) 2514 2515: 284 Load 286(s2DArray) 2516: 167(fvec3) Load 169(c3) 2517: 52(float) Load 565(lod) 2518: 7(f16vec4) ImageGather 2515 2516 2187 Lod ConstOffset 2517 722 2519: 7(f16vec4) Load 2502(texel) 2520: 7(f16vec4) FAdd 2519 2518 Store 2502(texel) 2520 2521: 284 Load 286(s2DArray) 2522:175(f16vec3) Load 177(f16c3) 2523:6(float16_t) Load 572(f16lod) 2524: 7(f16vec4) ImageGather 2521 2522 2187 Lod ConstOffset 2523 722 2525: 7(f16vec4) Load 2502(texel) 2526: 7(f16vec4) FAdd 2525 2524 Store 2502(texel) 2526 2527: 7(f16vec4) Load 2502(texel) ReturnValue 2527 FunctionEnd 45(testTextureGatherLodOffsets(): 7(f16vec4) Function None 8 46: Label 2530(texel): 64(ptr) Variable Function Store 2530(texel) 121 2531: 143 Load 145(s2D) 2532: 53(fvec2) Load 148(c2) 2533: 52(float) Load 565(lod) 2534: 7(f16vec4) ImageGather 2531 2532 2187 Lod ConstOffsets 2533 2380 2535: 7(f16vec4) Load 2530(texel) 2536: 7(f16vec4) FAdd 2535 2534 Store 2530(texel) 2536 2537: 143 Load 145(s2D) 2538:154(f16vec2) Load 156(f16c2) 2539:6(float16_t) Load 572(f16lod) 2540: 7(f16vec4) ImageGather 2537 2538 2187 Lod ConstOffsets 2539 2380 2541: 7(f16vec4) Load 2530(texel) 2542: 7(f16vec4) FAdd 2541 2540 Store 2530(texel) 2542 2543: 284 Load 286(s2DArray) 2544: 167(fvec3) Load 169(c3) 2545: 52(float) Load 565(lod) 2546: 7(f16vec4) ImageGather 2543 2544 2187 Lod ConstOffsets 2545 2380 2547: 7(f16vec4) Load 2530(texel) 2548: 7(f16vec4) FAdd 2547 2546 Store 2530(texel) 2548 2549: 284 Load 286(s2DArray) 2550:175(f16vec3) Load 177(f16c3) 2551:6(float16_t) Load 572(f16lod) 2552: 7(f16vec4) ImageGather 2549 2550 2187 Lod ConstOffsets 2551 2380 2553: 7(f16vec4) Load 2530(texel) 2554: 7(f16vec4) FAdd 2553 2552 Store 2530(texel) 2554 2555: 7(f16vec4) Load 2530(texel) ReturnValue 2555 FunctionEnd 50(testTextureSize(): 48(ivec4) Function None 49 51: Label 2559(size): 2558(ptr) Variable Function Store 2559(size) 2560 2561: 123 Load 125(s1D) 2562: 52(float) Load 565(lod) 2563: 47(int) ConvertFToS 2562 2564: 122 Image 2561 2565: 47(int) ImageQuerySizeLod 2564 2563 2567: 2566(ptr) AccessChain 2559(size) 207 2568: 47(int) Load 2567 2569: 47(int) IAdd 2568 2565 2570: 2566(ptr) AccessChain 2559(size) 207 Store 2570 2569 2571: 143 Load 145(s2D) 2572: 52(float) Load 565(lod) 2573: 47(int) ConvertFToS 2572 2574: 142 Image 2571 2575: 721(ivec2) ImageQuerySizeLod 2574 2573 2576: 48(ivec4) Load 2559(size) 2577: 721(ivec2) VectorShuffle 2576 2576 0 1 2578: 721(ivec2) IAdd 2577 2575 2579: 48(ivec4) Load 2559(size) 2580: 48(ivec4) VectorShuffle 2579 2578 4 5 2 3 Store 2559(size) 2580 2581: 163 Load 165(s3D) 2582: 52(float) Load 565(lod) 2583: 47(int) ConvertFToS 2582 2584: 162 Image 2581 2585: 734(ivec3) ImageQuerySizeLod 2584 2583 2586: 48(ivec4) Load 2559(size) 2587: 734(ivec3) VectorShuffle 2586 2586 0 1 2 2588: 734(ivec3) IAdd 2587 2585 2589: 48(ivec4) Load 2559(size) 2590: 48(ivec4) VectorShuffle 2589 2588 4 5 6 3 Store 2559(size) 2590 2591: 184 Load 186(sCube) 2592: 52(float) Load 565(lod) 2593: 47(int) ConvertFToS 2592 2594: 183 Image 2591 2595: 721(ivec2) ImageQuerySizeLod 2594 2593 2596: 48(ivec4) Load 2559(size) 2597: 721(ivec2) VectorShuffle 2596 2596 0 1 2598: 721(ivec2) IAdd 2597 2595 2599: 48(ivec4) Load 2559(size) 2600: 48(ivec4) VectorShuffle 2599 2598 4 5 2 3 Store 2559(size) 2600 2601: 199 Load 201(s1DShadow) 2602: 52(float) Load 565(lod) 2603: 47(int) ConvertFToS 2602 2604: 198 Image 2601 2605: 47(int) ImageQuerySizeLod 2604 2603 2606: 2566(ptr) AccessChain 2559(size) 207 2607: 47(int) Load 2606 2608: 47(int) IAdd 2607 2605 2609: 2566(ptr) AccessChain 2559(size) 207 Store 2609 2608 2610: 224 Load 226(s2DShadow) 2611: 52(float) Load 565(lod) 2612: 47(int) ConvertFToS 2611 2613: 223 Image 2610 2614: 721(ivec2) ImageQuerySizeLod 2613 2612 2615: 48(ivec4) Load 2559(size) 2616: 721(ivec2) VectorShuffle 2615 2615 0 1 2617: 721(ivec2) IAdd 2616 2614 2618: 48(ivec4) Load 2559(size) 2619: 48(ivec4) VectorShuffle 2618 2617 4 5 2 3 Store 2559(size) 2619 2620: 245 Load 247(sCubeShadow) 2621: 52(float) Load 565(lod) 2622: 47(int) ConvertFToS 2621 2623: 244 Image 2620 2624: 721(ivec2) ImageQuerySizeLod 2623 2622 2625: 48(ivec4) Load 2559(size) 2626: 721(ivec2) VectorShuffle 2625 2625 0 1 2627: 721(ivec2) IAdd 2626 2624 2628: 48(ivec4) Load 2559(size) 2629: 48(ivec4) VectorShuffle 2628 2627 4 5 2 3 Store 2559(size) 2629 2630: 299 Load 301(sCubeArray) 2631: 52(float) Load 565(lod) 2632: 47(int) ConvertFToS 2631 2633: 298 Image 2630 2634: 734(ivec3) ImageQuerySizeLod 2633 2632 2635: 48(ivec4) Load 2559(size) 2636: 734(ivec3) VectorShuffle 2635 2635 0 1 2 2637: 734(ivec3) IAdd 2636 2634 2638: 48(ivec4) Load 2559(size) 2639: 48(ivec4) VectorShuffle 2638 2637 4 5 6 3 Store 2559(size) 2639 2640: 391 Load 393(sCubeArrayShadow) 2641: 52(float) Load 565(lod) 2642: 47(int) ConvertFToS 2641 2643: 390 Image 2640 2644: 734(ivec3) ImageQuerySizeLod 2643 2642 2645: 48(ivec4) Load 2559(size) 2646: 734(ivec3) VectorShuffle 2645 2645 0 1 2 2647: 734(ivec3) IAdd 2646 2644 2648: 48(ivec4) Load 2559(size) 2649: 48(ivec4) VectorShuffle 2648 2647 4 5 6 3 Store 2559(size) 2649 2650: 357 Load 359(s2DRect) 2651: 356 Image 2650 2652: 721(ivec2) ImageQuerySize 2651 2653: 48(ivec4) Load 2559(size) 2654: 721(ivec2) VectorShuffle 2653 2653 0 1 2655: 721(ivec2) IAdd 2654 2652 2656: 48(ivec4) Load 2559(size) 2657: 48(ivec4) VectorShuffle 2656 2655 4 5 2 3 Store 2559(size) 2657 2658: 371 Load 373(s2DRectShadow) 2659: 370 Image 2658 2660: 721(ivec2) ImageQuerySize 2659 2661: 48(ivec4) Load 2559(size) 2662: 721(ivec2) VectorShuffle 2661 2661 0 1 2663: 721(ivec2) IAdd 2662 2660 2664: 48(ivec4) Load 2559(size) 2665: 48(ivec4) VectorShuffle 2664 2663 4 5 2 3 Store 2559(size) 2665 2666: 269 Load 271(s1DArray) 2667: 52(float) Load 565(lod) 2668: 47(int) ConvertFToS 2667 2669: 268 Image 2666 2670: 721(ivec2) ImageQuerySizeLod 2669 2668 2671: 48(ivec4) Load 2559(size) 2672: 721(ivec2) VectorShuffle 2671 2671 0 1 2673: 721(ivec2) IAdd 2672 2670 2674: 48(ivec4) Load 2559(size) 2675: 48(ivec4) VectorShuffle 2674 2673 4 5 2 3 Store 2559(size) 2675 2676: 284 Load 286(s2DArray) 2677: 52(float) Load 565(lod) 2678: 47(int) ConvertFToS 2677 2679: 283 Image 2676 2680: 734(ivec3) ImageQuerySizeLod 2679 2678 2681: 48(ivec4) Load 2559(size) 2682: 734(ivec3) VectorShuffle 2681 2681 0 1 2 2683: 734(ivec3) IAdd 2682 2680 2684: 48(ivec4) Load 2559(size) 2685: 48(ivec4) VectorShuffle 2684 2683 4 5 6 3 Store 2559(size) 2685 2686: 316 Load 318(s1DArrayShadow) 2687: 52(float) Load 565(lod) 2688: 47(int) ConvertFToS 2687 2689: 315 Image 2686 2690: 721(ivec2) ImageQuerySizeLod 2689 2688 2691: 48(ivec4) Load 2559(size) 2692: 721(ivec2) VectorShuffle 2691 2691 0 1 2693: 721(ivec2) IAdd 2692 2690 2694: 48(ivec4) Load 2559(size) 2695: 48(ivec4) VectorShuffle 2694 2693 4 5 2 3 Store 2559(size) 2695 2696: 337 Load 339(s2DArrayShadow) 2697: 52(float) Load 565(lod) 2698: 47(int) ConvertFToS 2697 2699: 336 Image 2696 2700: 734(ivec3) ImageQuerySizeLod 2699 2698 2701: 48(ivec4) Load 2559(size) 2702: 734(ivec3) VectorShuffle 2701 2701 0 1 2 2703: 734(ivec3) IAdd 2702 2700 2704: 48(ivec4) Load 2559(size) 2705: 48(ivec4) VectorShuffle 2704 2703 4 5 6 3 Store 2559(size) 2705 2706: 1298 Load 1300(sBuffer) 2707: 1297 Image 2706 2708: 47(int) ImageQuerySize 2707 2709: 2566(ptr) AccessChain 2559(size) 207 2710: 47(int) Load 2709 2711: 47(int) IAdd 2710 2708 2712: 2566(ptr) AccessChain 2559(size) 207 Store 2712 2711 2713: 1309 Load 1311(s2DMS) 2714: 1308 Image 2713 2715: 721(ivec2) ImageQuerySize 2714 2716: 48(ivec4) Load 2559(size) 2717: 721(ivec2) VectorShuffle 2716 2716 0 1 2718: 721(ivec2) IAdd 2717 2715 2719: 48(ivec4) Load 2559(size) 2720: 48(ivec4) VectorShuffle 2719 2718 4 5 2 3 Store 2559(size) 2720 2721: 1320 Load 1322(s2DMSArray) 2722: 1319 Image 2721 2723: 734(ivec3) ImageQuerySize 2722 2724: 48(ivec4) Load 2559(size) 2725: 734(ivec3) VectorShuffle 2724 2724 0 1 2 2726: 734(ivec3) IAdd 2725 2723 2727: 48(ivec4) Load 2559(size) 2728: 48(ivec4) VectorShuffle 2727 2726 4 5 6 3 Store 2559(size) 2728 2729: 48(ivec4) Load 2559(size) ReturnValue 2729 FunctionEnd 55(testTextureQueryLod(): 53(fvec2) Function None 54 56: Label 2733(lod): 2732(ptr) Variable Function Store 2733(lod) 2735 2736: 123 Load 125(s1D) 2737: 52(float) Load 128(c1) 2738: 53(fvec2) ImageQueryLod 2736 2737 2739: 53(fvec2) Load 2733(lod) 2740: 53(fvec2) FAdd 2739 2738 Store 2733(lod) 2740 2741: 123 Load 125(s1D) 2742:6(float16_t) Load 135(f16c1) 2743:154(f16vec2) ImageQueryLod 2741 2742 2744: 53(fvec2) Load 2733(lod) 2745: 53(fvec2) FAdd 2744 2743 Store 2733(lod) 2745 2746: 143 Load 145(s2D) 2747: 53(fvec2) Load 148(c2) 2748: 53(fvec2) ImageQueryLod 2746 2747 2749: 53(fvec2) Load 2733(lod) 2750: 53(fvec2) FAdd 2749 2748 Store 2733(lod) 2750 2751: 143 Load 145(s2D) 2752:154(f16vec2) Load 156(f16c2) 2753:154(f16vec2) ImageQueryLod 2751 2752 2754: 53(fvec2) Load 2733(lod) 2755: 53(fvec2) FAdd 2754 2753 Store 2733(lod) 2755 2756: 163 Load 165(s3D) 2757: 167(fvec3) Load 169(c3) 2758: 53(fvec2) ImageQueryLod 2756 2757 2759: 53(fvec2) Load 2733(lod) 2760: 53(fvec2) FAdd 2759 2758 Store 2733(lod) 2760 2761: 163 Load 165(s3D) 2762:175(f16vec3) Load 177(f16c3) 2763:154(f16vec2) ImageQueryLod 2761 2762 2764: 53(fvec2) Load 2733(lod) 2765: 53(fvec2) FAdd 2764 2763 Store 2733(lod) 2765 2766: 184 Load 186(sCube) 2767: 167(fvec3) Load 169(c3) 2768: 53(fvec2) ImageQueryLod 2766 2767 2769: 53(fvec2) Load 2733(lod) 2770: 53(fvec2) FAdd 2769 2768 Store 2733(lod) 2770 2771: 184 Load 186(sCube) 2772:175(f16vec3) Load 177(f16c3) 2773:154(f16vec2) ImageQueryLod 2771 2772 2774: 53(fvec2) Load 2733(lod) 2775: 53(fvec2) FAdd 2774 2773 Store 2733(lod) 2775 2776: 269 Load 271(s1DArray) 2777: 52(float) Load 128(c1) 2778: 53(fvec2) ImageQueryLod 2776 2777 2779: 53(fvec2) Load 2733(lod) 2780: 53(fvec2) FAdd 2779 2778 Store 2733(lod) 2780 2781: 269 Load 271(s1DArray) 2782:6(float16_t) Load 135(f16c1) 2783:154(f16vec2) ImageQueryLod 2781 2782 2784: 53(fvec2) Load 2733(lod) 2785: 53(fvec2) FAdd 2784 2783 Store 2733(lod) 2785 2786: 284 Load 286(s2DArray) 2787: 53(fvec2) Load 148(c2) 2788: 53(fvec2) ImageQueryLod 2786 2787 2789: 53(fvec2) Load 2733(lod) 2790: 53(fvec2) FAdd 2789 2788 Store 2733(lod) 2790 2791: 284 Load 286(s2DArray) 2792:154(f16vec2) Load 156(f16c2) 2793:154(f16vec2) ImageQueryLod 2791 2792 2794: 53(fvec2) Load 2733(lod) 2795: 53(fvec2) FAdd 2794 2793 Store 2733(lod) 2795 2796: 299 Load 301(sCubeArray) 2797: 167(fvec3) Load 169(c3) 2798: 53(fvec2) ImageQueryLod 2796 2797 2799: 53(fvec2) Load 2733(lod) 2800: 53(fvec2) FAdd 2799 2798 Store 2733(lod) 2800 2801: 299 Load 301(sCubeArray) 2802:175(f16vec3) Load 177(f16c3) 2803:154(f16vec2) ImageQueryLod 2801 2802 2804: 53(fvec2) Load 2733(lod) 2805: 53(fvec2) FAdd 2804 2803 Store 2733(lod) 2805 2806: 199 Load 201(s1DShadow) 2807: 52(float) Load 128(c1) 2808: 53(fvec2) ImageQueryLod 2806 2807 2809: 53(fvec2) Load 2733(lod) 2810: 53(fvec2) FAdd 2809 2808 Store 2733(lod) 2810 2811: 199 Load 201(s1DShadow) 2812:6(float16_t) Load 135(f16c1) 2813:154(f16vec2) ImageQueryLod 2811 2812 2814: 53(fvec2) Load 2733(lod) 2815: 53(fvec2) FAdd 2814 2813 Store 2733(lod) 2815 2816: 224 Load 226(s2DShadow) 2817: 53(fvec2) Load 148(c2) 2818: 53(fvec2) ImageQueryLod 2816 2817 2819: 53(fvec2) Load 2733(lod) 2820: 53(fvec2) FAdd 2819 2818 Store 2733(lod) 2820 2821: 224 Load 226(s2DShadow) 2822:154(f16vec2) Load 156(f16c2) 2823:154(f16vec2) ImageQueryLod 2821 2822 2824: 53(fvec2) Load 2733(lod) 2825: 53(fvec2) FAdd 2824 2823 Store 2733(lod) 2825 2826: 391 Load 393(sCubeArrayShadow) 2827: 167(fvec3) Load 169(c3) 2828: 53(fvec2) ImageQueryLod 2826 2827 2829: 53(fvec2) Load 2733(lod) 2830: 53(fvec2) FAdd 2829 2828 Store 2733(lod) 2830 2831: 391 Load 393(sCubeArrayShadow) 2832:175(f16vec3) Load 177(f16c3) 2833:154(f16vec2) ImageQueryLod 2831 2832 2834: 53(fvec2) Load 2733(lod) 2835: 53(fvec2) FAdd 2834 2833 Store 2733(lod) 2835 2836: 316 Load 318(s1DArrayShadow) 2837: 52(float) Load 128(c1) 2838: 53(fvec2) ImageQueryLod 2836 2837 2839: 53(fvec2) Load 2733(lod) 2840: 53(fvec2) FAdd 2839 2838 Store 2733(lod) 2840 2841: 316 Load 318(s1DArrayShadow) 2842:6(float16_t) Load 135(f16c1) 2843:154(f16vec2) ImageQueryLod 2841 2842 2844: 53(fvec2) Load 2733(lod) 2845: 53(fvec2) FAdd 2844 2843 Store 2733(lod) 2845 2846: 337 Load 339(s2DArrayShadow) 2847: 53(fvec2) Load 148(c2) 2848: 53(fvec2) ImageQueryLod 2846 2847 2849: 53(fvec2) Load 2733(lod) 2850: 53(fvec2) FAdd 2849 2848 Store 2733(lod) 2850 2851: 337 Load 339(s2DArrayShadow) 2852:154(f16vec2) Load 156(f16c2) 2853:154(f16vec2) ImageQueryLod 2851 2852 2854: 53(fvec2) Load 2733(lod) 2855: 53(fvec2) FAdd 2854 2853 Store 2733(lod) 2855 2856: 391 Load 393(sCubeArrayShadow) 2857: 167(fvec3) Load 169(c3) 2858: 53(fvec2) ImageQueryLod 2856 2857 2859: 53(fvec2) Load 2733(lod) 2860: 53(fvec2) FAdd 2859 2858 Store 2733(lod) 2860 2861: 391 Load 393(sCubeArrayShadow) 2862:175(f16vec3) Load 177(f16c3) 2863:154(f16vec2) ImageQueryLod 2861 2862 2864: 53(fvec2) Load 2733(lod) 2865: 53(fvec2) FAdd 2864 2863 Store 2733(lod) 2865 2866: 53(fvec2) Load 2733(lod) ReturnValue 2866 FunctionEnd 58(testTextureQueryLevels(): 47(int) Function None 57 59: Label 2869(levels): 2566(ptr) Variable Function Store 2869(levels) 2187 2870: 123 Load 125(s1D) 2871: 122 Image 2870 2872: 47(int) ImageQueryLevels 2871 2873: 47(int) Load 2869(levels) 2874: 47(int) IAdd 2873 2872 Store 2869(levels) 2874 2875: 143 Load 145(s2D) 2876: 142 Image 2875 2877: 47(int) ImageQueryLevels 2876 2878: 47(int) Load 2869(levels) 2879: 47(int) IAdd 2878 2877 Store 2869(levels) 2879 2880: 163 Load 165(s3D) 2881: 162 Image 2880 2882: 47(int) ImageQueryLevels 2881 2883: 47(int) Load 2869(levels) 2884: 47(int) IAdd 2883 2882 Store 2869(levels) 2884 2885: 184 Load 186(sCube) 2886: 183 Image 2885 2887: 47(int) ImageQueryLevels 2886 2888: 47(int) Load 2869(levels) 2889: 47(int) IAdd 2888 2887 Store 2869(levels) 2889 2890: 199 Load 201(s1DShadow) 2891: 198 Image 2890 2892: 47(int) ImageQueryLevels 2891 2893: 47(int) Load 2869(levels) 2894: 47(int) IAdd 2893 2892 Store 2869(levels) 2894 2895: 224 Load 226(s2DShadow) 2896: 223 Image 2895 2897: 47(int) ImageQueryLevels 2896 2898: 47(int) Load 2869(levels) 2899: 47(int) IAdd 2898 2897 Store 2869(levels) 2899 2900: 245 Load 247(sCubeShadow) 2901: 244 Image 2900 2902: 47(int) ImageQueryLevels 2901 2903: 47(int) Load 2869(levels) 2904: 47(int) IAdd 2903 2902 Store 2869(levels) 2904 2905: 299 Load 301(sCubeArray) 2906: 298 Image 2905 2907: 47(int) ImageQueryLevels 2906 2908: 47(int) Load 2869(levels) 2909: 47(int) IAdd 2908 2907 Store 2869(levels) 2909 2910: 391 Load 393(sCubeArrayShadow) 2911: 390 Image 2910 2912: 47(int) ImageQueryLevels 2911 2913: 47(int) Load 2869(levels) 2914: 47(int) IAdd 2913 2912 Store 2869(levels) 2914 2915: 269 Load 271(s1DArray) 2916: 268 Image 2915 2917: 47(int) ImageQueryLevels 2916 2918: 47(int) Load 2869(levels) 2919: 47(int) IAdd 2918 2917 Store 2869(levels) 2919 2920: 284 Load 286(s2DArray) 2921: 283 Image 2920 2922: 47(int) ImageQueryLevels 2921 2923: 47(int) Load 2869(levels) 2924: 47(int) IAdd 2923 2922 Store 2869(levels) 2924 2925: 316 Load 318(s1DArrayShadow) 2926: 315 Image 2925 2927: 47(int) ImageQueryLevels 2926 2928: 47(int) Load 2869(levels) 2929: 47(int) IAdd 2928 2927 Store 2869(levels) 2929 2930: 337 Load 339(s2DArrayShadow) 2931: 336 Image 2930 2932: 47(int) ImageQueryLevels 2931 2933: 47(int) Load 2869(levels) 2934: 47(int) IAdd 2933 2932 Store 2869(levels) 2934 2935: 47(int) Load 2869(levels) ReturnValue 2935 FunctionEnd 60(testTextureSamples(): 47(int) Function None 57 61: Label 2938(samples): 2566(ptr) Variable Function Store 2938(samples) 2187 2939: 1309 Load 1311(s2DMS) 2940: 1308 Image 2939 2941: 47(int) ImageQuerySamples 2940 2942: 47(int) Load 2938(samples) 2943: 47(int) IAdd 2942 2941 Store 2938(samples) 2943 2944: 1320 Load 1322(s2DMSArray) 2945: 1319 Image 2944 2946: 47(int) ImageQuerySamples 2945 2947: 47(int) Load 2938(samples) 2948: 47(int) IAdd 2947 2946 Store 2938(samples) 2948 2949: 47(int) Load 2938(samples) ReturnValue 2949 FunctionEnd 62(testImageLoad(): 7(f16vec4) Function None 8 63: Label 2952(texel): 64(ptr) Variable Function Store 2952(texel) 121 2956: 2953 Load 2955(i1D) 2957: 52(float) Load 128(c1) 2958: 47(int) ConvertFToS 2957 2959: 7(f16vec4) ImageRead 2956 2958 2960: 7(f16vec4) Load 2952(texel) 2961: 7(f16vec4) FAdd 2960 2959 Store 2952(texel) 2961 2965: 2962 Load 2964(i2D) 2966: 53(fvec2) Load 148(c2) 2967: 721(ivec2) ConvertFToS 2966 2968: 7(f16vec4) ImageRead 2965 2967 2969: 7(f16vec4) Load 2952(texel) 2970: 7(f16vec4) FAdd 2969 2968 Store 2952(texel) 2970 2974: 2971 Load 2973(i3D) 2975: 167(fvec3) Load 169(c3) 2976: 734(ivec3) ConvertFToS 2975 2977: 7(f16vec4) ImageRead 2974 2976 2978: 7(f16vec4) Load 2952(texel) 2979: 7(f16vec4) FAdd 2978 2977 Store 2952(texel) 2979 2983: 2980 Load 2982(i2DRect) 2984: 53(fvec2) Load 148(c2) 2985: 721(ivec2) ConvertFToS 2984 2986: 7(f16vec4) ImageRead 2983 2985 2987: 7(f16vec4) Load 2952(texel) 2988: 7(f16vec4) FAdd 2987 2986 Store 2952(texel) 2988 2992: 2989 Load 2991(iCube) 2993: 167(fvec3) Load 169(c3) 2994: 734(ivec3) ConvertFToS 2993 2995: 7(f16vec4) ImageRead 2992 2994 2996: 7(f16vec4) Load 2952(texel) 2997: 7(f16vec4) FAdd 2996 2995 Store 2952(texel) 2997 3001: 2998 Load 3000(iBuffer) 3002: 52(float) Load 128(c1) 3003: 47(int) ConvertFToS 3002 3004: 7(f16vec4) ImageRead 3001 3003 3005: 7(f16vec4) Load 2952(texel) 3006: 7(f16vec4) FAdd 3005 3004 Store 2952(texel) 3006 3010: 3007 Load 3009(i1DArray) 3011: 53(fvec2) Load 148(c2) 3012: 721(ivec2) ConvertFToS 3011 3013: 7(f16vec4) ImageRead 3010 3012 3014: 7(f16vec4) Load 2952(texel) 3015: 7(f16vec4) FAdd 3014 3013 Store 2952(texel) 3015 3019: 3016 Load 3018(i2DArray) 3020: 167(fvec3) Load 169(c3) 3021: 734(ivec3) ConvertFToS 3020 3022: 7(f16vec4) ImageRead 3019 3021 3023: 7(f16vec4) Load 2952(texel) 3024: 7(f16vec4) FAdd 3023 3022 Store 2952(texel) 3024 3028: 3025 Load 3027(iCubeArray) 3029: 167(fvec3) Load 169(c3) 3030: 734(ivec3) ConvertFToS 3029 3031: 7(f16vec4) ImageRead 3028 3030 3032: 7(f16vec4) Load 2952(texel) 3033: 7(f16vec4) FAdd 3032 3031 Store 2952(texel) 3033 3037: 3034 Load 3036(i2DMS) 3038: 53(fvec2) Load 148(c2) 3039: 721(ivec2) ConvertFToS 3038 3040: 7(f16vec4) ImageRead 3037 3039 Sample 709 3041: 7(f16vec4) Load 2952(texel) 3042: 7(f16vec4) FAdd 3041 3040 Store 2952(texel) 3042 3046: 3043 Load 3045(i2DMSArray) 3047: 167(fvec3) Load 169(c3) 3048: 734(ivec3) ConvertFToS 3047 3049: 7(f16vec4) ImageRead 3046 3048 Sample 709 3050: 7(f16vec4) Load 2952(texel) 3051: 7(f16vec4) FAdd 3050 3049 Store 2952(texel) 3051 3052: 7(f16vec4) Load 2952(texel) ReturnValue 3052 FunctionEnd 67(testImageStore(vf164;): 2 Function None 65 66(data): 64(ptr) FunctionParameter 68: Label 3055: 2953 Load 2955(i1D) 3056: 52(float) Load 128(c1) 3057: 47(int) ConvertFToS 3056 3058: 7(f16vec4) Load 66(data) ImageWrite 3055 3057 3058 3059: 2962 Load 2964(i2D) 3060: 53(fvec2) Load 148(c2) 3061: 721(ivec2) ConvertFToS 3060 3062: 7(f16vec4) Load 66(data) ImageWrite 3059 3061 3062 3063: 2971 Load 2973(i3D) 3064: 167(fvec3) Load 169(c3) 3065: 734(ivec3) ConvertFToS 3064 3066: 7(f16vec4) Load 66(data) ImageWrite 3063 3065 3066 3067: 2980 Load 2982(i2DRect) 3068: 53(fvec2) Load 148(c2) 3069: 721(ivec2) ConvertFToS 3068 3070: 7(f16vec4) Load 66(data) ImageWrite 3067 3069 3070 3071: 2989 Load 2991(iCube) 3072: 167(fvec3) Load 169(c3) 3073: 734(ivec3) ConvertFToS 3072 3074: 7(f16vec4) Load 66(data) ImageWrite 3071 3073 3074 3075: 2998 Load 3000(iBuffer) 3076: 52(float) Load 128(c1) 3077: 47(int) ConvertFToS 3076 3078: 7(f16vec4) Load 66(data) ImageWrite 3075 3077 3078 3079: 3007 Load 3009(i1DArray) 3080: 53(fvec2) Load 148(c2) 3081: 721(ivec2) ConvertFToS 3080 3082: 7(f16vec4) Load 66(data) ImageWrite 3079 3081 3082 3083: 3016 Load 3018(i2DArray) 3084: 167(fvec3) Load 169(c3) 3085: 734(ivec3) ConvertFToS 3084 3086: 7(f16vec4) Load 66(data) ImageWrite 3083 3085 3086 3087: 3025 Load 3027(iCubeArray) 3088: 167(fvec3) Load 169(c3) 3089: 734(ivec3) ConvertFToS 3088 3090: 7(f16vec4) Load 66(data) ImageWrite 3087 3089 3090 3091: 3034 Load 3036(i2DMS) 3092: 53(fvec2) Load 148(c2) 3093: 721(ivec2) ConvertFToS 3092 3094: 7(f16vec4) Load 66(data) ImageWrite 3091 3093 3094 Sample 709 3095: 3043 Load 3045(i2DMSArray) 3096: 167(fvec3) Load 169(c3) 3097: 734(ivec3) ConvertFToS 3096 3098: 7(f16vec4) Load 66(data) ImageWrite 3095 3097 3098 Sample 709 Return FunctionEnd 69(testSparseTexture(): 7(f16vec4) Function None 8 70: Label 3099(texel): 64(ptr) Variable Function Store 3099(texel) 121 3100: 143 Load 145(s2D) 3101: 53(fvec2) Load 148(c2) 3103:3102(ResType) ImageSparseSampleImplicitLod 3100 3101 3104: 7(f16vec4) CompositeExtract 3103 1 Store 3099(texel) 3104 3105: 47(int) CompositeExtract 3103 0 3106: 143 Load 145(s2D) 3107:154(f16vec2) Load 156(f16c2) 3108:6(float16_t) Load 137(f16bias) 3109:3102(ResType) ImageSparseSampleImplicitLod 3106 3107 Bias 3108 3110: 7(f16vec4) CompositeExtract 3109 1 Store 3099(texel) 3110 3111: 47(int) CompositeExtract 3109 0 3112: 163 Load 165(s3D) 3113: 167(fvec3) Load 169(c3) 3114:3102(ResType) ImageSparseSampleImplicitLod 3112 3113 3115: 7(f16vec4) CompositeExtract 3114 1 Store 3099(texel) 3115 3116: 47(int) CompositeExtract 3114 0 3117: 163 Load 165(s3D) 3118:175(f16vec3) Load 177(f16c3) 3119:6(float16_t) Load 137(f16bias) 3120:3102(ResType) ImageSparseSampleImplicitLod 3117 3118 Bias 3119 3121: 7(f16vec4) CompositeExtract 3120 1 Store 3099(texel) 3121 3122: 47(int) CompositeExtract 3120 0 3123: 184 Load 186(sCube) 3124: 167(fvec3) Load 169(c3) 3125:3102(ResType) ImageSparseSampleImplicitLod 3123 3124 3126: 7(f16vec4) CompositeExtract 3125 1 Store 3099(texel) 3126 3127: 47(int) CompositeExtract 3125 0 3128: 184 Load 186(sCube) 3129:175(f16vec3) Load 177(f16c3) 3130:6(float16_t) Load 137(f16bias) 3131:3102(ResType) ImageSparseSampleImplicitLod 3128 3129 Bias 3130 3132: 7(f16vec4) CompositeExtract 3131 1 Store 3099(texel) 3132 3133: 47(int) CompositeExtract 3131 0 3134: 224 Load 226(s2DShadow) 3135: 167(fvec3) Load 169(c3) 3136: 208(ptr) AccessChain 3099(texel) 207 3137: 52(float) CompositeExtract 3135 2 3139:3138(ResType) ImageSparseSampleDrefImplicitLod 3134 3135 3137 3140:6(float16_t) CompositeExtract 3139 1 Store 3136 3140 3141: 47(int) CompositeExtract 3139 0 3142: 224 Load 226(s2DShadow) 3143:154(f16vec2) Load 156(f16c2) 3144: 52(float) Load 215(compare) 3145: 208(ptr) AccessChain 3099(texel) 207 3146:6(float16_t) Load 137(f16bias) 3147:3138(ResType) ImageSparseSampleDrefImplicitLod 3142 3143 3144 Bias 3146 3148:6(float16_t) CompositeExtract 3147 1 Store 3145 3148 3149: 47(int) CompositeExtract 3147 0 3150: 245 Load 247(sCubeShadow) 3151: 249(fvec4) Load 251(c4) 3152: 208(ptr) AccessChain 3099(texel) 207 3153: 52(float) CompositeExtract 3151 3 3154:3138(ResType) ImageSparseSampleDrefImplicitLod 3150 3151 3153 3155:6(float16_t) CompositeExtract 3154 1 Store 3152 3155 3156: 47(int) CompositeExtract 3154 0 3157: 245 Load 247(sCubeShadow) 3158:175(f16vec3) Load 177(f16c3) 3159: 52(float) Load 215(compare) 3160: 208(ptr) AccessChain 3099(texel) 207 3161:6(float16_t) Load 137(f16bias) 3162:3138(ResType) ImageSparseSampleDrefImplicitLod 3157 3158 3159 Bias 3161 3163:6(float16_t) CompositeExtract 3162 1 Store 3160 3163 3164: 47(int) CompositeExtract 3162 0 3165: 284 Load 286(s2DArray) 3166: 167(fvec3) Load 169(c3) 3167:3102(ResType) ImageSparseSampleImplicitLod 3165 3166 3168: 7(f16vec4) CompositeExtract 3167 1 Store 3099(texel) 3168 3169: 47(int) CompositeExtract 3167 0 3170: 284 Load 286(s2DArray) 3171:175(f16vec3) Load 177(f16c3) 3172:6(float16_t) Load 137(f16bias) 3173:3102(ResType) ImageSparseSampleImplicitLod 3170 3171 Bias 3172 3174: 7(f16vec4) CompositeExtract 3173 1 Store 3099(texel) 3174 3175: 47(int) CompositeExtract 3173 0 3176: 299 Load 301(sCubeArray) 3177: 249(fvec4) Load 251(c4) 3178:3102(ResType) ImageSparseSampleImplicitLod 3176 3177 3179: 7(f16vec4) CompositeExtract 3178 1 Store 3099(texel) 3179 3180: 47(int) CompositeExtract 3178 0 3181: 299 Load 301(sCubeArray) 3182: 7(f16vec4) Load 309(f16c4) 3183:6(float16_t) Load 137(f16bias) 3184:3102(ResType) ImageSparseSampleImplicitLod 3181 3182 Bias 3183 3185: 7(f16vec4) CompositeExtract 3184 1 Store 3099(texel) 3185 3186: 47(int) CompositeExtract 3184 0 3187: 337 Load 339(s2DArrayShadow) 3188: 249(fvec4) Load 251(c4) 3189: 208(ptr) AccessChain 3099(texel) 207 3190: 52(float) CompositeExtract 3188 3 3191:3138(ResType) ImageSparseSampleDrefImplicitLod 3187 3188 3190 3192:6(float16_t) CompositeExtract 3191 1 Store 3189 3192 3193: 47(int) CompositeExtract 3191 0 3194: 337 Load 339(s2DArrayShadow) 3195:175(f16vec3) Load 177(f16c3) 3196: 52(float) Load 215(compare) 3197: 208(ptr) AccessChain 3099(texel) 207 3198:3138(ResType) ImageSparseSampleDrefImplicitLod 3194 3195 3196 3199:6(float16_t) CompositeExtract 3198 1 Store 3197 3199 3200: 47(int) CompositeExtract 3198 0 3201: 357 Load 359(s2DRect) 3202: 53(fvec2) Load 148(c2) 3203:3102(ResType) ImageSparseSampleImplicitLod 3201 3202 3204: 7(f16vec4) CompositeExtract 3203 1 Store 3099(texel) 3204 3205: 47(int) CompositeExtract 3203 0 3206: 357 Load 359(s2DRect) 3207:154(f16vec2) Load 156(f16c2) 3208:3102(ResType) ImageSparseSampleImplicitLod 3206 3207 3209: 7(f16vec4) CompositeExtract 3208 1 Store 3099(texel) 3209 3210: 47(int) CompositeExtract 3208 0 3211: 371 Load 373(s2DRectShadow) 3212: 167(fvec3) Load 169(c3) 3213: 208(ptr) AccessChain 3099(texel) 207 3214: 52(float) CompositeExtract 3212 2 3215:3138(ResType) ImageSparseSampleDrefImplicitLod 3211 3212 3214 3216:6(float16_t) CompositeExtract 3215 1 Store 3213 3216 3217: 47(int) CompositeExtract 3215 0 3218: 371 Load 373(s2DRectShadow) 3219:154(f16vec2) Load 156(f16c2) 3220: 52(float) Load 215(compare) 3221: 208(ptr) AccessChain 3099(texel) 207 3222:3138(ResType) ImageSparseSampleDrefImplicitLod 3218 3219 3220 3223:6(float16_t) CompositeExtract 3222 1 Store 3221 3223 3224: 47(int) CompositeExtract 3222 0 3225: 391 Load 393(sCubeArrayShadow) 3226: 249(fvec4) Load 251(c4) 3227: 52(float) Load 215(compare) 3228: 208(ptr) AccessChain 3099(texel) 207 3229:3138(ResType) ImageSparseSampleDrefImplicitLod 3225 3226 3227 3230:6(float16_t) CompositeExtract 3229 1 Store 3228 3230 3231: 47(int) CompositeExtract 3229 0 3232: 391 Load 393(sCubeArrayShadow) 3233: 7(f16vec4) Load 309(f16c4) 3234: 52(float) Load 215(compare) 3235: 208(ptr) AccessChain 3099(texel) 207 3236:3138(ResType) ImageSparseSampleDrefImplicitLod 3232 3233 3234 3237:6(float16_t) CompositeExtract 3236 1 Store 3235 3237 3238: 47(int) CompositeExtract 3236 0 3239: 7(f16vec4) Load 3099(texel) ReturnValue 3239 FunctionEnd 71(testSparseTextureLod(): 7(f16vec4) Function None 8 72: Label 3242(texel): 64(ptr) Variable Function Store 3242(texel) 121 3243: 143 Load 145(s2D) 3244: 53(fvec2) Load 148(c2) 3245: 52(float) Load 565(lod) 3246:3102(ResType) ImageSparseSampleExplicitLod 3243 3244 Lod 3245 3247: 7(f16vec4) CompositeExtract 3246 1 Store 3242(texel) 3247 3248: 47(int) CompositeExtract 3246 0 3249: 143 Load 145(s2D) 3250:154(f16vec2) Load 156(f16c2) 3251:6(float16_t) Load 572(f16lod) 3252:3102(ResType) ImageSparseSampleExplicitLod 3249 3250 Lod 3251 3253: 7(f16vec4) CompositeExtract 3252 1 Store 3242(texel) 3253 3254: 47(int) CompositeExtract 3252 0 3255: 163 Load 165(s3D) 3256: 167(fvec3) Load 169(c3) 3257: 52(float) Load 565(lod) 3258:3102(ResType) ImageSparseSampleExplicitLod 3255 3256 Lod 3257 3259: 7(f16vec4) CompositeExtract 3258 1 Store 3242(texel) 3259 3260: 47(int) CompositeExtract 3258 0 3261: 163 Load 165(s3D) 3262:175(f16vec3) Load 177(f16c3) 3263:6(float16_t) Load 572(f16lod) 3264:3102(ResType) ImageSparseSampleExplicitLod 3261 3262 Lod 3263 3265: 7(f16vec4) CompositeExtract 3264 1 Store 3242(texel) 3265 3266: 47(int) CompositeExtract 3264 0 3267: 184 Load 186(sCube) 3268: 167(fvec3) Load 169(c3) 3269: 52(float) Load 565(lod) 3270:3102(ResType) ImageSparseSampleExplicitLod 3267 3268 Lod 3269 3271: 7(f16vec4) CompositeExtract 3270 1 Store 3242(texel) 3271 3272: 47(int) CompositeExtract 3270 0 3273: 184 Load 186(sCube) 3274:175(f16vec3) Load 177(f16c3) 3275:6(float16_t) Load 572(f16lod) 3276:3102(ResType) ImageSparseSampleExplicitLod 3273 3274 Lod 3275 3277: 7(f16vec4) CompositeExtract 3276 1 Store 3242(texel) 3277 3278: 47(int) CompositeExtract 3276 0 3279: 224 Load 226(s2DShadow) 3280: 167(fvec3) Load 169(c3) 3281: 52(float) Load 565(lod) 3282: 208(ptr) AccessChain 3242(texel) 207 3283: 52(float) CompositeExtract 3280 2 3284:3138(ResType) ImageSparseSampleDrefExplicitLod 3279 3280 3283 Lod 3281 3285:6(float16_t) CompositeExtract 3284 1 Store 3282 3285 3286: 47(int) CompositeExtract 3284 0 3287: 224 Load 226(s2DShadow) 3288:154(f16vec2) Load 156(f16c2) 3289: 52(float) Load 215(compare) 3290:6(float16_t) Load 572(f16lod) 3291: 208(ptr) AccessChain 3242(texel) 207 3292:3138(ResType) ImageSparseSampleDrefExplicitLod 3287 3288 3289 Lod 3290 3293:6(float16_t) CompositeExtract 3292 1 Store 3291 3293 3294: 47(int) CompositeExtract 3292 0 3295: 284 Load 286(s2DArray) 3296: 167(fvec3) Load 169(c3) 3297: 52(float) Load 565(lod) 3298:3102(ResType) ImageSparseSampleExplicitLod 3295 3296 Lod 3297 3299: 7(f16vec4) CompositeExtract 3298 1 Store 3242(texel) 3299 3300: 47(int) CompositeExtract 3298 0 3301: 284 Load 286(s2DArray) 3302:175(f16vec3) Load 177(f16c3) 3303:6(float16_t) Load 572(f16lod) 3304:3102(ResType) ImageSparseSampleExplicitLod 3301 3302 Lod 3303 3305: 7(f16vec4) CompositeExtract 3304 1 Store 3242(texel) 3305 3306: 47(int) CompositeExtract 3304 0 3307: 299 Load 301(sCubeArray) 3308: 249(fvec4) Load 251(c4) 3309: 52(float) Load 565(lod) 3310:3102(ResType) ImageSparseSampleExplicitLod 3307 3308 Lod 3309 3311: 7(f16vec4) CompositeExtract 3310 1 Store 3242(texel) 3311 3312: 47(int) CompositeExtract 3310 0 3313: 299 Load 301(sCubeArray) 3314: 7(f16vec4) Load 309(f16c4) 3315:6(float16_t) Load 572(f16lod) 3316:3102(ResType) ImageSparseSampleExplicitLod 3313 3314 Lod 3315 3317: 7(f16vec4) CompositeExtract 3316 1 Store 3242(texel) 3317 3318: 47(int) CompositeExtract 3316 0 3319: 7(f16vec4) Load 3242(texel) ReturnValue 3319 FunctionEnd 73(testSparseTextureOffset(): 7(f16vec4) Function None 8 74: Label 3322(texel): 64(ptr) Variable Function Store 3322(texel) 121 3323: 143 Load 145(s2D) 3324: 53(fvec2) Load 148(c2) 3325:3102(ResType) ImageSparseSampleImplicitLod 3323 3324 ConstOffset 722 3326: 7(f16vec4) CompositeExtract 3325 1 Store 3322(texel) 3326 3327: 47(int) CompositeExtract 3325 0 3328: 143 Load 145(s2D) 3329:154(f16vec2) Load 156(f16c2) 3330:6(float16_t) Load 137(f16bias) 3331:3102(ResType) ImageSparseSampleImplicitLod 3328 3329 Bias ConstOffset 3330 722 3332: 7(f16vec4) CompositeExtract 3331 1 Store 3322(texel) 3332 3333: 47(int) CompositeExtract 3331 0 3334: 163 Load 165(s3D) 3335: 167(fvec3) Load 169(c3) 3336:3102(ResType) ImageSparseSampleImplicitLod 3334 3335 ConstOffset 735 3337: 7(f16vec4) CompositeExtract 3336 1 Store 3322(texel) 3337 3338: 47(int) CompositeExtract 3336 0 3339: 163 Load 165(s3D) 3340:175(f16vec3) Load 177(f16c3) 3341:6(float16_t) Load 137(f16bias) 3342:3102(ResType) ImageSparseSampleImplicitLod 3339 3340 Bias ConstOffset 3341 735 3343: 7(f16vec4) CompositeExtract 3342 1 Store 3322(texel) 3343 3344: 47(int) CompositeExtract 3342 0 3345: 357 Load 359(s2DRect) 3346: 53(fvec2) Load 148(c2) 3347:3102(ResType) ImageSparseSampleImplicitLod 3345 3346 ConstOffset 722 3348: 7(f16vec4) CompositeExtract 3347 1 Store 3322(texel) 3348 3349: 47(int) CompositeExtract 3347 0 3350: 357 Load 359(s2DRect) 3351:154(f16vec2) Load 156(f16c2) 3352:3102(ResType) ImageSparseSampleImplicitLod 3350 3351 ConstOffset 722 3353: 7(f16vec4) CompositeExtract 3352 1 Store 3322(texel) 3353 3354: 47(int) CompositeExtract 3352 0 3355: 371 Load 373(s2DRectShadow) 3356: 167(fvec3) Load 169(c3) 3357: 208(ptr) AccessChain 3322(texel) 207 3358: 52(float) CompositeExtract 3356 2 3359:3138(ResType) ImageSparseSampleDrefImplicitLod 3355 3356 3358 ConstOffset 722 3360:6(float16_t) CompositeExtract 3359 1 Store 3357 3360 3361: 47(int) CompositeExtract 3359 0 3362: 371 Load 373(s2DRectShadow) 3363:154(f16vec2) Load 156(f16c2) 3364: 52(float) Load 215(compare) 3365: 208(ptr) AccessChain 3322(texel) 207 3366:3138(ResType) ImageSparseSampleDrefImplicitLod 3362 3363 3364 ConstOffset 722 3367:6(float16_t) CompositeExtract 3366 1 Store 3365 3367 3368: 47(int) CompositeExtract 3366 0 3369: 224 Load 226(s2DShadow) 3370: 167(fvec3) Load 169(c3) 3371: 208(ptr) AccessChain 3322(texel) 207 3372: 52(float) CompositeExtract 3370 2 3373:3138(ResType) ImageSparseSampleDrefImplicitLod 3369 3370 3372 ConstOffset 722 3374:6(float16_t) CompositeExtract 3373 1 Store 3371 3374 3375: 47(int) CompositeExtract 3373 0 3376: 224 Load 226(s2DShadow) 3377:154(f16vec2) Load 156(f16c2) 3378: 52(float) Load 215(compare) 3379: 208(ptr) AccessChain 3322(texel) 207 3380:6(float16_t) Load 137(f16bias) 3381:3138(ResType) ImageSparseSampleDrefImplicitLod 3376 3377 3378 Bias ConstOffset 3380 722 3382:6(float16_t) CompositeExtract 3381 1 Store 3379 3382 3383: 47(int) CompositeExtract 3381 0 3384: 284 Load 286(s2DArray) 3385: 167(fvec3) Load 169(c3) 3386:3102(ResType) ImageSparseSampleImplicitLod 3384 3385 ConstOffset 722 3387: 7(f16vec4) CompositeExtract 3386 1 Store 3322(texel) 3387 3388: 47(int) CompositeExtract 3386 0 3389: 284 Load 286(s2DArray) 3390:175(f16vec3) Load 177(f16c3) 3391:6(float16_t) Load 137(f16bias) 3392:3102(ResType) ImageSparseSampleImplicitLod 3389 3390 Bias ConstOffset 3391 722 3393: 7(f16vec4) CompositeExtract 3392 1 Store 3322(texel) 3393 3394: 47(int) CompositeExtract 3392 0 3395: 337 Load 339(s2DArrayShadow) 3396: 249(fvec4) Load 251(c4) 3397: 208(ptr) AccessChain 3322(texel) 207 3398: 52(float) CompositeExtract 3396 3 3399:3138(ResType) ImageSparseSampleDrefImplicitLod 3395 3396 3398 ConstOffset 722 3400:6(float16_t) CompositeExtract 3399 1 Store 3397 3400 3401: 47(int) CompositeExtract 3399 0 3402: 337 Load 339(s2DArrayShadow) 3403:175(f16vec3) Load 177(f16c3) 3404: 52(float) Load 215(compare) 3405: 208(ptr) AccessChain 3322(texel) 207 3406:3138(ResType) ImageSparseSampleDrefImplicitLod 3402 3403 3404 ConstOffset 722 3407:6(float16_t) CompositeExtract 3406 1 Store 3405 3407 3408: 47(int) CompositeExtract 3406 0 3409: 7(f16vec4) Load 3322(texel) ReturnValue 3409 FunctionEnd 75(testSparseTextureLodOffset(): 7(f16vec4) Function None 8 76: Label 3412(texel): 64(ptr) Variable Function Store 3412(texel) 121 3413: 143 Load 145(s2D) 3414: 53(fvec2) Load 148(c2) 3415: 52(float) Load 565(lod) 3416:3102(ResType) ImageSparseSampleExplicitLod 3413 3414 Lod ConstOffset 3415 722 3417: 7(f16vec4) CompositeExtract 3416 1 Store 3412(texel) 3417 3418: 47(int) CompositeExtract 3416 0 3419: 143 Load 145(s2D) 3420:154(f16vec2) Load 156(f16c2) 3421:6(float16_t) Load 572(f16lod) 3422:3102(ResType) ImageSparseSampleExplicitLod 3419 3420 Lod ConstOffset 3421 722 3423: 7(f16vec4) CompositeExtract 3422 1 Store 3412(texel) 3423 3424: 47(int) CompositeExtract 3422 0 3425: 163 Load 165(s3D) 3426: 167(fvec3) Load 169(c3) 3427: 52(float) Load 565(lod) 3428:3102(ResType) ImageSparseSampleExplicitLod 3425 3426 Lod ConstOffset 3427 735 3429: 7(f16vec4) CompositeExtract 3428 1 Store 3412(texel) 3429 3430: 47(int) CompositeExtract 3428 0 3431: 163 Load 165(s3D) 3432:175(f16vec3) Load 177(f16c3) 3433:6(float16_t) Load 572(f16lod) 3434:3102(ResType) ImageSparseSampleExplicitLod 3431 3432 Lod ConstOffset 3433 735 3435: 7(f16vec4) CompositeExtract 3434 1 Store 3412(texel) 3435 3436: 47(int) CompositeExtract 3434 0 3437: 224 Load 226(s2DShadow) 3438: 167(fvec3) Load 169(c3) 3439: 52(float) Load 565(lod) 3440: 208(ptr) AccessChain 3412(texel) 207 3441: 52(float) CompositeExtract 3438 2 3442:3138(ResType) ImageSparseSampleDrefExplicitLod 3437 3438 3441 Lod ConstOffset 3439 722 3443:6(float16_t) CompositeExtract 3442 1 Store 3440 3443 3444: 47(int) CompositeExtract 3442 0 3445: 224 Load 226(s2DShadow) 3446:154(f16vec2) Load 156(f16c2) 3447: 52(float) Load 215(compare) 3448:6(float16_t) Load 572(f16lod) 3449: 208(ptr) AccessChain 3412(texel) 207 3450:3138(ResType) ImageSparseSampleDrefExplicitLod 3445 3446 3447 Lod ConstOffset 3448 722 3451:6(float16_t) CompositeExtract 3450 1 Store 3449 3451 3452: 47(int) CompositeExtract 3450 0 3453: 284 Load 286(s2DArray) 3454: 167(fvec3) Load 169(c3) 3455: 52(float) Load 565(lod) 3456:3102(ResType) ImageSparseSampleExplicitLod 3453 3454 Lod ConstOffset 3455 722 3457: 7(f16vec4) CompositeExtract 3456 1 Store 3412(texel) 3457 3458: 47(int) CompositeExtract 3456 0 3459: 284 Load 286(s2DArray) 3460:175(f16vec3) Load 177(f16c3) 3461:6(float16_t) Load 572(f16lod) 3462:3102(ResType) ImageSparseSampleExplicitLod 3459 3460 Lod ConstOffset 3461 722 3463: 7(f16vec4) CompositeExtract 3462 1 Store 3412(texel) 3463 3464: 47(int) CompositeExtract 3462 0 3465: 7(f16vec4) Load 3412(texel) ReturnValue 3465 FunctionEnd 77(testSparseTextureGrad(): 7(f16vec4) Function None 8 78: Label 3468(texel): 64(ptr) Variable Function Store 3468(texel) 121 3469: 143 Load 145(s2D) 3470: 53(fvec2) Load 148(c2) 3471: 53(fvec2) Load 1409(dPdxy2) 3472: 53(fvec2) Load 1409(dPdxy2) 3473:3102(ResType) ImageSparseSampleExplicitLod 3469 3470 Grad 3471 3472 3474: 7(f16vec4) CompositeExtract 3473 1 Store 3468(texel) 3474 3475: 47(int) CompositeExtract 3473 0 3476: 143 Load 145(s2D) 3477:154(f16vec2) Load 156(f16c2) 3478:154(f16vec2) Load 1417(f16dPdxy2) 3479:154(f16vec2) Load 1417(f16dPdxy2) 3480:3102(ResType) ImageSparseSampleExplicitLod 3476 3477 Grad 3478 3479 3481: 7(f16vec4) CompositeExtract 3480 1 Store 3468(texel) 3481 3482: 47(int) CompositeExtract 3480 0 3483: 163 Load 165(s3D) 3484: 167(fvec3) Load 169(c3) 3485: 167(fvec3) Load 1425(dPdxy3) 3486: 167(fvec3) Load 1425(dPdxy3) 3487:3102(ResType) ImageSparseSampleExplicitLod 3483 3484 Grad 3485 3486 3488: 7(f16vec4) CompositeExtract 3487 1 Store 3468(texel) 3488 3489: 47(int) CompositeExtract 3487 0 3490: 163 Load 165(s3D) 3491:175(f16vec3) Load 177(f16c3) 3492:175(f16vec3) Load 1433(f16dPdxy3) 3493:175(f16vec3) Load 1433(f16dPdxy3) 3494:3102(ResType) ImageSparseSampleExplicitLod 3490 3491 Grad 3492 3493 3495: 7(f16vec4) CompositeExtract 3494 1 Store 3468(texel) 3495 3496: 47(int) CompositeExtract 3494 0 3497: 184 Load 186(sCube) 3498: 167(fvec3) Load 169(c3) 3499: 167(fvec3) Load 1425(dPdxy3) 3500: 167(fvec3) Load 1425(dPdxy3) 3501:3102(ResType) ImageSparseSampleExplicitLod 3497 3498 Grad 3499 3500 3502: 7(f16vec4) CompositeExtract 3501 1 Store 3468(texel) 3502 3503: 47(int) CompositeExtract 3501 0 3504: 184 Load 186(sCube) 3505:175(f16vec3) Load 177(f16c3) 3506:175(f16vec3) Load 1433(f16dPdxy3) 3507:175(f16vec3) Load 1433(f16dPdxy3) 3508:3102(ResType) ImageSparseSampleExplicitLod 3504 3505 Grad 3506 3507 3509: 7(f16vec4) CompositeExtract 3508 1 Store 3468(texel) 3509 3510: 47(int) CompositeExtract 3508 0 3511: 357 Load 359(s2DRect) 3512: 53(fvec2) Load 148(c2) 3513: 53(fvec2) Load 1409(dPdxy2) 3514: 53(fvec2) Load 1409(dPdxy2) 3515:3102(ResType) ImageSparseSampleExplicitLod 3511 3512 Grad 3513 3514 3516: 7(f16vec4) CompositeExtract 3515 1 Store 3468(texel) 3516 3517: 47(int) CompositeExtract 3515 0 3518: 357 Load 359(s2DRect) 3519:154(f16vec2) Load 156(f16c2) 3520:154(f16vec2) Load 1417(f16dPdxy2) 3521:154(f16vec2) Load 1417(f16dPdxy2) 3522:3102(ResType) ImageSparseSampleExplicitLod 3518 3519 Grad 3520 3521 3523: 7(f16vec4) CompositeExtract 3522 1 Store 3468(texel) 3523 3524: 47(int) CompositeExtract 3522 0 3525: 371 Load 373(s2DRectShadow) 3526: 167(fvec3) Load 169(c3) 3527: 53(fvec2) Load 1409(dPdxy2) 3528: 53(fvec2) Load 1409(dPdxy2) 3529: 208(ptr) AccessChain 3468(texel) 207 3530: 52(float) CompositeExtract 3526 2 3531:3138(ResType) ImageSparseSampleDrefExplicitLod 3525 3526 3530 Grad 3527 3528 3532:6(float16_t) CompositeExtract 3531 1 Store 3529 3532 3533: 47(int) CompositeExtract 3531 0 3534: 371 Load 373(s2DRectShadow) 3535:154(f16vec2) Load 156(f16c2) 3536: 52(float) Load 215(compare) 3537:154(f16vec2) Load 1417(f16dPdxy2) 3538:154(f16vec2) Load 1417(f16dPdxy2) 3539: 208(ptr) AccessChain 3468(texel) 207 3540:3138(ResType) ImageSparseSampleDrefExplicitLod 3534 3535 3536 Grad 3537 3538 3541:6(float16_t) CompositeExtract 3540 1 Store 3539 3541 3542: 47(int) CompositeExtract 3540 0 3543: 224 Load 226(s2DShadow) 3544: 167(fvec3) Load 169(c3) 3545: 53(fvec2) Load 1409(dPdxy2) 3546: 53(fvec2) Load 1409(dPdxy2) 3547: 208(ptr) AccessChain 3468(texel) 207 3548: 52(float) CompositeExtract 3544 2 3549:3138(ResType) ImageSparseSampleDrefExplicitLod 3543 3544 3548 Grad 3545 3546 3550:6(float16_t) CompositeExtract 3549 1 Store 3547 3550 3551: 47(int) CompositeExtract 3549 0 3552: 224 Load 226(s2DShadow) 3553:154(f16vec2) Load 156(f16c2) 3554: 52(float) Load 215(compare) 3555:154(f16vec2) Load 1417(f16dPdxy2) 3556:154(f16vec2) Load 1417(f16dPdxy2) 3557: 208(ptr) AccessChain 3468(texel) 207 3558:3138(ResType) ImageSparseSampleDrefExplicitLod 3552 3553 3554 Grad 3555 3556 3559:6(float16_t) CompositeExtract 3558 1 Store 3557 3559 3560: 47(int) CompositeExtract 3558 0 3561: 245 Load 247(sCubeShadow) 3562: 249(fvec4) Load 251(c4) 3563: 167(fvec3) Load 1425(dPdxy3) 3564: 167(fvec3) Load 1425(dPdxy3) 3565: 208(ptr) AccessChain 3468(texel) 207 3566: 52(float) CompositeExtract 3562 3 3567:3138(ResType) ImageSparseSampleDrefExplicitLod 3561 3562 3566 Grad 3563 3564 3568:6(float16_t) CompositeExtract 3567 1 Store 3565 3568 3569: 47(int) CompositeExtract 3567 0 3570: 245 Load 247(sCubeShadow) 3571:175(f16vec3) Load 177(f16c3) 3572: 52(float) Load 215(compare) 3573:175(f16vec3) Load 1433(f16dPdxy3) 3574:175(f16vec3) Load 1433(f16dPdxy3) 3575: 208(ptr) AccessChain 3468(texel) 207 3576:3138(ResType) ImageSparseSampleDrefExplicitLod 3570 3571 3572 Grad 3573 3574 3577:6(float16_t) CompositeExtract 3576 1 Store 3575 3577 3578: 47(int) CompositeExtract 3576 0 3579: 284 Load 286(s2DArray) 3580: 167(fvec3) Load 169(c3) 3581: 53(fvec2) Load 1409(dPdxy2) 3582: 53(fvec2) Load 1409(dPdxy2) 3583:3102(ResType) ImageSparseSampleExplicitLod 3579 3580 Grad 3581 3582 3584: 7(f16vec4) CompositeExtract 3583 1 Store 3468(texel) 3584 3585: 47(int) CompositeExtract 3583 0 3586: 284 Load 286(s2DArray) 3587:175(f16vec3) Load 177(f16c3) 3588:154(f16vec2) Load 1417(f16dPdxy2) 3589:154(f16vec2) Load 1417(f16dPdxy2) 3590:3102(ResType) ImageSparseSampleExplicitLod 3586 3587 Grad 3588 3589 3591: 7(f16vec4) CompositeExtract 3590 1 Store 3468(texel) 3591 3592: 47(int) CompositeExtract 3590 0 3593: 337 Load 339(s2DArrayShadow) 3594: 249(fvec4) Load 251(c4) 3595: 53(fvec2) Load 1409(dPdxy2) 3596: 53(fvec2) Load 1409(dPdxy2) 3597: 208(ptr) AccessChain 3468(texel) 207 3598: 52(float) CompositeExtract 3594 3 3599:3138(ResType) ImageSparseSampleDrefExplicitLod 3593 3594 3598 Grad 3595 3596 3600:6(float16_t) CompositeExtract 3599 1 Store 3597 3600 3601: 47(int) CompositeExtract 3599 0 3602: 337 Load 339(s2DArrayShadow) 3603:175(f16vec3) Load 177(f16c3) 3604: 52(float) Load 215(compare) 3605:154(f16vec2) Load 1417(f16dPdxy2) 3606:154(f16vec2) Load 1417(f16dPdxy2) 3607: 208(ptr) AccessChain 3468(texel) 207 3608:3138(ResType) ImageSparseSampleDrefExplicitLod 3602 3603 3604 Grad 3605 3606 3609:6(float16_t) CompositeExtract 3608 1 Store 3607 3609 3610: 47(int) CompositeExtract 3608 0 3611: 299 Load 301(sCubeArray) 3612: 249(fvec4) Load 251(c4) 3613: 167(fvec3) Load 1425(dPdxy3) 3614: 167(fvec3) Load 1425(dPdxy3) 3615:3102(ResType) ImageSparseSampleExplicitLod 3611 3612 Grad 3613 3614 3616: 7(f16vec4) CompositeExtract 3615 1 Store 3468(texel) 3616 3617: 47(int) CompositeExtract 3615 0 3618: 299 Load 301(sCubeArray) 3619: 7(f16vec4) Load 309(f16c4) 3620:175(f16vec3) Load 1433(f16dPdxy3) 3621:175(f16vec3) Load 1433(f16dPdxy3) 3622:3102(ResType) ImageSparseSampleExplicitLod 3618 3619 Grad 3620 3621 3623: 7(f16vec4) CompositeExtract 3622 1 Store 3468(texel) 3623 3624: 47(int) CompositeExtract 3622 0 3625: 7(f16vec4) Load 3468(texel) ReturnValue 3625 FunctionEnd 79(testSparseTextureGradOffset(): 7(f16vec4) Function None 8 80: Label 3628(texel): 64(ptr) Variable Function Store 3628(texel) 121 3629: 143 Load 145(s2D) 3630: 53(fvec2) Load 148(c2) 3631: 53(fvec2) Load 1409(dPdxy2) 3632: 53(fvec2) Load 1409(dPdxy2) 3633:3102(ResType) ImageSparseSampleExplicitLod 3629 3630 Grad ConstOffset 3631 3632 722 3634: 7(f16vec4) CompositeExtract 3633 1 Store 3628(texel) 3634 3635: 47(int) CompositeExtract 3633 0 3636: 143 Load 145(s2D) 3637:154(f16vec2) Load 156(f16c2) 3638:154(f16vec2) Load 1417(f16dPdxy2) 3639:154(f16vec2) Load 1417(f16dPdxy2) 3640:3102(ResType) ImageSparseSampleExplicitLod 3636 3637 Grad ConstOffset 3638 3639 722 3641: 7(f16vec4) CompositeExtract 3640 1 Store 3628(texel) 3641 3642: 47(int) CompositeExtract 3640 0 3643: 163 Load 165(s3D) 3644: 167(fvec3) Load 169(c3) 3645: 167(fvec3) Load 1425(dPdxy3) 3646: 167(fvec3) Load 1425(dPdxy3) 3647:3102(ResType) ImageSparseSampleExplicitLod 3643 3644 Grad ConstOffset 3645 3646 735 3648: 7(f16vec4) CompositeExtract 3647 1 Store 3628(texel) 3648 3649: 47(int) CompositeExtract 3647 0 3650: 163 Load 165(s3D) 3651:175(f16vec3) Load 177(f16c3) 3652:175(f16vec3) Load 1433(f16dPdxy3) 3653:175(f16vec3) Load 1433(f16dPdxy3) 3654:3102(ResType) ImageSparseSampleExplicitLod 3650 3651 Grad ConstOffset 3652 3653 735 3655: 7(f16vec4) CompositeExtract 3654 1 Store 3628(texel) 3655 3656: 47(int) CompositeExtract 3654 0 3657: 357 Load 359(s2DRect) 3658: 53(fvec2) Load 148(c2) 3659: 53(fvec2) Load 1409(dPdxy2) 3660: 53(fvec2) Load 1409(dPdxy2) 3661:3102(ResType) ImageSparseSampleExplicitLod 3657 3658 Grad ConstOffset 3659 3660 722 3662: 7(f16vec4) CompositeExtract 3661 1 Store 3628(texel) 3662 3663: 47(int) CompositeExtract 3661 0 3664: 357 Load 359(s2DRect) 3665:154(f16vec2) Load 156(f16c2) 3666:154(f16vec2) Load 1417(f16dPdxy2) 3667:154(f16vec2) Load 1417(f16dPdxy2) 3668:3102(ResType) ImageSparseSampleExplicitLod 3664 3665 Grad ConstOffset 3666 3667 722 3669: 7(f16vec4) CompositeExtract 3668 1 Store 3628(texel) 3669 3670: 47(int) CompositeExtract 3668 0 3671: 371 Load 373(s2DRectShadow) 3672: 167(fvec3) Load 169(c3) 3673: 53(fvec2) Load 1409(dPdxy2) 3674: 53(fvec2) Load 1409(dPdxy2) 3675: 208(ptr) AccessChain 3628(texel) 207 3676: 52(float) CompositeExtract 3672 2 3677:3138(ResType) ImageSparseSampleDrefExplicitLod 3671 3672 3676 Grad ConstOffset 3673 3674 722 3678:6(float16_t) CompositeExtract 3677 1 Store 3675 3678 3679: 47(int) CompositeExtract 3677 0 3680: 371 Load 373(s2DRectShadow) 3681:154(f16vec2) Load 156(f16c2) 3682: 52(float) Load 215(compare) 3683:154(f16vec2) Load 1417(f16dPdxy2) 3684:154(f16vec2) Load 1417(f16dPdxy2) 3685: 208(ptr) AccessChain 3628(texel) 207 3686:3138(ResType) ImageSparseSampleDrefExplicitLod 3680 3681 3682 Grad ConstOffset 3683 3684 722 3687:6(float16_t) CompositeExtract 3686 1 Store 3685 3687 3688: 47(int) CompositeExtract 3686 0 3689: 224 Load 226(s2DShadow) 3690: 167(fvec3) Load 169(c3) 3691: 53(fvec2) Load 1409(dPdxy2) 3692: 53(fvec2) Load 1409(dPdxy2) 3693: 208(ptr) AccessChain 3628(texel) 207 3694: 52(float) CompositeExtract 3690 2 3695:3138(ResType) ImageSparseSampleDrefExplicitLod 3689 3690 3694 Grad ConstOffset 3691 3692 722 3696:6(float16_t) CompositeExtract 3695 1 Store 3693 3696 3697: 47(int) CompositeExtract 3695 0 3698: 224 Load 226(s2DShadow) 3699:154(f16vec2) Load 156(f16c2) 3700: 52(float) Load 215(compare) 3701:154(f16vec2) Load 1417(f16dPdxy2) 3702:154(f16vec2) Load 1417(f16dPdxy2) 3703: 208(ptr) AccessChain 3628(texel) 207 3704:3138(ResType) ImageSparseSampleDrefExplicitLod 3698 3699 3700 Grad ConstOffset 3701 3702 722 3705:6(float16_t) CompositeExtract 3704 1 Store 3703 3705 3706: 47(int) CompositeExtract 3704 0 3707: 284 Load 286(s2DArray) 3708: 167(fvec3) Load 169(c3) 3709: 53(fvec2) Load 1409(dPdxy2) 3710: 53(fvec2) Load 1409(dPdxy2) 3711:3102(ResType) ImageSparseSampleExplicitLod 3707 3708 Grad ConstOffset 3709 3710 722 3712: 7(f16vec4) CompositeExtract 3711 1 Store 3628(texel) 3712 3713: 47(int) CompositeExtract 3711 0 3714: 284 Load 286(s2DArray) 3715:175(f16vec3) Load 177(f16c3) 3716:154(f16vec2) Load 1417(f16dPdxy2) 3717:154(f16vec2) Load 1417(f16dPdxy2) 3718:3102(ResType) ImageSparseSampleExplicitLod 3714 3715 Grad ConstOffset 3716 3717 722 3719: 7(f16vec4) CompositeExtract 3718 1 Store 3628(texel) 3719 3720: 47(int) CompositeExtract 3718 0 3721: 337 Load 339(s2DArrayShadow) 3722: 249(fvec4) Load 251(c4) 3723: 53(fvec2) Load 1409(dPdxy2) 3724: 53(fvec2) Load 1409(dPdxy2) 3725: 208(ptr) AccessChain 3628(texel) 207 3726: 52(float) CompositeExtract 3722 3 3727:3138(ResType) ImageSparseSampleDrefExplicitLod 3721 3722 3726 Grad ConstOffset 3723 3724 722 3728:6(float16_t) CompositeExtract 3727 1 Store 3725 3728 3729: 47(int) CompositeExtract 3727 0 3730: 337 Load 339(s2DArrayShadow) 3731:175(f16vec3) Load 177(f16c3) 3732: 52(float) Load 215(compare) 3733:154(f16vec2) Load 1417(f16dPdxy2) 3734:154(f16vec2) Load 1417(f16dPdxy2) 3735: 208(ptr) AccessChain 3628(texel) 207 3736:3138(ResType) ImageSparseSampleDrefExplicitLod 3730 3731 3732 Grad ConstOffset 3733 3734 722 3737:6(float16_t) CompositeExtract 3736 1 Store 3735 3737 3738: 47(int) CompositeExtract 3736 0 3739: 7(f16vec4) Load 3628(texel) ReturnValue 3739 FunctionEnd 81(testSparseTexelFetch(): 7(f16vec4) Function None 8 82: Label 3742(texel): 64(ptr) Variable Function Store 3742(texel) 121 3743: 143 Load 145(s2D) 3744: 53(fvec2) Load 148(c2) 3745: 721(ivec2) ConvertFToS 3744 3746: 52(float) Load 565(lod) 3747: 47(int) ConvertFToS 3746 3748: 142 Image 3743 3749:3102(ResType) ImageSparseFetch 3748 3745 Lod 3747 3750: 7(f16vec4) CompositeExtract 3749 1 Store 3742(texel) 3750 3751: 47(int) CompositeExtract 3749 0 3752: 163 Load 165(s3D) 3753: 167(fvec3) Load 169(c3) 3754: 734(ivec3) ConvertFToS 3753 3755: 52(float) Load 565(lod) 3756: 47(int) ConvertFToS 3755 3757: 162 Image 3752 3758:3102(ResType) ImageSparseFetch 3757 3754 Lod 3756 3759: 7(f16vec4) CompositeExtract 3758 1 Store 3742(texel) 3759 3760: 47(int) CompositeExtract 3758 0 3761: 357 Load 359(s2DRect) 3762: 53(fvec2) Load 148(c2) 3763: 721(ivec2) ConvertFToS 3762 3764: 356 Image 3761 3765:3102(ResType) ImageSparseFetch 3764 3763 3766: 7(f16vec4) CompositeExtract 3765 1 Store 3742(texel) 3766 3767: 47(int) CompositeExtract 3765 0 3768: 284 Load 286(s2DArray) 3769: 167(fvec3) Load 169(c3) 3770: 734(ivec3) ConvertFToS 3769 3771: 52(float) Load 565(lod) 3772: 47(int) ConvertFToS 3771 3773: 283 Image 3768 3774:3102(ResType) ImageSparseFetch 3773 3770 Lod 3772 3775: 7(f16vec4) CompositeExtract 3774 1 Store 3742(texel) 3775 3776: 47(int) CompositeExtract 3774 0 3777: 1309 Load 1311(s2DMS) 3778: 53(fvec2) Load 148(c2) 3779: 721(ivec2) ConvertFToS 3778 3780: 1308 Image 3777 3781:3102(ResType) ImageSparseFetch 3780 3779 Sample 709 3782: 7(f16vec4) CompositeExtract 3781 1 Store 3742(texel) 3782 3783: 47(int) CompositeExtract 3781 0 3784: 1320 Load 1322(s2DMSArray) 3785: 167(fvec3) Load 169(c3) 3786: 734(ivec3) ConvertFToS 3785 3787: 1319 Image 3784 3788:3102(ResType) ImageSparseFetch 3787 3786 Sample 1326 3789: 7(f16vec4) CompositeExtract 3788 1 Store 3742(texel) 3789 3790: 47(int) CompositeExtract 3788 0 3791: 7(f16vec4) Load 3742(texel) ReturnValue 3791 FunctionEnd 83(testSparseTexelFetchOffset(): 7(f16vec4) Function None 8 84: Label 3794(texel): 64(ptr) Variable Function Store 3794(texel) 121 3795: 143 Load 145(s2D) 3796: 53(fvec2) Load 148(c2) 3797: 721(ivec2) ConvertFToS 3796 3798: 52(float) Load 565(lod) 3799: 47(int) ConvertFToS 3798 3800: 142 Image 3795 3801:3102(ResType) ImageSparseFetch 3800 3797 Lod ConstOffset 3799 722 3802: 7(f16vec4) CompositeExtract 3801 1 Store 3794(texel) 3802 3803: 47(int) CompositeExtract 3801 0 3804: 163 Load 165(s3D) 3805: 167(fvec3) Load 169(c3) 3806: 734(ivec3) ConvertFToS 3805 3807: 52(float) Load 565(lod) 3808: 47(int) ConvertFToS 3807 3809: 162 Image 3804 3810:3102(ResType) ImageSparseFetch 3809 3806 Lod ConstOffset 3808 735 3811: 7(f16vec4) CompositeExtract 3810 1 Store 3794(texel) 3811 3812: 47(int) CompositeExtract 3810 0 3813: 357 Load 359(s2DRect) 3814: 53(fvec2) Load 148(c2) 3815: 721(ivec2) ConvertFToS 3814 3816: 356 Image 3813 3817:3102(ResType) ImageSparseFetch 3816 3815 ConstOffset 722 3818: 7(f16vec4) CompositeExtract 3817 1 Store 3794(texel) 3818 3819: 47(int) CompositeExtract 3817 0 3820: 284 Load 286(s2DArray) 3821: 167(fvec3) Load 169(c3) 3822: 734(ivec3) ConvertFToS 3821 3823: 52(float) Load 565(lod) 3824: 47(int) ConvertFToS 3823 3825: 283 Image 3820 3826:3102(ResType) ImageSparseFetch 3825 3822 Lod ConstOffset 3824 722 3827: 7(f16vec4) CompositeExtract 3826 1 Store 3794(texel) 3827 3828: 47(int) CompositeExtract 3826 0 3829: 7(f16vec4) Load 3794(texel) ReturnValue 3829 FunctionEnd 85(testSparseTextureGather(): 7(f16vec4) Function None 8 86: Label 3832(texel): 64(ptr) Variable Function Store 3832(texel) 121 3833: 143 Load 145(s2D) 3834: 53(fvec2) Load 148(c2) 3835:3102(ResType) ImageSparseGather 3833 3834 2187 3836: 7(f16vec4) CompositeExtract 3835 1 Store 3832(texel) 3836 3837: 47(int) CompositeExtract 3835 0 3838: 143 Load 145(s2D) 3839:154(f16vec2) Load 156(f16c2) 3840:6(float16_t) Load 137(f16bias) 3841:3102(ResType) ImageSparseGather 3838 3839 2187 Bias 3840 3842: 7(f16vec4) CompositeExtract 3841 1 Store 3832(texel) 3842 3843: 47(int) CompositeExtract 3841 0 3844: 284 Load 286(s2DArray) 3845: 167(fvec3) Load 169(c3) 3846:3102(ResType) ImageSparseGather 3844 3845 2187 3847: 7(f16vec4) CompositeExtract 3846 1 Store 3832(texel) 3847 3848: 47(int) CompositeExtract 3846 0 3849: 284 Load 286(s2DArray) 3850:175(f16vec3) Load 177(f16c3) 3851:6(float16_t) Load 137(f16bias) 3852:3102(ResType) ImageSparseGather 3849 3850 2187 Bias 3851 3853: 7(f16vec4) CompositeExtract 3852 1 Store 3832(texel) 3853 3854: 47(int) CompositeExtract 3852 0 3855: 184 Load 186(sCube) 3856: 167(fvec3) Load 169(c3) 3857:3102(ResType) ImageSparseGather 3855 3856 2187 3858: 7(f16vec4) CompositeExtract 3857 1 Store 3832(texel) 3858 3859: 47(int) CompositeExtract 3857 0 3860: 184 Load 186(sCube) 3861:175(f16vec3) Load 177(f16c3) 3862:6(float16_t) Load 137(f16bias) 3863:3102(ResType) ImageSparseGather 3860 3861 2187 Bias 3862 3864: 7(f16vec4) CompositeExtract 3863 1 Store 3832(texel) 3864 3865: 47(int) CompositeExtract 3863 0 3866: 299 Load 301(sCubeArray) 3867: 249(fvec4) Load 251(c4) 3868:3102(ResType) ImageSparseGather 3866 3867 2187 3869: 7(f16vec4) CompositeExtract 3868 1 Store 3832(texel) 3869 3870: 47(int) CompositeExtract 3868 0 3871: 299 Load 301(sCubeArray) 3872: 7(f16vec4) Load 309(f16c4) 3873:6(float16_t) Load 137(f16bias) 3874:3102(ResType) ImageSparseGather 3871 3872 2187 Bias 3873 3875: 7(f16vec4) CompositeExtract 3874 1 Store 3832(texel) 3875 3876: 47(int) CompositeExtract 3874 0 3877: 357 Load 359(s2DRect) 3878: 53(fvec2) Load 148(c2) 3879:3102(ResType) ImageSparseGather 3877 3878 2187 3880: 7(f16vec4) CompositeExtract 3879 1 Store 3832(texel) 3880 3881: 47(int) CompositeExtract 3879 0 3882: 357 Load 359(s2DRect) 3883:154(f16vec2) Load 156(f16c2) 3884:3102(ResType) ImageSparseGather 3882 3883 2187 3885: 7(f16vec4) CompositeExtract 3884 1 Store 3832(texel) 3885 3886: 47(int) CompositeExtract 3884 0 3887: 224 Load 226(s2DShadow) 3888: 53(fvec2) Load 148(c2) 3889: 52(float) Load 215(compare) 3890:3102(ResType) ImageSparseDrefGather 3887 3888 3889 3891: 7(f16vec4) CompositeExtract 3890 1 Store 3832(texel) 3891 3892: 47(int) CompositeExtract 3890 0 3893: 224 Load 226(s2DShadow) 3894:154(f16vec2) Load 156(f16c2) 3895: 52(float) Load 215(compare) 3896:3102(ResType) ImageSparseDrefGather 3893 3894 3895 3897: 7(f16vec4) CompositeExtract 3896 1 Store 3832(texel) 3897 3898: 47(int) CompositeExtract 3896 0 3899: 337 Load 339(s2DArrayShadow) 3900: 167(fvec3) Load 169(c3) 3901: 52(float) Load 215(compare) 3902:3102(ResType) ImageSparseDrefGather 3899 3900 3901 3903: 7(f16vec4) CompositeExtract 3902 1 Store 3832(texel) 3903 3904: 47(int) CompositeExtract 3902 0 3905: 337 Load 339(s2DArrayShadow) 3906:175(f16vec3) Load 177(f16c3) 3907: 52(float) Load 215(compare) 3908:3102(ResType) ImageSparseDrefGather 3905 3906 3907 3909: 7(f16vec4) CompositeExtract 3908 1 Store 3832(texel) 3909 3910: 47(int) CompositeExtract 3908 0 3911: 245 Load 247(sCubeShadow) 3912: 167(fvec3) Load 169(c3) 3913: 52(float) Load 215(compare) 3914:3102(ResType) ImageSparseDrefGather 3911 3912 3913 3915: 7(f16vec4) CompositeExtract 3914 1 Store 3832(texel) 3915 3916: 47(int) CompositeExtract 3914 0 3917: 245 Load 247(sCubeShadow) 3918:175(f16vec3) Load 177(f16c3) 3919: 52(float) Load 215(compare) 3920:3102(ResType) ImageSparseDrefGather 3917 3918 3919 3921: 7(f16vec4) CompositeExtract 3920 1 Store 3832(texel) 3921 3922: 47(int) CompositeExtract 3920 0 3923: 391 Load 393(sCubeArrayShadow) 3924: 249(fvec4) Load 251(c4) 3925: 52(float) Load 215(compare) 3926:3102(ResType) ImageSparseDrefGather 3923 3924 3925 3927: 7(f16vec4) CompositeExtract 3926 1 Store 3832(texel) 3927 3928: 47(int) CompositeExtract 3926 0 3929: 391 Load 393(sCubeArrayShadow) 3930: 7(f16vec4) Load 309(f16c4) 3931: 52(float) Load 215(compare) 3932:3102(ResType) ImageSparseDrefGather 3929 3930 3931 3933: 7(f16vec4) CompositeExtract 3932 1 Store 3832(texel) 3933 3934: 47(int) CompositeExtract 3932 0 3935: 371 Load 373(s2DRectShadow) 3936: 53(fvec2) Load 148(c2) 3937: 52(float) Load 215(compare) 3938:3102(ResType) ImageSparseDrefGather 3935 3936 3937 3939: 7(f16vec4) CompositeExtract 3938 1 Store 3832(texel) 3939 3940: 47(int) CompositeExtract 3938 0 3941: 371 Load 373(s2DRectShadow) 3942:154(f16vec2) Load 156(f16c2) 3943: 52(float) Load 215(compare) 3944:3102(ResType) ImageSparseDrefGather 3941 3942 3943 3945: 7(f16vec4) CompositeExtract 3944 1 Store 3832(texel) 3945 3946: 47(int) CompositeExtract 3944 0 3947: 7(f16vec4) Load 3832(texel) ReturnValue 3947 FunctionEnd 87(testSparseTextureGatherOffset(): 7(f16vec4) Function None 8 88: Label 3950(texel): 64(ptr) Variable Function Store 3950(texel) 121 3951: 143 Load 145(s2D) 3952: 53(fvec2) Load 148(c2) 3953:3102(ResType) ImageSparseGather 3951 3952 2187 ConstOffset 722 3954: 7(f16vec4) CompositeExtract 3953 1 Store 3950(texel) 3954 3955: 47(int) CompositeExtract 3953 0 3956: 143 Load 145(s2D) 3957:154(f16vec2) Load 156(f16c2) 3958:6(float16_t) Load 137(f16bias) 3959:3102(ResType) ImageSparseGather 3956 3957 2187 Bias ConstOffset 3958 722 3960: 7(f16vec4) CompositeExtract 3959 1 Store 3950(texel) 3960 3961: 47(int) CompositeExtract 3959 0 3962: 284 Load 286(s2DArray) 3963: 167(fvec3) Load 169(c3) 3964:3102(ResType) ImageSparseGather 3962 3963 2187 ConstOffset 722 3965: 7(f16vec4) CompositeExtract 3964 1 Store 3950(texel) 3965 3966: 47(int) CompositeExtract 3964 0 3967: 284 Load 286(s2DArray) 3968:175(f16vec3) Load 177(f16c3) 3969:6(float16_t) Load 137(f16bias) 3970:3102(ResType) ImageSparseGather 3967 3968 2187 Bias ConstOffset 3969 722 3971: 7(f16vec4) CompositeExtract 3970 1 Store 3950(texel) 3971 3972: 47(int) CompositeExtract 3970 0 3973: 357 Load 359(s2DRect) 3974: 53(fvec2) Load 148(c2) 3975:3102(ResType) ImageSparseGather 3973 3974 2187 ConstOffset 722 3976: 7(f16vec4) CompositeExtract 3975 1 Store 3950(texel) 3976 3977: 47(int) CompositeExtract 3975 0 3978: 357 Load 359(s2DRect) 3979:154(f16vec2) Load 156(f16c2) 3980:3102(ResType) ImageSparseGather 3978 3979 2187 ConstOffset 722 3981: 7(f16vec4) CompositeExtract 3980 1 Store 3950(texel) 3981 3982: 47(int) CompositeExtract 3980 0 3983: 224 Load 226(s2DShadow) 3984: 53(fvec2) Load 148(c2) 3985: 52(float) Load 215(compare) 3986:3102(ResType) ImageSparseDrefGather 3983 3984 3985 ConstOffset 722 3987: 7(f16vec4) CompositeExtract 3986 1 Store 3950(texel) 3987 3988: 47(int) CompositeExtract 3986 0 3989: 224 Load 226(s2DShadow) 3990:154(f16vec2) Load 156(f16c2) 3991: 52(float) Load 215(compare) 3992:3102(ResType) ImageSparseDrefGather 3989 3990 3991 ConstOffset 722 3993: 7(f16vec4) CompositeExtract 3992 1 Store 3950(texel) 3993 3994: 47(int) CompositeExtract 3992 0 3995: 337 Load 339(s2DArrayShadow) 3996: 167(fvec3) Load 169(c3) 3997: 52(float) Load 215(compare) 3998:3102(ResType) ImageSparseDrefGather 3995 3996 3997 ConstOffset 722 3999: 7(f16vec4) CompositeExtract 3998 1 Store 3950(texel) 3999 4000: 47(int) CompositeExtract 3998 0 4001: 337 Load 339(s2DArrayShadow) 4002:175(f16vec3) Load 177(f16c3) 4003: 52(float) Load 215(compare) 4004:3102(ResType) ImageSparseDrefGather 4001 4002 4003 ConstOffset 722 4005: 7(f16vec4) CompositeExtract 4004 1 Store 3950(texel) 4005 4006: 47(int) CompositeExtract 4004 0 4007: 371 Load 373(s2DRectShadow) 4008: 53(fvec2) Load 148(c2) 4009: 52(float) Load 215(compare) 4010:3102(ResType) ImageSparseDrefGather 4007 4008 4009 ConstOffset 722 4011: 7(f16vec4) CompositeExtract 4010 1 Store 3950(texel) 4011 4012: 47(int) CompositeExtract 4010 0 4013: 371 Load 373(s2DRectShadow) 4014:154(f16vec2) Load 156(f16c2) 4015: 52(float) Load 215(compare) 4016:3102(ResType) ImageSparseDrefGather 4013 4014 4015 ConstOffset 722 4017: 7(f16vec4) CompositeExtract 4016 1 Store 3950(texel) 4017 4018: 47(int) CompositeExtract 4016 0 4019: 7(f16vec4) Load 3950(texel) ReturnValue 4019 FunctionEnd 89(testSparseTextureGatherOffsets(): 7(f16vec4) Function None 8 90: Label 4022(texel): 64(ptr) Variable Function Store 4022(texel) 121 4023: 143 Load 145(s2D) 4024: 53(fvec2) Load 148(c2) 4025:3102(ResType) ImageSparseGather 4023 4024 2187 ConstOffsets 2380 4026: 7(f16vec4) CompositeExtract 4025 1 Store 4022(texel) 4026 4027: 47(int) CompositeExtract 4025 0 4028: 143 Load 145(s2D) 4029:154(f16vec2) Load 156(f16c2) 4030:6(float16_t) Load 137(f16bias) 4031:3102(ResType) ImageSparseGather 4028 4029 2187 Bias ConstOffsets 4030 2380 4032: 7(f16vec4) CompositeExtract 4031 1 Store 4022(texel) 4032 4033: 47(int) CompositeExtract 4031 0 4034: 284 Load 286(s2DArray) 4035: 167(fvec3) Load 169(c3) 4036:3102(ResType) ImageSparseGather 4034 4035 2187 ConstOffsets 2380 4037: 7(f16vec4) CompositeExtract 4036 1 Store 4022(texel) 4037 4038: 47(int) CompositeExtract 4036 0 4039: 284 Load 286(s2DArray) 4040:175(f16vec3) Load 177(f16c3) 4041:6(float16_t) Load 137(f16bias) 4042:3102(ResType) ImageSparseGather 4039 4040 2187 Bias ConstOffsets 4041 2380 4043: 7(f16vec4) CompositeExtract 4042 1 Store 4022(texel) 4043 4044: 47(int) CompositeExtract 4042 0 4045: 357 Load 359(s2DRect) 4046: 53(fvec2) Load 148(c2) 4047:3102(ResType) ImageSparseGather 4045 4046 2187 ConstOffsets 2380 4048: 7(f16vec4) CompositeExtract 4047 1 Store 4022(texel) 4048 4049: 47(int) CompositeExtract 4047 0 4050: 357 Load 359(s2DRect) 4051:154(f16vec2) Load 156(f16c2) 4052:3102(ResType) ImageSparseGather 4050 4051 2187 ConstOffsets 2380 4053: 7(f16vec4) CompositeExtract 4052 1 Store 4022(texel) 4053 4054: 47(int) CompositeExtract 4052 0 4055: 224 Load 226(s2DShadow) 4056: 53(fvec2) Load 148(c2) 4057: 52(float) Load 215(compare) 4058:3102(ResType) ImageSparseDrefGather 4055 4056 4057 ConstOffsets 2380 4059: 7(f16vec4) CompositeExtract 4058 1 Store 4022(texel) 4059 4060: 47(int) CompositeExtract 4058 0 4061: 224 Load 226(s2DShadow) 4062:154(f16vec2) Load 156(f16c2) 4063: 52(float) Load 215(compare) 4064:3102(ResType) ImageSparseDrefGather 4061 4062 4063 ConstOffsets 2380 4065: 7(f16vec4) CompositeExtract 4064 1 Store 4022(texel) 4065 4066: 47(int) CompositeExtract 4064 0 4067: 337 Load 339(s2DArrayShadow) 4068: 167(fvec3) Load 169(c3) 4069: 52(float) Load 215(compare) 4070:3102(ResType) ImageSparseDrefGather 4067 4068 4069 ConstOffsets 2380 4071: 7(f16vec4) CompositeExtract 4070 1 Store 4022(texel) 4071 4072: 47(int) CompositeExtract 4070 0 4073: 337 Load 339(s2DArrayShadow) 4074:175(f16vec3) Load 177(f16c3) 4075: 52(float) Load 215(compare) 4076:3102(ResType) ImageSparseDrefGather 4073 4074 4075 ConstOffsets 2380 4077: 7(f16vec4) CompositeExtract 4076 1 Store 4022(texel) 4077 4078: 47(int) CompositeExtract 4076 0 4079: 371 Load 373(s2DRectShadow) 4080: 53(fvec2) Load 148(c2) 4081: 52(float) Load 215(compare) 4082:3102(ResType) ImageSparseDrefGather 4079 4080 4081 ConstOffsets 2380 4083: 7(f16vec4) CompositeExtract 4082 1 Store 4022(texel) 4083 4084: 47(int) CompositeExtract 4082 0 4085: 371 Load 373(s2DRectShadow) 4086:154(f16vec2) Load 156(f16c2) 4087: 52(float) Load 215(compare) 4088:3102(ResType) ImageSparseDrefGather 4085 4086 4087 ConstOffsets 2380 4089: 7(f16vec4) CompositeExtract 4088 1 Store 4022(texel) 4089 4090: 47(int) CompositeExtract 4088 0 4091: 7(f16vec4) Load 4022(texel) ReturnValue 4091 FunctionEnd 91(testSparseTextureGatherLod(): 7(f16vec4) Function None 8 92: Label 4094(texel): 64(ptr) Variable Function Store 4094(texel) 121 4095: 143 Load 145(s2D) 4096: 53(fvec2) Load 148(c2) 4097: 52(float) Load 565(lod) 4098:3102(ResType) ImageSparseGather 4095 4096 2187 Lod 4097 4099: 7(f16vec4) CompositeExtract 4098 1 Store 4094(texel) 4099 4100: 47(int) CompositeExtract 4098 0 4101: 143 Load 145(s2D) 4102:154(f16vec2) Load 156(f16c2) 4103:6(float16_t) Load 572(f16lod) 4104:3102(ResType) ImageSparseGather 4101 4102 2187 Lod 4103 4105: 7(f16vec4) CompositeExtract 4104 1 Store 4094(texel) 4105 4106: 47(int) CompositeExtract 4104 0 4107: 284 Load 286(s2DArray) 4108: 167(fvec3) Load 169(c3) 4109: 52(float) Load 565(lod) 4110:3102(ResType) ImageSparseGather 4107 4108 2187 Lod 4109 4111: 7(f16vec4) CompositeExtract 4110 1 Store 4094(texel) 4111 4112: 47(int) CompositeExtract 4110 0 4113: 284 Load 286(s2DArray) 4114:175(f16vec3) Load 177(f16c3) 4115:6(float16_t) Load 572(f16lod) 4116:3102(ResType) ImageSparseGather 4113 4114 2187 Lod 4115 4117: 7(f16vec4) CompositeExtract 4116 1 Store 4094(texel) 4117 4118: 47(int) CompositeExtract 4116 0 4119: 184 Load 186(sCube) 4120: 167(fvec3) Load 169(c3) 4121: 52(float) Load 565(lod) 4122:3102(ResType) ImageSparseGather 4119 4120 2187 Lod 4121 4123: 7(f16vec4) CompositeExtract 4122 1 Store 4094(texel) 4123 4124: 47(int) CompositeExtract 4122 0 4125: 184 Load 186(sCube) 4126:175(f16vec3) Load 177(f16c3) 4127:6(float16_t) Load 572(f16lod) 4128:3102(ResType) ImageSparseGather 4125 4126 2187 Lod 4127 4129: 7(f16vec4) CompositeExtract 4128 1 Store 4094(texel) 4129 4130: 47(int) CompositeExtract 4128 0 4131: 299 Load 301(sCubeArray) 4132: 249(fvec4) Load 251(c4) 4133: 52(float) Load 565(lod) 4134:3102(ResType) ImageSparseGather 4131 4132 2187 Lod 4133 4135: 7(f16vec4) CompositeExtract 4134 1 Store 4094(texel) 4135 4136: 47(int) CompositeExtract 4134 0 4137: 299 Load 301(sCubeArray) 4138: 7(f16vec4) Load 309(f16c4) 4139:6(float16_t) Load 572(f16lod) 4140:3102(ResType) ImageSparseGather 4137 4138 2187 Lod 4139 4141: 7(f16vec4) CompositeExtract 4140 1 Store 4094(texel) 4141 4142: 47(int) CompositeExtract 4140 0 4143: 7(f16vec4) Load 4094(texel) ReturnValue 4143 FunctionEnd 93(testSparseTextureGatherLodOffset(): 7(f16vec4) Function None 8 94: Label 4146(texel): 64(ptr) Variable Function Store 4146(texel) 121 4147: 143 Load 145(s2D) 4148: 53(fvec2) Load 148(c2) 4149: 52(float) Load 565(lod) 4150:3102(ResType) ImageSparseGather 4147 4148 2187 Lod ConstOffset 4149 722 4151: 7(f16vec4) CompositeExtract 4150 1 Store 4146(texel) 4151 4152: 47(int) CompositeExtract 4150 0 4153: 143 Load 145(s2D) 4154:154(f16vec2) Load 156(f16c2) 4155:6(float16_t) Load 572(f16lod) 4156:3102(ResType) ImageSparseGather 4153 4154 2187 Lod ConstOffset 4155 722 4157: 7(f16vec4) CompositeExtract 4156 1 Store 4146(texel) 4157 4158: 47(int) CompositeExtract 4156 0 4159: 284 Load 286(s2DArray) 4160: 167(fvec3) Load 169(c3) 4161: 52(float) Load 565(lod) 4162:3102(ResType) ImageSparseGather 4159 4160 2187 Lod ConstOffset 4161 722 4163: 7(f16vec4) CompositeExtract 4162 1 Store 4146(texel) 4163 4164: 47(int) CompositeExtract 4162 0 4165: 284 Load 286(s2DArray) 4166:175(f16vec3) Load 177(f16c3) 4167:6(float16_t) Load 572(f16lod) 4168:3102(ResType) ImageSparseGather 4165 4166 2187 Lod ConstOffset 4167 722 4169: 7(f16vec4) CompositeExtract 4168 1 Store 4146(texel) 4169 4170: 47(int) CompositeExtract 4168 0 4171: 7(f16vec4) Load 4146(texel) ReturnValue 4171 FunctionEnd 95(testSparseTextureGatherLodOffsets(): 7(f16vec4) Function None 8 96: Label 4174(texel): 64(ptr) Variable Function Store 4174(texel) 121 4175: 143 Load 145(s2D) 4176: 53(fvec2) Load 148(c2) 4177: 52(float) Load 565(lod) 4178:3102(ResType) ImageSparseGather 4175 4176 2187 Lod ConstOffsets 4177 2380 4179: 7(f16vec4) CompositeExtract 4178 1 Store 4174(texel) 4179 4180: 47(int) CompositeExtract 4178 0 4181: 143 Load 145(s2D) 4182:154(f16vec2) Load 156(f16c2) 4183:6(float16_t) Load 572(f16lod) 4184:3102(ResType) ImageSparseGather 4181 4182 2187 Lod ConstOffsets 4183 2380 4185: 7(f16vec4) CompositeExtract 4184 1 Store 4174(texel) 4185 4186: 47(int) CompositeExtract 4184 0 4187: 284 Load 286(s2DArray) 4188: 167(fvec3) Load 169(c3) 4189: 52(float) Load 565(lod) 4190:3102(ResType) ImageSparseGather 4187 4188 2187 Lod ConstOffsets 4189 2380 4191: 7(f16vec4) CompositeExtract 4190 1 Store 4174(texel) 4191 4192: 47(int) CompositeExtract 4190 0 4193: 284 Load 286(s2DArray) 4194:175(f16vec3) Load 177(f16c3) 4195:6(float16_t) Load 572(f16lod) 4196:3102(ResType) ImageSparseGather 4193 4194 2187 Lod ConstOffsets 4195 2380 4197: 7(f16vec4) CompositeExtract 4196 1 Store 4174(texel) 4197 4198: 47(int) CompositeExtract 4196 0 4199: 7(f16vec4) Load 4174(texel) ReturnValue 4199 FunctionEnd 97(testSparseImageLoad(): 7(f16vec4) Function None 8 98: Label 4202(texel): 64(ptr) Variable Function Store 4202(texel) 121 4203: 2962 Load 2964(i2D) 4204: 53(fvec2) Load 148(c2) 4205: 721(ivec2) ConvertFToS 4204 4206:3102(ResType) ImageSparseRead 4203 4205 4207: 7(f16vec4) CompositeExtract 4206 1 Store 4202(texel) 4207 4208: 47(int) CompositeExtract 4206 0 4209: 2971 Load 2973(i3D) 4210: 167(fvec3) Load 169(c3) 4211: 734(ivec3) ConvertFToS 4210 4212:3102(ResType) ImageSparseRead 4209 4211 4213: 7(f16vec4) CompositeExtract 4212 1 Store 4202(texel) 4213 4214: 47(int) CompositeExtract 4212 0 4215: 2980 Load 2982(i2DRect) 4216: 53(fvec2) Load 148(c2) 4217: 721(ivec2) ConvertFToS 4216 4218:3102(ResType) ImageSparseRead 4215 4217 4219: 7(f16vec4) CompositeExtract 4218 1 Store 4202(texel) 4219 4220: 47(int) CompositeExtract 4218 0 4221: 2989 Load 2991(iCube) 4222: 167(fvec3) Load 169(c3) 4223: 734(ivec3) ConvertFToS 4222 4224:3102(ResType) ImageSparseRead 4221 4223 4225: 7(f16vec4) CompositeExtract 4224 1 Store 4202(texel) 4225 4226: 47(int) CompositeExtract 4224 0 4227: 3016 Load 3018(i2DArray) 4228: 167(fvec3) Load 169(c3) 4229: 734(ivec3) ConvertFToS 4228 4230:3102(ResType) ImageSparseRead 4227 4229 4231: 7(f16vec4) CompositeExtract 4230 1 Store 4202(texel) 4231 4232: 47(int) CompositeExtract 4230 0 4233: 3025 Load 3027(iCubeArray) 4234: 167(fvec3) Load 169(c3) 4235: 734(ivec3) ConvertFToS 4234 4236:3102(ResType) ImageSparseRead 4233 4235 4237: 7(f16vec4) CompositeExtract 4236 1 Store 4202(texel) 4237 4238: 47(int) CompositeExtract 4236 0 4239: 3034 Load 3036(i2DMS) 4240: 53(fvec2) Load 148(c2) 4241: 721(ivec2) ConvertFToS 4240 4242:3102(ResType) ImageSparseRead 4239 4241 Sample 709 4243: 7(f16vec4) CompositeExtract 4242 1 Store 4202(texel) 4243 4244: 47(int) CompositeExtract 4242 0 4245: 3043 Load 3045(i2DMSArray) 4246: 167(fvec3) Load 169(c3) 4247: 734(ivec3) ConvertFToS 4246 4248:3102(ResType) ImageSparseRead 4245 4247 Sample 1326 4249: 7(f16vec4) CompositeExtract 4248 1 Store 4202(texel) 4249 4250: 47(int) CompositeExtract 4248 0 4251: 7(f16vec4) Load 4202(texel) ReturnValue 4251 FunctionEnd 99(testSparseTextureClamp(): 7(f16vec4) Function None 8 100: Label 4254(texel): 64(ptr) Variable Function Store 4254(texel) 121 4255: 143 Load 145(s2D) 4256: 53(fvec2) Load 148(c2) 4258: 52(float) Load 4257(lodClamp) 4259:3102(ResType) ImageSparseSampleImplicitLod 4255 4256 MinLod 4258 4260: 7(f16vec4) CompositeExtract 4259 1 Store 4254(texel) 4260 4261: 47(int) CompositeExtract 4259 0 4262: 143 Load 145(s2D) 4263:154(f16vec2) Load 156(f16c2) 4265:6(float16_t) Load 4264(f16lodClamp) 4266:6(float16_t) Load 137(f16bias) 4267:3102(ResType) ImageSparseSampleImplicitLod 4262 4263 Bias MinLod 4266 4265 4268: 7(f16vec4) CompositeExtract 4267 1 Store 4254(texel) 4268 4269: 47(int) CompositeExtract 4267 0 4270: 163 Load 165(s3D) 4271: 167(fvec3) Load 169(c3) 4272: 52(float) Load 4257(lodClamp) 4273:3102(ResType) ImageSparseSampleImplicitLod 4270 4271 MinLod 4272 4274: 7(f16vec4) CompositeExtract 4273 1 Store 4254(texel) 4274 4275: 47(int) CompositeExtract 4273 0 4276: 163 Load 165(s3D) 4277:175(f16vec3) Load 177(f16c3) 4278:6(float16_t) Load 4264(f16lodClamp) 4279:6(float16_t) Load 137(f16bias) 4280:3102(ResType) ImageSparseSampleImplicitLod 4276 4277 Bias MinLod 4279 4278 4281: 7(f16vec4) CompositeExtract 4280 1 Store 4254(texel) 4281 4282: 47(int) CompositeExtract 4280 0 4283: 184 Load 186(sCube) 4284: 167(fvec3) Load 169(c3) 4285: 52(float) Load 4257(lodClamp) 4286:3102(ResType) ImageSparseSampleImplicitLod 4283 4284 MinLod 4285 4287: 7(f16vec4) CompositeExtract 4286 1 Store 4254(texel) 4287 4288: 47(int) CompositeExtract 4286 0 4289: 184 Load 186(sCube) 4290:175(f16vec3) Load 177(f16c3) 4291:6(float16_t) Load 4264(f16lodClamp) 4292:6(float16_t) Load 137(f16bias) 4293:3102(ResType) ImageSparseSampleImplicitLod 4289 4290 Bias MinLod 4292 4291 4294: 7(f16vec4) CompositeExtract 4293 1 Store 4254(texel) 4294 4295: 47(int) CompositeExtract 4293 0 4296: 224 Load 226(s2DShadow) 4297: 167(fvec3) Load 169(c3) 4298: 52(float) Load 4257(lodClamp) 4299: 208(ptr) AccessChain 4254(texel) 207 4300: 52(float) CompositeExtract 4297 2 4301:3138(ResType) ImageSparseSampleDrefImplicitLod 4296 4297 4300 MinLod 4298 4302:6(float16_t) CompositeExtract 4301 1 Store 4299 4302 4303: 47(int) CompositeExtract 4301 0 4304: 224 Load 226(s2DShadow) 4305:154(f16vec2) Load 156(f16c2) 4306: 52(float) Load 215(compare) 4307:6(float16_t) Load 4264(f16lodClamp) 4308: 208(ptr) AccessChain 4254(texel) 207 4309:6(float16_t) Load 137(f16bias) 4310:3138(ResType) ImageSparseSampleDrefImplicitLod 4304 4305 4306 Bias MinLod 4309 4307 4311:6(float16_t) CompositeExtract 4310 1 Store 4308 4311 4312: 47(int) CompositeExtract 4310 0 4313: 245 Load 247(sCubeShadow) 4314: 249(fvec4) Load 251(c4) 4315: 52(float) Load 4257(lodClamp) 4316: 208(ptr) AccessChain 4254(texel) 207 4317: 52(float) CompositeExtract 4314 3 4318:3138(ResType) ImageSparseSampleDrefImplicitLod 4313 4314 4317 MinLod 4315 4319:6(float16_t) CompositeExtract 4318 1 Store 4316 4319 4320: 47(int) CompositeExtract 4318 0 4321: 245 Load 247(sCubeShadow) 4322:175(f16vec3) Load 177(f16c3) 4323: 52(float) Load 215(compare) 4324:6(float16_t) Load 4264(f16lodClamp) 4325: 208(ptr) AccessChain 4254(texel) 207 4326:6(float16_t) Load 137(f16bias) 4327:3138(ResType) ImageSparseSampleDrefImplicitLod 4321 4322 4323 Bias MinLod 4326 4324 4328:6(float16_t) CompositeExtract 4327 1 Store 4325 4328 4329: 47(int) CompositeExtract 4327 0 4330: 284 Load 286(s2DArray) 4331: 167(fvec3) Load 169(c3) 4332: 52(float) Load 4257(lodClamp) 4333:3102(ResType) ImageSparseSampleImplicitLod 4330 4331 MinLod 4332 4334: 7(f16vec4) CompositeExtract 4333 1 Store 4254(texel) 4334 4335: 47(int) CompositeExtract 4333 0 4336: 284 Load 286(s2DArray) 4337:175(f16vec3) Load 177(f16c3) 4338:6(float16_t) Load 4264(f16lodClamp) 4339:6(float16_t) Load 137(f16bias) 4340:3102(ResType) ImageSparseSampleImplicitLod 4336 4337 Bias MinLod 4339 4338 4341: 7(f16vec4) CompositeExtract 4340 1 Store 4254(texel) 4341 4342: 47(int) CompositeExtract 4340 0 4343: 299 Load 301(sCubeArray) 4344: 249(fvec4) Load 251(c4) 4345: 52(float) Load 4257(lodClamp) 4346:3102(ResType) ImageSparseSampleImplicitLod 4343 4344 MinLod 4345 4347: 7(f16vec4) CompositeExtract 4346 1 Store 4254(texel) 4347 4348: 47(int) CompositeExtract 4346 0 4349: 299 Load 301(sCubeArray) 4350: 7(f16vec4) Load 309(f16c4) 4351:6(float16_t) Load 4264(f16lodClamp) 4352:6(float16_t) Load 137(f16bias) 4353:3102(ResType) ImageSparseSampleImplicitLod 4349 4350 Bias MinLod 4352 4351 4354: 7(f16vec4) CompositeExtract 4353 1 Store 4254(texel) 4354 4355: 47(int) CompositeExtract 4353 0 4356: 337 Load 339(s2DArrayShadow) 4357: 249(fvec4) Load 251(c4) 4358: 52(float) Load 4257(lodClamp) 4359: 208(ptr) AccessChain 4254(texel) 207 4360: 52(float) CompositeExtract 4357 3 4361:3138(ResType) ImageSparseSampleDrefImplicitLod 4356 4357 4360 MinLod 4358 4362:6(float16_t) CompositeExtract 4361 1 Store 4359 4362 4363: 47(int) CompositeExtract 4361 0 4364: 337 Load 339(s2DArrayShadow) 4365:175(f16vec3) Load 177(f16c3) 4366: 52(float) Load 215(compare) 4367:6(float16_t) Load 4264(f16lodClamp) 4368: 208(ptr) AccessChain 4254(texel) 207 4369:3138(ResType) ImageSparseSampleDrefImplicitLod 4364 4365 4366 MinLod 4367 4370:6(float16_t) CompositeExtract 4369 1 Store 4368 4370 4371: 47(int) CompositeExtract 4369 0 4372: 391 Load 393(sCubeArrayShadow) 4373: 249(fvec4) Load 251(c4) 4374: 52(float) Load 215(compare) 4375: 52(float) Load 4257(lodClamp) 4376: 208(ptr) AccessChain 4254(texel) 207 4377:3138(ResType) ImageSparseSampleDrefImplicitLod 4372 4373 4374 MinLod 4375 4378:6(float16_t) CompositeExtract 4377 1 Store 4376 4378 4379: 47(int) CompositeExtract 4377 0 4380: 391 Load 393(sCubeArrayShadow) 4381: 7(f16vec4) Load 309(f16c4) 4382: 52(float) Load 215(compare) 4383:6(float16_t) Load 4264(f16lodClamp) 4384: 208(ptr) AccessChain 4254(texel) 207 4385:3138(ResType) ImageSparseSampleDrefImplicitLod 4380 4381 4382 MinLod 4383 4386:6(float16_t) CompositeExtract 4385 1 Store 4384 4386 4387: 47(int) CompositeExtract 4385 0 4388: 7(f16vec4) Load 4254(texel) ReturnValue 4388 FunctionEnd 101(testTextureClamp(): 7(f16vec4) Function None 8 102: Label 4391(texel): 64(ptr) Variable Function Store 4391(texel) 121 4392: 123 Load 125(s1D) 4393: 52(float) Load 128(c1) 4394: 52(float) Load 4257(lodClamp) 4395: 7(f16vec4) ImageSampleImplicitLod 4392 4393 MinLod 4394 4396: 7(f16vec4) Load 4391(texel) 4397: 7(f16vec4) FAdd 4396 4395 Store 4391(texel) 4397 4398: 123 Load 125(s1D) 4399:6(float16_t) Load 135(f16c1) 4400:6(float16_t) Load 4264(f16lodClamp) 4401:6(float16_t) Load 137(f16bias) 4402: 7(f16vec4) ImageSampleImplicitLod 4398 4399 Bias MinLod 4401 4400 4403: 7(f16vec4) Load 4391(texel) 4404: 7(f16vec4) FAdd 4403 4402 Store 4391(texel) 4404 4405: 143 Load 145(s2D) 4406: 53(fvec2) Load 148(c2) 4407: 52(float) Load 4257(lodClamp) 4408: 7(f16vec4) ImageSampleImplicitLod 4405 4406 MinLod 4407 4409: 7(f16vec4) Load 4391(texel) 4410: 7(f16vec4) FAdd 4409 4408 Store 4391(texel) 4410 4411: 143 Load 145(s2D) 4412:154(f16vec2) Load 156(f16c2) 4413:6(float16_t) Load 4264(f16lodClamp) 4414:6(float16_t) Load 137(f16bias) 4415: 7(f16vec4) ImageSampleImplicitLod 4411 4412 Bias MinLod 4414 4413 4416: 7(f16vec4) Load 4391(texel) 4417: 7(f16vec4) FAdd 4416 4415 Store 4391(texel) 4417 4418: 163 Load 165(s3D) 4419: 167(fvec3) Load 169(c3) 4420: 52(float) Load 4257(lodClamp) 4421: 7(f16vec4) ImageSampleImplicitLod 4418 4419 MinLod 4420 4422: 7(f16vec4) Load 4391(texel) 4423: 7(f16vec4) FAdd 4422 4421 Store 4391(texel) 4423 4424: 163 Load 165(s3D) 4425:175(f16vec3) Load 177(f16c3) 4426:6(float16_t) Load 4264(f16lodClamp) 4427:6(float16_t) Load 137(f16bias) 4428: 7(f16vec4) ImageSampleImplicitLod 4424 4425 Bias MinLod 4427 4426 4429: 7(f16vec4) Load 4391(texel) 4430: 7(f16vec4) FAdd 4429 4428 Store 4391(texel) 4430 4431: 184 Load 186(sCube) 4432: 167(fvec3) Load 169(c3) 4433: 52(float) Load 4257(lodClamp) 4434: 7(f16vec4) ImageSampleImplicitLod 4431 4432 MinLod 4433 4435: 7(f16vec4) Load 4391(texel) 4436: 7(f16vec4) FAdd 4435 4434 Store 4391(texel) 4436 4437: 184 Load 186(sCube) 4438:175(f16vec3) Load 177(f16c3) 4439:6(float16_t) Load 4264(f16lodClamp) 4440:6(float16_t) Load 137(f16bias) 4441: 7(f16vec4) ImageSampleImplicitLod 4437 4438 Bias MinLod 4440 4439 4442: 7(f16vec4) Load 4391(texel) 4443: 7(f16vec4) FAdd 4442 4441 Store 4391(texel) 4443 4444: 199 Load 201(s1DShadow) 4445: 167(fvec3) Load 169(c3) 4446: 52(float) Load 4257(lodClamp) 4447: 52(float) CompositeExtract 4445 2 4448:6(float16_t) ImageSampleDrefImplicitLod 4444 4445 4447 MinLod 4446 4449: 208(ptr) AccessChain 4391(texel) 207 4450:6(float16_t) Load 4449 4451:6(float16_t) FAdd 4450 4448 4452: 208(ptr) AccessChain 4391(texel) 207 Store 4452 4451 4453: 199 Load 201(s1DShadow) 4454:154(f16vec2) Load 156(f16c2) 4455: 52(float) Load 215(compare) 4456:6(float16_t) Load 4264(f16lodClamp) 4457:6(float16_t) Load 137(f16bias) 4458:6(float16_t) ImageSampleDrefImplicitLod 4453 4454 4455 Bias MinLod 4457 4456 4459: 208(ptr) AccessChain 4391(texel) 207 4460:6(float16_t) Load 4459 4461:6(float16_t) FAdd 4460 4458 4462: 208(ptr) AccessChain 4391(texel) 207 Store 4462 4461 4463: 224 Load 226(s2DShadow) 4464: 167(fvec3) Load 169(c3) 4465: 52(float) Load 4257(lodClamp) 4466: 52(float) CompositeExtract 4464 2 4467:6(float16_t) ImageSampleDrefImplicitLod 4463 4464 4466 MinLod 4465 4468: 208(ptr) AccessChain 4391(texel) 207 4469:6(float16_t) Load 4468 4470:6(float16_t) FAdd 4469 4467 4471: 208(ptr) AccessChain 4391(texel) 207 Store 4471 4470 4472: 224 Load 226(s2DShadow) 4473:154(f16vec2) Load 156(f16c2) 4474: 52(float) Load 215(compare) 4475:6(float16_t) Load 4264(f16lodClamp) 4476:6(float16_t) Load 137(f16bias) 4477:6(float16_t) ImageSampleDrefImplicitLod 4472 4473 4474 Bias MinLod 4476 4475 4478: 208(ptr) AccessChain 4391(texel) 207 4479:6(float16_t) Load 4478 4480:6(float16_t) FAdd 4479 4477 4481: 208(ptr) AccessChain 4391(texel) 207 Store 4481 4480 4482: 245 Load 247(sCubeShadow) 4483: 249(fvec4) Load 251(c4) 4484: 52(float) Load 4257(lodClamp) 4485: 52(float) CompositeExtract 4483 3 4486:6(float16_t) ImageSampleDrefImplicitLod 4482 4483 4485 MinLod 4484 4487: 208(ptr) AccessChain 4391(texel) 207 4488:6(float16_t) Load 4487 4489:6(float16_t) FAdd 4488 4486 4490: 208(ptr) AccessChain 4391(texel) 207 Store 4490 4489 4491: 245 Load 247(sCubeShadow) 4492:175(f16vec3) Load 177(f16c3) 4493: 52(float) Load 215(compare) 4494:6(float16_t) Load 4264(f16lodClamp) 4495:6(float16_t) Load 137(f16bias) 4496:6(float16_t) ImageSampleDrefImplicitLod 4491 4492 4493 Bias MinLod 4495 4494 4497: 208(ptr) AccessChain 4391(texel) 207 4498:6(float16_t) Load 4497 4499:6(float16_t) FAdd 4498 4496 4500: 208(ptr) AccessChain 4391(texel) 207 Store 4500 4499 4501: 269 Load 271(s1DArray) 4502: 53(fvec2) Load 148(c2) 4503: 52(float) Load 4257(lodClamp) 4504: 7(f16vec4) ImageSampleImplicitLod 4501 4502 MinLod 4503 4505: 7(f16vec4) Load 4391(texel) 4506: 7(f16vec4) FAdd 4505 4504 Store 4391(texel) 4506 4507: 269 Load 271(s1DArray) 4508:154(f16vec2) Load 156(f16c2) 4509:6(float16_t) Load 4264(f16lodClamp) 4510:6(float16_t) Load 137(f16bias) 4511: 7(f16vec4) ImageSampleImplicitLod 4507 4508 Bias MinLod 4510 4509 4512: 7(f16vec4) Load 4391(texel) 4513: 7(f16vec4) FAdd 4512 4511 Store 4391(texel) 4513 4514: 284 Load 286(s2DArray) 4515: 167(fvec3) Load 169(c3) 4516: 52(float) Load 4257(lodClamp) 4517: 7(f16vec4) ImageSampleImplicitLod 4514 4515 MinLod 4516 4518: 7(f16vec4) Load 4391(texel) 4519: 7(f16vec4) FAdd 4518 4517 Store 4391(texel) 4519 4520: 284 Load 286(s2DArray) 4521:175(f16vec3) Load 177(f16c3) 4522:6(float16_t) Load 4264(f16lodClamp) 4523:6(float16_t) Load 137(f16bias) 4524: 7(f16vec4) ImageSampleImplicitLod 4520 4521 Bias MinLod 4523 4522 4525: 7(f16vec4) Load 4391(texel) 4526: 7(f16vec4) FAdd 4525 4524 Store 4391(texel) 4526 4527: 299 Load 301(sCubeArray) 4528: 249(fvec4) Load 251(c4) 4529: 52(float) Load 4257(lodClamp) 4530: 7(f16vec4) ImageSampleImplicitLod 4527 4528 MinLod 4529 4531: 7(f16vec4) Load 4391(texel) 4532: 7(f16vec4) FAdd 4531 4530 Store 4391(texel) 4532 4533: 299 Load 301(sCubeArray) 4534: 7(f16vec4) Load 309(f16c4) 4535:6(float16_t) Load 4264(f16lodClamp) 4536:6(float16_t) Load 137(f16bias) 4537: 7(f16vec4) ImageSampleImplicitLod 4533 4534 Bias MinLod 4536 4535 4538: 7(f16vec4) Load 4391(texel) 4539: 7(f16vec4) FAdd 4538 4537 Store 4391(texel) 4539 4540: 316 Load 318(s1DArrayShadow) 4541: 167(fvec3) Load 169(c3) 4542: 52(float) Load 4257(lodClamp) 4543: 52(float) CompositeExtract 4541 2 4544:6(float16_t) ImageSampleDrefImplicitLod 4540 4541 4543 MinLod 4542 4545: 208(ptr) AccessChain 4391(texel) 207 4546:6(float16_t) Load 4545 4547:6(float16_t) FAdd 4546 4544 4548: 208(ptr) AccessChain 4391(texel) 207 Store 4548 4547 4549: 316 Load 318(s1DArrayShadow) 4550:154(f16vec2) Load 156(f16c2) 4551: 52(float) Load 215(compare) 4552:6(float16_t) Load 4264(f16lodClamp) 4553:6(float16_t) Load 137(f16bias) 4554:6(float16_t) ImageSampleDrefImplicitLod 4549 4550 4551 Bias MinLod 4553 4552 4555: 208(ptr) AccessChain 4391(texel) 207 4556:6(float16_t) Load 4555 4557:6(float16_t) FAdd 4556 4554 4558: 208(ptr) AccessChain 4391(texel) 207 Store 4558 4557 4559: 337 Load 339(s2DArrayShadow) 4560: 249(fvec4) Load 251(c4) 4561: 52(float) Load 4257(lodClamp) 4562: 52(float) CompositeExtract 4560 3 4563:6(float16_t) ImageSampleDrefImplicitLod 4559 4560 4562 MinLod 4561 4564: 208(ptr) AccessChain 4391(texel) 207 4565:6(float16_t) Load 4564 4566:6(float16_t) FAdd 4565 4563 4567: 208(ptr) AccessChain 4391(texel) 207 Store 4567 4566 4568: 337 Load 339(s2DArrayShadow) 4569:175(f16vec3) Load 177(f16c3) 4570: 52(float) Load 215(compare) 4571:6(float16_t) Load 4264(f16lodClamp) 4572:6(float16_t) ImageSampleDrefImplicitLod 4568 4569 4570 MinLod 4571 4573: 208(ptr) AccessChain 4391(texel) 207 4574:6(float16_t) Load 4573 4575:6(float16_t) FAdd 4574 4572 4576: 208(ptr) AccessChain 4391(texel) 207 Store 4576 4575 4577: 391 Load 393(sCubeArrayShadow) 4578: 249(fvec4) Load 251(c4) 4579: 52(float) Load 215(compare) 4580: 52(float) Load 4257(lodClamp) 4581:6(float16_t) ImageSampleDrefImplicitLod 4577 4578 4579 MinLod 4580 4582: 208(ptr) AccessChain 4391(texel) 207 4583:6(float16_t) Load 4582 4584:6(float16_t) FAdd 4583 4581 4585: 208(ptr) AccessChain 4391(texel) 207 Store 4585 4584 4586: 391 Load 393(sCubeArrayShadow) 4587: 7(f16vec4) Load 309(f16c4) 4588: 52(float) Load 215(compare) 4589:6(float16_t) Load 4264(f16lodClamp) 4590:6(float16_t) ImageSampleDrefImplicitLod 4586 4587 4588 MinLod 4589 4591: 208(ptr) AccessChain 4391(texel) 207 4592:6(float16_t) Load 4591 4593:6(float16_t) FAdd 4592 4590 4594: 208(ptr) AccessChain 4391(texel) 207 Store 4594 4593 4595: 7(f16vec4) Load 4391(texel) ReturnValue 4595 FunctionEnd 103(testSparseTextureOffsetClamp(): 7(f16vec4) Function None 8 104: Label 4598(texel): 64(ptr) Variable Function Store 4598(texel) 121 4599: 143 Load 145(s2D) 4600: 53(fvec2) Load 148(c2) 4601: 52(float) Load 4257(lodClamp) 4602:3102(ResType) ImageSparseSampleImplicitLod 4599 4600 ConstOffset MinLod 722 4601 4603: 7(f16vec4) CompositeExtract 4602 1 Store 4598(texel) 4603 4604: 47(int) CompositeExtract 4602 0 4605: 143 Load 145(s2D) 4606:154(f16vec2) Load 156(f16c2) 4607:6(float16_t) Load 4264(f16lodClamp) 4608:6(float16_t) Load 137(f16bias) 4609:3102(ResType) ImageSparseSampleImplicitLod 4605 4606 Bias ConstOffset MinLod 4608 722 4607 4610: 7(f16vec4) CompositeExtract 4609 1 Store 4598(texel) 4610 4611: 47(int) CompositeExtract 4609 0 4612: 163 Load 165(s3D) 4613: 167(fvec3) Load 169(c3) 4614: 52(float) Load 4257(lodClamp) 4615:3102(ResType) ImageSparseSampleImplicitLod 4612 4613 ConstOffset MinLod 735 4614 4616: 7(f16vec4) CompositeExtract 4615 1 Store 4598(texel) 4616 4617: 47(int) CompositeExtract 4615 0 4618: 163 Load 165(s3D) 4619:175(f16vec3) Load 177(f16c3) 4620:6(float16_t) Load 4264(f16lodClamp) 4621:6(float16_t) Load 137(f16bias) 4622:3102(ResType) ImageSparseSampleImplicitLod 4618 4619 Bias ConstOffset MinLod 4621 735 4620 4623: 7(f16vec4) CompositeExtract 4622 1 Store 4598(texel) 4623 4624: 47(int) CompositeExtract 4622 0 4625: 224 Load 226(s2DShadow) 4626: 167(fvec3) Load 169(c3) 4627: 52(float) Load 4257(lodClamp) 4628: 208(ptr) AccessChain 4598(texel) 207 4629: 52(float) CompositeExtract 4626 2 4630:3138(ResType) ImageSparseSampleDrefImplicitLod 4625 4626 4629 ConstOffset MinLod 722 4627 4631:6(float16_t) CompositeExtract 4630 1 Store 4628 4631 4632: 47(int) CompositeExtract 4630 0 4633: 224 Load 226(s2DShadow) 4634:154(f16vec2) Load 156(f16c2) 4635: 52(float) Load 215(compare) 4636:6(float16_t) Load 4264(f16lodClamp) 4637: 208(ptr) AccessChain 4598(texel) 207 4638:6(float16_t) Load 137(f16bias) 4639:3138(ResType) ImageSparseSampleDrefImplicitLod 4633 4634 4635 Bias ConstOffset MinLod 4638 722 4636 4640:6(float16_t) CompositeExtract 4639 1 Store 4637 4640 4641: 47(int) CompositeExtract 4639 0 4642: 284 Load 286(s2DArray) 4643: 167(fvec3) Load 169(c3) 4644: 52(float) Load 4257(lodClamp) 4645:3102(ResType) ImageSparseSampleImplicitLod 4642 4643 ConstOffset MinLod 722 4644 4646: 7(f16vec4) CompositeExtract 4645 1 Store 4598(texel) 4646 4647: 47(int) CompositeExtract 4645 0 4648: 284 Load 286(s2DArray) 4649:175(f16vec3) Load 177(f16c3) 4650:6(float16_t) Load 4264(f16lodClamp) 4651:6(float16_t) Load 137(f16bias) 4652:3102(ResType) ImageSparseSampleImplicitLod 4648 4649 Bias ConstOffset MinLod 4651 722 4650 4653: 7(f16vec4) CompositeExtract 4652 1 Store 4598(texel) 4653 4654: 47(int) CompositeExtract 4652 0 4655: 337 Load 339(s2DArrayShadow) 4656: 249(fvec4) Load 251(c4) 4657: 52(float) Load 4257(lodClamp) 4658: 208(ptr) AccessChain 4598(texel) 207 4659: 52(float) CompositeExtract 4656 3 4660:3138(ResType) ImageSparseSampleDrefImplicitLod 4655 4656 4659 ConstOffset MinLod 722 4657 4661:6(float16_t) CompositeExtract 4660 1 Store 4658 4661 4662: 47(int) CompositeExtract 4660 0 4663: 337 Load 339(s2DArrayShadow) 4664:175(f16vec3) Load 177(f16c3) 4665: 52(float) Load 215(compare) 4666:6(float16_t) Load 4264(f16lodClamp) 4667: 208(ptr) AccessChain 4598(texel) 207 4668:3138(ResType) ImageSparseSampleDrefImplicitLod 4663 4664 4665 ConstOffset MinLod 722 4666 4669:6(float16_t) CompositeExtract 4668 1 Store 4667 4669 4670: 47(int) CompositeExtract 4668 0 4671: 7(f16vec4) Load 4598(texel) ReturnValue 4671 FunctionEnd 105(testTextureOffsetClamp(): 7(f16vec4) Function None 8 106: Label 4674(texel): 64(ptr) Variable Function Store 4674(texel) 121 4675: 123 Load 125(s1D) 4676: 52(float) Load 128(c1) 4677: 52(float) Load 4257(lodClamp) 4678: 7(f16vec4) ImageSampleImplicitLod 4675 4676 ConstOffset MinLod 709 4677 4679: 7(f16vec4) Load 4674(texel) 4680: 7(f16vec4) FAdd 4679 4678 Store 4674(texel) 4680 4681: 123 Load 125(s1D) 4682:6(float16_t) Load 135(f16c1) 4683:6(float16_t) Load 4264(f16lodClamp) 4684:6(float16_t) Load 137(f16bias) 4685: 7(f16vec4) ImageSampleImplicitLod 4681 4682 Bias ConstOffset MinLod 4684 709 4683 4686: 7(f16vec4) Load 4674(texel) 4687: 7(f16vec4) FAdd 4686 4685 Store 4674(texel) 4687 4688: 143 Load 145(s2D) 4689: 53(fvec2) Load 148(c2) 4690: 52(float) Load 4257(lodClamp) 4691: 7(f16vec4) ImageSampleImplicitLod 4688 4689 ConstOffset MinLod 722 4690 4692: 7(f16vec4) Load 4674(texel) 4693: 7(f16vec4) FAdd 4692 4691 Store 4674(texel) 4693 4694: 143 Load 145(s2D) 4695:154(f16vec2) Load 156(f16c2) 4696:6(float16_t) Load 4264(f16lodClamp) 4697:6(float16_t) Load 137(f16bias) 4698: 7(f16vec4) ImageSampleImplicitLod 4694 4695 Bias ConstOffset MinLod 4697 722 4696 4699: 7(f16vec4) Load 4674(texel) 4700: 7(f16vec4) FAdd 4699 4698 Store 4674(texel) 4700 4701: 163 Load 165(s3D) 4702: 167(fvec3) Load 169(c3) 4703: 52(float) Load 4257(lodClamp) 4704: 7(f16vec4) ImageSampleImplicitLod 4701 4702 ConstOffset MinLod 735 4703 4705: 7(f16vec4) Load 4674(texel) 4706: 7(f16vec4) FAdd 4705 4704 Store 4674(texel) 4706 4707: 163 Load 165(s3D) 4708:175(f16vec3) Load 177(f16c3) 4709:6(float16_t) Load 4264(f16lodClamp) 4710:6(float16_t) Load 137(f16bias) 4711: 7(f16vec4) ImageSampleImplicitLod 4707 4708 Bias ConstOffset MinLod 4710 735 4709 4712: 7(f16vec4) Load 4674(texel) 4713: 7(f16vec4) FAdd 4712 4711 Store 4674(texel) 4713 4714: 199 Load 201(s1DShadow) 4715: 167(fvec3) Load 169(c3) 4716: 52(float) Load 4257(lodClamp) 4717: 52(float) CompositeExtract 4715 2 4718:6(float16_t) ImageSampleDrefImplicitLod 4714 4715 4717 ConstOffset MinLod 709 4716 4719: 208(ptr) AccessChain 4674(texel) 207 4720:6(float16_t) Load 4719 4721:6(float16_t) FAdd 4720 4718 4722: 208(ptr) AccessChain 4674(texel) 207 Store 4722 4721 4723: 199 Load 201(s1DShadow) 4724:154(f16vec2) Load 156(f16c2) 4725: 52(float) Load 215(compare) 4726:6(float16_t) Load 4264(f16lodClamp) 4727:6(float16_t) Load 137(f16bias) 4728:6(float16_t) ImageSampleDrefImplicitLod 4723 4724 4725 Bias ConstOffset MinLod 4727 709 4726 4729: 208(ptr) AccessChain 4674(texel) 207 4730:6(float16_t) Load 4729 4731:6(float16_t) FAdd 4730 4728 4732: 208(ptr) AccessChain 4674(texel) 207 Store 4732 4731 4733: 224 Load 226(s2DShadow) 4734: 167(fvec3) Load 169(c3) 4735: 52(float) Load 4257(lodClamp) 4736: 52(float) CompositeExtract 4734 2 4737:6(float16_t) ImageSampleDrefImplicitLod 4733 4734 4736 ConstOffset MinLod 722 4735 4738: 208(ptr) AccessChain 4674(texel) 207 4739:6(float16_t) Load 4738 4740:6(float16_t) FAdd 4739 4737 4741: 208(ptr) AccessChain 4674(texel) 207 Store 4741 4740 4742: 224 Load 226(s2DShadow) 4743:154(f16vec2) Load 156(f16c2) 4744: 52(float) Load 215(compare) 4745:6(float16_t) Load 4264(f16lodClamp) 4746:6(float16_t) Load 137(f16bias) 4747:6(float16_t) ImageSampleDrefImplicitLod 4742 4743 4744 Bias ConstOffset MinLod 4746 722 4745 4748: 208(ptr) AccessChain 4674(texel) 207 4749:6(float16_t) Load 4748 4750:6(float16_t) FAdd 4749 4747 4751: 208(ptr) AccessChain 4674(texel) 207 Store 4751 4750 4752: 269 Load 271(s1DArray) 4753: 53(fvec2) Load 148(c2) 4754: 52(float) Load 4257(lodClamp) 4755: 7(f16vec4) ImageSampleImplicitLod 4752 4753 ConstOffset MinLod 709 4754 4756: 7(f16vec4) Load 4674(texel) 4757: 7(f16vec4) FAdd 4756 4755 Store 4674(texel) 4757 4758: 269 Load 271(s1DArray) 4759:154(f16vec2) Load 156(f16c2) 4760:6(float16_t) Load 4264(f16lodClamp) 4761:6(float16_t) Load 137(f16bias) 4762: 7(f16vec4) ImageSampleImplicitLod 4758 4759 Bias ConstOffset MinLod 4761 709 4760 4763: 7(f16vec4) Load 4674(texel) 4764: 7(f16vec4) FAdd 4763 4762 Store 4674(texel) 4764 4765: 284 Load 286(s2DArray) 4766: 167(fvec3) Load 169(c3) 4767: 52(float) Load 4257(lodClamp) 4768: 7(f16vec4) ImageSampleImplicitLod 4765 4766 ConstOffset MinLod 722 4767 4769: 7(f16vec4) Load 4674(texel) 4770: 7(f16vec4) FAdd 4769 4768 Store 4674(texel) 4770 4771: 284 Load 286(s2DArray) 4772:175(f16vec3) Load 177(f16c3) 4773:6(float16_t) Load 4264(f16lodClamp) 4774:6(float16_t) Load 137(f16bias) 4775: 7(f16vec4) ImageSampleImplicitLod 4771 4772 Bias ConstOffset MinLod 4774 722 4773 4776: 7(f16vec4) Load 4674(texel) 4777: 7(f16vec4) FAdd 4776 4775 Store 4674(texel) 4777 4778: 316 Load 318(s1DArrayShadow) 4779: 167(fvec3) Load 169(c3) 4780: 52(float) Load 4257(lodClamp) 4781: 52(float) CompositeExtract 4779 2 4782:6(float16_t) ImageSampleDrefImplicitLod 4778 4779 4781 ConstOffset MinLod 709 4780 4783: 208(ptr) AccessChain 4674(texel) 207 4784:6(float16_t) Load 4783 4785:6(float16_t) FAdd 4784 4782 4786: 208(ptr) AccessChain 4674(texel) 207 Store 4786 4785 4787: 316 Load 318(s1DArrayShadow) 4788:154(f16vec2) Load 156(f16c2) 4789: 52(float) Load 215(compare) 4790:6(float16_t) Load 4264(f16lodClamp) 4791:6(float16_t) Load 137(f16bias) 4792:6(float16_t) ImageSampleDrefImplicitLod 4787 4788 4789 Bias ConstOffset MinLod 4791 709 4790 4793: 208(ptr) AccessChain 4674(texel) 207 4794:6(float16_t) Load 4793 4795:6(float16_t) FAdd 4794 4792 4796: 208(ptr) AccessChain 4674(texel) 207 Store 4796 4795 4797: 337 Load 339(s2DArrayShadow) 4798: 249(fvec4) Load 251(c4) 4799: 52(float) Load 4257(lodClamp) 4800: 52(float) CompositeExtract 4798 3 4801:6(float16_t) ImageSampleDrefImplicitLod 4797 4798 4800 ConstOffset MinLod 722 4799 4802: 208(ptr) AccessChain 4674(texel) 207 4803:6(float16_t) Load 4802 4804:6(float16_t) FAdd 4803 4801 4805: 208(ptr) AccessChain 4674(texel) 207 Store 4805 4804 4806: 337 Load 339(s2DArrayShadow) 4807:175(f16vec3) Load 177(f16c3) 4808: 52(float) Load 215(compare) 4809:6(float16_t) Load 4264(f16lodClamp) 4810:6(float16_t) ImageSampleDrefImplicitLod 4806 4807 4808 ConstOffset MinLod 722 4809 4811: 208(ptr) AccessChain 4674(texel) 207 4812:6(float16_t) Load 4811 4813:6(float16_t) FAdd 4812 4810 4814: 208(ptr) AccessChain 4674(texel) 207 Store 4814 4813 4815: 7(f16vec4) Load 4674(texel) ReturnValue 4815 FunctionEnd 107(testSparseTextureGradClamp(): 7(f16vec4) Function None 8 108: Label 4818(texel): 64(ptr) Variable Function Store 4818(texel) 121 4819: 143 Load 145(s2D) 4820: 53(fvec2) Load 148(c2) 4821: 53(fvec2) Load 1409(dPdxy2) 4822: 53(fvec2) Load 1409(dPdxy2) 4823: 52(float) Load 4257(lodClamp) 4824:3102(ResType) ImageSparseSampleExplicitLod 4819 4820 Grad MinLod 4821 4822 4823 4825: 7(f16vec4) CompositeExtract 4824 1 Store 4818(texel) 4825 4826: 47(int) CompositeExtract 4824 0 4827: 143 Load 145(s2D) 4828:154(f16vec2) Load 156(f16c2) 4829:154(f16vec2) Load 1417(f16dPdxy2) 4830:154(f16vec2) Load 1417(f16dPdxy2) 4831:6(float16_t) Load 4264(f16lodClamp) 4832:3102(ResType) ImageSparseSampleExplicitLod 4827 4828 Grad MinLod 4829 4830 4831 4833: 7(f16vec4) CompositeExtract 4832 1 Store 4818(texel) 4833 4834: 47(int) CompositeExtract 4832 0 4835: 163 Load 165(s3D) 4836: 167(fvec3) Load 169(c3) 4837: 167(fvec3) Load 1425(dPdxy3) 4838: 167(fvec3) Load 1425(dPdxy3) 4839: 52(float) Load 4257(lodClamp) 4840:3102(ResType) ImageSparseSampleExplicitLod 4835 4836 Grad MinLod 4837 4838 4839 4841: 7(f16vec4) CompositeExtract 4840 1 Store 4818(texel) 4841 4842: 47(int) CompositeExtract 4840 0 4843: 163 Load 165(s3D) 4844:175(f16vec3) Load 177(f16c3) 4845:175(f16vec3) Load 1433(f16dPdxy3) 4846:175(f16vec3) Load 1433(f16dPdxy3) 4847:6(float16_t) Load 4264(f16lodClamp) 4848:3102(ResType) ImageSparseSampleExplicitLod 4843 4844 Grad MinLod 4845 4846 4847 4849: 7(f16vec4) CompositeExtract 4848 1 Store 4818(texel) 4849 4850: 47(int) CompositeExtract 4848 0 4851: 184 Load 186(sCube) 4852: 167(fvec3) Load 169(c3) 4853: 167(fvec3) Load 1425(dPdxy3) 4854: 167(fvec3) Load 1425(dPdxy3) 4855: 52(float) Load 4257(lodClamp) 4856:3102(ResType) ImageSparseSampleExplicitLod 4851 4852 Grad MinLod 4853 4854 4855 4857: 7(f16vec4) CompositeExtract 4856 1 Store 4818(texel) 4857 4858: 47(int) CompositeExtract 4856 0 4859: 184 Load 186(sCube) 4860:175(f16vec3) Load 177(f16c3) 4861:175(f16vec3) Load 1433(f16dPdxy3) 4862:175(f16vec3) Load 1433(f16dPdxy3) 4863:6(float16_t) Load 4264(f16lodClamp) 4864:3102(ResType) ImageSparseSampleExplicitLod 4859 4860 Grad MinLod 4861 4862 4863 4865: 7(f16vec4) CompositeExtract 4864 1 Store 4818(texel) 4865 4866: 47(int) CompositeExtract 4864 0 4867: 224 Load 226(s2DShadow) 4868: 167(fvec3) Load 169(c3) 4869: 53(fvec2) Load 1409(dPdxy2) 4870: 53(fvec2) Load 1409(dPdxy2) 4871: 52(float) Load 4257(lodClamp) 4872: 208(ptr) AccessChain 4818(texel) 207 4873: 52(float) CompositeExtract 4868 2 4874:3138(ResType) ImageSparseSampleDrefExplicitLod 4867 4868 4873 Grad MinLod 4869 4870 4871 4875:6(float16_t) CompositeExtract 4874 1 Store 4872 4875 4876: 47(int) CompositeExtract 4874 0 4877: 224 Load 226(s2DShadow) 4878:154(f16vec2) Load 156(f16c2) 4879: 52(float) Load 215(compare) 4880:154(f16vec2) Load 1417(f16dPdxy2) 4881:154(f16vec2) Load 1417(f16dPdxy2) 4882:6(float16_t) Load 4264(f16lodClamp) 4883: 208(ptr) AccessChain 4818(texel) 207 4884:3138(ResType) ImageSparseSampleDrefExplicitLod 4877 4878 4879 Grad MinLod 4880 4881 4882 4885:6(float16_t) CompositeExtract 4884 1 Store 4883 4885 4886: 47(int) CompositeExtract 4884 0 4887: 245 Load 247(sCubeShadow) 4888: 249(fvec4) Load 251(c4) 4889: 167(fvec3) Load 1425(dPdxy3) 4890: 167(fvec3) Load 1425(dPdxy3) 4891: 52(float) Load 4257(lodClamp) 4892: 208(ptr) AccessChain 4818(texel) 207 4893: 52(float) CompositeExtract 4888 3 4894:3138(ResType) ImageSparseSampleDrefExplicitLod 4887 4888 4893 Grad MinLod 4889 4890 4891 4895:6(float16_t) CompositeExtract 4894 1 Store 4892 4895 4896: 47(int) CompositeExtract 4894 0 4897: 245 Load 247(sCubeShadow) 4898:175(f16vec3) Load 177(f16c3) 4899: 52(float) Load 215(compare) 4900:175(f16vec3) Load 1433(f16dPdxy3) 4901:175(f16vec3) Load 1433(f16dPdxy3) 4902:6(float16_t) Load 4264(f16lodClamp) 4903: 208(ptr) AccessChain 4818(texel) 207 4904:3138(ResType) ImageSparseSampleDrefExplicitLod 4897 4898 4899 Grad MinLod 4900 4901 4902 4905:6(float16_t) CompositeExtract 4904 1 Store 4903 4905 4906: 47(int) CompositeExtract 4904 0 4907: 284 Load 286(s2DArray) 4908: 167(fvec3) Load 169(c3) 4909: 53(fvec2) Load 1409(dPdxy2) 4910: 53(fvec2) Load 1409(dPdxy2) 4911: 52(float) Load 4257(lodClamp) 4912:3102(ResType) ImageSparseSampleExplicitLod 4907 4908 Grad MinLod 4909 4910 4911 4913: 7(f16vec4) CompositeExtract 4912 1 Store 4818(texel) 4913 4914: 47(int) CompositeExtract 4912 0 4915: 284 Load 286(s2DArray) 4916:175(f16vec3) Load 177(f16c3) 4917:154(f16vec2) Load 1417(f16dPdxy2) 4918:154(f16vec2) Load 1417(f16dPdxy2) 4919:6(float16_t) Load 4264(f16lodClamp) 4920:3102(ResType) ImageSparseSampleExplicitLod 4915 4916 Grad MinLod 4917 4918 4919 4921: 7(f16vec4) CompositeExtract 4920 1 Store 4818(texel) 4921 4922: 47(int) CompositeExtract 4920 0 4923: 337 Load 339(s2DArrayShadow) 4924: 249(fvec4) Load 251(c4) 4925: 53(fvec2) Load 1409(dPdxy2) 4926: 53(fvec2) Load 1409(dPdxy2) 4927: 52(float) Load 4257(lodClamp) 4928: 208(ptr) AccessChain 4818(texel) 207 4929: 52(float) CompositeExtract 4924 3 4930:3138(ResType) ImageSparseSampleDrefExplicitLod 4923 4924 4929 Grad MinLod 4925 4926 4927 4931:6(float16_t) CompositeExtract 4930 1 Store 4928 4931 4932: 47(int) CompositeExtract 4930 0 4933: 337 Load 339(s2DArrayShadow) 4934:175(f16vec3) Load 177(f16c3) 4935: 52(float) Load 215(compare) 4936:154(f16vec2) Load 1417(f16dPdxy2) 4937:154(f16vec2) Load 1417(f16dPdxy2) 4938:6(float16_t) Load 4264(f16lodClamp) 4939: 208(ptr) AccessChain 4818(texel) 207 4940:3138(ResType) ImageSparseSampleDrefExplicitLod 4933 4934 4935 Grad MinLod 4936 4937 4938 4941:6(float16_t) CompositeExtract 4940 1 Store 4939 4941 4942: 47(int) CompositeExtract 4940 0 4943: 299 Load 301(sCubeArray) 4944: 249(fvec4) Load 251(c4) 4945: 167(fvec3) Load 1425(dPdxy3) 4946: 167(fvec3) Load 1425(dPdxy3) 4947: 52(float) Load 4257(lodClamp) 4948:3102(ResType) ImageSparseSampleExplicitLod 4943 4944 Grad MinLod 4945 4946 4947 4949: 7(f16vec4) CompositeExtract 4948 1 Store 4818(texel) 4949 4950: 47(int) CompositeExtract 4948 0 4951: 299 Load 301(sCubeArray) 4952: 7(f16vec4) Load 309(f16c4) 4953:175(f16vec3) Load 1433(f16dPdxy3) 4954:175(f16vec3) Load 1433(f16dPdxy3) 4955:6(float16_t) Load 4264(f16lodClamp) 4956:3102(ResType) ImageSparseSampleExplicitLod 4951 4952 Grad MinLod 4953 4954 4955 4957: 7(f16vec4) CompositeExtract 4956 1 Store 4818(texel) 4957 4958: 47(int) CompositeExtract 4956 0 4959: 7(f16vec4) Load 4818(texel) ReturnValue 4959 FunctionEnd 109(testTextureGradClamp(): 7(f16vec4) Function None 8 110: Label 4962(texel): 64(ptr) Variable Function Store 4962(texel) 121 4963: 123 Load 125(s1D) 4964: 52(float) Load 128(c1) 4965: 52(float) Load 1393(dPdxy1) 4966: 52(float) Load 1393(dPdxy1) 4967: 52(float) Load 4257(lodClamp) 4968: 7(f16vec4) ImageSampleExplicitLod 4963 4964 Grad MinLod 4965 4966 4967 4969: 7(f16vec4) Load 4962(texel) 4970: 7(f16vec4) FAdd 4969 4968 Store 4962(texel) 4970 4971: 123 Load 125(s1D) 4972:6(float16_t) Load 135(f16c1) 4973:6(float16_t) Load 1401(f16dPdxy1) 4974:6(float16_t) Load 1401(f16dPdxy1) 4975:6(float16_t) Load 4264(f16lodClamp) 4976: 7(f16vec4) ImageSampleExplicitLod 4971 4972 Grad MinLod 4973 4974 4975 4977: 7(f16vec4) Load 4962(texel) 4978: 7(f16vec4) FAdd 4977 4976 Store 4962(texel) 4978 4979: 143 Load 145(s2D) 4980: 53(fvec2) Load 148(c2) 4981: 53(fvec2) Load 1409(dPdxy2) 4982: 53(fvec2) Load 1409(dPdxy2) 4983: 52(float) Load 4257(lodClamp) 4984: 7(f16vec4) ImageSampleExplicitLod 4979 4980 Grad MinLod 4981 4982 4983 4985: 7(f16vec4) Load 4962(texel) 4986: 7(f16vec4) FAdd 4985 4984 Store 4962(texel) 4986 4987: 143 Load 145(s2D) 4988:154(f16vec2) Load 156(f16c2) 4989:154(f16vec2) Load 1417(f16dPdxy2) 4990:154(f16vec2) Load 1417(f16dPdxy2) 4991:6(float16_t) Load 4264(f16lodClamp) 4992: 7(f16vec4) ImageSampleExplicitLod 4987 4988 Grad MinLod 4989 4990 4991 4993: 7(f16vec4) Load 4962(texel) 4994: 7(f16vec4) FAdd 4993 4992 Store 4962(texel) 4994 4995: 163 Load 165(s3D) 4996: 167(fvec3) Load 169(c3) 4997: 167(fvec3) Load 1425(dPdxy3) 4998: 167(fvec3) Load 1425(dPdxy3) 4999: 52(float) Load 4257(lodClamp) 5000: 7(f16vec4) ImageSampleExplicitLod 4995 4996 Grad MinLod 4997 4998 4999 5001: 7(f16vec4) Load 4962(texel) 5002: 7(f16vec4) FAdd 5001 5000 Store 4962(texel) 5002 5003: 163 Load 165(s3D) 5004:175(f16vec3) Load 177(f16c3) 5005:175(f16vec3) Load 1433(f16dPdxy3) 5006:175(f16vec3) Load 1433(f16dPdxy3) 5007:6(float16_t) Load 4264(f16lodClamp) 5008: 7(f16vec4) ImageSampleExplicitLod 5003 5004 Grad MinLod 5005 5006 5007 5009: 7(f16vec4) Load 4962(texel) 5010: 7(f16vec4) FAdd 5009 5008 Store 4962(texel) 5010 5011: 184 Load 186(sCube) 5012: 167(fvec3) Load 169(c3) 5013: 167(fvec3) Load 1425(dPdxy3) 5014: 167(fvec3) Load 1425(dPdxy3) 5015: 52(float) Load 4257(lodClamp) 5016: 7(f16vec4) ImageSampleExplicitLod 5011 5012 Grad MinLod 5013 5014 5015 5017: 7(f16vec4) Load 4962(texel) 5018: 7(f16vec4) FAdd 5017 5016 Store 4962(texel) 5018 5019: 184 Load 186(sCube) 5020:175(f16vec3) Load 177(f16c3) 5021:175(f16vec3) Load 1433(f16dPdxy3) 5022:175(f16vec3) Load 1433(f16dPdxy3) 5023:6(float16_t) Load 4264(f16lodClamp) 5024: 7(f16vec4) ImageSampleExplicitLod 5019 5020 Grad MinLod 5021 5022 5023 5025: 7(f16vec4) Load 4962(texel) 5026: 7(f16vec4) FAdd 5025 5024 Store 4962(texel) 5026 5027: 199 Load 201(s1DShadow) 5028: 167(fvec3) Load 169(c3) 5029: 52(float) Load 1393(dPdxy1) 5030: 52(float) Load 1393(dPdxy1) 5031: 52(float) Load 4257(lodClamp) 5032: 52(float) CompositeExtract 5028 2 5033:6(float16_t) ImageSampleDrefExplicitLod 5027 5028 5032 Grad MinLod 5029 5030 5031 5034: 208(ptr) AccessChain 4962(texel) 207 5035:6(float16_t) Load 5034 5036:6(float16_t) FAdd 5035 5033 5037: 208(ptr) AccessChain 4962(texel) 207 Store 5037 5036 5038: 199 Load 201(s1DShadow) 5039:154(f16vec2) Load 156(f16c2) 5040: 52(float) Load 215(compare) 5041:6(float16_t) Load 1401(f16dPdxy1) 5042:6(float16_t) Load 1401(f16dPdxy1) 5043:6(float16_t) Load 4264(f16lodClamp) 5044:6(float16_t) ImageSampleDrefExplicitLod 5038 5039 5040 Grad MinLod 5041 5042 5043 5045: 208(ptr) AccessChain 4962(texel) 207 5046:6(float16_t) Load 5045 5047:6(float16_t) FAdd 5046 5044 5048: 208(ptr) AccessChain 4962(texel) 207 Store 5048 5047 5049: 224 Load 226(s2DShadow) 5050: 167(fvec3) Load 169(c3) 5051: 53(fvec2) Load 1409(dPdxy2) 5052: 53(fvec2) Load 1409(dPdxy2) 5053: 52(float) Load 4257(lodClamp) 5054: 52(float) CompositeExtract 5050 2 5055:6(float16_t) ImageSampleDrefExplicitLod 5049 5050 5054 Grad MinLod 5051 5052 5053 5056: 208(ptr) AccessChain 4962(texel) 207 5057:6(float16_t) Load 5056 5058:6(float16_t) FAdd 5057 5055 5059: 208(ptr) AccessChain 4962(texel) 207 Store 5059 5058 5060: 224 Load 226(s2DShadow) 5061:154(f16vec2) Load 156(f16c2) 5062: 52(float) Load 215(compare) 5063:154(f16vec2) Load 1417(f16dPdxy2) 5064:154(f16vec2) Load 1417(f16dPdxy2) 5065:6(float16_t) Load 4264(f16lodClamp) 5066:6(float16_t) ImageSampleDrefExplicitLod 5060 5061 5062 Grad MinLod 5063 5064 5065 5067: 208(ptr) AccessChain 4962(texel) 207 5068:6(float16_t) Load 5067 5069:6(float16_t) FAdd 5068 5066 5070: 208(ptr) AccessChain 4962(texel) 207 Store 5070 5069 5071: 245 Load 247(sCubeShadow) 5072: 249(fvec4) Load 251(c4) 5073: 167(fvec3) Load 1425(dPdxy3) 5074: 167(fvec3) Load 1425(dPdxy3) 5075: 52(float) Load 4257(lodClamp) 5076: 52(float) CompositeExtract 5072 3 5077:6(float16_t) ImageSampleDrefExplicitLod 5071 5072 5076 Grad MinLod 5073 5074 5075 5078: 208(ptr) AccessChain 4962(texel) 207 5079:6(float16_t) Load 5078 5080:6(float16_t) FAdd 5079 5077 5081: 208(ptr) AccessChain 4962(texel) 207 Store 5081 5080 5082: 245 Load 247(sCubeShadow) 5083:175(f16vec3) Load 177(f16c3) 5084: 52(float) Load 215(compare) 5085:175(f16vec3) Load 1433(f16dPdxy3) 5086:175(f16vec3) Load 1433(f16dPdxy3) 5087:6(float16_t) Load 4264(f16lodClamp) 5088:6(float16_t) ImageSampleDrefExplicitLod 5082 5083 5084 Grad MinLod 5085 5086 5087 5089: 208(ptr) AccessChain 4962(texel) 207 5090:6(float16_t) Load 5089 5091:6(float16_t) FAdd 5090 5088 5092: 208(ptr) AccessChain 4962(texel) 207 Store 5092 5091 5093: 269 Load 271(s1DArray) 5094: 53(fvec2) Load 148(c2) 5095: 52(float) Load 1393(dPdxy1) 5096: 52(float) Load 1393(dPdxy1) 5097: 52(float) Load 4257(lodClamp) 5098: 7(f16vec4) ImageSampleExplicitLod 5093 5094 Grad MinLod 5095 5096 5097 5099: 7(f16vec4) Load 4962(texel) 5100: 7(f16vec4) FAdd 5099 5098 Store 4962(texel) 5100 5101: 269 Load 271(s1DArray) 5102:154(f16vec2) Load 156(f16c2) 5103:6(float16_t) Load 1401(f16dPdxy1) 5104:6(float16_t) Load 1401(f16dPdxy1) 5105:6(float16_t) Load 4264(f16lodClamp) 5106: 7(f16vec4) ImageSampleExplicitLod 5101 5102 Grad MinLod 5103 5104 5105 5107: 7(f16vec4) Load 4962(texel) 5108: 7(f16vec4) FAdd 5107 5106 Store 4962(texel) 5108 5109: 284 Load 286(s2DArray) 5110: 167(fvec3) Load 169(c3) 5111: 53(fvec2) Load 1409(dPdxy2) 5112: 53(fvec2) Load 1409(dPdxy2) 5113: 52(float) Load 4257(lodClamp) 5114: 7(f16vec4) ImageSampleExplicitLod 5109 5110 Grad MinLod 5111 5112 5113 5115: 7(f16vec4) Load 4962(texel) 5116: 7(f16vec4) FAdd 5115 5114 Store 4962(texel) 5116 5117: 284 Load 286(s2DArray) 5118:175(f16vec3) Load 177(f16c3) 5119:154(f16vec2) Load 1417(f16dPdxy2) 5120:154(f16vec2) Load 1417(f16dPdxy2) 5121:6(float16_t) Load 4264(f16lodClamp) 5122: 7(f16vec4) ImageSampleExplicitLod 5117 5118 Grad MinLod 5119 5120 5121 5123: 7(f16vec4) Load 4962(texel) 5124: 7(f16vec4) FAdd 5123 5122 Store 4962(texel) 5124 5125: 316 Load 318(s1DArrayShadow) 5126: 167(fvec3) Load 169(c3) 5127: 52(float) Load 1393(dPdxy1) 5128: 52(float) Load 1393(dPdxy1) 5129: 52(float) Load 4257(lodClamp) 5130: 52(float) CompositeExtract 5126 2 5131:6(float16_t) ImageSampleDrefExplicitLod 5125 5126 5130 Grad MinLod 5127 5128 5129 5132: 208(ptr) AccessChain 4962(texel) 207 5133:6(float16_t) Load 5132 5134:6(float16_t) FAdd 5133 5131 5135: 208(ptr) AccessChain 4962(texel) 207 Store 5135 5134 5136: 316 Load 318(s1DArrayShadow) 5137:154(f16vec2) Load 156(f16c2) 5138: 52(float) Load 215(compare) 5139:6(float16_t) Load 1401(f16dPdxy1) 5140:6(float16_t) Load 1401(f16dPdxy1) 5141:6(float16_t) Load 4264(f16lodClamp) 5142:6(float16_t) ImageSampleDrefExplicitLod 5136 5137 5138 Grad MinLod 5139 5140 5141 5143: 208(ptr) AccessChain 4962(texel) 207 5144:6(float16_t) Load 5143 5145:6(float16_t) FAdd 5144 5142 5146: 208(ptr) AccessChain 4962(texel) 207 Store 5146 5145 5147: 337 Load 339(s2DArrayShadow) 5148: 249(fvec4) Load 251(c4) 5149: 53(fvec2) Load 1409(dPdxy2) 5150: 53(fvec2) Load 1409(dPdxy2) 5151: 52(float) Load 4257(lodClamp) 5152: 52(float) CompositeExtract 5148 3 5153:6(float16_t) ImageSampleDrefExplicitLod 5147 5148 5152 Grad MinLod 5149 5150 5151 5154: 208(ptr) AccessChain 4962(texel) 207 5155:6(float16_t) Load 5154 5156:6(float16_t) FAdd 5155 5153 5157: 208(ptr) AccessChain 4962(texel) 207 Store 5157 5156 5158: 337 Load 339(s2DArrayShadow) 5159:175(f16vec3) Load 177(f16c3) 5160: 52(float) Load 215(compare) 5161:154(f16vec2) Load 1417(f16dPdxy2) 5162:154(f16vec2) Load 1417(f16dPdxy2) 5163:6(float16_t) Load 4264(f16lodClamp) 5164:6(float16_t) ImageSampleDrefExplicitLod 5158 5159 5160 Grad MinLod 5161 5162 5163 5165: 208(ptr) AccessChain 4962(texel) 207 5166:6(float16_t) Load 5165 5167:6(float16_t) FAdd 5166 5164 5168: 208(ptr) AccessChain 4962(texel) 207 Store 5168 5167 5169: 299 Load 301(sCubeArray) 5170: 249(fvec4) Load 251(c4) 5171: 167(fvec3) Load 1425(dPdxy3) 5172: 167(fvec3) Load 1425(dPdxy3) 5173: 52(float) Load 4257(lodClamp) 5174: 7(f16vec4) ImageSampleExplicitLod 5169 5170 Grad MinLod 5171 5172 5173 5175: 7(f16vec4) Load 4962(texel) 5176: 7(f16vec4) FAdd 5175 5174 Store 4962(texel) 5176 5177: 299 Load 301(sCubeArray) 5178: 7(f16vec4) Load 309(f16c4) 5179:175(f16vec3) Load 1433(f16dPdxy3) 5180:175(f16vec3) Load 1433(f16dPdxy3) 5181:6(float16_t) Load 4264(f16lodClamp) 5182: 7(f16vec4) ImageSampleExplicitLod 5177 5178 Grad MinLod 5179 5180 5181 5183: 7(f16vec4) Load 4962(texel) 5184: 7(f16vec4) FAdd 5183 5182 Store 4962(texel) 5184 5185: 7(f16vec4) Load 4962(texel) ReturnValue 5185 FunctionEnd 111(testSparseTextureGradOffsetClamp(): 7(f16vec4) Function None 8 112: Label 5188(texel): 64(ptr) Variable Function Store 5188(texel) 121 5189: 143 Load 145(s2D) 5190: 53(fvec2) Load 148(c2) 5191: 53(fvec2) Load 1409(dPdxy2) 5192: 53(fvec2) Load 1409(dPdxy2) 5193: 52(float) Load 4257(lodClamp) 5194:3102(ResType) ImageSparseSampleExplicitLod 5189 5190 Grad ConstOffset MinLod 5191 5192 722 5193 5195: 7(f16vec4) CompositeExtract 5194 1 Store 5188(texel) 5195 5196: 47(int) CompositeExtract 5194 0 5197: 143 Load 145(s2D) 5198:154(f16vec2) Load 156(f16c2) 5199:154(f16vec2) Load 1417(f16dPdxy2) 5200:154(f16vec2) Load 1417(f16dPdxy2) 5201:6(float16_t) Load 4264(f16lodClamp) 5202:3102(ResType) ImageSparseSampleExplicitLod 5197 5198 Grad ConstOffset MinLod 5199 5200 722 5201 5203: 7(f16vec4) CompositeExtract 5202 1 Store 5188(texel) 5203 5204: 47(int) CompositeExtract 5202 0 5205: 163 Load 165(s3D) 5206: 167(fvec3) Load 169(c3) 5207: 167(fvec3) Load 1425(dPdxy3) 5208: 167(fvec3) Load 1425(dPdxy3) 5209: 52(float) Load 4257(lodClamp) 5210:3102(ResType) ImageSparseSampleExplicitLod 5205 5206 Grad ConstOffset MinLod 5207 5208 735 5209 5211: 7(f16vec4) CompositeExtract 5210 1 Store 5188(texel) 5211 5212: 47(int) CompositeExtract 5210 0 5213: 163 Load 165(s3D) 5214:175(f16vec3) Load 177(f16c3) 5215:175(f16vec3) Load 1433(f16dPdxy3) 5216:175(f16vec3) Load 1433(f16dPdxy3) 5217:6(float16_t) Load 4264(f16lodClamp) 5218:3102(ResType) ImageSparseSampleExplicitLod 5213 5214 Grad ConstOffset MinLod 5215 5216 735 5217 5219: 7(f16vec4) CompositeExtract 5218 1 Store 5188(texel) 5219 5220: 47(int) CompositeExtract 5218 0 5221: 224 Load 226(s2DShadow) 5222: 167(fvec3) Load 169(c3) 5223: 53(fvec2) Load 1409(dPdxy2) 5224: 53(fvec2) Load 1409(dPdxy2) 5225: 52(float) Load 4257(lodClamp) 5226: 208(ptr) AccessChain 5188(texel) 207 5227: 52(float) CompositeExtract 5222 2 5228:3138(ResType) ImageSparseSampleDrefExplicitLod 5221 5222 5227 Grad ConstOffset MinLod 5223 5224 722 5225 5229:6(float16_t) CompositeExtract 5228 1 Store 5226 5229 5230: 47(int) CompositeExtract 5228 0 5231: 224 Load 226(s2DShadow) 5232:154(f16vec2) Load 156(f16c2) 5233: 52(float) Load 215(compare) 5234:154(f16vec2) Load 1417(f16dPdxy2) 5235:154(f16vec2) Load 1417(f16dPdxy2) 5236:6(float16_t) Load 4264(f16lodClamp) 5237: 208(ptr) AccessChain 5188(texel) 207 5238:3138(ResType) ImageSparseSampleDrefExplicitLod 5231 5232 5233 Grad ConstOffset MinLod 5234 5235 722 5236 5239:6(float16_t) CompositeExtract 5238 1 Store 5237 5239 5240: 47(int) CompositeExtract 5238 0 5241: 284 Load 286(s2DArray) 5242: 167(fvec3) Load 169(c3) 5243: 53(fvec2) Load 1409(dPdxy2) 5244: 53(fvec2) Load 1409(dPdxy2) 5245: 52(float) Load 4257(lodClamp) 5246:3102(ResType) ImageSparseSampleExplicitLod 5241 5242 Grad ConstOffset MinLod 5243 5244 722 5245 5247: 7(f16vec4) CompositeExtract 5246 1 Store 5188(texel) 5247 5248: 47(int) CompositeExtract 5246 0 5249: 284 Load 286(s2DArray) 5250:175(f16vec3) Load 177(f16c3) 5251:154(f16vec2) Load 1417(f16dPdxy2) 5252:154(f16vec2) Load 1417(f16dPdxy2) 5253:6(float16_t) Load 4264(f16lodClamp) 5254:3102(ResType) ImageSparseSampleExplicitLod 5249 5250 Grad ConstOffset MinLod 5251 5252 722 5253 5255: 7(f16vec4) CompositeExtract 5254 1 Store 5188(texel) 5255 5256: 47(int) CompositeExtract 5254 0 5257: 337 Load 339(s2DArrayShadow) 5258: 249(fvec4) Load 251(c4) 5259: 53(fvec2) Load 1409(dPdxy2) 5260: 53(fvec2) Load 1409(dPdxy2) 5261: 52(float) Load 4257(lodClamp) 5262: 208(ptr) AccessChain 5188(texel) 207 5263: 52(float) CompositeExtract 5258 3 5264:3138(ResType) ImageSparseSampleDrefExplicitLod 5257 5258 5263 Grad ConstOffset MinLod 5259 5260 722 5261 5265:6(float16_t) CompositeExtract 5264 1 Store 5262 5265 5266: 47(int) CompositeExtract 5264 0 5267: 337 Load 339(s2DArrayShadow) 5268:175(f16vec3) Load 177(f16c3) 5269: 52(float) Load 215(compare) 5270:154(f16vec2) Load 1417(f16dPdxy2) 5271:154(f16vec2) Load 1417(f16dPdxy2) 5272:6(float16_t) Load 4264(f16lodClamp) 5273: 208(ptr) AccessChain 5188(texel) 207 5274:3138(ResType) ImageSparseSampleDrefExplicitLod 5267 5268 5269 Grad ConstOffset MinLod 5270 5271 722 5272 5275:6(float16_t) CompositeExtract 5274 1 Store 5273 5275 5276: 47(int) CompositeExtract 5274 0 5277: 7(f16vec4) Load 5188(texel) ReturnValue 5277 FunctionEnd 113(testTextureGradOffsetClamp(): 7(f16vec4) Function None 8 114: Label 5280(texel): 64(ptr) Variable Function Store 5280(texel) 121 5281: 123 Load 125(s1D) 5282: 52(float) Load 128(c1) 5283: 52(float) Load 1393(dPdxy1) 5284: 52(float) Load 1393(dPdxy1) 5285: 52(float) Load 4257(lodClamp) 5286: 7(f16vec4) ImageSampleExplicitLod 5281 5282 Grad ConstOffset MinLod 5283 5284 709 5285 5287: 7(f16vec4) Load 5280(texel) 5288: 7(f16vec4) FAdd 5287 5286 Store 5280(texel) 5288 5289: 123 Load 125(s1D) 5290:6(float16_t) Load 135(f16c1) 5291:6(float16_t) Load 1401(f16dPdxy1) 5292:6(float16_t) Load 1401(f16dPdxy1) 5293:6(float16_t) Load 4264(f16lodClamp) 5294: 7(f16vec4) ImageSampleExplicitLod 5289 5290 Grad ConstOffset MinLod 5291 5292 709 5293 5295: 7(f16vec4) Load 5280(texel) 5296: 7(f16vec4) FAdd 5295 5294 Store 5280(texel) 5296 5297: 143 Load 145(s2D) 5298: 53(fvec2) Load 148(c2) 5299: 53(fvec2) Load 1409(dPdxy2) 5300: 53(fvec2) Load 1409(dPdxy2) 5301: 52(float) Load 4257(lodClamp) 5302: 7(f16vec4) ImageSampleExplicitLod 5297 5298 Grad ConstOffset MinLod 5299 5300 722 5301 5303: 7(f16vec4) Load 5280(texel) 5304: 7(f16vec4) FAdd 5303 5302 Store 5280(texel) 5304 5305: 143 Load 145(s2D) 5306:154(f16vec2) Load 156(f16c2) 5307:154(f16vec2) Load 1417(f16dPdxy2) 5308:154(f16vec2) Load 1417(f16dPdxy2) 5309:6(float16_t) Load 4264(f16lodClamp) 5310: 7(f16vec4) ImageSampleExplicitLod 5305 5306 Grad ConstOffset MinLod 5307 5308 722 5309 5311: 7(f16vec4) Load 5280(texel) 5312: 7(f16vec4) FAdd 5311 5310 Store 5280(texel) 5312 5313: 163 Load 165(s3D) 5314: 167(fvec3) Load 169(c3) 5315: 167(fvec3) Load 1425(dPdxy3) 5316: 167(fvec3) Load 1425(dPdxy3) 5317: 52(float) Load 4257(lodClamp) 5318: 7(f16vec4) ImageSampleExplicitLod 5313 5314 Grad ConstOffset MinLod 5315 5316 735 5317 5319: 7(f16vec4) Load 5280(texel) 5320: 7(f16vec4) FAdd 5319 5318 Store 5280(texel) 5320 5321: 163 Load 165(s3D) 5322:175(f16vec3) Load 177(f16c3) 5323:175(f16vec3) Load 1433(f16dPdxy3) 5324:175(f16vec3) Load 1433(f16dPdxy3) 5325:6(float16_t) Load 4264(f16lodClamp) 5326: 7(f16vec4) ImageSampleExplicitLod 5321 5322 Grad ConstOffset MinLod 5323 5324 735 5325 5327: 7(f16vec4) Load 5280(texel) 5328: 7(f16vec4) FAdd 5327 5326 Store 5280(texel) 5328 5329: 199 Load 201(s1DShadow) 5330: 167(fvec3) Load 169(c3) 5331: 52(float) Load 1393(dPdxy1) 5332: 52(float) Load 1393(dPdxy1) 5333: 52(float) Load 4257(lodClamp) 5334: 52(float) CompositeExtract 5330 2 5335:6(float16_t) ImageSampleDrefExplicitLod 5329 5330 5334 Grad ConstOffset MinLod 5331 5332 709 5333 5336: 208(ptr) AccessChain 5280(texel) 207 5337:6(float16_t) Load 5336 5338:6(float16_t) FAdd 5337 5335 5339: 208(ptr) AccessChain 5280(texel) 207 Store 5339 5338 5340: 199 Load 201(s1DShadow) 5341:154(f16vec2) Load 156(f16c2) 5342: 52(float) Load 215(compare) 5343:6(float16_t) Load 1401(f16dPdxy1) 5344:6(float16_t) Load 1401(f16dPdxy1) 5345:6(float16_t) Load 4264(f16lodClamp) 5346:6(float16_t) ImageSampleDrefExplicitLod 5340 5341 5342 Grad ConstOffset MinLod 5343 5344 709 5345 5347: 208(ptr) AccessChain 5280(texel) 207 5348:6(float16_t) Load 5347 5349:6(float16_t) FAdd 5348 5346 5350: 208(ptr) AccessChain 5280(texel) 207 Store 5350 5349 5351: 224 Load 226(s2DShadow) 5352: 167(fvec3) Load 169(c3) 5353: 53(fvec2) Load 1409(dPdxy2) 5354: 53(fvec2) Load 1409(dPdxy2) 5355: 52(float) Load 4257(lodClamp) 5356: 52(float) CompositeExtract 5352 2 5357:6(float16_t) ImageSampleDrefExplicitLod 5351 5352 5356 Grad ConstOffset MinLod 5353 5354 722 5355 5358: 208(ptr) AccessChain 5280(texel) 207 5359:6(float16_t) Load 5358 5360:6(float16_t) FAdd 5359 5357 5361: 208(ptr) AccessChain 5280(texel) 207 Store 5361 5360 5362: 224 Load 226(s2DShadow) 5363:154(f16vec2) Load 156(f16c2) 5364: 52(float) Load 215(compare) 5365:154(f16vec2) Load 1417(f16dPdxy2) 5366:154(f16vec2) Load 1417(f16dPdxy2) 5367:6(float16_t) Load 4264(f16lodClamp) 5368:6(float16_t) ImageSampleDrefExplicitLod 5362 5363 5364 Grad ConstOffset MinLod 5365 5366 722 5367 5369: 208(ptr) AccessChain 5280(texel) 207 5370:6(float16_t) Load 5369 5371:6(float16_t) FAdd 5370 5368 5372: 208(ptr) AccessChain 5280(texel) 207 Store 5372 5371 5373: 269 Load 271(s1DArray) 5374: 53(fvec2) Load 148(c2) 5375: 52(float) Load 1393(dPdxy1) 5376: 52(float) Load 1393(dPdxy1) 5377: 52(float) Load 4257(lodClamp) 5378: 7(f16vec4) ImageSampleExplicitLod 5373 5374 Grad ConstOffset MinLod 5375 5376 709 5377 5379: 7(f16vec4) Load 5280(texel) 5380: 7(f16vec4) FAdd 5379 5378 Store 5280(texel) 5380 5381: 269 Load 271(s1DArray) 5382:154(f16vec2) Load 156(f16c2) 5383:6(float16_t) Load 1401(f16dPdxy1) 5384:6(float16_t) Load 1401(f16dPdxy1) 5385:6(float16_t) Load 4264(f16lodClamp) 5386: 7(f16vec4) ImageSampleExplicitLod 5381 5382 Grad ConstOffset MinLod 5383 5384 709 5385 5387: 7(f16vec4) Load 5280(texel) 5388: 7(f16vec4) FAdd 5387 5386 Store 5280(texel) 5388 5389: 284 Load 286(s2DArray) 5390: 167(fvec3) Load 169(c3) 5391: 53(fvec2) Load 1409(dPdxy2) 5392: 53(fvec2) Load 1409(dPdxy2) 5393: 52(float) Load 4257(lodClamp) 5394: 7(f16vec4) ImageSampleExplicitLod 5389 5390 Grad ConstOffset MinLod 5391 5392 722 5393 5395: 7(f16vec4) Load 5280(texel) 5396: 7(f16vec4) FAdd 5395 5394 Store 5280(texel) 5396 5397: 284 Load 286(s2DArray) 5398:175(f16vec3) Load 177(f16c3) 5399:154(f16vec2) Load 1417(f16dPdxy2) 5400:154(f16vec2) Load 1417(f16dPdxy2) 5401:6(float16_t) Load 4264(f16lodClamp) 5402: 7(f16vec4) ImageSampleExplicitLod 5397 5398 Grad ConstOffset MinLod 5399 5400 722 5401 5403: 7(f16vec4) Load 5280(texel) 5404: 7(f16vec4) FAdd 5403 5402 Store 5280(texel) 5404 5405: 316 Load 318(s1DArrayShadow) 5406: 167(fvec3) Load 169(c3) 5407: 52(float) Load 1393(dPdxy1) 5408: 52(float) Load 1393(dPdxy1) 5409: 52(float) Load 4257(lodClamp) 5410: 52(float) CompositeExtract 5406 2 5411:6(float16_t) ImageSampleDrefExplicitLod 5405 5406 5410 Grad ConstOffset MinLod 5407 5408 709 5409 5412: 208(ptr) AccessChain 5280(texel) 207 5413:6(float16_t) Load 5412 5414:6(float16_t) FAdd 5413 5411 5415: 208(ptr) AccessChain 5280(texel) 207 Store 5415 5414 5416: 316 Load 318(s1DArrayShadow) 5417:154(f16vec2) Load 156(f16c2) 5418: 52(float) Load 215(compare) 5419:6(float16_t) Load 1401(f16dPdxy1) 5420:6(float16_t) Load 1401(f16dPdxy1) 5421:6(float16_t) Load 4264(f16lodClamp) 5422:6(float16_t) ImageSampleDrefExplicitLod 5416 5417 5418 Grad ConstOffset MinLod 5419 5420 709 5421 5423: 208(ptr) AccessChain 5280(texel) 207 5424:6(float16_t) Load 5423 5425:6(float16_t) FAdd 5424 5422 5426: 208(ptr) AccessChain 5280(texel) 207 Store 5426 5425 5427: 337 Load 339(s2DArrayShadow) 5428: 249(fvec4) Load 251(c4) 5429: 53(fvec2) Load 1409(dPdxy2) 5430: 53(fvec2) Load 1409(dPdxy2) 5431: 52(float) Load 4257(lodClamp) 5432: 52(float) CompositeExtract 5428 3 5433:6(float16_t) ImageSampleDrefExplicitLod 5427 5428 5432 Grad ConstOffset MinLod 5429 5430 722 5431 5434: 208(ptr) AccessChain 5280(texel) 207 5435:6(float16_t) Load 5434 5436:6(float16_t) FAdd 5435 5433 5437: 208(ptr) AccessChain 5280(texel) 207 Store 5437 5436 5438: 337 Load 339(s2DArrayShadow) 5439:175(f16vec3) Load 177(f16c3) 5440: 52(float) Load 215(compare) 5441:154(f16vec2) Load 1417(f16dPdxy2) 5442:154(f16vec2) Load 1417(f16dPdxy2) 5443:6(float16_t) Load 4264(f16lodClamp) 5444:6(float16_t) ImageSampleDrefExplicitLod 5438 5439 5440 Grad ConstOffset MinLod 5441 5442 722 5443 5445: 208(ptr) AccessChain 5280(texel) 207 5446:6(float16_t) Load 5445 5447:6(float16_t) FAdd 5446 5444 5448: 208(ptr) AccessChain 5280(texel) 207 Store 5448 5447 5449: 7(f16vec4) Load 5280(texel) ReturnValue 5449 FunctionEnd 115(testCombinedTextureSampler(): 7(f16vec4) Function None 8 116: Label 5452(texel): 64(ptr) Variable Function Store 5452(texel) 121 5455: 122 Load 5454(t1D) 5459: 5456 Load 5458(s) 5460: 123 SampledImage 5455 5459 5461: 52(float) Load 128(c1) 5462: 7(f16vec4) ImageSampleImplicitLod 5460 5461 5463: 7(f16vec4) Load 5452(texel) 5464: 7(f16vec4) FAdd 5463 5462 Store 5452(texel) 5464 5465: 122 Load 5454(t1D) 5466: 5456 Load 5458(s) 5467: 123 SampledImage 5465 5466 5468:6(float16_t) Load 135(f16c1) 5469:6(float16_t) Load 137(f16bias) 5470: 7(f16vec4) ImageSampleImplicitLod 5467 5468 Bias 5469 5471: 7(f16vec4) Load 5452(texel) 5472: 7(f16vec4) FAdd 5471 5470 Store 5452(texel) 5472 5475: 142 Load 5474(t2D) 5476: 5456 Load 5458(s) 5477: 143 SampledImage 5475 5476 5478: 53(fvec2) Load 148(c2) 5479: 7(f16vec4) ImageSampleImplicitLod 5477 5478 5480: 7(f16vec4) Load 5452(texel) 5481: 7(f16vec4) FAdd 5480 5479 Store 5452(texel) 5481 5482: 142 Load 5474(t2D) 5483: 5456 Load 5458(s) 5484: 143 SampledImage 5482 5483 5485:154(f16vec2) Load 156(f16c2) 5486:6(float16_t) Load 137(f16bias) 5487: 7(f16vec4) ImageSampleImplicitLod 5484 5485 Bias 5486 5488: 7(f16vec4) Load 5452(texel) 5489: 7(f16vec4) FAdd 5488 5487 Store 5452(texel) 5489 5492: 162 Load 5491(t3D) 5493: 5456 Load 5458(s) 5494: 163 SampledImage 5492 5493 5495: 167(fvec3) Load 169(c3) 5496: 7(f16vec4) ImageSampleImplicitLod 5494 5495 5497: 7(f16vec4) Load 5452(texel) 5498: 7(f16vec4) FAdd 5497 5496 Store 5452(texel) 5498 5499: 162 Load 5491(t3D) 5500: 5456 Load 5458(s) 5501: 163 SampledImage 5499 5500 5502:175(f16vec3) Load 177(f16c3) 5503:6(float16_t) Load 137(f16bias) 5504: 7(f16vec4) ImageSampleImplicitLod 5501 5502 Bias 5503 5505: 7(f16vec4) Load 5452(texel) 5506: 7(f16vec4) FAdd 5505 5504 Store 5452(texel) 5506 5509: 183 Load 5508(tCube) 5510: 5456 Load 5458(s) 5511: 184 SampledImage 5509 5510 5512: 167(fvec3) Load 169(c3) 5513: 7(f16vec4) ImageSampleImplicitLod 5511 5512 5514: 7(f16vec4) Load 5452(texel) 5515: 7(f16vec4) FAdd 5514 5513 Store 5452(texel) 5515 5516: 183 Load 5508(tCube) 5517: 5456 Load 5458(s) 5518: 184 SampledImage 5516 5517 5519:175(f16vec3) Load 177(f16c3) 5520:6(float16_t) Load 137(f16bias) 5521: 7(f16vec4) ImageSampleImplicitLod 5518 5519 Bias 5520 5522: 7(f16vec4) Load 5452(texel) 5523: 7(f16vec4) FAdd 5522 5521 Store 5452(texel) 5523 5524: 122 Load 5454(t1D) 5526: 5456 Load 5525(sShadow) 5527: 199 SampledImage 5524 5526 5528: 167(fvec3) Load 169(c3) 5529: 52(float) CompositeExtract 5528 2 5530:6(float16_t) ImageSampleDrefImplicitLod 5527 5528 5529 5531: 208(ptr) AccessChain 5452(texel) 207 5532:6(float16_t) Load 5531 5533:6(float16_t) FAdd 5532 5530 5534: 208(ptr) AccessChain 5452(texel) 207 Store 5534 5533 5535: 122 Load 5454(t1D) 5536: 5456 Load 5525(sShadow) 5537: 199 SampledImage 5535 5536 5538:154(f16vec2) Load 156(f16c2) 5539: 52(float) Load 215(compare) 5540:6(float16_t) Load 137(f16bias) 5541:6(float16_t) ImageSampleDrefImplicitLod 5537 5538 5539 Bias 5540 5542: 208(ptr) AccessChain 5452(texel) 207 5543:6(float16_t) Load 5542 5544:6(float16_t) FAdd 5543 5541 5545: 208(ptr) AccessChain 5452(texel) 207 Store 5545 5544 5546: 142 Load 5474(t2D) 5547: 5456 Load 5525(sShadow) 5548: 224 SampledImage 5546 5547 5549: 167(fvec3) Load 169(c3) 5550: 52(float) CompositeExtract 5549 2 5551:6(float16_t) ImageSampleDrefImplicitLod 5548 5549 5550 5552: 208(ptr) AccessChain 5452(texel) 207 5553:6(float16_t) Load 5552 5554:6(float16_t) FAdd 5553 5551 5555: 208(ptr) AccessChain 5452(texel) 207 Store 5555 5554 5556: 142 Load 5474(t2D) 5557: 5456 Load 5525(sShadow) 5558: 224 SampledImage 5556 5557 5559:154(f16vec2) Load 156(f16c2) 5560: 52(float) Load 215(compare) 5561:6(float16_t) Load 137(f16bias) 5562:6(float16_t) ImageSampleDrefImplicitLod 5558 5559 5560 Bias 5561 5563: 208(ptr) AccessChain 5452(texel) 207 5564:6(float16_t) Load 5563 5565:6(float16_t) FAdd 5564 5562 5566: 208(ptr) AccessChain 5452(texel) 207 Store 5566 5565 5567: 183 Load 5508(tCube) 5568: 5456 Load 5525(sShadow) 5569: 245 SampledImage 5567 5568 5570: 249(fvec4) Load 251(c4) 5571: 52(float) CompositeExtract 5570 3 5572:6(float16_t) ImageSampleDrefImplicitLod 5569 5570 5571 5573: 208(ptr) AccessChain 5452(texel) 207 5574:6(float16_t) Load 5573 5575:6(float16_t) FAdd 5574 5572 5576: 208(ptr) AccessChain 5452(texel) 207 Store 5576 5575 5577: 183 Load 5508(tCube) 5578: 5456 Load 5525(sShadow) 5579: 245 SampledImage 5577 5578 5580:175(f16vec3) Load 177(f16c3) 5581: 52(float) Load 215(compare) 5582:6(float16_t) Load 137(f16bias) 5583:6(float16_t) ImageSampleDrefImplicitLod 5579 5580 5581 Bias 5582 5584: 208(ptr) AccessChain 5452(texel) 207 5585:6(float16_t) Load 5584 5586:6(float16_t) FAdd 5585 5583 5587: 208(ptr) AccessChain 5452(texel) 207 Store 5587 5586 5590: 268 Load 5589(t1DArray) 5591: 5456 Load 5458(s) 5592: 269 SampledImage 5590 5591 5593: 53(fvec2) Load 148(c2) 5594: 7(f16vec4) ImageSampleImplicitLod 5592 5593 5595: 7(f16vec4) Load 5452(texel) 5596: 7(f16vec4) FAdd 5595 5594 Store 5452(texel) 5596 5597: 268 Load 5589(t1DArray) 5598: 5456 Load 5458(s) 5599: 269 SampledImage 5597 5598 5600:154(f16vec2) Load 156(f16c2) 5601:6(float16_t) Load 137(f16bias) 5602: 7(f16vec4) ImageSampleImplicitLod 5599 5600 Bias 5601 5603: 7(f16vec4) Load 5452(texel) 5604: 7(f16vec4) FAdd 5603 5602 Store 5452(texel) 5604 5607: 283 Load 5606(t2DArray) 5608: 5456 Load 5458(s) 5609: 284 SampledImage 5607 5608 5610: 167(fvec3) Load 169(c3) 5611: 7(f16vec4) ImageSampleImplicitLod 5609 5610 5612: 7(f16vec4) Load 5452(texel) 5613: 7(f16vec4) FAdd 5612 5611 Store 5452(texel) 5613 5614: 283 Load 5606(t2DArray) 5615: 5456 Load 5458(s) 5616: 284 SampledImage 5614 5615 5617:175(f16vec3) Load 177(f16c3) 5618:6(float16_t) Load 137(f16bias) 5619: 7(f16vec4) ImageSampleImplicitLod 5616 5617 Bias 5618 5620: 7(f16vec4) Load 5452(texel) 5621: 7(f16vec4) FAdd 5620 5619 Store 5452(texel) 5621 5624: 298 Load 5623(tCubeArray) 5625: 5456 Load 5458(s) 5626: 299 SampledImage 5624 5625 5627: 249(fvec4) Load 251(c4) 5628: 7(f16vec4) ImageSampleImplicitLod 5626 5627 5629: 7(f16vec4) Load 5452(texel) 5630: 7(f16vec4) FAdd 5629 5628 Store 5452(texel) 5630 5631: 298 Load 5623(tCubeArray) 5632: 5456 Load 5458(s) 5633: 299 SampledImage 5631 5632 5634: 7(f16vec4) Load 309(f16c4) 5635:6(float16_t) Load 137(f16bias) 5636: 7(f16vec4) ImageSampleImplicitLod 5633 5634 Bias 5635 5637: 7(f16vec4) Load 5452(texel) 5638: 7(f16vec4) FAdd 5637 5636 Store 5452(texel) 5638 5639: 268 Load 5589(t1DArray) 5640: 5456 Load 5525(sShadow) 5641: 316 SampledImage 5639 5640 5642: 167(fvec3) Load 169(c3) 5643: 52(float) CompositeExtract 5642 2 5644:6(float16_t) ImageSampleDrefImplicitLod 5641 5642 5643 5645: 208(ptr) AccessChain 5452(texel) 207 5646:6(float16_t) Load 5645 5647:6(float16_t) FAdd 5646 5644 5648: 208(ptr) AccessChain 5452(texel) 207 Store 5648 5647 5649: 268 Load 5589(t1DArray) 5650: 5456 Load 5525(sShadow) 5651: 316 SampledImage 5649 5650 5652:154(f16vec2) Load 156(f16c2) 5653: 52(float) Load 215(compare) 5654:6(float16_t) Load 137(f16bias) 5655:6(float16_t) ImageSampleDrefImplicitLod 5651 5652 5653 Bias 5654 5656: 208(ptr) AccessChain 5452(texel) 207 5657:6(float16_t) Load 5656 5658:6(float16_t) FAdd 5657 5655 5659: 208(ptr) AccessChain 5452(texel) 207 Store 5659 5658 5660: 283 Load 5606(t2DArray) 5661: 5456 Load 5525(sShadow) 5662: 337 SampledImage 5660 5661 5663: 249(fvec4) Load 251(c4) 5664: 52(float) CompositeExtract 5663 3 5665:6(float16_t) ImageSampleDrefImplicitLod 5662 5663 5664 5666: 208(ptr) AccessChain 5452(texel) 207 5667:6(float16_t) Load 5666 5668:6(float16_t) FAdd 5667 5665 5669: 208(ptr) AccessChain 5452(texel) 207 Store 5669 5668 5670: 283 Load 5606(t2DArray) 5671: 5456 Load 5525(sShadow) 5672: 337 SampledImage 5670 5671 5673:175(f16vec3) Load 177(f16c3) 5674: 52(float) Load 215(compare) 5675:6(float16_t) ImageSampleDrefImplicitLod 5672 5673 5674 5676: 208(ptr) AccessChain 5452(texel) 207 5677:6(float16_t) Load 5676 5678:6(float16_t) FAdd 5677 5675 5679: 208(ptr) AccessChain 5452(texel) 207 Store 5679 5678 5682: 356 Load 5681(t2DRect) 5683: 5456 Load 5458(s) 5684: 357 SampledImage 5682 5683 5685: 53(fvec2) Load 148(c2) 5686: 7(f16vec4) ImageSampleImplicitLod 5684 5685 5687: 7(f16vec4) Load 5452(texel) 5688: 7(f16vec4) FAdd 5687 5686 Store 5452(texel) 5688 5689: 356 Load 5681(t2DRect) 5690: 5456 Load 5458(s) 5691: 357 SampledImage 5689 5690 5692:154(f16vec2) Load 156(f16c2) 5693: 7(f16vec4) ImageSampleImplicitLod 5691 5692 5694: 7(f16vec4) Load 5452(texel) 5695: 7(f16vec4) FAdd 5694 5693 Store 5452(texel) 5695 5696: 356 Load 5681(t2DRect) 5697: 5456 Load 5525(sShadow) 5698: 371 SampledImage 5696 5697 5699: 167(fvec3) Load 169(c3) 5700: 52(float) CompositeExtract 5699 2 5701:6(float16_t) ImageSampleDrefImplicitLod 5698 5699 5700 5702: 208(ptr) AccessChain 5452(texel) 207 5703:6(float16_t) Load 5702 5704:6(float16_t) FAdd 5703 5701 5705: 208(ptr) AccessChain 5452(texel) 207 Store 5705 5704 5706: 356 Load 5681(t2DRect) 5707: 5456 Load 5525(sShadow) 5708: 371 SampledImage 5706 5707 5709:154(f16vec2) Load 156(f16c2) 5710: 52(float) Load 215(compare) 5711:6(float16_t) ImageSampleDrefImplicitLod 5708 5709 5710 5712: 208(ptr) AccessChain 5452(texel) 207 5713:6(float16_t) Load 5712 5714:6(float16_t) FAdd 5713 5711 5715: 208(ptr) AccessChain 5452(texel) 207 Store 5715 5714 5716: 298 Load 5623(tCubeArray) 5717: 5456 Load 5525(sShadow) 5718: 391 SampledImage 5716 5717 5719: 249(fvec4) Load 251(c4) 5720: 52(float) Load 215(compare) 5721:6(float16_t) ImageSampleDrefImplicitLod 5718 5719 5720 5722: 208(ptr) AccessChain 5452(texel) 207 5723:6(float16_t) Load 5722 5724:6(float16_t) FAdd 5723 5721 5725: 208(ptr) AccessChain 5452(texel) 207 Store 5725 5724 5726: 298 Load 5623(tCubeArray) 5727: 5456 Load 5525(sShadow) 5728: 391 SampledImage 5726 5727 5729: 7(f16vec4) Load 309(f16c4) 5730: 52(float) Load 215(compare) 5731:6(float16_t) ImageSampleDrefImplicitLod 5728 5729 5730 5732: 208(ptr) AccessChain 5452(texel) 207 5733:6(float16_t) Load 5732 5734:6(float16_t) FAdd 5733 5731 5735: 208(ptr) AccessChain 5452(texel) 207 Store 5735 5734 5736: 7(f16vec4) Load 5452(texel) ReturnValue 5736 FunctionEnd 117(testSubpassLoad(): 7(f16vec4) Function None 8 118: Label 5742: 5739 Load 5741(subpass) 5744: 7(f16vec4) ImageRead 5742 5743 5748: 5745 Load 5747(subpassMS) 5749: 7(f16vec4) ImageRead 5748 5743 Sample 1326 5750: 7(f16vec4) FAdd 5744 5749 ReturnValue 5750 FunctionEnd glslang-8.13.3559/Test/baseResults/spv.float16convertonlyarith.comp.out000066400000000000000000000034151360464450000260240ustar00rootroot00000000000000spv.float16convertonlyarith.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.float16convertonlystorage.comp.out000066400000000000000000000033731360464450000263640ustar00rootroot00000000000000spv.float16convertonlystorage.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.float32.frag.out000066400000000000000000001201651360464450000224520ustar00rootroot00000000000000spv.float32.frag // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 533 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 520 "S" MemberName 520(S) 0 "x" MemberName 520(S) 1 "y" MemberName 520(S) 2 "z" Name 522 "B1" MemberName 522(B1) 0 "a" MemberName 522(B1) 1 "b" MemberName 522(B1) 2 "c" MemberName 522(B1) 3 "d" MemberName 522(B1) 4 "e" MemberName 522(B1) 5 "f" MemberName 522(B1) 6 "g" MemberName 522(B1) 7 "h" Name 524 "" Name 525 "sf16" Name 526 "sf" Name 527 "sd" Name 528 "f16_to_f" Name 530 "f16_to_d" Name 531 "f_to_f16" Name 532 "d_to_f16" Decorate 518 ArrayStride 16 Decorate 519 ArrayStride 32 MemberDecorate 520(S) 0 Offset 0 MemberDecorate 520(S) 1 Offset 8 MemberDecorate 520(S) 2 Offset 16 Decorate 521 ArrayStride 32 MemberDecorate 522(B1) 0 Offset 0 MemberDecorate 522(B1) 1 Offset 8 MemberDecorate 522(B1) 2 Offset 16 MemberDecorate 522(B1) 3 Offset 32 MemberDecorate 522(B1) 4 ColMajor MemberDecorate 522(B1) 4 Offset 64 MemberDecorate 522(B1) 4 MatrixStride 16 MemberDecorate 522(B1) 5 ColMajor MemberDecorate 522(B1) 5 Offset 96 MemberDecorate 522(B1) 5 MatrixStride 16 MemberDecorate 522(B1) 6 Offset 160 MemberDecorate 522(B1) 7 Offset 192 Decorate 522(B1) Block Decorate 524 DescriptorSet 0 Decorate 524 Binding 0 Decorate 525(sf16) SpecId 100 Decorate 526(sf) SpecId 101 Decorate 527(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) 509: 192(int) Constant 1 514: 26(float) Constant 1056964608 515: 27(fvec2) ConstantComposite 514 514 517: 31(int) Constant 2 518: TypeArray 26(float) 517 519: TypeArray 412 517 520(S): TypeStruct 26(float) 27(fvec2) 153(fvec3) 521: TypeArray 520(S) 517 522(B1): TypeStruct 26(float) 27(fvec2) 153(fvec3) 518 412 519 520(S) 521 523: TypePointer Uniform 522(B1) 524: 523(ptr) Variable Uniform 525(sf16):172(float16_t) SpecConstant 12288 526(sf): 26(float) SpecConstant 1048576000 527(sd):149(float64_t) SpecConstant 0 1071644672 528(f16_to_f): 26(float) SpecConstantOp 115 525(sf16) 529: 26(float) SpecConstantOp 115 525(sf16) 530(f16_to_d):149(float64_t) SpecConstantOp 115 529 531(f_to_f16):172(float16_t) SpecConstantOp 115 526(sf) 532(d_to_f16):172(float16_t) SpecConstantOp 115 527(sd) 4(main): 2 Function None 3 5: Label Return FunctionEnd 6(literal(): 2 Function None 3 7: Label 29(f32v): 28(ptr) Variable Function 34: 33(ptr) AccessChain 29(f32v) 32 Store 34 30 38: 27(fvec2) Load 29(f32v) 39: 27(fvec2) FAdd 38 37 Store 29(f32v) 39 Return FunctionEnd 8(operators(): 2 Function None 3 9: Label 40(f32v): 28(ptr) Variable Function 62(f32m): 61(ptr) Variable Function 85(f32): 33(ptr) Variable Function 109(b): 108(ptr) Variable Function 41: 27(fvec2) Load 40(f32v) 42: 27(fvec2) Load 40(f32v) 43: 27(fvec2) FAdd 42 41 Store 40(f32v) 43 44: 27(fvec2) Load 40(f32v) 45: 27(fvec2) Load 40(f32v) 46: 27(fvec2) FSub 45 44 Store 40(f32v) 46 47: 27(fvec2) Load 40(f32v) 48: 27(fvec2) Load 40(f32v) 49: 27(fvec2) FMul 48 47 Store 40(f32v) 49 50: 27(fvec2) Load 40(f32v) 51: 27(fvec2) Load 40(f32v) 52: 27(fvec2) FDiv 51 50 Store 40(f32v) 52 53: 27(fvec2) Load 40(f32v) 55: 27(fvec2) CompositeConstruct 54 54 56: 27(fvec2) FAdd 53 55 Store 40(f32v) 56 57: 27(fvec2) Load 40(f32v) 58: 27(fvec2) CompositeConstruct 54 54 59: 27(fvec2) FSub 57 58 Store 40(f32v) 59 63: 60 Load 62(f32m) 64: 27(fvec2) CompositeConstruct 54 54 65: 27(fvec2) CompositeExtract 63 0 66: 27(fvec2) FAdd 65 64 67: 27(fvec2) CompositeExtract 63 1 68: 27(fvec2) FAdd 67 64 69: 60 CompositeConstruct 66 68 Store 62(f32m) 69 70: 60 Load 62(f32m) 71: 27(fvec2) CompositeConstruct 54 54 72: 27(fvec2) CompositeExtract 70 0 73: 27(fvec2) FSub 72 71 74: 27(fvec2) CompositeExtract 70 1 75: 27(fvec2) FSub 74 71 76: 60 CompositeConstruct 73 75 Store 62(f32m) 76 77: 27(fvec2) Load 40(f32v) 78: 27(fvec2) FNegate 77 Store 40(f32v) 78 79: 60 Load 62(f32m) 80: 27(fvec2) CompositeExtract 79 0 81: 27(fvec2) FNegate 80 82: 27(fvec2) CompositeExtract 79 1 83: 27(fvec2) FNegate 82 84: 60 CompositeConstruct 81 83 Store 62(f32m) 84 86: 33(ptr) AccessChain 40(f32v) 32 87: 26(float) Load 86 89: 33(ptr) AccessChain 40(f32v) 88 90: 26(float) Load 89 91: 26(float) FAdd 87 90 Store 85(f32) 91 92: 33(ptr) AccessChain 40(f32v) 32 93: 26(float) Load 92 94: 33(ptr) AccessChain 40(f32v) 88 95: 26(float) Load 94 96: 26(float) FSub 93 95 Store 85(f32) 96 97: 33(ptr) AccessChain 40(f32v) 32 98: 26(float) Load 97 99: 33(ptr) AccessChain 40(f32v) 88 100: 26(float) Load 99 101: 26(float) FMul 98 100 Store 85(f32) 101 102: 33(ptr) AccessChain 40(f32v) 32 103: 26(float) Load 102 104: 33(ptr) AccessChain 40(f32v) 88 105: 26(float) Load 104 106: 26(float) FDiv 103 105 Store 85(f32) 106 110: 33(ptr) AccessChain 40(f32v) 32 111: 26(float) Load 110 112: 26(float) Load 85(f32) 113: 107(bool) FOrdNotEqual 111 112 Store 109(b) 113 114: 33(ptr) AccessChain 40(f32v) 88 115: 26(float) Load 114 116: 26(float) Load 85(f32) 117: 107(bool) FOrdEqual 115 116 Store 109(b) 117 118: 33(ptr) AccessChain 40(f32v) 32 119: 26(float) Load 118 120: 26(float) Load 85(f32) 121: 107(bool) FOrdGreaterThan 119 120 Store 109(b) 121 122: 33(ptr) AccessChain 40(f32v) 88 123: 26(float) Load 122 124: 26(float) Load 85(f32) 125: 107(bool) FOrdLessThan 123 124 Store 109(b) 125 126: 33(ptr) AccessChain 40(f32v) 32 127: 26(float) Load 126 128: 26(float) Load 85(f32) 129: 107(bool) FOrdGreaterThanEqual 127 128 Store 109(b) 129 130: 33(ptr) AccessChain 40(f32v) 88 131: 26(float) Load 130 132: 26(float) Load 85(f32) 133: 107(bool) FOrdLessThanEqual 131 132 Store 109(b) 133 134: 27(fvec2) Load 40(f32v) 135: 26(float) Load 85(f32) 136: 27(fvec2) VectorTimesScalar 134 135 Store 40(f32v) 136 137: 60 Load 62(f32m) 138: 26(float) Load 85(f32) 139: 60 MatrixTimesScalar 137 138 Store 62(f32m) 139 140: 60 Load 62(f32m) 141: 27(fvec2) Load 40(f32v) 142: 27(fvec2) MatrixTimesVector 140 141 Store 40(f32v) 142 143: 27(fvec2) Load 40(f32v) 144: 60 Load 62(f32m) 145: 27(fvec2) VectorTimesMatrix 143 144 Store 40(f32v) 145 146: 60 Load 62(f32m) 147: 60 Load 62(f32m) 148: 60 MatrixTimesMatrix 146 147 Store 62(f32m) 148 Return FunctionEnd 10(typeCast(): 2 Function None 3 11: Label 152(f64v): 151(ptr) Variable Function 155(f32v): 154(ptr) Variable Function 160(bv): 159(ptr) Variable Function 175(f16v): 174(ptr) Variable Function 183(i8v): 182(ptr) Variable Function 189(i16v): 188(ptr) Variable Function 195(i32v): 194(ptr) Variable Function 201(i64v): 200(ptr) Variable Function 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) FOrdNotEqual 166 163 Store 160(bv) 167 168:150(f64vec3) Load 152(f64v) 169: 153(fvec3) FConvert 168 Store 155(f32v) 169 170: 153(fvec3) Load 155(f32v) 171:150(f64vec3) FConvert 170 Store 152(f64v) 171 176:173(f16vec3) Load 175(f16v) 177: 153(fvec3) FConvert 176 Store 155(f32v) 177 178: 153(fvec3) Load 155(f32v) 179:173(f16vec3) FConvert 178 Store 175(f16v) 179 184: 153(fvec3) Load 155(f32v) 185: 181(i8vec3) ConvertFToS 184 Store 183(i8v) 185 190: 153(fvec3) Load 155(f32v) 191:187(i16vec3) ConvertFToS 190 Store 189(i16v) 191 196: 153(fvec3) Load 155(f32v) 197: 193(ivec3) ConvertFToS 196 Store 195(i32v) 197 202: 153(fvec3) Load 155(f32v) 203:199(i64vec3) ConvertFToS 202 Store 201(i64v) 203 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) FOrdNotEqual 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: 153(fvec3) Load 469(f32v) 485: 153(fvec3) VectorShuffle 484 483 3 4 2 Store 469(f32v) 485 486: 153(fvec3) Load 471(if32v) 487: 27(fvec2) VectorShuffle 486 486 0 1 488: 27(fvec2) DPdyFine 487 489: 153(fvec3) Load 469(f32v) 490: 153(fvec3) VectorShuffle 489 488 3 4 2 Store 469(f32v) 490 491: 153(fvec3) Load 471(if32v) 492: 153(fvec3) DPdxCoarse 491 Store 469(f32v) 492 493: 153(fvec3) Load 471(if32v) 494: 153(fvec3) DPdxCoarse 493 Store 469(f32v) 494 495: 472(ptr) AccessChain 471(if32v) 32 496: 26(float) Load 495 497: 26(float) Fwidth 496 498: 33(ptr) AccessChain 469(f32v) 32 Store 498 497 499: 153(fvec3) Load 471(if32v) 500: 27(fvec2) VectorShuffle 499 499 0 1 501: 27(fvec2) FwidthFine 500 502: 153(fvec3) Load 469(f32v) 503: 153(fvec3) VectorShuffle 502 501 3 4 2 Store 469(f32v) 503 504: 153(fvec3) Load 471(if32v) 505: 153(fvec3) FwidthCoarse 504 Store 469(f32v) 505 506: 472(ptr) AccessChain 471(if32v) 32 507: 26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 506 508: 33(ptr) AccessChain 469(f32v) 32 Store 508 507 510: 153(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 471(if32v) 509 511: 27(fvec2) VectorShuffle 510 510 0 1 512: 153(fvec3) Load 469(f32v) 513: 153(fvec3) VectorShuffle 512 511 3 4 2 Store 469(f32v) 513 516: 153(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 471(if32v) 515 Store 469(f32v) 516 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.float64.frag.out000066400000000000000000001173321360464450000224610ustar00rootroot00000000000000spv.float64.frag Validation failed // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 524 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" 461 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 "f64v" Name 40 "f64v" Name 62 "f64m" Name 85 "f64" Name 109 "b" Name 151 "f64v" Name 154 "bv" Name 165 "f16v" Name 173 "i8v" Name 179 "i16v" Name 185 "i32v" Name 191 "i64v" Name 197 "u8v" Name 203 "u16v" Name 208 "u32v" Name 214 "u64v" Name 219 "f64v2" Name 220 "f64v1" Name 252 "f64v2" Name 253 "f64v1" Name 269 "f64v2" Name 270 "f64v1" Name 291 "f64" Name 295 "f64v3" Name 335 "bv" Name 356 "b" Name 366 "iv" Name 367 "ResType" Name 374 "f64" Name 375 "f64v1" Name 379 "f64v2" Name 385 "f64v3" Name 404 "f64m3" Name 405 "f64m1" Name 407 "f64m2" Name 416 "f64v1" Name 418 "f64v2" Name 423 "f64m4" Name 426 "f64" Name 429 "f64m5" Name 434 "f64m6" Name 435 "f64m7" Name 438 "bv" Name 439 "f64v1" Name 441 "f64v2" Name 459 "f64v" Name 461 "if64v" Name 510 "S" MemberName 510(S) 0 "x" MemberName 510(S) 1 "y" MemberName 510(S) 2 "z" Name 512 "B1" MemberName 512(B1) 0 "a" MemberName 512(B1) 1 "b" MemberName 512(B1) 2 "c" MemberName 512(B1) 3 "d" MemberName 512(B1) 4 "e" MemberName 512(B1) 5 "f" MemberName 512(B1) 6 "g" MemberName 512(B1) 7 "h" Name 514 "" Name 515 "sf16" Name 517 "sf" Name 518 "sd" Name 519 "f16_to_f" Name 521 "f16_to_d" Name 522 "f_to_f16" Name 523 "d_to_f16" Decorate 461(if64v) Flat Decorate 508 ArrayStride 16 Decorate 509 ArrayStride 64 MemberDecorate 510(S) 0 Offset 0 MemberDecorate 510(S) 1 Offset 16 MemberDecorate 510(S) 2 Offset 32 Decorate 511 ArrayStride 64 MemberDecorate 512(B1) 0 Offset 0 MemberDecorate 512(B1) 1 Offset 16 MemberDecorate 512(B1) 2 Offset 32 MemberDecorate 512(B1) 3 Offset 64 MemberDecorate 512(B1) 4 ColMajor MemberDecorate 512(B1) 4 Offset 96 MemberDecorate 512(B1) 4 MatrixStride 32 MemberDecorate 512(B1) 5 ColMajor MemberDecorate 512(B1) 5 Offset 160 MemberDecorate 512(B1) 5 MatrixStride 32 MemberDecorate 512(B1) 6 Offset 288 MemberDecorate 512(B1) 7 Offset 352 Decorate 512(B1) Block Decorate 514 DescriptorSet 0 Decorate 514 Binding 0 Decorate 515(sf16) SpecId 100 Decorate 517(sf) SpecId 101 Decorate 518(sd) SpecId 102 2: TypeVoid 3: TypeFunction 2 26: TypeFloat 64 27: TypeVector 26(float64_t) 2 28: TypePointer Function 27(f64vec2) 30:26(float64_t) Constant 2696277389 1051772663 31: TypeInt 32 0 32: 31(int) Constant 0 33: TypePointer Function 26(float64_t) 35:26(float64_t) Constant 0 3218079744 36:26(float64_t) Constant 3951369912 1067366481 37: 27(f64vec2) ConstantComposite 35 36 54:26(float64_t) Constant 0 1072693248 60: TypeMatrix 27(f64vec2) 2 61: TypePointer Function 60 88: 31(int) Constant 1 107: TypeBool 108: TypePointer Function 107(bool) 149: TypeVector 26(float64_t) 3 150: TypePointer Function 149(f64vec3) 152: TypeVector 107(bool) 3 153: TypePointer Function 152(bvec3) 156:26(float64_t) Constant 0 0 157:149(f64vec3) ConstantComposite 156 156 156 158:149(f64vec3) ConstantComposite 54 54 54 162: TypeFloat 16 163: TypeVector 162(float16_t) 3 164: TypePointer Function 163(f16vec3) 170: TypeInt 8 1 171: TypeVector 170(int8_t) 3 172: TypePointer Function 171(i8vec3) 176: TypeInt 16 1 177: TypeVector 176(int16_t) 3 178: TypePointer Function 177(i16vec3) 182: TypeInt 32 1 183: TypeVector 182(int) 3 184: TypePointer Function 183(ivec3) 188: TypeInt 64 1 189: TypeVector 188(int64_t) 3 190: TypePointer Function 189(i64vec3) 194: TypeInt 8 0 195: TypeVector 194(int8_t) 3 196: TypePointer Function 195(i8vec3) 200: TypeInt 16 0 201: TypeVector 200(int16_t) 3 202: TypePointer Function 201(i16vec3) 206: TypeVector 31(int) 3 207: TypePointer Function 206(ivec3) 211: TypeInt 64 0 212: TypeVector 211(int64_t) 3 213: TypePointer Function 212(i64vec3) 217: TypeVector 26(float64_t) 4 218: TypePointer Function 217(f64vec4) 367(ResType): TypeStruct 149(f64vec3) 183(ivec3) 402: TypeMatrix 149(f64vec3) 2 403: TypePointer Function 402 421: TypeMatrix 27(f64vec2) 3 422: TypePointer Function 421 427: TypeMatrix 149(f64vec3) 3 428: TypePointer Function 427 432: TypeMatrix 217(f64vec4) 4 433: TypePointer Function 432 460: TypePointer Input 149(f64vec3) 461(if64v): 460(ptr) Variable Input 462: TypePointer Input 26(float64_t) 499: 182(int) Constant 1 504:26(float64_t) Constant 0 1071644672 505: 27(f64vec2) ConstantComposite 504 504 507: 31(int) Constant 2 508: TypeArray 26(float64_t) 507 509: TypeArray 402 507 510(S): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 511: TypeArray 510(S) 507 512(B1): TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 508 402 509 510(S) 511 513: TypePointer Uniform 512(B1) 514: 513(ptr) Variable Uniform 515(sf16):162(float16_t) SpecConstant 12288 516: TypeFloat 32 517(sf): 516(float) SpecConstant 1048576000 518(sd):26(float64_t) SpecConstant 0 1071644672 519(f16_to_f): 516(float) SpecConstantOp 115 515(sf16) 520: 516(float) SpecConstantOp 115 515(sf16) 521(f16_to_d):26(float64_t) SpecConstantOp 115 520 522(f_to_f16):162(float16_t) SpecConstantOp 115 517(sf) 523(d_to_f16):162(float16_t) SpecConstantOp 115 518(sd) 4(main): 2 Function None 3 5: Label Return FunctionEnd 6(literal(): 2 Function None 3 7: Label 29(f64v): 28(ptr) Variable Function 34: 33(ptr) AccessChain 29(f64v) 32 Store 34 30 38: 27(f64vec2) Load 29(f64v) 39: 27(f64vec2) FAdd 38 37 Store 29(f64v) 39 Return FunctionEnd 8(operators(): 2 Function None 3 9: Label 40(f64v): 28(ptr) Variable Function 62(f64m): 61(ptr) Variable Function 85(f64): 33(ptr) Variable Function 109(b): 108(ptr) Variable Function 41: 27(f64vec2) Load 40(f64v) 42: 27(f64vec2) Load 40(f64v) 43: 27(f64vec2) FAdd 42 41 Store 40(f64v) 43 44: 27(f64vec2) Load 40(f64v) 45: 27(f64vec2) Load 40(f64v) 46: 27(f64vec2) FSub 45 44 Store 40(f64v) 46 47: 27(f64vec2) Load 40(f64v) 48: 27(f64vec2) Load 40(f64v) 49: 27(f64vec2) FMul 48 47 Store 40(f64v) 49 50: 27(f64vec2) Load 40(f64v) 51: 27(f64vec2) Load 40(f64v) 52: 27(f64vec2) FDiv 51 50 Store 40(f64v) 52 53: 27(f64vec2) Load 40(f64v) 55: 27(f64vec2) CompositeConstruct 54 54 56: 27(f64vec2) FAdd 53 55 Store 40(f64v) 56 57: 27(f64vec2) Load 40(f64v) 58: 27(f64vec2) CompositeConstruct 54 54 59: 27(f64vec2) FSub 57 58 Store 40(f64v) 59 63: 60 Load 62(f64m) 64: 27(f64vec2) CompositeConstruct 54 54 65: 27(f64vec2) CompositeExtract 63 0 66: 27(f64vec2) FAdd 65 64 67: 27(f64vec2) CompositeExtract 63 1 68: 27(f64vec2) FAdd 67 64 69: 60 CompositeConstruct 66 68 Store 62(f64m) 69 70: 60 Load 62(f64m) 71: 27(f64vec2) CompositeConstruct 54 54 72: 27(f64vec2) CompositeExtract 70 0 73: 27(f64vec2) FSub 72 71 74: 27(f64vec2) CompositeExtract 70 1 75: 27(f64vec2) FSub 74 71 76: 60 CompositeConstruct 73 75 Store 62(f64m) 76 77: 27(f64vec2) Load 40(f64v) 78: 27(f64vec2) FNegate 77 Store 40(f64v) 78 79: 60 Load 62(f64m) 80: 27(f64vec2) CompositeExtract 79 0 81: 27(f64vec2) FNegate 80 82: 27(f64vec2) CompositeExtract 79 1 83: 27(f64vec2) FNegate 82 84: 60 CompositeConstruct 81 83 Store 62(f64m) 84 86: 33(ptr) AccessChain 40(f64v) 32 87:26(float64_t) Load 86 89: 33(ptr) AccessChain 40(f64v) 88 90:26(float64_t) Load 89 91:26(float64_t) FAdd 87 90 Store 85(f64) 91 92: 33(ptr) AccessChain 40(f64v) 32 93:26(float64_t) Load 92 94: 33(ptr) AccessChain 40(f64v) 88 95:26(float64_t) Load 94 96:26(float64_t) FSub 93 95 Store 85(f64) 96 97: 33(ptr) AccessChain 40(f64v) 32 98:26(float64_t) Load 97 99: 33(ptr) AccessChain 40(f64v) 88 100:26(float64_t) Load 99 101:26(float64_t) FMul 98 100 Store 85(f64) 101 102: 33(ptr) AccessChain 40(f64v) 32 103:26(float64_t) Load 102 104: 33(ptr) AccessChain 40(f64v) 88 105:26(float64_t) Load 104 106:26(float64_t) FDiv 103 105 Store 85(f64) 106 110: 33(ptr) AccessChain 40(f64v) 32 111:26(float64_t) Load 110 112:26(float64_t) Load 85(f64) 113: 107(bool) FOrdNotEqual 111 112 Store 109(b) 113 114: 33(ptr) AccessChain 40(f64v) 88 115:26(float64_t) Load 114 116:26(float64_t) Load 85(f64) 117: 107(bool) FOrdEqual 115 116 Store 109(b) 117 118: 33(ptr) AccessChain 40(f64v) 32 119:26(float64_t) Load 118 120:26(float64_t) Load 85(f64) 121: 107(bool) FOrdGreaterThan 119 120 Store 109(b) 121 122: 33(ptr) AccessChain 40(f64v) 88 123:26(float64_t) Load 122 124:26(float64_t) Load 85(f64) 125: 107(bool) FOrdLessThan 123 124 Store 109(b) 125 126: 33(ptr) AccessChain 40(f64v) 32 127:26(float64_t) Load 126 128:26(float64_t) Load 85(f64) 129: 107(bool) FOrdGreaterThanEqual 127 128 Store 109(b) 129 130: 33(ptr) AccessChain 40(f64v) 88 131:26(float64_t) Load 130 132:26(float64_t) Load 85(f64) 133: 107(bool) FOrdLessThanEqual 131 132 Store 109(b) 133 134: 27(f64vec2) Load 40(f64v) 135:26(float64_t) Load 85(f64) 136: 27(f64vec2) VectorTimesScalar 134 135 Store 40(f64v) 136 137: 60 Load 62(f64m) 138:26(float64_t) Load 85(f64) 139: 60 MatrixTimesScalar 137 138 Store 62(f64m) 139 140: 60 Load 62(f64m) 141: 27(f64vec2) Load 40(f64v) 142: 27(f64vec2) MatrixTimesVector 140 141 Store 40(f64v) 142 143: 27(f64vec2) Load 40(f64v) 144: 60 Load 62(f64m) 145: 27(f64vec2) VectorTimesMatrix 143 144 Store 40(f64v) 145 146: 60 Load 62(f64m) 147: 60 Load 62(f64m) 148: 60 MatrixTimesMatrix 146 147 Store 62(f64m) 148 Return FunctionEnd 10(typeCast(): 2 Function None 3 11: Label 151(f64v): 150(ptr) Variable Function 154(bv): 153(ptr) Variable Function 165(f16v): 164(ptr) Variable Function 173(i8v): 172(ptr) Variable Function 179(i16v): 178(ptr) Variable Function 185(i32v): 184(ptr) Variable Function 191(i64v): 190(ptr) Variable Function 197(u8v): 196(ptr) Variable Function 203(u16v): 202(ptr) Variable Function 208(u32v): 207(ptr) Variable Function 214(u64v): 213(ptr) Variable Function 155: 152(bvec3) Load 154(bv) 159:149(f64vec3) Select 155 158 157 Store 151(f64v) 159 160:149(f64vec3) Load 151(f64v) 161: 152(bvec3) FOrdNotEqual 160 157 Store 154(bv) 161 166:163(f16vec3) Load 165(f16v) 167:149(f64vec3) FConvert 166 Store 151(f64v) 167 168:149(f64vec3) Load 151(f64v) 169:163(f16vec3) FConvert 168 Store 165(f16v) 169 174:149(f64vec3) Load 151(f64v) 175: 171(i8vec3) ConvertFToS 174 Store 173(i8v) 175 180:149(f64vec3) Load 151(f64v) 181:177(i16vec3) ConvertFToS 180 Store 179(i16v) 181 186:149(f64vec3) Load 151(f64v) 187: 183(ivec3) ConvertFToS 186 Store 185(i32v) 187 192:149(f64vec3) Load 151(f64v) 193:189(i64vec3) ConvertFToS 192 Store 191(i64v) 193 198:149(f64vec3) Load 151(f64v) 199: 195(i8vec3) ConvertFToU 198 Store 197(u8v) 199 204:149(f64vec3) Load 151(f64v) 205:201(i16vec3) ConvertFToU 204 Store 203(u16v) 205 209:149(f64vec3) Load 151(f64v) 210: 206(ivec3) ConvertFToU 209 Store 208(u32v) 210 215:149(f64vec3) Load 151(f64v) 216:212(i64vec3) ConvertFToU 215 Store 214(u64v) 216 Return FunctionEnd 12(builtinAngleTrigFuncs(): 2 Function None 3 13: Label 219(f64v2): 218(ptr) Variable Function 220(f64v1): 218(ptr) Variable Function 221:217(f64vec4) Load 220(f64v1) 222:217(f64vec4) ExtInst 1(GLSL.std.450) 11(Radians) 221 Store 219(f64v2) 222 223:217(f64vec4) Load 220(f64v1) 224:217(f64vec4) ExtInst 1(GLSL.std.450) 12(Degrees) 223 Store 219(f64v2) 224 225:217(f64vec4) Load 220(f64v1) 226:217(f64vec4) ExtInst 1(GLSL.std.450) 13(Sin) 225 Store 219(f64v2) 226 227:217(f64vec4) Load 220(f64v1) 228:217(f64vec4) ExtInst 1(GLSL.std.450) 14(Cos) 227 Store 219(f64v2) 228 229:217(f64vec4) Load 220(f64v1) 230:217(f64vec4) ExtInst 1(GLSL.std.450) 15(Tan) 229 Store 219(f64v2) 230 231:217(f64vec4) Load 220(f64v1) 232:217(f64vec4) ExtInst 1(GLSL.std.450) 16(Asin) 231 Store 219(f64v2) 232 233:217(f64vec4) Load 220(f64v1) 234:217(f64vec4) ExtInst 1(GLSL.std.450) 17(Acos) 233 Store 219(f64v2) 234 235:217(f64vec4) Load 220(f64v1) 236:217(f64vec4) Load 219(f64v2) 237:217(f64vec4) ExtInst 1(GLSL.std.450) 25(Atan2) 235 236 Store 219(f64v2) 237 238:217(f64vec4) Load 220(f64v1) 239:217(f64vec4) ExtInst 1(GLSL.std.450) 18(Atan) 238 Store 219(f64v2) 239 240:217(f64vec4) Load 220(f64v1) 241:217(f64vec4) ExtInst 1(GLSL.std.450) 19(Sinh) 240 Store 219(f64v2) 241 242:217(f64vec4) Load 220(f64v1) 243:217(f64vec4) ExtInst 1(GLSL.std.450) 20(Cosh) 242 Store 219(f64v2) 243 244:217(f64vec4) Load 220(f64v1) 245:217(f64vec4) ExtInst 1(GLSL.std.450) 21(Tanh) 244 Store 219(f64v2) 245 246:217(f64vec4) Load 220(f64v1) 247:217(f64vec4) ExtInst 1(GLSL.std.450) 22(Asinh) 246 Store 219(f64v2) 247 248:217(f64vec4) Load 220(f64v1) 249:217(f64vec4) ExtInst 1(GLSL.std.450) 23(Acosh) 248 Store 219(f64v2) 249 250:217(f64vec4) Load 220(f64v1) 251:217(f64vec4) ExtInst 1(GLSL.std.450) 24(Atanh) 250 Store 219(f64v2) 251 Return FunctionEnd 14(builtinExpFuncs(): 2 Function None 3 15: Label 252(f64v2): 28(ptr) Variable Function 253(f64v1): 28(ptr) Variable Function 254: 27(f64vec2) Load 253(f64v1) 255: 27(f64vec2) Load 252(f64v2) 256: 27(f64vec2) ExtInst 1(GLSL.std.450) 26(Pow) 254 255 Store 252(f64v2) 256 257: 27(f64vec2) Load 253(f64v1) 258: 27(f64vec2) ExtInst 1(GLSL.std.450) 27(Exp) 257 Store 252(f64v2) 258 259: 27(f64vec2) Load 253(f64v1) 260: 27(f64vec2) ExtInst 1(GLSL.std.450) 28(Log) 259 Store 252(f64v2) 260 261: 27(f64vec2) Load 253(f64v1) 262: 27(f64vec2) ExtInst 1(GLSL.std.450) 29(Exp2) 261 Store 252(f64v2) 262 263: 27(f64vec2) Load 253(f64v1) 264: 27(f64vec2) ExtInst 1(GLSL.std.450) 30(Log2) 263 Store 252(f64v2) 264 265: 27(f64vec2) Load 253(f64v1) 266: 27(f64vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 265 Store 252(f64v2) 266 267: 27(f64vec2) Load 253(f64v1) 268: 27(f64vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 267 Store 252(f64v2) 268 Return FunctionEnd 16(builtinCommonFuncs(): 2 Function None 3 17: Label 269(f64v2): 150(ptr) Variable Function 270(f64v1): 150(ptr) Variable Function 291(f64): 33(ptr) Variable Function 295(f64v3): 150(ptr) Variable Function 335(bv): 153(ptr) Variable Function 356(b): 108(ptr) Variable Function 366(iv): 184(ptr) Variable Function 271:149(f64vec3) Load 270(f64v1) 272:149(f64vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 271 Store 269(f64v2) 272 273:149(f64vec3) Load 270(f64v1) 274:149(f64vec3) ExtInst 1(GLSL.std.450) 6(FSign) 273 Store 269(f64v2) 274 275:149(f64vec3) Load 270(f64v1) 276:149(f64vec3) ExtInst 1(GLSL.std.450) 8(Floor) 275 Store 269(f64v2) 276 277:149(f64vec3) Load 270(f64v1) 278:149(f64vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 277 Store 269(f64v2) 278 279:149(f64vec3) Load 270(f64v1) 280:149(f64vec3) ExtInst 1(GLSL.std.450) 1(Round) 279 Store 269(f64v2) 280 281:149(f64vec3) Load 270(f64v1) 282:149(f64vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 281 Store 269(f64v2) 282 283:149(f64vec3) Load 270(f64v1) 284:149(f64vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 283 Store 269(f64v2) 284 285:149(f64vec3) Load 270(f64v1) 286:149(f64vec3) ExtInst 1(GLSL.std.450) 10(Fract) 285 Store 269(f64v2) 286 287:149(f64vec3) Load 270(f64v1) 288:149(f64vec3) Load 269(f64v2) 289:149(f64vec3) FMod 287 288 Store 269(f64v2) 289 290:149(f64vec3) Load 270(f64v1) 292:26(float64_t) Load 291(f64) 293:149(f64vec3) CompositeConstruct 292 292 292 294:149(f64vec3) FMod 290 293 Store 269(f64v2) 294 296:149(f64vec3) Load 270(f64v1) 297:149(f64vec3) ExtInst 1(GLSL.std.450) 35(Modf) 296 269(f64v2) Store 295(f64v3) 297 298:149(f64vec3) Load 270(f64v1) 299:149(f64vec3) Load 269(f64v2) 300:149(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 299 Store 295(f64v3) 300 301:149(f64vec3) Load 270(f64v1) 302:26(float64_t) Load 291(f64) 303:149(f64vec3) CompositeConstruct 302 302 302 304:149(f64vec3) ExtInst 1(GLSL.std.450) 37(FMin) 301 303 Store 295(f64v3) 304 305:149(f64vec3) Load 270(f64v1) 306:149(f64vec3) Load 269(f64v2) 307:149(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 306 Store 295(f64v3) 307 308:149(f64vec3) Load 270(f64v1) 309:26(float64_t) Load 291(f64) 310:149(f64vec3) CompositeConstruct 309 309 309 311:149(f64vec3) ExtInst 1(GLSL.std.450) 40(FMax) 308 310 Store 295(f64v3) 311 312:149(f64vec3) Load 270(f64v1) 313:26(float64_t) Load 291(f64) 314: 33(ptr) AccessChain 269(f64v2) 32 315:26(float64_t) Load 314 316:149(f64vec3) CompositeConstruct 313 313 313 317:149(f64vec3) CompositeConstruct 315 315 315 318:149(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 312 316 317 Store 295(f64v3) 318 319:149(f64vec3) Load 270(f64v1) 320:149(f64vec3) Load 269(f64v2) 321:26(float64_t) Load 291(f64) 322:149(f64vec3) CompositeConstruct 321 321 321 323:149(f64vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 319 320 322 Store 295(f64v3) 323 324:149(f64vec3) Load 270(f64v1) 325:149(f64vec3) Load 269(f64v2) 326:26(float64_t) Load 291(f64) 327:149(f64vec3) CompositeConstruct 326 326 326 328:149(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 324 325 327 Store 295(f64v3) 328 329:149(f64vec3) Load 270(f64v1) 330:149(f64vec3) Load 269(f64v2) 331:149(f64vec3) Load 295(f64v3) 332:149(f64vec3) ExtInst 1(GLSL.std.450) 46(FMix) 329 330 331 Store 295(f64v3) 332 333:149(f64vec3) Load 270(f64v1) 334:149(f64vec3) Load 269(f64v2) 336: 152(bvec3) Load 335(bv) 337:149(f64vec3) Select 336 334 333 Store 295(f64v3) 337 338:149(f64vec3) Load 270(f64v1) 339:149(f64vec3) Load 269(f64v2) 340:149(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 338 339 Store 295(f64v3) 340 341:26(float64_t) Load 291(f64) 342:149(f64vec3) Load 295(f64v3) 343:149(f64vec3) CompositeConstruct 341 341 341 344:149(f64vec3) ExtInst 1(GLSL.std.450) 48(Step) 343 342 Store 295(f64v3) 344 345:149(f64vec3) Load 270(f64v1) 346:149(f64vec3) Load 269(f64v2) 347:149(f64vec3) Load 295(f64v3) 348:149(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 345 346 347 Store 295(f64v3) 348 349:26(float64_t) Load 291(f64) 350: 33(ptr) AccessChain 270(f64v1) 32 351:26(float64_t) Load 350 352:149(f64vec3) Load 269(f64v2) 353:149(f64vec3) CompositeConstruct 349 349 349 354:149(f64vec3) CompositeConstruct 351 351 351 355:149(f64vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 353 354 352 Store 295(f64v3) 355 357:26(float64_t) Load 291(f64) 358: 107(bool) IsNan 357 Store 356(b) 358 359:149(f64vec3) Load 270(f64v1) 360: 152(bvec3) IsInf 359 Store 335(bv) 360 361:149(f64vec3) Load 270(f64v1) 362:149(f64vec3) Load 269(f64v2) 363:149(f64vec3) Load 295(f64v3) 364:149(f64vec3) ExtInst 1(GLSL.std.450) 50(Fma) 361 362 363 Store 295(f64v3) 364 365:149(f64vec3) Load 270(f64v1) 368:367(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 365 369: 183(ivec3) CompositeExtract 368 1 Store 366(iv) 369 370:149(f64vec3) CompositeExtract 368 0 Store 269(f64v2) 370 371:149(f64vec3) Load 270(f64v1) 372: 183(ivec3) Load 366(iv) 373:149(f64vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 371 372 Store 269(f64v2) 373 Return FunctionEnd 18(builtinGeometryFuncs(): 2 Function None 3 19: Label 374(f64): 33(ptr) Variable Function 375(f64v1): 150(ptr) Variable Function 379(f64v2): 150(ptr) Variable Function 385(f64v3): 150(ptr) Variable Function 376:149(f64vec3) Load 375(f64v1) 377:26(float64_t) ExtInst 1(GLSL.std.450) 66(Length) 376 Store 374(f64) 377 378:149(f64vec3) Load 375(f64v1) 380:149(f64vec3) Load 379(f64v2) 381:26(float64_t) ExtInst 1(GLSL.std.450) 67(Distance) 378 380 Store 374(f64) 381 382:149(f64vec3) Load 375(f64v1) 383:149(f64vec3) Load 379(f64v2) 384:26(float64_t) Dot 382 383 Store 374(f64) 384 386:149(f64vec3) Load 375(f64v1) 387:149(f64vec3) Load 379(f64v2) 388:149(f64vec3) ExtInst 1(GLSL.std.450) 68(Cross) 386 387 Store 385(f64v3) 388 389:149(f64vec3) Load 375(f64v1) 390:149(f64vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 389 Store 379(f64v2) 390 391:149(f64vec3) Load 375(f64v1) 392:149(f64vec3) Load 379(f64v2) 393:149(f64vec3) Load 385(f64v3) 394:149(f64vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 391 392 393 Store 385(f64v3) 394 395:149(f64vec3) Load 375(f64v1) 396:149(f64vec3) Load 379(f64v2) 397:149(f64vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 395 396 Store 385(f64v3) 397 398:149(f64vec3) Load 375(f64v1) 399:149(f64vec3) Load 379(f64v2) 400:26(float64_t) Load 374(f64) 401:149(f64vec3) ExtInst 1(GLSL.std.450) 72(Refract) 398 399 400 Store 385(f64v3) 401 Return FunctionEnd 20(builtinMatrixFuncs(): 2 Function None 3 21: Label 404(f64m3): 403(ptr) Variable Function 405(f64m1): 403(ptr) Variable Function 407(f64m2): 403(ptr) Variable Function 416(f64v1): 150(ptr) Variable Function 418(f64v2): 28(ptr) Variable Function 423(f64m4): 422(ptr) Variable Function 426(f64): 33(ptr) Variable Function 429(f64m5): 428(ptr) Variable Function 434(f64m6): 433(ptr) Variable Function 435(f64m7): 433(ptr) Variable Function 406: 402 Load 405(f64m1) 408: 402 Load 407(f64m2) 409:149(f64vec3) CompositeExtract 406 0 410:149(f64vec3) CompositeExtract 408 0 411:149(f64vec3) FMul 409 410 412:149(f64vec3) CompositeExtract 406 1 413:149(f64vec3) CompositeExtract 408 1 414:149(f64vec3) FMul 412 413 415: 402 CompositeConstruct 411 414 Store 404(f64m3) 415 417:149(f64vec3) Load 416(f64v1) 419: 27(f64vec2) Load 418(f64v2) 420: 402 OuterProduct 417 419 Store 405(f64m1) 420 424: 402 Load 405(f64m1) 425: 421 Transpose 424 Store 423(f64m4) 425 430: 427 Load 429(f64m5) 431:26(float64_t) ExtInst 1(GLSL.std.450) 33(Determinant) 430 Store 426(f64) 431 436: 432 Load 435(f64m7) 437: 432 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 436 Store 434(f64m6) 437 Return FunctionEnd 22(builtinVecRelFuncs(): 2 Function None 3 23: Label 438(bv): 153(ptr) Variable Function 439(f64v1): 150(ptr) Variable Function 441(f64v2): 150(ptr) Variable Function 440:149(f64vec3) Load 439(f64v1) 442:149(f64vec3) Load 441(f64v2) 443: 152(bvec3) FOrdLessThan 440 442 Store 438(bv) 443 444:149(f64vec3) Load 439(f64v1) 445:149(f64vec3) Load 441(f64v2) 446: 152(bvec3) FOrdLessThanEqual 444 445 Store 438(bv) 446 447:149(f64vec3) Load 439(f64v1) 448:149(f64vec3) Load 441(f64v2) 449: 152(bvec3) FOrdGreaterThan 447 448 Store 438(bv) 449 450:149(f64vec3) Load 439(f64v1) 451:149(f64vec3) Load 441(f64v2) 452: 152(bvec3) FOrdGreaterThanEqual 450 451 Store 438(bv) 452 453:149(f64vec3) Load 439(f64v1) 454:149(f64vec3) Load 441(f64v2) 455: 152(bvec3) FOrdEqual 453 454 Store 438(bv) 455 456:149(f64vec3) Load 439(f64v1) 457:149(f64vec3) Load 441(f64v2) 458: 152(bvec3) FOrdNotEqual 456 457 Store 438(bv) 458 Return FunctionEnd 24(builtinFragProcFuncs(): 2 Function None 3 25: Label 459(f64v): 150(ptr) Variable Function 463: 462(ptr) AccessChain 461(if64v) 32 464:26(float64_t) Load 463 465:26(float64_t) DPdx 464 466: 33(ptr) AccessChain 459(f64v) 32 Store 466 465 467: 462(ptr) AccessChain 461(if64v) 88 468:26(float64_t) Load 467 469:26(float64_t) DPdy 468 470: 33(ptr) AccessChain 459(f64v) 88 Store 470 469 471:149(f64vec3) Load 461(if64v) 472: 27(f64vec2) VectorShuffle 471 471 0 1 473: 27(f64vec2) DPdxFine 472 474:149(f64vec3) Load 459(f64v) 475:149(f64vec3) VectorShuffle 474 473 3 4 2 Store 459(f64v) 475 476:149(f64vec3) Load 461(if64v) 477: 27(f64vec2) VectorShuffle 476 476 0 1 478: 27(f64vec2) DPdyFine 477 479:149(f64vec3) Load 459(f64v) 480:149(f64vec3) VectorShuffle 479 478 3 4 2 Store 459(f64v) 480 481:149(f64vec3) Load 461(if64v) 482:149(f64vec3) DPdxCoarse 481 Store 459(f64v) 482 483:149(f64vec3) Load 461(if64v) 484:149(f64vec3) DPdxCoarse 483 Store 459(f64v) 484 485: 462(ptr) AccessChain 461(if64v) 32 486:26(float64_t) Load 485 487:26(float64_t) Fwidth 486 488: 33(ptr) AccessChain 459(f64v) 32 Store 488 487 489:149(f64vec3) Load 461(if64v) 490: 27(f64vec2) VectorShuffle 489 489 0 1 491: 27(f64vec2) FwidthFine 490 492:149(f64vec3) Load 459(f64v) 493:149(f64vec3) VectorShuffle 492 491 3 4 2 Store 459(f64v) 493 494:149(f64vec3) Load 461(if64v) 495:149(f64vec3) FwidthCoarse 494 Store 459(f64v) 495 496: 462(ptr) AccessChain 461(if64v) 32 497:26(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 496 498: 33(ptr) AccessChain 459(f64v) 32 Store 498 497 500:149(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 461(if64v) 499 501: 27(f64vec2) VectorShuffle 500 500 0 1 502:149(f64vec3) Load 459(f64v) 503:149(f64vec3) VectorShuffle 502 501 3 4 2 Store 459(f64v) 503 506:149(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 461(if64v) 505 Store 459(f64v) 506 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.flowControl.frag.out000066400000000000000000000062511360464450000235070ustar00rootroot00000000000000spv.flowControl.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 11 14 17 19 25 30 35 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "color" Name 11 "BaseColor" Name 13 "color2" Name 14 "otherColor" Name 17 "c" Name 19 "d" Name 25 "bigColor" Name 30 "smallColor" Name 35 "gl_FragColor" Decorate 35(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypePointer Input 7(fvec4) 11(BaseColor): 10(ptr) Variable Input 14(otherColor): 10(ptr) Variable Input 16: TypePointer Input 6(float) 17(c): 16(ptr) Variable Input 19(d): 16(ptr) Variable Input 21: TypeBool 25(bigColor): 10(ptr) Variable Input 30(smallColor): 10(ptr) Variable Input 34: TypePointer Output 7(fvec4) 35(gl_FragColor): 34(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(color): 8(ptr) Variable Function 13(color2): 8(ptr) Variable Function 12: 7(fvec4) Load 11(BaseColor) Store 9(color) 12 15: 7(fvec4) Load 14(otherColor) Store 13(color2) 15 18: 6(float) Load 17(c) 20: 6(float) Load 19(d) 22: 21(bool) FOrdGreaterThan 18 20 SelectionMerge 24 None BranchConditional 22 23 29 23: Label 26: 7(fvec4) Load 25(bigColor) 27: 7(fvec4) Load 9(color) 28: 7(fvec4) FAdd 27 26 Store 9(color) 28 Branch 24 29: Label 31: 7(fvec4) Load 30(smallColor) 32: 7(fvec4) Load 9(color) 33: 7(fvec4) FAdd 32 31 Store 9(color) 33 Branch 24 24: Label 36: 7(fvec4) Load 9(color) 37: 7(fvec4) Load 13(color2) 38: 7(fvec4) FMul 36 37 Store 35(gl_FragColor) 38 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.for-complex-condition.vert.out000066400000000000000000000047641360464450000254660ustar00rootroot00000000000000spv.for-complex-condition.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.for-continue-break.vert.out000066400000000000000000000066731360464450000247420ustar00rootroot00000000000000spv.for-continue-break.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.for-nobody.vert.out000066400000000000000000000037521360464450000233210ustar00rootroot00000000000000spv.for-nobody.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.for-notest.vert.out000066400000000000000000000033351360464450000233400ustar00rootroot00000000000000spv.for-notest.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.for-simple.vert.out000066400000000000000000000035751360464450000233230ustar00rootroot00000000000000spv.for-simple.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.forLoop.frag.out000066400000000000000000000226561360464450000226260ustar00rootroot00000000000000spv.forLoop.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 131 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 11 24 28 36 53 104 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "color" Name 11 "BaseColor" Name 15 "i" Name 24 "Count" Name 28 "bigColor" Name 36 "gl_FragColor" Name 39 "sum" Name 41 "i" Name 53 "v4" Name 63 "i" Name 71 "tv4" Name 88 "r" Name 94 "i" Name 104 "f" Name 117 "i" Decorate 24(Count) Flat Decorate 36(gl_FragColor) Location 0 Decorate 53(v4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypePointer Input 7(fvec4) 11(BaseColor): 10(ptr) Variable Input 13: TypeInt 32 1 14: TypePointer Function 13(int) 16: 13(int) Constant 0 23: TypePointer Input 13(int) 24(Count): 23(ptr) Variable Input 26: TypeBool 28(bigColor): 10(ptr) Variable Input 33: 13(int) Constant 1 35: TypePointer Output 7(fvec4) 36(gl_FragColor): 35(ptr) Variable Output 38: TypePointer Function 6(float) 40: 6(float) Constant 0 48: 13(int) Constant 4 50: TypeInt 32 0 51: TypeVector 50(int) 4 52: TypePointer Input 51(ivec4) 53(v4): 52(ptr) Variable Input 55: TypePointer Input 50(int) 76: 50(int) Constant 4 89: TypeVector 6(float) 3 103: TypePointer Input 6(float) 104(f): 103(ptr) Variable Input 106: 50(int) Constant 3 124: 13(int) Constant 16 4(main): 2 Function None 3 5: Label 9(color): 8(ptr) Variable Function 15(i): 14(ptr) Variable Function 39(sum): 38(ptr) Variable Function 41(i): 14(ptr) Variable Function 63(i): 14(ptr) Variable Function 71(tv4): 8(ptr) Variable Function 88(r): 8(ptr) Variable Function 94(i): 14(ptr) Variable Function 117(i): 14(ptr) Variable Function 12: 7(fvec4) Load 11(BaseColor) Store 9(color) 12 Store 15(i) 16 Branch 17 17: Label LoopMerge 19 20 None Branch 21 21: Label 22: 13(int) Load 15(i) 25: 13(int) Load 24(Count) 27: 26(bool) SLessThan 22 25 BranchConditional 27 18 19 18: Label 29: 7(fvec4) Load 28(bigColor) 30: 7(fvec4) Load 9(color) 31: 7(fvec4) FAdd 30 29 Store 9(color) 31 Branch 20 20: Label 32: 13(int) Load 15(i) 34: 13(int) IAdd 32 33 Store 15(i) 34 Branch 17 19: Label 37: 7(fvec4) Load 9(color) Store 36(gl_FragColor) 37 Store 39(sum) 40 Store 41(i) 16 Branch 42 42: Label LoopMerge 44 45 None Branch 46 46: Label 47: 13(int) Load 41(i) 49: 26(bool) SLessThan 47 48 BranchConditional 49 43 44 43: Label 54: 13(int) Load 41(i) 56: 55(ptr) AccessChain 53(v4) 54 57: 50(int) Load 56 58: 6(float) ConvertUToF 57 59: 6(float) Load 39(sum) 60: 6(float) FAdd 59 58 Store 39(sum) 60 Branch 45 45: Label 61: 13(int) Load 41(i) 62: 13(int) IAdd 61 33 Store 41(i) 62 Branch 42 44: Label Store 63(i) 16 Branch 64 64: Label LoopMerge 66 67 None Branch 68 68: Label 69: 13(int) Load 63(i) 70: 26(bool) SLessThan 69 48 BranchConditional 70 65 66 65: Label 72: 13(int) Load 63(i) 73: 13(int) Load 63(i) 74: 55(ptr) AccessChain 53(v4) 73 75: 50(int) Load 74 77: 50(int) IMul 75 76 78: 6(float) ConvertUToF 77 79: 38(ptr) AccessChain 71(tv4) 72 Store 79 78 Branch 67 67: Label 80: 13(int) Load 63(i) 81: 13(int) IAdd 80 33 Store 63(i) 81 Branch 64 66: Label 82: 6(float) Load 39(sum) 83: 7(fvec4) CompositeConstruct 82 82 82 82 84: 7(fvec4) Load 71(tv4) 85: 7(fvec4) FAdd 83 84 86: 7(fvec4) Load 36(gl_FragColor) 87: 7(fvec4) FAdd 86 85 Store 36(gl_FragColor) 87 90: 7(fvec4) Load 11(BaseColor) 91: 89(fvec3) VectorShuffle 90 90 0 1 2 92: 7(fvec4) Load 88(r) 93: 7(fvec4) VectorShuffle 92 91 4 5 6 3 Store 88(r) 93 Store 94(i) 16 Branch 95 95: Label LoopMerge 97 98 None Branch 99 99: Label 100: 13(int) Load 94(i) 101: 13(int) Load 24(Count) 102: 26(bool) SLessThan 100 101 BranchConditional 102 96 97 96: Label 105: 6(float) Load 104(f) 107: 38(ptr) AccessChain 88(r) 106 Store 107 105 Branch 98 98: Label 108: 13(int) Load 94(i) 109: 13(int) IAdd 108 33 Store 94(i) 109 Branch 95 97: Label 110: 7(fvec4) Load 88(r) 111: 89(fvec3) VectorShuffle 110 110 0 1 2 112: 7(fvec4) Load 36(gl_FragColor) 113: 89(fvec3) VectorShuffle 112 112 0 1 2 114: 89(fvec3) FAdd 113 111 115: 7(fvec4) Load 36(gl_FragColor) 116: 7(fvec4) VectorShuffle 115 114 4 5 6 3 Store 36(gl_FragColor) 116 Store 117(i) 16 Branch 118 118: Label LoopMerge 120 121 None Branch 122 122: Label 123: 13(int) Load 117(i) 125: 26(bool) SLessThan 123 124 BranchConditional 125 119 120 119: Label 126: 6(float) Load 104(f) 127: 7(fvec4) Load 36(gl_FragColor) 128: 7(fvec4) VectorTimesScalar 127 126 Store 36(gl_FragColor) 128 Branch 121 121: Label 129: 13(int) Load 117(i) 130: 13(int) IAdd 129 48 Store 117(i) 130 Branch 118 120: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.forwardFun.frag.out000066400000000000000000000127541360464450000233210ustar00rootroot00000000000000spv.forwardFun.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 60 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 20 30 36 59 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 6 "bar(" Name 10 "unreachableReturn(" Name 16 "foo(vf4;" Name 15 "bar" Name 18 "color" Name 20 "BaseColor" Name 21 "param" Name 27 "f" Name 30 "gl_FragColor" Name 36 "d" Name 59 "bigColor" Decorate 10(unreachableReturn() RelaxedPrecision Decorate 16(foo(vf4;) RelaxedPrecision Decorate 15(bar) RelaxedPrecision Decorate 18(color) RelaxedPrecision Decorate 20(BaseColor) RelaxedPrecision Decorate 22 RelaxedPrecision Decorate 23 RelaxedPrecision Decorate 24 RelaxedPrecision Decorate 27(f) RelaxedPrecision Decorate 28 RelaxedPrecision Decorate 30(gl_FragColor) RelaxedPrecision Decorate 30(gl_FragColor) Location 0 Decorate 31 RelaxedPrecision Decorate 32 RelaxedPrecision Decorate 33 RelaxedPrecision Decorate 36(d) RelaxedPrecision Decorate 37 RelaxedPrecision Decorate 52 RelaxedPrecision Decorate 55 RelaxedPrecision Decorate 56 RelaxedPrecision Decorate 59(bigColor) RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 8: TypeFloat 32 9: TypeFunction 8(float) 12: TypeVector 8(float) 4 13: TypePointer Function 12(fvec4) 14: TypeFunction 8(float) 13(ptr) 19: TypePointer Input 12(fvec4) 20(BaseColor): 19(ptr) Variable Input 26: TypePointer Function 8(float) 29: TypePointer Output 12(fvec4) 30(gl_FragColor): 29(ptr) Variable Output 35: TypePointer Input 8(float) 36(d): 35(ptr) Variable Input 38: 8(float) Constant 1082549862 39: TypeBool 43: 8(float) Constant 1067030938 46: 8(float) Constant 1083179008 49: TypeInt 32 0 50: 49(int) Constant 0 53: 49(int) Constant 1 59(bigColor): 19(ptr) Variable Input 4(main): 2 Function None 3 5: Label 18(color): 13(ptr) Variable Function 21(param): 13(ptr) Variable Function 27(f): 26(ptr) Variable Function 22: 12(fvec4) Load 20(BaseColor) Store 21(param) 22 23: 8(float) FunctionCall 16(foo(vf4;) 21(param) 24: 12(fvec4) CompositeConstruct 23 23 23 23 Store 18(color) 24 25: 2 FunctionCall 6(bar() 28: 8(float) FunctionCall 10(unreachableReturn() Store 27(f) 28 31: 12(fvec4) Load 18(color) 32: 8(float) Load 27(f) 33: 12(fvec4) VectorTimesScalar 31 32 Store 30(gl_FragColor) 33 Return FunctionEnd 6(bar(): 2 Function None 3 7: Label Return FunctionEnd 10(unreachableReturn(): 8(float) Function None 9 11: Label 34: 2 FunctionCall 6(bar() 37: 8(float) Load 36(d) 40: 39(bool) FOrdLessThan 37 38 SelectionMerge 42 None BranchConditional 40 41 45 41: Label ReturnValue 43 45: Label ReturnValue 46 42: Label 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 glslang-8.13.3559/Test/baseResults/spv.fragmentDensity-es.frag.out000066400000000000000000000045551360464450000247540ustar00rootroot00000000000000spv.fragmentDensity-es.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.fragmentDensity-neg.frag.out000066400000000000000000000005301360464450000251030ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.fragmentDensity.frag.out000066400000000000000000000047721360464450000243500ustar00rootroot00000000000000spv.fragmentDensity.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.fragmentDensity.vert.out000066400000000000000000000007411360464450000244010ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.fragmentShaderBarycentric.frag.out000066400000000000000000000063651360464450000263250ustar00rootroot00000000000000spv.fragmentShaderBarycentric.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out000066400000000000000000000061521360464450000264010ustar00rootroot00000000000000spv.fragmentShaderBarycentric2.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.fsi.frag.out000066400000000000000000000054051360464450000217600ustar00rootroot00000000000000spv.fsi.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.fsi_Error.frag.out000066400000000000000000000015001360464450000231210ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.fullyCovered.frag.out000066400000000000000000000034361360464450000236440ustar00rootroot00000000000000spv.fullyCovered.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 18 Capability Shader Capability FragmentFullyCoveredEXT Extension "SPV_EXT_fragment_fully_covered" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 9 12 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_NV_conservative_raster_underestimation" Name 4 "main" Name 9 "color" Name 12 "gl_FragFullyCoveredNV" Decorate 12(gl_FragFullyCoveredNV) BuiltIn FullyCoveredEXT 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Output 7(fvec4) 9(color): 8(ptr) Variable Output 10: TypeBool 11: TypePointer Input 10(bool) 12(gl_FragFullyCoveredNV): 11(ptr) Variable Input 14: 6(float) Constant 0 15: 6(float) Constant 1065353216 4(main): 2 Function None 3 5: Label 13: 10(bool) Load 12(gl_FragFullyCoveredNV) 16: 6(float) Select 13 15 14 17: 7(fvec4) CompositeConstruct 16 14 14 14 Store 9(color) 17 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.functionCall.frag.out000066400000000000000000000132461360464450000236220ustar00rootroot00000000000000spv.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): 80008 // Id's are bound by 76 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 35 58 69 75 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 11 "foo(vf4;" Name 10 "bar" Name 13 "bar(" Name 16 "unreachableReturn(" Name 18 "missingReturn(" Name 21 "h" Name 35 "d" Name 56 "color" Name 58 "BaseColor" Name 59 "param" Name 64 "f" Name 66 "g" Name 69 "gl_FragColor" Name 75 "bigColor" Decorate 69(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 6(float) 8(ptr) 15: TypeFunction 6(float) 20: TypePointer Private 6(float) 21(h): 20(ptr) Variable Private 22: 6(float) Constant 0 23: TypeInt 32 0 24: 23(int) Constant 0 25: TypePointer Function 6(float) 28: 23(int) Constant 1 34: TypePointer Input 6(float) 35(d): 34(ptr) Variable Input 37: 6(float) Constant 1082549862 38: TypeBool 42: 6(float) Constant 1067030938 45: 6(float) Constant 1083179008 53: 6(float) Constant 1081711002 57: TypePointer Input 7(fvec4) 58(BaseColor): 57(ptr) Variable Input 68: TypePointer Output 7(fvec4) 69(gl_FragColor): 68(ptr) Variable Output 75(bigColor): 57(ptr) Variable Input 4(main): 2 Function None 3 5: Label 56(color): 8(ptr) Variable Function 59(param): 8(ptr) Variable Function 64(f): 25(ptr) Variable Function 66(g): 25(ptr) Variable Function Store 21(h) 22 60: 7(fvec4) Load 58(BaseColor) Store 59(param) 60 61: 6(float) FunctionCall 11(foo(vf4;) 59(param) 62: 7(fvec4) CompositeConstruct 61 61 61 61 Store 56(color) 62 63: 2 FunctionCall 13(bar() 65: 6(float) FunctionCall 16(unreachableReturn() Store 64(f) 65 67: 6(float) FunctionCall 18(missingReturn() Store 66(g) 67 70: 7(fvec4) Load 56(color) 71: 6(float) Load 64(f) 72: 7(fvec4) VectorTimesScalar 70 71 73: 6(float) Load 21(h) 74: 7(fvec4) VectorTimesScalar 72 73 Store 69(gl_FragColor) 74 Return FunctionEnd 11(foo(vf4;): 6(float) Function None 9 10(bar): 8(ptr) FunctionParameter 12: Label 26: 25(ptr) AccessChain 10(bar) 24 27: 6(float) Load 26 29: 25(ptr) AccessChain 10(bar) 28 30: 6(float) Load 29 31: 6(float) FAdd 27 30 ReturnValue 31 FunctionEnd 13(bar(): 2 Function None 3 14: Label Return FunctionEnd 16(unreachableReturn(): 6(float) Function None 15 17: Label 36: 6(float) Load 35(d) 39: 38(bool) FOrdLessThan 36 37 SelectionMerge 41 None BranchConditional 39 40 44 40: Label ReturnValue 42 44: Label ReturnValue 45 41: Label 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 glslang-8.13.3559/Test/baseResults/spv.functionNestedOpaque.vert.out000066400000000000000000000060101360464450000253740ustar00rootroot00000000000000spv.functionNestedOpaque.vert Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Source GLSL 450 Name 4 "main" Name 12 "foo(s21;" Name 11 "t" Name 14 "S" MemberName 14(S) 0 "s" Name 18 "barc(struct-S-s211;" Name 17 "p" Name 21 "bar(struct-S-s211;" Name 20 "p" Name 36 "si" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeImage 6(float) 2D sampled format:Unknown 8: TypeSampledImage 7 9: TypePointer UniformConstant 8 10: TypeFunction 2 9(ptr) 14(S): TypeStruct 8 15: TypePointer UniformConstant 14(S) 16: TypeFunction 2 15(ptr) 24: TypeVector 6(float) 2 25: 6(float) Constant 1056964608 26: 24(fvec2) ConstantComposite 25 25 27: TypeVector 6(float) 4 28: 6(float) Constant 0 30: TypeInt 32 1 31: 30(int) Constant 0 36(si): 15(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 37: 2 FunctionCall 18(barc(struct-S-s211;) 36(si) 38: 2 FunctionCall 21(bar(struct-S-s211;) 36(si) Return FunctionEnd 12(foo(s21;): 2 Function None 10 11(t): 9(ptr) FunctionParameter 13: Label 23: 8 Load 11(t) 29: 27(fvec4) ImageSampleExplicitLod 23 26 Lod 28 Return FunctionEnd 18(barc(struct-S-s211;): 2 Function None 16 17(p): 15(ptr) FunctionParameter 19: Label 32: 9(ptr) AccessChain 17(p) 31 33: 2 FunctionCall 12(foo(s21;) 32 Return FunctionEnd 21(bar(struct-S-s211;): 2 Function None 16 20(p): 15(ptr) FunctionParameter 22: Label 34: 9(ptr) AccessChain 20(p) 31 35: 2 FunctionCall 12(foo(s21;) 34 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.functionParameterTypes.frag.out000066400000000000000000000061271360464450000257140ustar00rootroot00000000000000spv.functionParameterTypes.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.functionSemantics.frag.out000066400000000000000000000246361360464450000247020ustar00rootroot00000000000000spv.functionSemantics.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 156 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 76 152 ExecutionMode 4 OriginUpperLeft Source GLSL 400 Name 4 "main" Name 15 "foo(i1;i1;i1;i1;i1;i1;" Name 9 "a" Name 10 "b" Name 11 "c" Name 12 "d" Name 13 "e" Name 14 "f" Name 25 "foo2(f1;vf3;i1;" Name 22 "a" Name 23 "b" Name 24 "r" Name 28 "foo3(" Name 30 "sum" Name 76 "u" Name 89 "t" Name 92 "s" MemberName 92(s) 0 "t" Name 94 "f" Name 98 "color" Name 104 "e" Name 105 "param" Name 106 "param" Name 107 "param" Name 108 "param" Name 123 "ret" Name 125 "tempReturn" Name 130 "tempArg" Name 131 "param" Name 132 "param" Name 133 "param" Name 136 "arg" Name 152 "gl_FragColor" Decorate 152(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 8: TypeFunction 6(int) 7(ptr) 6(int) 7(ptr) 6(int) 7(ptr) 7(ptr) 17: TypeFloat 32 18: TypePointer Function 17(float) 19: TypeVector 17(float) 3 20: TypePointer Function 19(fvec3) 21: TypeFunction 6(int) 18(ptr) 20(ptr) 7(ptr) 27: TypeFunction 6(int) 38: 6(int) Constant 64 43: 6(int) Constant 1024 62: 17(float) Constant 1077936128 66: 17(float) Constant 1084227584 67: TypeInt 32 0 68: 67(int) Constant 1 75: TypePointer Input 17(float) 76(u): 75(ptr) Variable Input 78: 17(float) Constant 1078774989 79: TypeBool 84: 6(int) Constant 1000000 86: 6(int) Constant 2000000 90: 6(int) Constant 2 91: TypeVector 6(int) 4 92(s): TypeStruct 91(ivec4) 93: TypePointer Function 92(s) 95: 6(int) Constant 0 96: 6(int) Constant 32 99: 6(int) Constant 1 103: 6(int) Constant 8 115: 6(int) Constant 128 124: TypePointer Private 6(int) 125(tempReturn): 124(ptr) Variable Private 126: 17(float) Constant 1082130432 127: 17(float) Constant 1065353216 128: 17(float) Constant 1073741824 129: 19(fvec3) ConstantComposite 127 128 62 150: TypeVector 17(float) 4 151: TypePointer Output 150(fvec4) 152(gl_FragColor): 151(ptr) Variable Output 4(main): 2 Function None 3 5: Label 89(t): 7(ptr) Variable Function 94(f): 93(ptr) Variable Function 98(color): 7(ptr) Variable Function 104(e): 7(ptr) Variable Function 105(param): 7(ptr) Variable Function 106(param): 7(ptr) Variable Function 107(param): 7(ptr) Variable Function 108(param): 7(ptr) Variable Function 123(ret): 18(ptr) Variable Function 130(tempArg): 7(ptr) Variable Function 131(param): 18(ptr) Variable Function 132(param): 20(ptr) Variable Function 133(param): 7(ptr) Variable Function 136(arg): 18(ptr) Variable Function Store 89(t) 90 97: 7(ptr) AccessChain 94(f) 95 68 Store 97 96 100: 6(int) Load 89(t) 101: 6(int) Load 89(t) 102: 6(int) IAdd 100 101 Store 105(param) 99 Store 106(param) 102 109: 7(ptr) AccessChain 94(f) 95 68 110: 6(int) Load 109 Store 108(param) 110 111: 6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 105(param) 90 106(param) 103 107(param) 108(param) 112: 6(int) Load 107(param) Store 104(e) 112 113: 6(int) Load 108(param) 114: 7(ptr) AccessChain 94(f) 95 68 Store 114 113 Store 98(color) 111 116: 6(int) Load 104(e) 117: 7(ptr) AccessChain 94(f) 95 68 118: 6(int) Load 117 119: 6(int) IAdd 116 118 120: 6(int) IMul 115 119 121: 6(int) Load 98(color) 122: 6(int) IAdd 121 120 Store 98(color) 122 Store 131(param) 126 Store 132(param) 129 134: 6(int) FunctionCall 25(foo2(f1;vf3;i1;) 131(param) 132(param) 133(param) 135: 6(int) Load 133(param) Store 130(tempArg) 135 Store 125(tempReturn) 134 137: 6(int) Load 130(tempArg) 138: 17(float) ConvertSToF 137 Store 136(arg) 138 139: 6(int) Load 125(tempReturn) 140: 17(float) ConvertSToF 139 Store 123(ret) 140 141: 17(float) Load 123(ret) 142: 17(float) Load 136(arg) 143: 17(float) FAdd 141 142 144: 6(int) ConvertFToS 143 145: 6(int) Load 98(color) 146: 6(int) IAdd 145 144 Store 98(color) 146 147: 6(int) FunctionCall 28(foo3() 148: 6(int) Load 98(color) 149: 6(int) IAdd 148 147 Store 98(color) 149 153: 6(int) Load 98(color) 154: 17(float) ConvertSToF 153 155: 150(fvec4) CompositeConstruct 154 154 154 154 Store 152(gl_FragColor) 155 Return FunctionEnd 15(foo(i1;i1;i1;i1;i1;i1;): 6(int) Function None 8 9(a): 7(ptr) FunctionParameter 10(b): 6(int) FunctionParameter 11(c): 7(ptr) FunctionParameter 12(d): 6(int) FunctionParameter 13(e): 7(ptr) FunctionParameter 14(f): 7(ptr) FunctionParameter 16: Label 30(sum): 7(ptr) Variable Function 31: 6(int) Load 9(a) 32: 6(int) IAdd 31 10(b) 33: 6(int) Load 11(c) 34: 6(int) IAdd 32 33 35: 6(int) IAdd 34 12(d) 36: 6(int) Load 14(f) 37: 6(int) IAdd 35 36 Store 30(sum) 37 39: 6(int) Load 9(a) 40: 6(int) IMul 39 38 Store 9(a) 40 41: 6(int) Load 11(c) 42: 6(int) IMul 41 38 Store 11(c) 42 Store 13(e) 43 44: 6(int) Load 14(f) 45: 6(int) IMul 44 38 Store 14(f) 45 46: 6(int) Load 9(a) 47: 6(int) IMul 38 10(b) 48: 6(int) IAdd 46 47 49: 6(int) Load 11(c) 50: 6(int) IAdd 48 49 51: 6(int) IMul 38 12(d) 52: 6(int) IAdd 50 51 53: 6(int) Load 13(e) 54: 6(int) IAdd 52 53 55: 6(int) Load 14(f) 56: 6(int) IAdd 54 55 57: 6(int) Load 30(sum) 58: 6(int) IAdd 57 56 Store 30(sum) 58 59: 6(int) Load 30(sum) ReturnValue 59 FunctionEnd 25(foo2(f1;vf3;i1;): 6(int) Function None 21 22(a): 18(ptr) FunctionParameter 23(b): 20(ptr) FunctionParameter 24(r): 7(ptr) FunctionParameter 26: Label 63: 17(float) Load 22(a) 64: 17(float) FMul 62 63 65: 6(int) ConvertFToS 64 Store 24(r) 65 69: 18(ptr) AccessChain 23(b) 68 70: 17(float) Load 69 71: 17(float) FMul 66 70 72: 6(int) ConvertFToS 71 ReturnValue 72 FunctionEnd 28(foo3(): 6(int) Function None 27 29: Label 77: 17(float) Load 76(u) 80: 79(bool) FOrdGreaterThan 77 78 SelectionMerge 82 None BranchConditional 80 81 82 81: Label Kill 82: Label ReturnValue 86 FunctionEnd glslang-8.13.3559/Test/baseResults/spv.glFragColor.frag.out000066400000000000000000000023011360464450000233700ustar00rootroot00000000000000spv.glFragColor.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.glsl.register.autoassign.frag.out000066400000000000000000000274241360464450000261440ustar00rootroot00000000000000spv.glsl.register.autoassign.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.glsl.register.noautoassign.frag.out000066400000000000000000000274311360464450000264770ustar00rootroot00000000000000spv.glsl.register.noautoassign.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.hlslDebugInfo.frag.out000066400000000000000000000045771360464450000237350ustar00rootroot00000000000000spv.hlslDebugInfo.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.hlslOffsets.vert.out000066400000000000000000000127701360464450000235370ustar00rootroot00000000000000spv.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): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.image.frag.out000066400000000000000000000647151360464450000222720ustar00rootroot00000000000000spv.image.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 395 Capability Shader Capability StorageImageMultisample Capability ImageCubeArray Capability ImageRect Capability Image1D Capability ImageBuffer Capability ImageMSArray Capability StorageImageExtendedFormats Capability ImageQuery Capability StorageImageWriteWithoutFormat 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 132 142 152 248 381 394 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "iv" Name 15 "i1D" Name 27 "i2D" Name 38 "i3D" Name 45 "iCube" Name 55 "iCubeArray" Name 62 "i2DRect" Name 72 "i1DArray" Name 82 "i2DArray" Name 89 "iBuffer" Name 98 "i2DMS" Name 108 "i2DMSArray" Name 127 "v" Name 132 "ic1D" Name 142 "ic2D" Name 152 "ic3D" Name 229 "ui" Name 232 "ii1D" Name 245 "ui2D" Name 248 "value" Name 357 "ii2DMS" Name 367 "ui2DMSArray" Name 376 "wo2D" Name 381 "fragData" Name 394 "ic4D" Decorate 15(i1D) DescriptorSet 0 Decorate 15(i1D) Binding 0 Decorate 27(i2D) DescriptorSet 0 Decorate 27(i2D) Binding 1 Decorate 38(i3D) DescriptorSet 0 Decorate 38(i3D) Binding 2 Decorate 45(iCube) DescriptorSet 0 Decorate 45(iCube) Binding 3 Decorate 55(iCubeArray) DescriptorSet 0 Decorate 55(iCubeArray) Binding 4 Decorate 62(i2DRect) DescriptorSet 0 Decorate 62(i2DRect) Binding 5 Decorate 72(i1DArray) DescriptorSet 0 Decorate 72(i1DArray) Binding 6 Decorate 82(i2DArray) DescriptorSet 0 Decorate 82(i2DArray) Binding 7 Decorate 89(iBuffer) DescriptorSet 0 Decorate 89(iBuffer) Binding 8 Decorate 98(i2DMS) DescriptorSet 0 Decorate 98(i2DMS) Binding 9 Decorate 108(i2DMSArray) DescriptorSet 0 Decorate 108(i2DMSArray) Binding 10 Decorate 132(ic1D) Flat Decorate 142(ic2D) Flat Decorate 152(ic3D) Flat Decorate 232(ii1D) DescriptorSet 0 Decorate 232(ii1D) Binding 11 Decorate 245(ui2D) DescriptorSet 0 Decorate 245(ui2D) Binding 12 Decorate 248(value) Flat Decorate 357(ii2DMS) DescriptorSet 0 Decorate 357(ii2DMS) Binding 13 Decorate 367(ui2DMSArray) DescriptorSet 0 Decorate 367(ui2DMSArray) Binding 14 Decorate 376(wo2D) DescriptorSet 0 Decorate 376(wo2D) Binding 1 Decorate 376(wo2D) NonReadable Decorate 394(ic4D) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeVector 6(int) 3 8: TypePointer Function 7(ivec3) 10: 6(int) Constant 0 11: 7(ivec3) ConstantComposite 10 10 10 12: TypeFloat 32 13: TypeImage 12(float) 1D nonsampled format:Rgba32f 14: TypePointer UniformConstant 13 15(i1D): 14(ptr) Variable UniformConstant 18: TypeInt 32 0 19: 18(int) Constant 0 20: TypePointer Function 6(int) 25: TypeImage 12(float) 2D nonsampled format:Rgba32f 26: TypePointer UniformConstant 25 27(i2D): 26(ptr) Variable UniformConstant 29: TypeVector 6(int) 2 36: TypeImage 12(float) 3D nonsampled format:Rgba32f 37: TypePointer UniformConstant 36 38(i3D): 37(ptr) Variable UniformConstant 43: TypeImage 12(float) Cube nonsampled format:Rgba32f 44: TypePointer UniformConstant 43 45(iCube): 44(ptr) Variable UniformConstant 53: TypeImage 12(float) Cube array nonsampled format:Rgba32f 54: TypePointer UniformConstant 53 55(iCubeArray): 54(ptr) Variable UniformConstant 60: TypeImage 12(float) Rect nonsampled format:Rgba32f 61: TypePointer UniformConstant 60 62(i2DRect): 61(ptr) Variable UniformConstant 70: TypeImage 12(float) 1D array nonsampled format:Rgba32f 71: TypePointer UniformConstant 70 72(i1DArray): 71(ptr) Variable UniformConstant 80: TypeImage 12(float) 2D array nonsampled format:Rg16 81: TypePointer UniformConstant 80 82(i2DArray): 81(ptr) Variable UniformConstant 87: TypeImage 12(float) Buffer nonsampled format:Rgba32f 88: TypePointer UniformConstant 87 89(iBuffer): 88(ptr) Variable UniformConstant 96: TypeImage 12(float) 2D multi-sampled nonsampled format:Rgba32f 97: TypePointer UniformConstant 96 98(i2DMS): 97(ptr) Variable UniformConstant 106: TypeImage 12(float) 2D array multi-sampled nonsampled format:Rgba32f 107: TypePointer UniformConstant 106 108(i2DMSArray): 107(ptr) Variable UniformConstant 125: TypeVector 12(float) 4 126: TypePointer Function 125(fvec4) 128: 12(float) Constant 0 129: 125(fvec4) ConstantComposite 128 128 128 128 131: TypePointer Input 6(int) 132(ic1D): 131(ptr) Variable Input 141: TypePointer Input 29(ivec2) 142(ic2D): 141(ptr) Variable Input 151: TypePointer Input 7(ivec3) 152(ic3D): 151(ptr) Variable Input 210: 6(int) Constant 1 216: 6(int) Constant 2 220: 6(int) Constant 3 226: 6(int) Constant 4 228: TypePointer Function 18(int) 230: TypeImage 6(int) 1D nonsampled format:R32i 231: TypePointer UniformConstant 230 232(ii1D): 231(ptr) Variable UniformConstant 234: 6(int) Constant 10 235: TypePointer Image 6(int) 237: 18(int) Constant 1 243: TypeImage 18(int) 2D nonsampled format:R32ui 244: TypePointer UniformConstant 243 245(ui2D): 244(ptr) Variable UniformConstant 247: TypePointer Input 18(int) 248(value): 247(ptr) Variable Input 250: TypePointer Image 18(int) 256: 6(int) Constant 11 270: 6(int) Constant 12 284: 6(int) Constant 13 298: 6(int) Constant 14 312: 6(int) Constant 15 326: 6(int) Constant 16 340: 6(int) Constant 18 341: 6(int) Constant 17 349: 18(int) Constant 19 355: TypeImage 6(int) 2D multi-sampled nonsampled format:R32i 356: TypePointer UniformConstant 355 357(ii2DMS): 356(ptr) Variable UniformConstant 365: TypeImage 18(int) 2D array multi-sampled nonsampled format:R32ui 366: TypePointer UniformConstant 365 367(ui2DMSArray): 366(ptr) Variable UniformConstant 374: TypeImage 12(float) 2D nonsampled format:Unknown 375: TypePointer UniformConstant 374 376(wo2D): 375(ptr) Variable UniformConstant 380: TypePointer Output 125(fvec4) 381(fragData): 380(ptr) Variable Output 386: TypeBool 389: TypeVector 386(bool) 4 392: TypeVector 6(int) 4 393: TypePointer Input 392(ivec4) 394(ic4D): 393(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(iv): 8(ptr) Variable Function 127(v): 126(ptr) Variable Function 229(ui): 228(ptr) Variable Function Store 9(iv) 11 16: 13 Load 15(i1D) 17: 6(int) ImageQuerySize 16 21: 20(ptr) AccessChain 9(iv) 19 22: 6(int) Load 21 23: 6(int) IAdd 22 17 24: 20(ptr) AccessChain 9(iv) 19 Store 24 23 28: 25 Load 27(i2D) 30: 29(ivec2) ImageQuerySize 28 31: 7(ivec3) Load 9(iv) 32: 29(ivec2) VectorShuffle 31 31 0 1 33: 29(ivec2) IAdd 32 30 34: 7(ivec3) Load 9(iv) 35: 7(ivec3) VectorShuffle 34 33 3 4 2 Store 9(iv) 35 39: 36 Load 38(i3D) 40: 7(ivec3) ImageQuerySize 39 41: 7(ivec3) Load 9(iv) 42: 7(ivec3) IAdd 41 40 Store 9(iv) 42 46: 43 Load 45(iCube) 47: 29(ivec2) ImageQuerySize 46 48: 7(ivec3) Load 9(iv) 49: 29(ivec2) VectorShuffle 48 48 0 1 50: 29(ivec2) IAdd 49 47 51: 7(ivec3) Load 9(iv) 52: 7(ivec3) VectorShuffle 51 50 3 4 2 Store 9(iv) 52 56: 53 Load 55(iCubeArray) 57: 7(ivec3) ImageQuerySize 56 58: 7(ivec3) Load 9(iv) 59: 7(ivec3) IAdd 58 57 Store 9(iv) 59 63: 60 Load 62(i2DRect) 64: 29(ivec2) ImageQuerySize 63 65: 7(ivec3) Load 9(iv) 66: 29(ivec2) VectorShuffle 65 65 0 1 67: 29(ivec2) IAdd 66 64 68: 7(ivec3) Load 9(iv) 69: 7(ivec3) VectorShuffle 68 67 3 4 2 Store 9(iv) 69 73: 70 Load 72(i1DArray) 74: 29(ivec2) ImageQuerySize 73 75: 7(ivec3) Load 9(iv) 76: 29(ivec2) VectorShuffle 75 75 0 1 77: 29(ivec2) IAdd 76 74 78: 7(ivec3) Load 9(iv) 79: 7(ivec3) VectorShuffle 78 77 3 4 2 Store 9(iv) 79 83: 80 Load 82(i2DArray) 84: 7(ivec3) ImageQuerySize 83 85: 7(ivec3) Load 9(iv) 86: 7(ivec3) IAdd 85 84 Store 9(iv) 86 90: 87 Load 89(iBuffer) 91: 6(int) ImageQuerySize 90 92: 20(ptr) AccessChain 9(iv) 19 93: 6(int) Load 92 94: 6(int) IAdd 93 91 95: 20(ptr) AccessChain 9(iv) 19 Store 95 94 99: 96 Load 98(i2DMS) 100: 29(ivec2) ImageQuerySize 99 101: 7(ivec3) Load 9(iv) 102: 29(ivec2) VectorShuffle 101 101 0 1 103: 29(ivec2) IAdd 102 100 104: 7(ivec3) Load 9(iv) 105: 7(ivec3) VectorShuffle 104 103 3 4 2 Store 9(iv) 105 109: 106 Load 108(i2DMSArray) 110: 7(ivec3) ImageQuerySize 109 111: 7(ivec3) Load 9(iv) 112: 7(ivec3) IAdd 111 110 Store 9(iv) 112 113: 96 Load 98(i2DMS) 114: 6(int) ImageQuerySamples 113 115: 20(ptr) AccessChain 9(iv) 19 116: 6(int) Load 115 117: 6(int) IAdd 116 114 118: 20(ptr) AccessChain 9(iv) 19 Store 118 117 119: 106 Load 108(i2DMSArray) 120: 6(int) ImageQuerySamples 119 121: 20(ptr) AccessChain 9(iv) 19 122: 6(int) Load 121 123: 6(int) IAdd 122 120 124: 20(ptr) AccessChain 9(iv) 19 Store 124 123 Store 127(v) 129 130: 13 Load 15(i1D) 133: 6(int) Load 132(ic1D) 134: 125(fvec4) ImageRead 130 133 135: 125(fvec4) Load 127(v) 136: 125(fvec4) FAdd 135 134 Store 127(v) 136 137: 13 Load 15(i1D) 138: 6(int) Load 132(ic1D) 139: 125(fvec4) Load 127(v) ImageWrite 137 138 139 140: 25 Load 27(i2D) 143: 29(ivec2) Load 142(ic2D) 144: 125(fvec4) ImageRead 140 143 145: 125(fvec4) Load 127(v) 146: 125(fvec4) FAdd 145 144 Store 127(v) 146 147: 25 Load 27(i2D) 148: 29(ivec2) Load 142(ic2D) 149: 125(fvec4) Load 127(v) ImageWrite 147 148 149 150: 36 Load 38(i3D) 153: 7(ivec3) Load 152(ic3D) 154: 125(fvec4) ImageRead 150 153 155: 125(fvec4) Load 127(v) 156: 125(fvec4) FAdd 155 154 Store 127(v) 156 157: 36 Load 38(i3D) 158: 7(ivec3) Load 152(ic3D) 159: 125(fvec4) Load 127(v) ImageWrite 157 158 159 160: 43 Load 45(iCube) 161: 7(ivec3) Load 152(ic3D) 162: 125(fvec4) ImageRead 160 161 163: 125(fvec4) Load 127(v) 164: 125(fvec4) FAdd 163 162 Store 127(v) 164 165: 43 Load 45(iCube) 166: 7(ivec3) Load 152(ic3D) 167: 125(fvec4) Load 127(v) ImageWrite 165 166 167 168: 53 Load 55(iCubeArray) 169: 7(ivec3) Load 152(ic3D) 170: 125(fvec4) ImageRead 168 169 171: 125(fvec4) Load 127(v) 172: 125(fvec4) FAdd 171 170 Store 127(v) 172 173: 53 Load 55(iCubeArray) 174: 7(ivec3) Load 152(ic3D) 175: 125(fvec4) Load 127(v) ImageWrite 173 174 175 176: 60 Load 62(i2DRect) 177: 29(ivec2) Load 142(ic2D) 178: 125(fvec4) ImageRead 176 177 179: 125(fvec4) Load 127(v) 180: 125(fvec4) FAdd 179 178 Store 127(v) 180 181: 60 Load 62(i2DRect) 182: 29(ivec2) Load 142(ic2D) 183: 125(fvec4) Load 127(v) ImageWrite 181 182 183 184: 70 Load 72(i1DArray) 185: 29(ivec2) Load 142(ic2D) 186: 125(fvec4) ImageRead 184 185 187: 125(fvec4) Load 127(v) 188: 125(fvec4) FAdd 187 186 Store 127(v) 188 189: 70 Load 72(i1DArray) 190: 29(ivec2) Load 142(ic2D) 191: 125(fvec4) Load 127(v) ImageWrite 189 190 191 192: 80 Load 82(i2DArray) 193: 7(ivec3) Load 152(ic3D) 194: 125(fvec4) ImageRead 192 193 195: 125(fvec4) Load 127(v) 196: 125(fvec4) FAdd 195 194 Store 127(v) 196 197: 80 Load 82(i2DArray) 198: 7(ivec3) Load 152(ic3D) 199: 125(fvec4) Load 127(v) ImageWrite 197 198 199 200: 87 Load 89(iBuffer) 201: 6(int) Load 132(ic1D) 202: 125(fvec4) ImageRead 200 201 203: 125(fvec4) Load 127(v) 204: 125(fvec4) FAdd 203 202 Store 127(v) 204 205: 87 Load 89(iBuffer) 206: 6(int) Load 132(ic1D) 207: 125(fvec4) Load 127(v) ImageWrite 205 206 207 208: 96 Load 98(i2DMS) 209: 29(ivec2) Load 142(ic2D) 211: 125(fvec4) ImageRead 208 209 Sample 210 212: 125(fvec4) Load 127(v) 213: 125(fvec4) FAdd 212 211 Store 127(v) 213 214: 96 Load 98(i2DMS) 215: 29(ivec2) Load 142(ic2D) 217: 125(fvec4) Load 127(v) ImageWrite 214 215 217 Sample 216 218: 106 Load 108(i2DMSArray) 219: 7(ivec3) Load 152(ic3D) 221: 125(fvec4) ImageRead 218 219 Sample 220 222: 125(fvec4) Load 127(v) 223: 125(fvec4) FAdd 222 221 Store 127(v) 223 224: 106 Load 108(i2DMSArray) 225: 7(ivec3) Load 152(ic3D) 227: 125(fvec4) Load 127(v) ImageWrite 224 225 227 Sample 226 Store 229(ui) 19 233: 6(int) Load 132(ic1D) 236: 235(ptr) ImageTexelPointer 232(ii1D) 233 19 238: 6(int) AtomicIAdd 236 237 19 234 239: 20(ptr) AccessChain 9(iv) 19 240: 6(int) Load 239 241: 6(int) IAdd 240 238 242: 20(ptr) AccessChain 9(iv) 19 Store 242 241 246: 29(ivec2) Load 142(ic2D) 249: 18(int) Load 248(value) 251: 250(ptr) ImageTexelPointer 245(ui2D) 246 19 252: 18(int) AtomicIAdd 251 237 19 249 253: 18(int) Load 229(ui) 254: 18(int) IAdd 253 252 Store 229(ui) 254 255: 6(int) Load 132(ic1D) 257: 235(ptr) ImageTexelPointer 232(ii1D) 255 19 258: 6(int) AtomicSMin 257 237 19 256 259: 20(ptr) AccessChain 9(iv) 19 260: 6(int) Load 259 261: 6(int) IAdd 260 258 262: 20(ptr) AccessChain 9(iv) 19 Store 262 261 263: 29(ivec2) Load 142(ic2D) 264: 18(int) Load 248(value) 265: 250(ptr) ImageTexelPointer 245(ui2D) 263 19 266: 18(int) AtomicUMin 265 237 19 264 267: 18(int) Load 229(ui) 268: 18(int) IAdd 267 266 Store 229(ui) 268 269: 6(int) Load 132(ic1D) 271: 235(ptr) ImageTexelPointer 232(ii1D) 269 19 272: 6(int) AtomicSMax 271 237 19 270 273: 20(ptr) AccessChain 9(iv) 19 274: 6(int) Load 273 275: 6(int) IAdd 274 272 276: 20(ptr) AccessChain 9(iv) 19 Store 276 275 277: 29(ivec2) Load 142(ic2D) 278: 18(int) Load 248(value) 279: 250(ptr) ImageTexelPointer 245(ui2D) 277 19 280: 18(int) AtomicUMax 279 237 19 278 281: 18(int) Load 229(ui) 282: 18(int) IAdd 281 280 Store 229(ui) 282 283: 6(int) Load 132(ic1D) 285: 235(ptr) ImageTexelPointer 232(ii1D) 283 19 286: 6(int) AtomicAnd 285 237 19 284 287: 20(ptr) AccessChain 9(iv) 19 288: 6(int) Load 287 289: 6(int) IAdd 288 286 290: 20(ptr) AccessChain 9(iv) 19 Store 290 289 291: 29(ivec2) Load 142(ic2D) 292: 18(int) Load 248(value) 293: 250(ptr) ImageTexelPointer 245(ui2D) 291 19 294: 18(int) AtomicAnd 293 237 19 292 295: 18(int) Load 229(ui) 296: 18(int) IAdd 295 294 Store 229(ui) 296 297: 6(int) Load 132(ic1D) 299: 235(ptr) ImageTexelPointer 232(ii1D) 297 19 300: 6(int) AtomicOr 299 237 19 298 301: 20(ptr) AccessChain 9(iv) 19 302: 6(int) Load 301 303: 6(int) IAdd 302 300 304: 20(ptr) AccessChain 9(iv) 19 Store 304 303 305: 29(ivec2) Load 142(ic2D) 306: 18(int) Load 248(value) 307: 250(ptr) ImageTexelPointer 245(ui2D) 305 19 308: 18(int) AtomicOr 307 237 19 306 309: 18(int) Load 229(ui) 310: 18(int) IAdd 309 308 Store 229(ui) 310 311: 6(int) Load 132(ic1D) 313: 235(ptr) ImageTexelPointer 232(ii1D) 311 19 314: 6(int) AtomicXor 313 237 19 312 315: 20(ptr) AccessChain 9(iv) 19 316: 6(int) Load 315 317: 6(int) IAdd 316 314 318: 20(ptr) AccessChain 9(iv) 19 Store 318 317 319: 29(ivec2) Load 142(ic2D) 320: 18(int) Load 248(value) 321: 250(ptr) ImageTexelPointer 245(ui2D) 319 19 322: 18(int) AtomicXor 321 237 19 320 323: 18(int) Load 229(ui) 324: 18(int) IAdd 323 322 Store 229(ui) 324 325: 6(int) Load 132(ic1D) 327: 235(ptr) ImageTexelPointer 232(ii1D) 325 19 328: 6(int) AtomicExchange 327 237 19 326 329: 20(ptr) AccessChain 9(iv) 19 330: 6(int) Load 329 331: 6(int) IAdd 330 328 332: 20(ptr) AccessChain 9(iv) 19 Store 332 331 333: 29(ivec2) Load 142(ic2D) 334: 18(int) Load 248(value) 335: 250(ptr) ImageTexelPointer 245(ui2D) 333 19 336: 18(int) AtomicExchange 335 237 19 334 337: 18(int) Load 229(ui) 338: 18(int) IAdd 337 336 Store 229(ui) 338 339: 6(int) Load 132(ic1D) 342: 235(ptr) ImageTexelPointer 232(ii1D) 339 19 343: 6(int) AtomicCompareExchange 342 237 19 19 341 340 344: 20(ptr) AccessChain 9(iv) 19 345: 6(int) Load 344 346: 6(int) IAdd 345 343 347: 20(ptr) AccessChain 9(iv) 19 Store 347 346 348: 29(ivec2) Load 142(ic2D) 350: 18(int) Load 248(value) 351: 250(ptr) ImageTexelPointer 245(ui2D) 348 19 352: 18(int) AtomicCompareExchange 351 237 19 19 350 349 353: 18(int) Load 229(ui) 354: 18(int) IAdd 353 352 Store 229(ui) 354 358: 29(ivec2) Load 142(ic2D) 359: 235(ptr) ImageTexelPointer 357(ii2DMS) 358 216 360: 6(int) AtomicCompareExchange 359 237 19 19 341 340 361: 20(ptr) AccessChain 9(iv) 19 362: 6(int) Load 361 363: 6(int) IAdd 362 360 364: 20(ptr) AccessChain 9(iv) 19 Store 364 363 368: 7(ivec3) Load 152(ic3D) 369: 18(int) Load 248(value) 370: 250(ptr) ImageTexelPointer 367(ui2DMSArray) 368 220 371: 18(int) AtomicCompareExchange 370 237 19 19 369 349 372: 18(int) Load 229(ui) 373: 18(int) IAdd 372 371 Store 229(ui) 373 377: 374 Load 376(wo2D) 378: 29(ivec2) Load 142(ic2D) 379: 125(fvec4) Load 127(v) ImageWrite 377 378 379 382: 18(int) Load 229(ui) 383: 20(ptr) AccessChain 9(iv) 237 384: 6(int) Load 383 385: 18(int) Bitcast 384 387: 386(bool) INotEqual 382 385 388: 125(fvec4) Load 127(v) 390: 389(bvec4) CompositeConstruct 387 387 387 387 391: 125(fvec4) Select 390 388 129 Store 381(fragData) 391 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.image.load-formatted.frag.out000066400000000000000000000423311360464450000251610ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.imageLoadStoreLod.frag.out000066400000000000000000000156211360464450000245360ustar00rootroot00000000000000spv.imageLoadStoreLod.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 82 Capability Shader Capability ImageCubeArray Capability SparseResidency Capability Image1D Capability ImageReadWriteLodAMD Extension "SPV_AMD_shader_image_load_store_lod" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 77 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_AMD_shader_image_load_store_lod" Name 4 "main" Name 9 "f4" Name 14 "i1D" Name 24 "i2D" Name 34 "i3D" Name 46 "iiCube" Name 53 "ii1DArray" Name 60 "ui2DArray" Name 64 "u4" Name 65 "ResType" Name 71 "uiCubeArray" Name 77 "fragColor" Decorate 14(i1D) DescriptorSet 0 Decorate 14(i1D) Binding 0 Decorate 24(i2D) DescriptorSet 0 Decorate 24(i2D) Binding 1 Decorate 34(i3D) DescriptorSet 0 Decorate 34(i3D) Binding 2 Decorate 46(iiCube) DescriptorSet 0 Decorate 46(iiCube) Binding 3 Decorate 53(ii1DArray) DescriptorSet 0 Decorate 53(ii1DArray) Binding 4 Decorate 60(ui2DArray) DescriptorSet 0 Decorate 60(ui2DArray) Binding 5 Decorate 71(uiCubeArray) DescriptorSet 0 Decorate 71(uiCubeArray) Binding 6 Decorate 77(fragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: 6(float) Constant 0 11: 7(fvec4) ConstantComposite 10 10 10 10 12: TypeImage 6(float) 1D nonsampled format:Rgba32f 13: TypePointer UniformConstant 12 14(i1D): 13(ptr) Variable UniformConstant 16: TypeInt 32 1 17: 16(int) Constant 1 18: 16(int) Constant 3 22: TypeImage 6(float) 2D nonsampled format:Rgba32f 23: TypePointer UniformConstant 22 24(i2D): 23(ptr) Variable UniformConstant 26: TypeVector 16(int) 2 27: 16(int) Constant 2 28: 26(ivec2) ConstantComposite 27 18 32: TypeImage 6(float) 3D nonsampled format:Rgba32f 33: TypePointer UniformConstant 32 34(i3D): 33(ptr) Variable UniformConstant 36: TypeVector 16(int) 3 37: 16(int) Constant 4 38: 16(int) Constant 5 39: 16(int) Constant 6 40: 36(ivec3) ConstantComposite 37 38 39 44: TypeImage 16(int) Cube nonsampled format:Rgba32i 45: TypePointer UniformConstant 44 46(iiCube): 45(ptr) Variable UniformConstant 49: TypeVector 16(int) 4 51: TypeImage 16(int) 1D array nonsampled format:Rgba32i 52: TypePointer UniformConstant 51 53(ii1DArray): 52(ptr) Variable UniformConstant 57: TypeInt 32 0 58: TypeImage 57(int) 2D array nonsampled format:Rgba32ui 59: TypePointer UniformConstant 58 60(ui2DArray): 59(ptr) Variable UniformConstant 62: TypeVector 57(int) 4 63: TypePointer Function 62(ivec4) 65(ResType): TypeStruct 16(int) 62(ivec4) 69: TypeImage 57(int) Cube array nonsampled format:Rgba32ui 70: TypePointer UniformConstant 69 71(uiCubeArray): 70(ptr) Variable UniformConstant 76: TypePointer Output 7(fvec4) 77(fragColor): 76(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(f4): 8(ptr) Variable Function 64(u4): 63(ptr) Variable Function Store 9(f4) 11 15: 12 Load 14(i1D) 19: 7(fvec4) ImageRead 15 17 Lod 18 20: 7(fvec4) Load 9(f4) 21: 7(fvec4) FAdd 20 19 Store 9(f4) 21 25: 22 Load 24(i2D) 29: 7(fvec4) ImageRead 25 28 Lod 18 30: 7(fvec4) Load 9(f4) 31: 7(fvec4) FAdd 30 29 Store 9(f4) 31 35: 32 Load 34(i3D) 41: 7(fvec4) ImageRead 35 40 Lod 18 42: 7(fvec4) Load 9(f4) 43: 7(fvec4) FAdd 42 41 Store 9(f4) 43 47: 44 Load 46(iiCube) 48: 7(fvec4) Load 9(f4) 50: 49(ivec4) ConvertFToS 48 ImageWrite 47 40 50 Lod 18 54: 51 Load 53(ii1DArray) 55: 7(fvec4) Load 9(f4) 56: 49(ivec4) ConvertFToS 55 ImageWrite 54 28 56 Lod 18 61: 58 Load 60(ui2DArray) 66: 65(ResType) ImageSparseRead 61 40 Lod 18 67: 62(ivec4) CompositeExtract 66 1 Store 64(u4) 67 68: 16(int) CompositeExtract 66 0 72: 69 Load 71(uiCubeArray) 73: 65(ResType) ImageSparseRead 72 40 Lod 18 74: 62(ivec4) CompositeExtract 73 1 Store 64(u4) 74 75: 16(int) CompositeExtract 73 0 78: 7(fvec4) Load 9(f4) 79: 62(ivec4) Load 64(u4) 80: 7(fvec4) ConvertUToF 79 81: 7(fvec4) FAdd 78 80 Store 77(fragColor) 81 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.int16.amd.frag.out000066400000000000000000001150211360464450000226740ustar00rootroot00000000000000spv.int16.amd.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 560 Capability Shader Capability Float16 Capability Float64 Capability Int64 Capability Int16 Capability StorageUniform16 Capability StorageInputOutput16 Extension "SPV_AMD_gpu_shader_int16" Extension "SPV_KHR_16bit_storage" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 519 521 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_AMD_gpu_shader_half_float" SourceExtension "GL_AMD_gpu_shader_int16" SourceExtension "GL_ARB_gpu_shader_int64" Name 4 "main" Name 6 "literal(" Name 8 "operators(" Name 10 "typeCast(" Name 12 "builtinFuncs(" Name 16 "u16" Name 25 "Uniforms" MemberName 25(Uniforms) 0 "i" Name 27 "" Name 34 "indexable" Name 45 "indexable" Name 51 "u16v" Name 57 "i16" Name 70 "u16" Name 127 "b" Name 148 "u" Name 159 "i" Name 189 "i16v" Name 192 "bv" Name 200 "u16v" Name 213 "iv" Name 226 "uv" Name 240 "fv" Name 252 "dv" Name 264 "f16v" Name 276 "i64v" Name 290 "u64v" Name 305 "i16v" Name 311 "i16" Name 319 "u16v" Name 321 "u16" Name 393 "f16v" Name 396 "exp" Name 397 "ResType" Name 418 "packi" Name 423 "packu" Name 432 "packi64" Name 441 "packu64" Name 450 "bv" Name 515 "Block" MemberName 515(Block) 0 "i16v" MemberName 515(Block) 1 "u16" Name 517 "block" Name 519 "iu16v" Name 521 "ii16" Name 522 "si64" Name 523 "su64" Name 524 "si" Name 525 "su" Name 526 "sb" Name 527 "si16" Name 528 "su16" Name 529 "i16_to_b" Name 530 "u16_to_b" Name 531 "b_to_i16" Name 532 "b_to_u16" Name 533 "i16_to_i" Name 535 "u16_to_i" Name 536 "i_to_i16" Name 538 "i_to_u16" Name 540 "i16_to_u" Name 541 "u16_to_u" Name 543 "u_to_i16" Name 544 "u_to_u16" Name 545 "i16_to_i64" Name 548 "u16_to_i64" Name 549 "i64_to_i16" Name 551 "i64_to_u16" Name 553 "i16_to_u64" Name 554 "u16_to_u64" Name 556 "u64_to_i16" Name 557 "u64_to_u16" Name 558 "i16_to_u16" Name 559 "u16_to_i16" MemberDecorate 25(Uniforms) 0 Offset 0 Decorate 25(Uniforms) Block Decorate 27 DescriptorSet 0 Decorate 27 Binding 0 MemberDecorate 515(Block) 0 Offset 0 MemberDecorate 515(Block) 1 Offset 6 Decorate 515(Block) Block Decorate 517(block) DescriptorSet 0 Decorate 517(block) Binding 1 Decorate 519(iu16v) Flat Decorate 519(iu16v) Location 0 Decorate 521(ii16) Flat Decorate 521(ii16) Location 1 Decorate 522(si64) SpecId 100 Decorate 523(su64) SpecId 101 Decorate 524(si) SpecId 102 Decorate 525(su) SpecId 103 Decorate 526(sb) SpecId 104 Decorate 527(si16) SpecId 105 Decorate 528(su16) SpecId 106 2: TypeVoid 3: TypeFunction 2 14: TypeInt 16 0 15: TypePointer Function 14(int16_t) 17: TypeInt 16 1 18: TypeInt 32 0 19: 18(int) Constant 3 20: TypeArray 17(int16_t) 19 21: 17(int16_t) Constant 273 22: 17(int16_t) Constant 4294967294 23: 17(int16_t) Constant 256 24: 20 ConstantComposite 21 22 23 25(Uniforms): TypeStruct 18(int) 26: TypePointer Uniform 25(Uniforms) 27: 26(ptr) Variable Uniform 28: TypeInt 32 1 29: 28(int) Constant 0 30: TypePointer Uniform 18(int) 33: TypePointer Function 20 35: TypePointer Function 17(int16_t) 39: TypeArray 14(int16_t) 19 40: 14(int16_t) Constant 65535 41: 39 ConstantComposite 40 40 40 44: TypePointer Function 39 49: TypeVector 14(int16_t) 3 50: TypePointer Function 49(i16vec3) 53: 17(int16_t) Constant 1 54: TypeVector 17(int16_t) 3 111: 18(int) Constant 1 117: 18(int) Constant 2 125: TypeBool 126: TypePointer Function 125(bool) 128: 18(int) Constant 0 147: TypePointer Function 18(int) 158: TypePointer Function 28(int) 187: TypeVector 17(int16_t) 2 188: TypePointer Function 187(i16vec2) 190: TypeVector 125(bool) 2 191: TypePointer Function 190(bvec2) 194: 17(int16_t) Constant 0 195:187(i16vec2) ConstantComposite 194 194 196:187(i16vec2) ConstantComposite 53 53 198: TypeVector 14(int16_t) 2 199: TypePointer Function 198(i16vec2) 202: 14(int16_t) Constant 0 203: 14(int16_t) Constant 1 204:198(i16vec2) ConstantComposite 202 202 205:198(i16vec2) ConstantComposite 203 203 211: TypeVector 28(int) 2 212: TypePointer Function 211(ivec2) 222: TypeVector 18(int) 2 225: TypePointer Function 222(ivec2) 237: TypeFloat 32 238: TypeVector 237(float) 2 239: TypePointer Function 238(fvec2) 249: TypeFloat 64 250: TypeVector 249(float64_t) 2 251: TypePointer Function 250(f64vec2) 261: TypeFloat 16 262: TypeVector 261(float16_t) 2 263: TypePointer Function 262(f16vec2) 273: TypeInt 64 1 274: TypeVector 273(int64_t) 2 275: TypePointer Function 274(i64vec2) 285: TypeInt 64 0 286: TypeVector 285(int64_t) 2 289: TypePointer Function 286(i64vec2) 316: 17(int16_t) Constant 4294967295 317:187(i16vec2) ConstantComposite 316 316 326: 49(i16vec3) ConstantComposite 202 202 202 368: 125(bool) ConstantTrue 375: 125(bool) ConstantFalse 376: 190(bvec2) ConstantComposite 375 375 388: TypeVector 125(bool) 3 389: 388(bvec3) ConstantComposite 375 375 375 391: TypeVector 261(float16_t) 3 392: TypePointer Function 391(f16vec3) 395: TypePointer Function 54(i16vec3) 397(ResType): TypeStruct 391(f16vec3) 54(i16vec3) 407: TypePointer Function 261(float16_t) 431: TypePointer Function 273(int64_t) 434: TypeVector 17(int16_t) 4 440: TypePointer Function 285(int64_t) 443: TypeVector 14(int16_t) 4 449: TypePointer Function 388(bvec3) 515(Block): TypeStruct 54(i16vec3) 14(int16_t) 516: TypePointer Uniform 515(Block) 517(block): 516(ptr) Variable Uniform 518: TypePointer Input 49(i16vec3) 519(iu16v): 518(ptr) Variable Input 520: TypePointer Input 17(int16_t) 521(ii16): 520(ptr) Variable Input 522(si64):273(int64_t) SpecConstant 4294967286 4294967295 523(su64):285(int64_t) SpecConstant 20 0 524(si): 28(int) SpecConstant 4294967291 525(su): 18(int) SpecConstant 4 526(sb): 125(bool) SpecConstantTrue 527(si16): 17(int16_t) SpecConstant 4294967291 528(su16): 14(int16_t) SpecConstant 4 529(i16_to_b): 125(bool) SpecConstantOp 171 527(si16) 202 530(u16_to_b): 125(bool) SpecConstantOp 171 528(su16) 202 531(b_to_i16): 17(int16_t) SpecConstantOp 169 526(sb) 53 194 532(b_to_u16): 14(int16_t) SpecConstantOp 169 526(sb) 203 202 533(i16_to_i): 28(int) SpecConstantOp 114 527(si16) 534: 18(int) SpecConstantOp 113 528(su16) 535(u16_to_i): 28(int) SpecConstantOp 128 534 128 536(i_to_i16): 17(int16_t) SpecConstantOp 114 524(si) 537: 17(int16_t) SpecConstantOp 114 524(si) 538(i_to_u16): 14(int16_t) SpecConstantOp 128 537 202 539: 28(int) SpecConstantOp 114 527(si16) 540(i16_to_u): 18(int) SpecConstantOp 128 539 128 541(u16_to_u): 18(int) SpecConstantOp 113 528(su16) 542: 14(int16_t) SpecConstantOp 113 525(su) 543(u_to_i16): 17(int16_t) SpecConstantOp 128 542 202 544(u_to_u16): 14(int16_t) SpecConstantOp 113 525(su) 545(i16_to_i64):273(int64_t) SpecConstantOp 114 527(si16) 546:285(int64_t) SpecConstantOp 113 528(su16) 547:285(int64_t) Constant 0 0 548(u16_to_i64):273(int64_t) SpecConstantOp 128 546 547 549(i64_to_i16): 17(int16_t) SpecConstantOp 114 522(si64) 550: 17(int16_t) SpecConstantOp 114 522(si64) 551(i64_to_u16): 14(int16_t) SpecConstantOp 128 550 202 552:273(int64_t) SpecConstantOp 114 527(si16) 553(i16_to_u64):285(int64_t) SpecConstantOp 128 552 547 554(u16_to_u64):285(int64_t) SpecConstantOp 113 528(su16) 555: 14(int16_t) SpecConstantOp 113 523(su64) 556(u64_to_i16): 17(int16_t) SpecConstantOp 128 555 202 557(u64_to_u16): 14(int16_t) SpecConstantOp 113 523(su64) 558(i16_to_u16): 14(int16_t) SpecConstantOp 128 527(si16) 202 559(u16_to_i16): 17(int16_t) SpecConstantOp 128 528(su16) 202 4(main): 2 Function None 3 5: Label 511: 2 FunctionCall 6(literal() 512: 2 FunctionCall 8(operators() 513: 2 FunctionCall 10(typeCast() 514: 2 FunctionCall 12(builtinFuncs() Return FunctionEnd 6(literal(): 2 Function None 3 7: Label 16(u16): 15(ptr) Variable Function 34(indexable): 33(ptr) Variable Function 45(indexable): 44(ptr) Variable Function 31: 30(ptr) AccessChain 27 29 32: 18(int) Load 31 Store 34(indexable) 24 36: 35(ptr) AccessChain 34(indexable) 32 37: 17(int16_t) Load 36 38: 14(int16_t) Bitcast 37 42: 30(ptr) AccessChain 27 29 43: 18(int) Load 42 Store 45(indexable) 41 46: 15(ptr) AccessChain 45(indexable) 43 47: 14(int16_t) Load 46 48: 14(int16_t) IAdd 38 47 Store 16(u16) 48 Return FunctionEnd 8(operators(): 2 Function None 3 9: Label 51(u16v): 50(ptr) Variable Function 57(i16): 35(ptr) Variable Function 70(u16): 15(ptr) Variable Function 127(b): 126(ptr) Variable Function 148(u): 147(ptr) Variable Function 159(i): 158(ptr) Variable Function 52: 49(i16vec3) Load 51(u16v) 55: 54(i16vec3) CompositeConstruct 53 53 53 56: 49(i16vec3) IAdd 52 55 Store 51(u16v) 56 58: 17(int16_t) Load 57(i16) 59: 17(int16_t) ISub 58 53 Store 57(i16) 59 60: 17(int16_t) Load 57(i16) 61: 17(int16_t) IAdd 60 53 Store 57(i16) 61 62: 49(i16vec3) Load 51(u16v) 63: 54(i16vec3) CompositeConstruct 53 53 53 64: 49(i16vec3) ISub 62 63 Store 51(u16v) 64 65: 49(i16vec3) Load 51(u16v) 66: 49(i16vec3) Not 65 Store 51(u16v) 66 67: 17(int16_t) Load 57(i16) Store 57(i16) 67 68: 49(i16vec3) Load 51(u16v) 69: 49(i16vec3) SNegate 68 Store 51(u16v) 69 71: 17(int16_t) Load 57(i16) 72: 14(int16_t) Bitcast 71 73: 14(int16_t) Load 70(u16) 74: 14(int16_t) IAdd 73 72 Store 70(u16) 74 75: 49(i16vec3) Load 51(u16v) 76: 49(i16vec3) Load 51(u16v) 77: 49(i16vec3) ISub 76 75 Store 51(u16v) 77 78: 17(int16_t) Load 57(i16) 79: 17(int16_t) Load 57(i16) 80: 17(int16_t) IMul 79 78 Store 57(i16) 80 81: 49(i16vec3) Load 51(u16v) 82: 49(i16vec3) Load 51(u16v) 83: 49(i16vec3) UDiv 82 81 Store 51(u16v) 83 84: 17(int16_t) Load 57(i16) 85: 14(int16_t) Bitcast 84 86: 49(i16vec3) Load 51(u16v) 87: 49(i16vec3) CompositeConstruct 85 85 85 88: 49(i16vec3) UMod 86 87 Store 51(u16v) 88 89: 49(i16vec3) Load 51(u16v) 90: 49(i16vec3) Load 51(u16v) 91: 49(i16vec3) IAdd 89 90 Store 51(u16v) 91 92: 17(int16_t) Load 57(i16) 93: 14(int16_t) Bitcast 92 94: 14(int16_t) Load 70(u16) 95: 14(int16_t) ISub 93 94 Store 70(u16) 95 96: 49(i16vec3) Load 51(u16v) 97: 17(int16_t) Load 57(i16) 98: 14(int16_t) Bitcast 97 99: 49(i16vec3) CompositeConstruct 98 98 98 100: 49(i16vec3) IMul 96 99 Store 51(u16v) 100 101: 17(int16_t) Load 57(i16) 102: 17(int16_t) Load 57(i16) 103: 17(int16_t) IMul 101 102 Store 57(i16) 103 104: 17(int16_t) Load 57(i16) 105: 17(int16_t) Load 57(i16) 106: 17(int16_t) SMod 104 105 Store 57(i16) 106 107: 17(int16_t) Load 57(i16) 108: 49(i16vec3) Load 51(u16v) 109: 54(i16vec3) CompositeConstruct 107 107 107 110: 49(i16vec3) ShiftLeftLogical 108 109 Store 51(u16v) 110 112: 15(ptr) AccessChain 51(u16v) 111 113: 14(int16_t) Load 112 114: 17(int16_t) Load 57(i16) 115: 17(int16_t) ShiftRightArithmetic 114 113 Store 57(i16) 115 116: 17(int16_t) Load 57(i16) 118: 15(ptr) AccessChain 51(u16v) 117 119: 14(int16_t) Load 118 120: 17(int16_t) ShiftLeftLogical 116 119 Store 57(i16) 120 121: 49(i16vec3) Load 51(u16v) 122: 17(int16_t) Load 57(i16) 123: 54(i16vec3) CompositeConstruct 122 122 122 124: 49(i16vec3) ShiftLeftLogical 121 123 Store 51(u16v) 124 129: 15(ptr) AccessChain 51(u16v) 128 130: 14(int16_t) Load 129 131: 17(int16_t) Load 57(i16) 132: 14(int16_t) Bitcast 131 133: 125(bool) INotEqual 130 132 Store 127(b) 133 134: 17(int16_t) Load 57(i16) 135: 14(int16_t) Bitcast 134 136: 15(ptr) AccessChain 51(u16v) 128 137: 14(int16_t) Load 136 138: 125(bool) IEqual 135 137 Store 127(b) 138 139: 15(ptr) AccessChain 51(u16v) 128 140: 14(int16_t) Load 139 141: 15(ptr) AccessChain 51(u16v) 111 142: 14(int16_t) Load 141 143: 125(bool) UGreaterThan 140 142 Store 127(b) 143 144: 17(int16_t) Load 57(i16) 145: 28(int) SConvert 144 146: 18(int) Bitcast 145 149: 18(int) Load 148(u) 150: 125(bool) ULessThan 146 149 Store 127(b) 150 151: 15(ptr) AccessChain 51(u16v) 111 152: 14(int16_t) Load 151 153: 15(ptr) AccessChain 51(u16v) 128 154: 14(int16_t) Load 153 155: 125(bool) UGreaterThanEqual 152 154 Store 127(b) 155 156: 17(int16_t) Load 57(i16) 157: 28(int) SConvert 156 160: 28(int) Load 159(i) 161: 125(bool) SLessThanEqual 157 160 Store 127(b) 161 162: 17(int16_t) Load 57(i16) 163: 14(int16_t) Bitcast 162 164: 49(i16vec3) Load 51(u16v) 165: 49(i16vec3) CompositeConstruct 163 163 163 166: 49(i16vec3) BitwiseOr 164 165 Store 51(u16v) 166 167: 17(int16_t) Load 57(i16) 168: 14(int16_t) Bitcast 167 169: 14(int16_t) Load 70(u16) 170: 14(int16_t) BitwiseOr 168 169 Store 70(u16) 170 171: 17(int16_t) Load 57(i16) 172: 17(int16_t) Load 57(i16) 173: 17(int16_t) BitwiseAnd 172 171 Store 57(i16) 173 174: 49(i16vec3) Load 51(u16v) 175: 49(i16vec3) Load 51(u16v) 176: 49(i16vec3) BitwiseAnd 174 175 Store 51(u16v) 176 177: 17(int16_t) Load 57(i16) 178: 14(int16_t) Bitcast 177 179: 49(i16vec3) Load 51(u16v) 180: 49(i16vec3) CompositeConstruct 178 178 178 181: 49(i16vec3) BitwiseXor 179 180 Store 51(u16v) 181 182: 49(i16vec3) Load 51(u16v) 183: 17(int16_t) Load 57(i16) 184: 14(int16_t) Bitcast 183 185: 49(i16vec3) CompositeConstruct 184 184 184 186: 49(i16vec3) BitwiseXor 182 185 Store 51(u16v) 186 Return FunctionEnd 10(typeCast(): 2 Function None 3 11: Label 189(i16v): 188(ptr) Variable Function 192(bv): 191(ptr) Variable Function 200(u16v): 199(ptr) Variable Function 213(iv): 212(ptr) Variable Function 226(uv): 225(ptr) Variable Function 240(fv): 239(ptr) Variable Function 252(dv): 251(ptr) Variable Function 264(f16v): 263(ptr) Variable Function 276(i64v): 275(ptr) Variable Function 290(u64v): 289(ptr) Variable Function 193: 190(bvec2) Load 192(bv) 197:187(i16vec2) Select 193 196 195 Store 189(i16v) 197 201: 190(bvec2) Load 192(bv) 206:198(i16vec2) Select 201 205 204 Store 200(u16v) 206 207:187(i16vec2) Load 189(i16v) 208: 190(bvec2) INotEqual 207 204 Store 192(bv) 208 209:198(i16vec2) Load 200(u16v) 210: 190(bvec2) INotEqual 209 204 Store 192(bv) 210 214: 211(ivec2) Load 213(iv) 215:187(i16vec2) SConvert 214 Store 189(i16v) 215 216: 211(ivec2) Load 213(iv) 217:187(i16vec2) SConvert 216 218:198(i16vec2) Bitcast 217 Store 200(u16v) 218 219:187(i16vec2) Load 189(i16v) 220: 211(ivec2) SConvert 219 Store 213(iv) 220 221:198(i16vec2) Load 200(u16v) 223: 222(ivec2) UConvert 221 224: 211(ivec2) Bitcast 223 Store 213(iv) 224 227: 222(ivec2) Load 226(uv) 228:198(i16vec2) UConvert 227 229:187(i16vec2) Bitcast 228 Store 189(i16v) 229 230: 222(ivec2) Load 226(uv) 231:198(i16vec2) UConvert 230 Store 200(u16v) 231 232:187(i16vec2) Load 189(i16v) 233: 211(ivec2) SConvert 232 234: 222(ivec2) Bitcast 233 Store 226(uv) 234 235:198(i16vec2) Load 200(u16v) 236: 222(ivec2) UConvert 235 Store 226(uv) 236 241: 238(fvec2) Load 240(fv) 242:187(i16vec2) ConvertFToS 241 Store 189(i16v) 242 243: 238(fvec2) Load 240(fv) 244:198(i16vec2) ConvertFToU 243 Store 200(u16v) 244 245:187(i16vec2) Load 189(i16v) 246: 238(fvec2) ConvertSToF 245 Store 240(fv) 246 247:198(i16vec2) Load 200(u16v) 248: 238(fvec2) ConvertUToF 247 Store 240(fv) 248 253:250(f64vec2) Load 252(dv) 254:187(i16vec2) ConvertFToS 253 Store 189(i16v) 254 255:250(f64vec2) Load 252(dv) 256:198(i16vec2) ConvertFToU 255 Store 200(u16v) 256 257:187(i16vec2) Load 189(i16v) 258:250(f64vec2) ConvertSToF 257 Store 252(dv) 258 259:198(i16vec2) Load 200(u16v) 260:250(f64vec2) ConvertUToF 259 Store 252(dv) 260 265:262(f16vec2) Load 264(f16v) 266:187(i16vec2) ConvertFToS 265 Store 189(i16v) 266 267:262(f16vec2) Load 264(f16v) 268:198(i16vec2) ConvertFToU 267 Store 200(u16v) 268 269:187(i16vec2) Load 189(i16v) 270:262(f16vec2) ConvertSToF 269 Store 264(f16v) 270 271:198(i16vec2) Load 200(u16v) 272:262(f16vec2) ConvertUToF 271 Store 264(f16v) 272 277:274(i64vec2) Load 276(i64v) 278:187(i16vec2) SConvert 277 Store 189(i16v) 278 279:274(i64vec2) Load 276(i64v) 280:187(i16vec2) SConvert 279 281:198(i16vec2) Bitcast 280 Store 200(u16v) 281 282:187(i16vec2) Load 189(i16v) 283:274(i64vec2) SConvert 282 Store 276(i64v) 283 284:198(i16vec2) Load 200(u16v) 287:286(i64vec2) UConvert 284 288:274(i64vec2) Bitcast 287 Store 276(i64v) 288 291:286(i64vec2) Load 290(u64v) 292:198(i16vec2) UConvert 291 293:187(i16vec2) Bitcast 292 Store 189(i16v) 293 294:286(i64vec2) Load 290(u64v) 295:198(i16vec2) UConvert 294 Store 200(u16v) 295 296:187(i16vec2) Load 189(i16v) 297:274(i64vec2) SConvert 296 298:286(i64vec2) Bitcast 297 Store 290(u64v) 298 299:198(i16vec2) Load 200(u16v) 300:286(i64vec2) UConvert 299 Store 290(u64v) 300 301:198(i16vec2) Load 200(u16v) 302:187(i16vec2) Bitcast 301 Store 189(i16v) 302 303:187(i16vec2) Load 189(i16v) 304:198(i16vec2) Bitcast 303 Store 200(u16v) 304 Return FunctionEnd 12(builtinFuncs(): 2 Function None 3 13: Label 305(i16v): 188(ptr) Variable Function 311(i16): 35(ptr) Variable Function 319(u16v): 50(ptr) Variable Function 321(u16): 15(ptr) Variable Function 393(f16v): 392(ptr) Variable Function 396(exp): 395(ptr) Variable Function 418(packi): 158(ptr) Variable Function 423(packu): 147(ptr) Variable Function 432(packi64): 431(ptr) Variable Function 441(packu64): 440(ptr) Variable Function 450(bv): 449(ptr) Variable Function 306:187(i16vec2) Load 305(i16v) 307:187(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 306 Store 305(i16v) 307 308:187(i16vec2) Load 305(i16v) 309:187(i16vec2) ExtInst 1(GLSL.std.450) 7(SSign) 308 Store 305(i16v) 309 310:187(i16vec2) Load 305(i16v) 312: 17(int16_t) Load 311(i16) 313:187(i16vec2) CompositeConstruct 312 312 314:187(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 310 313 Store 305(i16v) 314 315:187(i16vec2) Load 305(i16v) 318:187(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 315 317 Store 305(i16v) 318 320: 49(i16vec3) Load 319(u16v) 322: 14(int16_t) Load 321(u16) 323: 49(i16vec3) CompositeConstruct 322 322 322 324: 49(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 320 323 Store 319(u16v) 324 325: 49(i16vec3) Load 319(u16v) 327: 49(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 325 326 Store 319(u16v) 327 328:187(i16vec2) Load 305(i16v) 329: 17(int16_t) Load 311(i16) 330:187(i16vec2) CompositeConstruct 329 329 331:187(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 328 330 Store 305(i16v) 331 332:187(i16vec2) Load 305(i16v) 333:187(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 332 317 Store 305(i16v) 333 334: 49(i16vec3) Load 319(u16v) 335: 14(int16_t) Load 321(u16) 336: 49(i16vec3) CompositeConstruct 335 335 335 337: 49(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 334 336 Store 319(u16v) 337 338: 49(i16vec3) Load 319(u16v) 339: 49(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 338 326 Store 319(u16v) 339 340:187(i16vec2) Load 305(i16v) 341: 17(int16_t) Load 311(i16) 342: 17(int16_t) SNegate 341 343: 17(int16_t) Load 311(i16) 344:187(i16vec2) CompositeConstruct 342 342 345:187(i16vec2) CompositeConstruct 343 343 346:187(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 340 344 345 Store 305(i16v) 346 347:187(i16vec2) Load 305(i16v) 348:187(i16vec2) Load 305(i16v) 349:187(i16vec2) SNegate 348 350:187(i16vec2) Load 305(i16v) 351:187(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 347 349 350 Store 305(i16v) 351 352: 49(i16vec3) Load 319(u16v) 353: 14(int16_t) Load 321(u16) 354: 14(int16_t) SNegate 353 355: 14(int16_t) Load 321(u16) 356: 49(i16vec3) CompositeConstruct 354 354 354 357: 49(i16vec3) CompositeConstruct 355 355 355 358: 49(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 352 356 357 Store 319(u16v) 358 359: 49(i16vec3) Load 319(u16v) 360: 49(i16vec3) Load 319(u16v) 361: 49(i16vec3) SNegate 360 362: 49(i16vec3) Load 319(u16v) 363: 49(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 359 361 362 Store 319(u16v) 363 364: 35(ptr) AccessChain 305(i16v) 128 365: 17(int16_t) Load 364 366: 35(ptr) AccessChain 305(i16v) 111 367: 17(int16_t) Load 366 369: 17(int16_t) Select 368 367 365 Store 311(i16) 369 370: 17(int16_t) Load 311(i16) 371:187(i16vec2) CompositeConstruct 370 370 372: 17(int16_t) Load 311(i16) 373: 17(int16_t) SNegate 372 374:187(i16vec2) CompositeConstruct 373 373 377:187(i16vec2) Select 376 374 371 Store 305(i16v) 377 378: 15(ptr) AccessChain 319(u16v) 128 379: 14(int16_t) Load 378 380: 15(ptr) AccessChain 319(u16v) 111 381: 14(int16_t) Load 380 382: 14(int16_t) Select 368 381 379 Store 321(u16) 382 383: 14(int16_t) Load 321(u16) 384: 49(i16vec3) CompositeConstruct 383 383 383 385: 14(int16_t) Load 321(u16) 386: 14(int16_t) SNegate 385 387: 49(i16vec3) CompositeConstruct 386 386 386 390: 49(i16vec3) Select 389 387 384 Store 319(u16v) 390 394:391(f16vec3) Load 393(f16v) 398:397(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 394 399: 54(i16vec3) CompositeExtract 398 1 Store 396(exp) 399 400:391(f16vec3) CompositeExtract 398 0 Store 393(f16v) 400 401:391(f16vec3) Load 393(f16v) 402: 54(i16vec3) Load 396(exp) 403:391(f16vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 401 402 Store 393(f16v) 403 404:391(f16vec3) Load 393(f16v) 405:262(f16vec2) VectorShuffle 404 404 0 1 406:187(i16vec2) Bitcast 405 Store 305(i16v) 406 408: 407(ptr) AccessChain 393(f16v) 117 409:261(float16_t) Load 408 410: 14(int16_t) Bitcast 409 411: 15(ptr) AccessChain 319(u16v) 128 Store 411 410 412:187(i16vec2) Load 305(i16v) 413:262(f16vec2) Bitcast 412 414:391(f16vec3) Load 393(f16v) 415:391(f16vec3) VectorShuffle 414 413 3 4 2 Store 393(f16v) 415 416: 49(i16vec3) Load 319(u16v) 417:391(f16vec3) Bitcast 416 Store 393(f16v) 417 419:187(i16vec2) Load 305(i16v) 420: 28(int) Bitcast 419 Store 418(packi) 420 421: 28(int) Load 418(packi) 422:187(i16vec2) Bitcast 421 Store 305(i16v) 422 424: 49(i16vec3) Load 319(u16v) 425:198(i16vec2) VectorShuffle 424 424 0 1 426: 18(int) Bitcast 425 Store 423(packu) 426 427: 18(int) Load 423(packu) 428:198(i16vec2) Bitcast 427 429: 49(i16vec3) Load 319(u16v) 430: 49(i16vec3) VectorShuffle 429 428 3 4 2 Store 319(u16v) 430 433: 17(int16_t) Load 311(i16) 435:434(i16vec4) CompositeConstruct 433 433 433 433 436:273(int64_t) Bitcast 435 Store 432(packi64) 436 437:273(int64_t) Load 432(packi64) 438:434(i16vec4) Bitcast 437 439:187(i16vec2) VectorShuffle 438 438 0 1 Store 305(i16v) 439 442: 14(int16_t) Load 321(u16) 444:443(i16vec4) CompositeConstruct 442 442 442 442 445:285(int64_t) Bitcast 444 Store 441(packu64) 445 446:285(int64_t) Load 441(packu64) 447:443(i16vec4) Bitcast 446 448: 49(i16vec3) VectorShuffle 447 447 0 1 2 Store 319(u16v) 448 451: 49(i16vec3) Load 319(u16v) 452: 14(int16_t) Load 321(u16) 453: 49(i16vec3) CompositeConstruct 452 452 452 454: 388(bvec3) ULessThan 451 453 Store 450(bv) 454 455:187(i16vec2) Load 305(i16v) 456: 17(int16_t) Load 311(i16) 457:187(i16vec2) CompositeConstruct 456 456 458: 190(bvec2) SLessThan 455 457 459: 388(bvec3) Load 450(bv) 460: 388(bvec3) VectorShuffle 459 458 3 4 2 Store 450(bv) 460 461: 49(i16vec3) Load 319(u16v) 462: 14(int16_t) Load 321(u16) 463: 49(i16vec3) CompositeConstruct 462 462 462 464: 388(bvec3) ULessThanEqual 461 463 Store 450(bv) 464 465:187(i16vec2) Load 305(i16v) 466: 17(int16_t) Load 311(i16) 467:187(i16vec2) CompositeConstruct 466 466 468: 190(bvec2) SLessThanEqual 465 467 469: 388(bvec3) Load 450(bv) 470: 388(bvec3) VectorShuffle 469 468 3 4 2 Store 450(bv) 470 471: 49(i16vec3) Load 319(u16v) 472: 14(int16_t) Load 321(u16) 473: 49(i16vec3) CompositeConstruct 472 472 472 474: 388(bvec3) UGreaterThan 471 473 Store 450(bv) 474 475:187(i16vec2) Load 305(i16v) 476: 17(int16_t) Load 311(i16) 477:187(i16vec2) CompositeConstruct 476 476 478: 190(bvec2) SGreaterThan 475 477 479: 388(bvec3) Load 450(bv) 480: 388(bvec3) VectorShuffle 479 478 3 4 2 Store 450(bv) 480 481: 49(i16vec3) Load 319(u16v) 482: 14(int16_t) Load 321(u16) 483: 49(i16vec3) CompositeConstruct 482 482 482 484: 388(bvec3) UGreaterThanEqual 481 483 Store 450(bv) 484 485:187(i16vec2) Load 305(i16v) 486: 17(int16_t) Load 311(i16) 487:187(i16vec2) CompositeConstruct 486 486 488: 190(bvec2) SGreaterThanEqual 485 487 489: 388(bvec3) Load 450(bv) 490: 388(bvec3) VectorShuffle 489 488 3 4 2 Store 450(bv) 490 491: 49(i16vec3) Load 319(u16v) 492: 14(int16_t) Load 321(u16) 493: 49(i16vec3) CompositeConstruct 492 492 492 494: 388(bvec3) IEqual 491 493 Store 450(bv) 494 495:187(i16vec2) Load 305(i16v) 496: 17(int16_t) Load 311(i16) 497:187(i16vec2) CompositeConstruct 496 496 498: 190(bvec2) IEqual 495 497 499: 388(bvec3) Load 450(bv) 500: 388(bvec3) VectorShuffle 499 498 3 4 2 Store 450(bv) 500 501: 49(i16vec3) Load 319(u16v) 502: 14(int16_t) Load 321(u16) 503: 49(i16vec3) CompositeConstruct 502 502 502 504: 388(bvec3) INotEqual 501 503 Store 450(bv) 504 505:187(i16vec2) Load 305(i16v) 506: 17(int16_t) Load 311(i16) 507:187(i16vec2) CompositeConstruct 506 506 508: 190(bvec2) INotEqual 505 507 509: 388(bvec3) Load 450(bv) 510: 388(bvec3) VectorShuffle 509 508 3 4 2 Store 450(bv) 510 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.int16.frag.out000066400000000000000000001071361360464450000221440ustar00rootroot00000000000000spv.int16.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 523 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 195 "u16v" Name 200 "i16" Name 220 "i" Name 227 "uv" Name 243 "i64" Name 281 "b" Name 343 "i16v" Name 346 "i16" Name 356 "u16v" Name 358 "u16" Name 428 "i32" Name 431 "i64" Name 434 "i16v4" Name 437 "u32" Name 438 "u16v2" Name 442 "u64" Name 445 "u16v4" Name 457 "bv" Name 518 "Block" MemberName 518(Block) 0 "i16" MemberName 518(Block) 1 "i16v2" MemberName 518(Block) 2 "i16v3" MemberName 518(Block) 3 "i16v4" MemberName 518(Block) 4 "u16" MemberName 518(Block) 5 "u16v2" MemberName 518(Block) 6 "u16v3" MemberName 518(Block) 7 "u16v4" Name 520 "block" Name 521 "si16" Name 522 "su16" MemberDecorate 24(Uniforms) 0 Offset 0 Decorate 24(Uniforms) Block Decorate 26 DescriptorSet 0 Decorate 26 Binding 0 MemberDecorate 518(Block) 0 Offset 0 MemberDecorate 518(Block) 1 Offset 4 MemberDecorate 518(Block) 2 Offset 8 MemberDecorate 518(Block) 3 Offset 16 MemberDecorate 518(Block) 4 Offset 24 MemberDecorate 518(Block) 5 Offset 28 MemberDecorate 518(Block) 6 Offset 32 MemberDecorate 518(Block) 7 Offset 40 Decorate 518(Block) Block Decorate 520(block) DescriptorSet 0 Decorate 520(block) Binding 1 Decorate 521(si16) SpecId 100 Decorate 522(su16) SpecId 101 2: TypeVoid 3: TypeFunction 2 14: TypeInt 16 1 15: TypePointer Function 14(int16_t) 17: TypeInt 32 0 18: 17(int) Constant 3 19: TypeArray 14(int16_t) 18 20: 14(int16_t) Constant 4294962927 21: 14(int16_t) Constant 4294967295 22: 14(int16_t) Constant 16384 23: 19 ConstantComposite 20 21 22 24(Uniforms): TypeStruct 17(int) 25: TypePointer Uniform 24(Uniforms) 26: 25(ptr) Variable Uniform 27: TypeInt 32 1 28: 27(int) Constant 0 29: TypePointer Uniform 17(int) 32: TypePointer Function 19 36: TypeInt 16 0 37: TypePointer Function 36(int16_t) 39: TypeArray 36(int16_t) 18 40: 36(int16_t) Constant 65535 41: 36(int16_t) Constant 32767 42: 39 ConstantComposite 40 40 41 45: TypePointer Function 39 49: TypeVector 27(int) 2 50: TypePointer Function 49(ivec2) 52: TypeVector 14(int16_t) 2 53: TypePointer Function 52(i16vec2) 57: TypeVector 36(int16_t) 2 58: TypePointer Function 57(i16vec2) 61: TypeVector 17(int) 2 66: TypePointer Function 61(ivec2) 71: TypeInt 64 1 72: TypeVector 71(int64_t) 2 73: TypePointer Function 72(i64vec2) 77: TypeInt 64 0 78: TypeVector 77(int64_t) 2 79: TypePointer Function 78(i64vec2) 91: TypeFloat 16 92: TypeVector 91(float16_t) 2 93: TypePointer Function 92(f16vec2) 97: TypeFloat 32 98: TypeVector 97(float) 2 99: TypePointer Function 98(fvec2) 103: TypeFloat 64 104: TypeVector 103(float64_t) 2 105: TypePointer Function 104(f64vec2) 151: TypeInt 8 1 152: TypeVector 151(int8_t) 2 153: TypePointer Function 152(i8vec2) 158: TypeInt 8 0 159: TypeVector 158(int8_t) 2 162: TypePointer Function 159(i8vec2) 173: TypeBool 174: TypeVector 173(bool) 2 175: TypePointer Function 174(bvec2) 178: 14(int16_t) Constant 0 179: 14(int16_t) Constant 1 180: 52(i16vec2) ConstantComposite 178 178 181: 52(i16vec2) ConstantComposite 179 179 184: 36(int16_t) Constant 0 185: 36(int16_t) Constant 1 186: 57(i16vec2) ConstantComposite 184 184 187: 57(i16vec2) ConstantComposite 185 185 193: TypeVector 36(int16_t) 3 194: TypePointer Function 193(i16vec3) 197: TypeVector 14(int16_t) 3 219: TypePointer Function 27(int) 225: TypeVector 17(int) 3 226: TypePointer Function 225(ivec3) 242: TypePointer Function 71(int64_t) 264: 17(int) Constant 1 270: 17(int) Constant 2 276: TypeVector 27(int) 3 280: TypePointer Function 173(bool) 282: 17(int) Constant 0 296: TypePointer Function 17(int) 354: 52(i16vec2) ConstantComposite 21 21 363:193(i16vec3) ConstantComposite 184 184 184 405: 173(bool) ConstantTrue 412: 173(bool) ConstantFalse 413: 174(bvec2) ConstantComposite 412 412 425: TypeVector 173(bool) 3 426: 425(bvec3) ConstantComposite 412 412 412 432: TypeVector 14(int16_t) 4 433: TypePointer Function 432(i16vec4) 441: TypePointer Function 77(int64_t) 443: TypeVector 36(int16_t) 4 444: TypePointer Function 443(i16vec4) 456: TypePointer Function 425(bvec3) 518(Block): TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4) 519: TypePointer Uniform 518(Block) 520(block): 519(ptr) Variable Uniform 521(si16): 14(int16_t) SpecConstant 4294967286 522(su16): 36(int16_t) SpecConstant 20 4(main): 2 Function None 3 5: Label Return FunctionEnd 6(literal(): 2 Function None 3 7: Label 16(i16): 15(ptr) Variable Function 33(indexable): 32(ptr) Variable Function 38(u16): 37(ptr) Variable Function 46(indexable): 45(ptr) Variable Function 30: 29(ptr) AccessChain 26 28 31: 17(int) Load 30 Store 33(indexable) 23 34: 15(ptr) AccessChain 33(indexable) 31 35: 14(int16_t) Load 34 Store 16(i16) 35 43: 29(ptr) AccessChain 26 28 44: 17(int) Load 43 Store 46(indexable) 42 47: 37(ptr) AccessChain 46(indexable) 44 48: 36(int16_t) Load 47 Store 38(u16) 48 Return FunctionEnd 8(typeCast16(): 2 Function None 3 9: Label 51(i32v): 50(ptr) Variable Function 54(i16v): 53(ptr) Variable Function 59(u16v): 58(ptr) Variable Function 67(u32v): 66(ptr) Variable Function 74(i64v): 73(ptr) Variable Function 80(u64v): 79(ptr) Variable Function 94(f16v): 93(ptr) Variable Function 100(f32v): 99(ptr) Variable Function 106(f64v): 105(ptr) Variable Function 154(i8v): 153(ptr) Variable Function 163(u8v): 162(ptr) Variable Function 176(bv): 175(ptr) Variable Function 55: 52(i16vec2) Load 54(i16v) 56: 49(ivec2) SConvert 55 Store 51(i32v) 56 60: 57(i16vec2) Load 59(u16v) 62: 61(ivec2) UConvert 60 63: 49(ivec2) Bitcast 62 Store 51(i32v) 63 64: 52(i16vec2) Load 54(i16v) 65: 57(i16vec2) Bitcast 64 Store 59(u16v) 65 68: 52(i16vec2) Load 54(i16v) 69: 49(ivec2) SConvert 68 70: 61(ivec2) Bitcast 69 Store 67(u32v) 70 75: 52(i16vec2) Load 54(i16v) 76: 72(i64vec2) SConvert 75 Store 74(i64v) 76 81: 52(i16vec2) Load 54(i16v) 82: 72(i64vec2) SConvert 81 83: 78(i64vec2) Bitcast 82 Store 80(u64v) 83 84: 57(i16vec2) Load 59(u16v) 85: 61(ivec2) UConvert 84 Store 67(u32v) 85 86: 57(i16vec2) Load 59(u16v) 87: 78(i64vec2) UConvert 86 88: 72(i64vec2) Bitcast 87 Store 74(i64v) 88 89: 57(i16vec2) Load 59(u16v) 90: 78(i64vec2) UConvert 89 Store 80(u64v) 90 95: 52(i16vec2) Load 54(i16v) 96: 92(f16vec2) ConvertSToF 95 Store 94(f16v) 96 101: 52(i16vec2) Load 54(i16v) 102: 98(fvec2) ConvertSToF 101 Store 100(f32v) 102 107: 52(i16vec2) Load 54(i16v) 108:104(f64vec2) ConvertSToF 107 Store 106(f64v) 108 109: 57(i16vec2) Load 59(u16v) 110: 92(f16vec2) ConvertUToF 109 Store 94(f16v) 110 111: 57(i16vec2) Load 59(u16v) 112: 98(fvec2) ConvertUToF 111 Store 100(f32v) 112 113: 57(i16vec2) Load 59(u16v) 114:104(f64vec2) ConvertUToF 113 Store 106(f64v) 114 115: 52(i16vec2) Load 54(i16v) 116: 49(ivec2) SConvert 115 Store 51(i32v) 116 117: 57(i16vec2) Load 59(u16v) 118: 61(ivec2) UConvert 117 119: 49(ivec2) Bitcast 118 Store 51(i32v) 119 120: 52(i16vec2) Load 54(i16v) 121: 57(i16vec2) Bitcast 120 Store 59(u16v) 121 122: 52(i16vec2) Load 54(i16v) 123: 49(ivec2) SConvert 122 124: 61(ivec2) Bitcast 123 Store 67(u32v) 124 125: 52(i16vec2) Load 54(i16v) 126: 72(i64vec2) SConvert 125 Store 74(i64v) 126 127: 52(i16vec2) Load 54(i16v) 128: 72(i64vec2) SConvert 127 129: 78(i64vec2) Bitcast 128 Store 80(u64v) 129 130: 57(i16vec2) Load 59(u16v) 131: 61(ivec2) UConvert 130 Store 67(u32v) 131 132: 57(i16vec2) Load 59(u16v) 133: 78(i64vec2) UConvert 132 134: 72(i64vec2) Bitcast 133 Store 74(i64v) 134 135: 57(i16vec2) Load 59(u16v) 136: 78(i64vec2) UConvert 135 137: 72(i64vec2) Bitcast 136 138: 78(i64vec2) Bitcast 137 Store 80(u64v) 138 139: 52(i16vec2) Load 54(i16v) 140: 92(f16vec2) ConvertSToF 139 Store 94(f16v) 140 141: 52(i16vec2) Load 54(i16v) 142: 98(fvec2) ConvertSToF 141 Store 100(f32v) 142 143: 52(i16vec2) Load 54(i16v) 144:104(f64vec2) ConvertSToF 143 Store 106(f64v) 144 145: 57(i16vec2) Load 59(u16v) 146: 92(f16vec2) ConvertUToF 145 Store 94(f16v) 146 147: 57(i16vec2) Load 59(u16v) 148: 98(fvec2) ConvertUToF 147 Store 100(f32v) 148 149: 57(i16vec2) Load 59(u16v) 150:104(f64vec2) ConvertUToF 149 Store 106(f64v) 150 155: 52(i16vec2) Load 54(i16v) 156: 152(i8vec2) SConvert 155 Store 154(i8v) 156 157: 57(i16vec2) Load 59(u16v) 160: 159(i8vec2) UConvert 157 161: 152(i8vec2) Bitcast 160 Store 154(i8v) 161 164: 52(i16vec2) Load 54(i16v) 165: 152(i8vec2) SConvert 164 166: 159(i8vec2) Bitcast 165 Store 163(u8v) 166 167: 57(i16vec2) Load 59(u16v) 168: 159(i8vec2) UConvert 167 Store 163(u8v) 168 169: 57(i16vec2) Load 59(u16v) 170: 159(i8vec2) UConvert 169 171: 57(i16vec2) UConvert 170 172: 52(i16vec2) Bitcast 171 Store 54(i16v) 172 177: 174(bvec2) Load 176(bv) 182: 52(i16vec2) Select 177 181 180 Store 54(i16v) 182 183: 174(bvec2) Load 176(bv) 188: 57(i16vec2) Select 183 187 186 Store 59(u16v) 188 189: 52(i16vec2) Load 54(i16v) 190: 174(bvec2) INotEqual 189 186 Store 176(bv) 190 191: 57(i16vec2) Load 59(u16v) 192: 174(bvec2) INotEqual 191 186 Store 176(bv) 192 Return FunctionEnd 10(operators(): 2 Function None 3 11: Label 195(u16v): 194(ptr) Variable Function 200(i16): 15(ptr) Variable Function 220(i): 219(ptr) Variable Function 227(uv): 226(ptr) Variable Function 243(i64): 242(ptr) Variable Function 281(b): 280(ptr) Variable Function 196:193(i16vec3) Load 195(u16v) 198:197(i16vec3) CompositeConstruct 179 179 179 199:193(i16vec3) IAdd 196 198 Store 195(u16v) 199 201: 14(int16_t) Load 200(i16) 202: 14(int16_t) ISub 201 179 Store 200(i16) 202 203: 14(int16_t) Load 200(i16) 204: 14(int16_t) IAdd 203 179 Store 200(i16) 204 205:193(i16vec3) Load 195(u16v) 206:197(i16vec3) CompositeConstruct 179 179 179 207:193(i16vec3) ISub 205 206 Store 195(u16v) 207 208:193(i16vec3) Load 195(u16v) 209:193(i16vec3) Not 208 Store 195(u16v) 209 210: 14(int16_t) Load 200(i16) Store 200(i16) 210 211:193(i16vec3) Load 195(u16v) 212:193(i16vec3) SNegate 211 Store 195(u16v) 212 213: 14(int16_t) Load 200(i16) 214: 14(int16_t) Load 200(i16) 215: 14(int16_t) IAdd 214 213 Store 200(i16) 215 216:193(i16vec3) Load 195(u16v) 217:193(i16vec3) Load 195(u16v) 218:193(i16vec3) ISub 217 216 Store 195(u16v) 218 221: 14(int16_t) Load 200(i16) 222: 27(int) SConvert 221 223: 27(int) Load 220(i) 224: 27(int) IMul 223 222 Store 220(i) 224 228:193(i16vec3) Load 195(u16v) 229: 225(ivec3) UConvert 228 230: 225(ivec3) Load 227(uv) 231: 225(ivec3) UDiv 230 229 Store 227(uv) 231 232: 14(int16_t) Load 200(i16) 233: 27(int) SConvert 232 234: 17(int) Bitcast 233 235: 225(ivec3) Load 227(uv) 236: 225(ivec3) CompositeConstruct 234 234 234 237: 225(ivec3) UMod 235 236 Store 227(uv) 237 238:193(i16vec3) Load 195(u16v) 239: 225(ivec3) UConvert 238 240: 225(ivec3) Load 227(uv) 241: 225(ivec3) IAdd 239 240 Store 227(uv) 241 244: 14(int16_t) Load 200(i16) 245: 71(int64_t) SConvert 244 246: 71(int64_t) Load 243(i64) 247: 71(int64_t) ISub 245 246 Store 243(i64) 247 248:193(i16vec3) Load 195(u16v) 249: 225(ivec3) UConvert 248 250: 225(ivec3) Load 227(uv) 251: 225(ivec3) IMul 249 250 Store 227(uv) 251 252: 14(int16_t) Load 200(i16) 253: 71(int64_t) SConvert 252 254: 71(int64_t) Load 243(i64) 255: 71(int64_t) IMul 253 254 Store 243(i64) 255 256: 14(int16_t) Load 200(i16) 257: 27(int) SConvert 256 258: 27(int) Load 220(i) 259: 27(int) SMod 257 258 Store 220(i) 259 260: 14(int16_t) Load 200(i16) 261:193(i16vec3) Load 195(u16v) 262:197(i16vec3) CompositeConstruct 260 260 260 263:193(i16vec3) ShiftLeftLogical 261 262 Store 195(u16v) 263 265: 37(ptr) AccessChain 195(u16v) 264 266: 36(int16_t) Load 265 267: 14(int16_t) Load 200(i16) 268: 14(int16_t) ShiftRightArithmetic 267 266 Store 200(i16) 268 269: 14(int16_t) Load 200(i16) 271: 37(ptr) AccessChain 195(u16v) 270 272: 36(int16_t) Load 271 273: 14(int16_t) ShiftLeftLogical 269 272 Store 200(i16) 273 274:193(i16vec3) Load 195(u16v) 275: 27(int) Load 220(i) 277: 276(ivec3) CompositeConstruct 275 275 275 278:193(i16vec3) ShiftLeftLogical 274 277 279: 225(ivec3) UConvert 278 Store 227(uv) 279 283: 37(ptr) AccessChain 195(u16v) 282 284: 36(int16_t) Load 283 285: 14(int16_t) Load 200(i16) 286: 36(int16_t) Bitcast 285 287: 173(bool) INotEqual 284 286 Store 281(b) 287 288: 14(int16_t) Load 200(i16) 289: 36(int16_t) Bitcast 288 290: 37(ptr) AccessChain 195(u16v) 282 291: 36(int16_t) Load 290 292: 173(bool) IEqual 289 291 Store 281(b) 292 293: 37(ptr) AccessChain 195(u16v) 282 294: 36(int16_t) Load 293 295: 17(int) UConvert 294 297: 296(ptr) AccessChain 227(uv) 264 298: 17(int) Load 297 299: 173(bool) UGreaterThan 295 298 Store 281(b) 299 300: 14(int16_t) Load 200(i16) 301: 27(int) SConvert 300 302: 27(int) Load 220(i) 303: 173(bool) SLessThan 301 302 Store 281(b) 303 304: 37(ptr) AccessChain 195(u16v) 264 305: 36(int16_t) Load 304 306: 17(int) UConvert 305 307: 296(ptr) AccessChain 227(uv) 282 308: 17(int) Load 307 309: 173(bool) UGreaterThanEqual 306 308 Store 281(b) 309 310: 14(int16_t) Load 200(i16) 311: 27(int) SConvert 310 312: 27(int) Load 220(i) 313: 173(bool) SLessThanEqual 311 312 Store 281(b) 313 314: 14(int16_t) Load 200(i16) 315: 27(int) SConvert 314 316: 17(int) Bitcast 315 317: 225(ivec3) Load 227(uv) 318: 225(ivec3) CompositeConstruct 316 316 316 319: 225(ivec3) BitwiseOr 317 318 Store 227(uv) 319 320: 14(int16_t) Load 200(i16) 321: 27(int) SConvert 320 322: 27(int) Load 220(i) 323: 27(int) BitwiseOr 321 322 Store 220(i) 323 324: 14(int16_t) Load 200(i16) 325: 71(int64_t) SConvert 324 326: 71(int64_t) Load 243(i64) 327: 71(int64_t) BitwiseAnd 326 325 Store 243(i64) 327 328:193(i16vec3) Load 195(u16v) 329: 225(ivec3) UConvert 328 330: 225(ivec3) Load 227(uv) 331: 225(ivec3) BitwiseAnd 329 330 Store 227(uv) 331 332: 14(int16_t) Load 200(i16) 333: 27(int) SConvert 332 334: 17(int) Bitcast 333 335: 225(ivec3) Load 227(uv) 336: 225(ivec3) CompositeConstruct 334 334 334 337: 225(ivec3) BitwiseXor 335 336 Store 227(uv) 337 338:193(i16vec3) Load 195(u16v) 339: 14(int16_t) Load 200(i16) 340: 36(int16_t) Bitcast 339 341:193(i16vec3) CompositeConstruct 340 340 340 342:193(i16vec3) BitwiseXor 338 341 Store 195(u16v) 342 Return FunctionEnd 12(builtinFuncs(): 2 Function None 3 13: Label 343(i16v): 53(ptr) Variable Function 346(i16): 15(ptr) Variable Function 356(u16v): 194(ptr) Variable Function 358(u16): 37(ptr) Variable Function 428(i32): 219(ptr) Variable Function 431(i64): 242(ptr) Variable Function 434(i16v4): 433(ptr) Variable Function 437(u32): 296(ptr) Variable Function 438(u16v2): 58(ptr) Variable Function 442(u64): 441(ptr) Variable Function 445(u16v4): 444(ptr) Variable Function 457(bv): 456(ptr) Variable Function 344: 52(i16vec2) Load 343(i16v) 345: 52(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 344 Store 343(i16v) 345 347: 14(int16_t) Load 346(i16) 348: 14(int16_t) ExtInst 1(GLSL.std.450) 7(SSign) 347 Store 346(i16) 348 349: 52(i16vec2) Load 343(i16v) 350: 14(int16_t) Load 346(i16) 351: 52(i16vec2) CompositeConstruct 350 350 352: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 349 351 Store 343(i16v) 352 353: 52(i16vec2) Load 343(i16v) 355: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 353 354 Store 343(i16v) 355 357:193(i16vec3) Load 356(u16v) 359: 36(int16_t) Load 358(u16) 360:193(i16vec3) CompositeConstruct 359 359 359 361:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 360 Store 356(u16v) 361 362:193(i16vec3) Load 356(u16v) 364:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 362 363 Store 356(u16v) 364 365: 52(i16vec2) Load 343(i16v) 366: 14(int16_t) Load 346(i16) 367: 52(i16vec2) CompositeConstruct 366 366 368: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 365 367 Store 343(i16v) 368 369: 52(i16vec2) Load 343(i16v) 370: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 369 354 Store 343(i16v) 370 371:193(i16vec3) Load 356(u16v) 372: 36(int16_t) Load 358(u16) 373:193(i16vec3) CompositeConstruct 372 372 372 374:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 371 373 Store 356(u16v) 374 375:193(i16vec3) Load 356(u16v) 376:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 375 363 Store 356(u16v) 376 377: 52(i16vec2) Load 343(i16v) 378: 14(int16_t) Load 346(i16) 379: 14(int16_t) SNegate 378 380: 14(int16_t) Load 346(i16) 381: 52(i16vec2) CompositeConstruct 379 379 382: 52(i16vec2) CompositeConstruct 380 380 383: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 377 381 382 Store 343(i16v) 383 384: 52(i16vec2) Load 343(i16v) 385: 52(i16vec2) Load 343(i16v) 386: 52(i16vec2) SNegate 385 387: 52(i16vec2) Load 343(i16v) 388: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 384 386 387 Store 343(i16v) 388 389:193(i16vec3) Load 356(u16v) 390: 36(int16_t) Load 358(u16) 391: 36(int16_t) SNegate 390 392: 36(int16_t) Load 358(u16) 393:193(i16vec3) CompositeConstruct 391 391 391 394:193(i16vec3) CompositeConstruct 392 392 392 395:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 389 393 394 Store 356(u16v) 395 396:193(i16vec3) Load 356(u16v) 397:193(i16vec3) Load 356(u16v) 398:193(i16vec3) SNegate 397 399:193(i16vec3) Load 356(u16v) 400:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 396 398 399 Store 356(u16v) 400 401: 15(ptr) AccessChain 343(i16v) 282 402: 14(int16_t) Load 401 403: 15(ptr) AccessChain 343(i16v) 264 404: 14(int16_t) Load 403 406: 14(int16_t) Select 405 404 402 Store 346(i16) 406 407: 14(int16_t) Load 346(i16) 408: 52(i16vec2) CompositeConstruct 407 407 409: 14(int16_t) Load 346(i16) 410: 14(int16_t) SNegate 409 411: 52(i16vec2) CompositeConstruct 410 410 414: 52(i16vec2) Select 413 411 408 Store 343(i16v) 414 415: 37(ptr) AccessChain 356(u16v) 282 416: 36(int16_t) Load 415 417: 37(ptr) AccessChain 356(u16v) 264 418: 36(int16_t) Load 417 419: 36(int16_t) Select 405 418 416 Store 358(u16) 419 420: 36(int16_t) Load 358(u16) 421:193(i16vec3) CompositeConstruct 420 420 420 422: 36(int16_t) Load 358(u16) 423: 36(int16_t) SNegate 422 424:193(i16vec3) CompositeConstruct 423 423 423 427:193(i16vec3) Select 426 424 421 Store 356(u16v) 427 429: 52(i16vec2) Load 343(i16v) 430: 27(int) Bitcast 429 Store 428(i32) 430 435:432(i16vec4) Load 434(i16v4) 436: 71(int64_t) Bitcast 435 Store 431(i64) 436 439: 57(i16vec2) Load 438(u16v2) 440: 17(int) Bitcast 439 Store 437(u32) 440 446:443(i16vec4) Load 445(u16v4) 447: 77(int64_t) Bitcast 446 Store 442(u64) 447 448: 27(int) Load 428(i32) 449: 52(i16vec2) Bitcast 448 Store 343(i16v) 449 450: 71(int64_t) Load 431(i64) 451:432(i16vec4) Bitcast 450 Store 434(i16v4) 451 452: 17(int) Load 437(u32) 453: 57(i16vec2) Bitcast 452 Store 438(u16v2) 453 454: 77(int64_t) Load 442(u64) 455:443(i16vec4) Bitcast 454 Store 445(u16v4) 455 458:193(i16vec3) Load 356(u16v) 459: 36(int16_t) Load 358(u16) 460:193(i16vec3) CompositeConstruct 459 459 459 461: 425(bvec3) ULessThan 458 460 Store 457(bv) 461 462: 52(i16vec2) Load 343(i16v) 463: 14(int16_t) Load 346(i16) 464: 52(i16vec2) CompositeConstruct 463 463 465: 174(bvec2) SLessThan 462 464 466: 425(bvec3) Load 457(bv) 467: 425(bvec3) VectorShuffle 466 465 3 4 2 Store 457(bv) 467 468:193(i16vec3) Load 356(u16v) 469: 36(int16_t) Load 358(u16) 470:193(i16vec3) CompositeConstruct 469 469 469 471: 425(bvec3) ULessThanEqual 468 470 Store 457(bv) 471 472: 52(i16vec2) Load 343(i16v) 473: 14(int16_t) Load 346(i16) 474: 52(i16vec2) CompositeConstruct 473 473 475: 174(bvec2) SLessThanEqual 472 474 476: 425(bvec3) Load 457(bv) 477: 425(bvec3) VectorShuffle 476 475 3 4 2 Store 457(bv) 477 478:193(i16vec3) Load 356(u16v) 479: 36(int16_t) Load 358(u16) 480:193(i16vec3) CompositeConstruct 479 479 479 481: 425(bvec3) UGreaterThan 478 480 Store 457(bv) 481 482: 52(i16vec2) Load 343(i16v) 483: 14(int16_t) Load 346(i16) 484: 52(i16vec2) CompositeConstruct 483 483 485: 174(bvec2) SGreaterThan 482 484 486: 425(bvec3) Load 457(bv) 487: 425(bvec3) VectorShuffle 486 485 3 4 2 Store 457(bv) 487 488:193(i16vec3) Load 356(u16v) 489: 36(int16_t) Load 358(u16) 490:193(i16vec3) CompositeConstruct 489 489 489 491: 425(bvec3) UGreaterThanEqual 488 490 Store 457(bv) 491 492: 52(i16vec2) Load 343(i16v) 493: 14(int16_t) Load 346(i16) 494: 52(i16vec2) CompositeConstruct 493 493 495: 174(bvec2) SGreaterThanEqual 492 494 496: 425(bvec3) Load 457(bv) 497: 425(bvec3) VectorShuffle 496 495 3 4 2 Store 457(bv) 497 498:193(i16vec3) Load 356(u16v) 499: 36(int16_t) Load 358(u16) 500:193(i16vec3) CompositeConstruct 499 499 499 501: 425(bvec3) IEqual 498 500 Store 457(bv) 501 502: 52(i16vec2) Load 343(i16v) 503: 14(int16_t) Load 346(i16) 504: 52(i16vec2) CompositeConstruct 503 503 505: 174(bvec2) IEqual 502 504 506: 425(bvec3) Load 457(bv) 507: 425(bvec3) VectorShuffle 506 505 3 4 2 Store 457(bv) 507 508:193(i16vec3) Load 356(u16v) 509: 36(int16_t) Load 358(u16) 510:193(i16vec3) CompositeConstruct 509 509 509 511: 425(bvec3) INotEqual 508 510 Store 457(bv) 511 512: 52(i16vec2) Load 343(i16v) 513: 14(int16_t) Load 346(i16) 514: 52(i16vec2) CompositeConstruct 513 513 515: 174(bvec2) INotEqual 512 514 516: 425(bvec3) Load 457(bv) 517: 425(bvec3) VectorShuffle 516 515 3 4 2 Store 457(bv) 517 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.int32.frag.out000066400000000000000000001045241360464450000221400ustar00rootroot00000000000000spv.int32.frag // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 493 Capability Shader Capability Float16 Capability Float64 Capability Int64 Capability Int16 Capability Int8 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_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 485 "Block" MemberName 485(Block) 0 "i32" MemberName 485(Block) 1 "i32v2" MemberName 485(Block) 2 "i32v3" MemberName 485(Block) 3 "i32v4" MemberName 485(Block) 4 "u32" MemberName 485(Block) 5 "u32v2" MemberName 485(Block) 6 "u32v3" MemberName 485(Block) 7 "u32v4" Name 487 "block" Name 488 "si32" Name 489 "su32" Name 490 "si" Name 491 "su" Name 492 "sb" MemberDecorate 27(Uniforms) 0 Offset 0 Decorate 27(Uniforms) Block Decorate 29 DescriptorSet 0 Decorate 29 Binding 0 MemberDecorate 485(Block) 0 Offset 0 MemberDecorate 485(Block) 1 Offset 8 MemberDecorate 485(Block) 2 Offset 16 MemberDecorate 485(Block) 3 Offset 32 MemberDecorate 485(Block) 4 Offset 48 MemberDecorate 485(Block) 5 Offset 56 MemberDecorate 485(Block) 6 Offset 64 MemberDecorate 485(Block) 7 Offset 80 Decorate 485(Block) Block Decorate 487(block) DescriptorSet 0 Decorate 487(block) Binding 1 Decorate 488(si32) SpecId 100 Decorate 489(su32) SpecId 101 Decorate 490(si) SpecId 102 Decorate 491(su) SpecId 103 Decorate 492(sb) SpecId 104 2: TypeVoid 3: TypeFunction 2 14: TypeInt 32 0 15: TypePointer Private 14(int) 16(u32Max): 15(ptr) Variable Private 17: 14(int) Constant 4294967295 18: TypeInt 32 1 19: TypePointer Function 18(int) 21: 14(int) Constant 3 22: TypeArray 18(int) 21 23: 18(int) Constant 4008636143 24: 18(int) Constant 4294967295 25: 18(int) Constant 536870912 26: 22 ConstantComposite 23 24 25 27(Uniforms): TypeStruct 14(int) 28: TypePointer Uniform 27(Uniforms) 29: 28(ptr) Variable Uniform 30: 18(int) Constant 0 31: TypePointer Uniform 14(int) 34: TypePointer Function 22 38: TypePointer Function 14(int) 40: TypeArray 14(int) 21 41: 14(int) Constant 2147483647 42: 40 ConstantComposite 17 17 41 45: TypePointer Function 40 49: TypeVector 14(int) 2 50: TypePointer Function 49(ivec2) 52: TypeVector 18(int) 2 53: TypePointer Function 52(ivec2) 57: TypeInt 64 1 58: TypeVector 57(int64_t) 2 59: TypePointer Function 58(i64vec2) 63: TypeInt 64 0 64: TypeVector 63(int64_t) 2 65: TypePointer Function 64(i64vec2) 75: TypeFloat 32 76: TypeVector 75(float) 2 77: TypePointer Function 76(fvec2) 81: TypeFloat 64 82: TypeVector 81(float64_t) 2 83: TypePointer Function 82(f64vec2) 91: TypeInt 8 1 92: TypeVector 91(int8_t) 2 93: TypePointer Function 92(i8vec2) 98: TypeInt 8 0 99: TypeVector 98(int8_t) 2 102: TypeInt 16 1 103: TypeVector 102(int16_t) 2 104: TypePointer Function 103(i16vec2) 109: TypeInt 16 0 110: TypeVector 109(int16_t) 2 124: TypePointer Function 99(i8vec2) 131: TypePointer Function 110(i16vec2) 149: TypeFloat 16 150: TypeVector 149(float16_t) 2 151: TypePointer Function 150(f16vec2) 165: TypeBool 166: TypeVector 165(bool) 2 167: TypePointer Function 166(bvec2) 170: 18(int) Constant 1 171: 52(ivec2) ConstantComposite 30 30 172: 52(ivec2) ConstantComposite 170 170 175: 14(int) Constant 0 176: 14(int) Constant 1 177: 49(ivec2) ConstantComposite 175 175 178: 49(ivec2) ConstantComposite 176 176 184: TypeVector 14(int) 3 185: TypePointer Function 184(ivec3) 188: TypeVector 18(int) 3 226: TypePointer Function 57(int64_t) 251: 14(int) Constant 2 259: TypePointer Function 165(bool) 323: 52(ivec2) ConstantComposite 24 24 332: 184(ivec3) ConstantComposite 175 175 175 374: 165(bool) ConstantTrue 381: 165(bool) ConstantFalse 382: 166(bvec2) ConstantComposite 381 381 394: TypeVector 165(bool) 3 395: 394(bvec3) ConstantComposite 381 381 381 397: TypeVector 91(int8_t) 4 398: TypePointer Function 397(i8vec4) 405: TypeVector 98(int8_t) 4 406: TypePointer Function 405(i8vec4) 417: TypePointer Function 63(int64_t) 421: TypePointer Function 394(bvec3) 483: TypeVector 18(int) 4 484: TypeVector 14(int) 4 485(Block): TypeStruct 18(int) 52(ivec2) 188(ivec3) 483(ivec4) 14(int) 49(ivec2) 184(ivec3) 484(ivec4) 486: TypePointer Uniform 485(Block) 487(block): 486(ptr) Variable Uniform 488(si32): 18(int) SpecConstant 4294967286 489(su32): 14(int) SpecConstant 20 490(si): 18(int) SpecConstant 4294967291 491(su): 14(int) SpecConstant 4 492(sb): 165(bool) SpecConstantTrue 4(main): 2 Function None 3 5: Label Store 16(u32Max) 17 Return FunctionEnd 6(literal(): 2 Function None 3 7: Label 20(i32): 19(ptr) Variable Function 35(indexable): 34(ptr) Variable Function 39(u32): 38(ptr) Variable Function 46(indexable): 45(ptr) Variable Function 32: 31(ptr) AccessChain 29 30 33: 14(int) Load 32 Store 35(indexable) 26 36: 19(ptr) AccessChain 35(indexable) 33 37: 18(int) Load 36 Store 20(i32) 37 43: 31(ptr) AccessChain 29 30 44: 14(int) Load 43 Store 46(indexable) 42 47: 38(ptr) AccessChain 46(indexable) 44 48: 14(int) Load 47 Store 39(u32) 48 Return FunctionEnd 8(typeCast32(): 2 Function None 3 9: Label 51(u32v): 50(ptr) Variable Function 54(i32v): 53(ptr) Variable Function 60(i64v): 59(ptr) Variable Function 66(u64v): 65(ptr) Variable Function 78(f32v): 77(ptr) Variable Function 84(f64v): 83(ptr) Variable Function 94(i8v): 93(ptr) Variable Function 105(i16v): 104(ptr) Variable Function 125(u8v): 124(ptr) Variable Function 132(u16v): 131(ptr) Variable Function 152(f16v): 151(ptr) Variable Function 168(bv): 167(ptr) Variable Function 55: 52(ivec2) Load 54(i32v) 56: 49(ivec2) Bitcast 55 Store 51(u32v) 56 61: 52(ivec2) Load 54(i32v) 62: 58(i64vec2) SConvert 61 Store 60(i64v) 62 67: 52(ivec2) Load 54(i32v) 68: 58(i64vec2) SConvert 67 69: 64(i64vec2) Bitcast 68 Store 66(u64v) 69 70: 49(ivec2) Load 51(u32v) 71: 64(i64vec2) UConvert 70 72: 58(i64vec2) Bitcast 71 Store 60(i64v) 72 73: 49(ivec2) Load 51(u32v) 74: 64(i64vec2) UConvert 73 Store 66(u64v) 74 79: 52(ivec2) Load 54(i32v) 80: 76(fvec2) ConvertSToF 79 Store 78(f32v) 80 85: 52(ivec2) Load 54(i32v) 86: 82(f64vec2) ConvertSToF 85 Store 84(f64v) 86 87: 49(ivec2) Load 51(u32v) 88: 76(fvec2) ConvertUToF 87 Store 78(f32v) 88 89: 49(ivec2) Load 51(u32v) 90: 82(f64vec2) ConvertUToF 89 Store 84(f64v) 90 95: 52(ivec2) Load 54(i32v) 96: 92(i8vec2) SConvert 95 Store 94(i8v) 96 97: 49(ivec2) Load 51(u32v) 100: 99(i8vec2) UConvert 97 101: 92(i8vec2) Bitcast 100 Store 94(i8v) 101 106: 52(ivec2) Load 54(i32v) 107:103(i16vec2) SConvert 106 Store 105(i16v) 107 108: 49(ivec2) Load 51(u32v) 111:110(i16vec2) UConvert 108 112:103(i16vec2) Bitcast 111 Store 105(i16v) 112 113: 52(ivec2) Load 54(i32v) 114: 18(int) CompositeExtract 113 0 115: 18(int) CompositeExtract 113 1 116: 52(ivec2) CompositeConstruct 114 115 Store 54(i32v) 116 117: 49(ivec2) Load 51(u32v) 118: 52(ivec2) Bitcast 117 Store 54(i32v) 118 119: 52(ivec2) Load 54(i32v) 120: 58(i64vec2) SConvert 119 Store 60(i64v) 120 121: 49(ivec2) Load 51(u32v) 122: 64(i64vec2) UConvert 121 123: 58(i64vec2) Bitcast 122 Store 60(i64v) 123 126: 52(ivec2) Load 54(i32v) 127: 92(i8vec2) SConvert 126 128: 99(i8vec2) Bitcast 127 Store 125(u8v) 128 129: 49(ivec2) Load 51(u32v) 130: 99(i8vec2) UConvert 129 Store 125(u8v) 130 133: 52(ivec2) Load 54(i32v) 134:103(i16vec2) SConvert 133 135:110(i16vec2) Bitcast 134 Store 132(u16v) 135 136: 49(ivec2) Load 51(u32v) 137:110(i16vec2) UConvert 136 Store 132(u16v) 137 138: 52(ivec2) Load 54(i32v) 139: 49(ivec2) Bitcast 138 Store 51(u32v) 139 140: 49(ivec2) Load 51(u32v) 141: 14(int) CompositeExtract 140 0 142: 14(int) CompositeExtract 140 1 143: 49(ivec2) CompositeConstruct 141 142 Store 51(u32v) 143 144: 52(ivec2) Load 54(i32v) 145: 58(i64vec2) SConvert 144 146: 64(i64vec2) Bitcast 145 Store 66(u64v) 146 147: 49(ivec2) Load 51(u32v) 148: 64(i64vec2) UConvert 147 Store 66(u64v) 148 153: 52(ivec2) Load 54(i32v) 154:150(f16vec2) ConvertSToF 153 Store 152(f16v) 154 155: 52(ivec2) Load 54(i32v) 156: 76(fvec2) ConvertSToF 155 Store 78(f32v) 156 157: 52(ivec2) Load 54(i32v) 158: 82(f64vec2) ConvertSToF 157 Store 84(f64v) 158 159: 49(ivec2) Load 51(u32v) 160:150(f16vec2) ConvertUToF 159 Store 152(f16v) 160 161: 49(ivec2) Load 51(u32v) 162: 76(fvec2) ConvertUToF 161 Store 78(f32v) 162 163: 49(ivec2) Load 51(u32v) 164: 82(f64vec2) ConvertUToF 163 Store 84(f64v) 164 169: 166(bvec2) Load 168(bv) 173: 52(ivec2) Select 169 172 171 Store 54(i32v) 173 174: 166(bvec2) Load 168(bv) 179: 49(ivec2) Select 174 178 177 Store 51(u32v) 179 180: 52(ivec2) Load 54(i32v) 181: 166(bvec2) INotEqual 180 177 Store 168(bv) 181 182: 49(ivec2) Load 51(u32v) 183: 166(bvec2) INotEqual 182 177 Store 168(bv) 183 Return FunctionEnd 10(operators(): 2 Function None 3 11: Label 186(u32v): 185(ptr) Variable Function 191(i32): 19(ptr) Variable Function 210(i): 19(ptr) Variable Function 214(uv): 185(ptr) Variable Function 227(i64): 226(ptr) Variable Function 260(b): 259(ptr) Variable Function 187: 184(ivec3) Load 186(u32v) 189: 188(ivec3) CompositeConstruct 170 170 170 190: 184(ivec3) IAdd 187 189 Store 186(u32v) 190 192: 18(int) Load 191(i32) 193: 18(int) ISub 192 170 Store 191(i32) 193 194: 18(int) Load 191(i32) 195: 18(int) IAdd 194 170 Store 191(i32) 195 196: 184(ivec3) Load 186(u32v) 197: 188(ivec3) CompositeConstruct 170 170 170 198: 184(ivec3) ISub 196 197 Store 186(u32v) 198 199: 184(ivec3) Load 186(u32v) 200: 184(ivec3) Not 199 Store 186(u32v) 200 201: 18(int) Load 191(i32) Store 191(i32) 201 202: 184(ivec3) Load 186(u32v) 203: 184(ivec3) SNegate 202 Store 186(u32v) 203 204: 18(int) Load 191(i32) 205: 18(int) Load 191(i32) 206: 18(int) IAdd 205 204 Store 191(i32) 206 207: 184(ivec3) Load 186(u32v) 208: 184(ivec3) Load 186(u32v) 209: 184(ivec3) ISub 208 207 Store 186(u32v) 209 211: 18(int) Load 191(i32) 212: 18(int) Load 210(i) 213: 18(int) IMul 212 211 Store 210(i) 213 215: 184(ivec3) Load 186(u32v) 216: 184(ivec3) Load 214(uv) 217: 184(ivec3) UDiv 216 215 Store 214(uv) 217 218: 18(int) Load 191(i32) 219: 14(int) Bitcast 218 220: 184(ivec3) Load 214(uv) 221: 184(ivec3) CompositeConstruct 219 219 219 222: 184(ivec3) UMod 220 221 Store 214(uv) 222 223: 184(ivec3) Load 186(u32v) 224: 184(ivec3) Load 214(uv) 225: 184(ivec3) IAdd 223 224 Store 214(uv) 225 228: 18(int) Load 191(i32) 229: 57(int64_t) SConvert 228 230: 57(int64_t) Load 227(i64) 231: 57(int64_t) ISub 229 230 Store 227(i64) 231 232: 184(ivec3) Load 186(u32v) 233: 184(ivec3) Load 214(uv) 234: 184(ivec3) IMul 232 233 Store 214(uv) 234 235: 18(int) Load 191(i32) 236: 57(int64_t) SConvert 235 237: 57(int64_t) Load 227(i64) 238: 57(int64_t) IMul 236 237 Store 227(i64) 238 239: 18(int) Load 191(i32) 240: 18(int) Load 210(i) 241: 18(int) SMod 239 240 Store 210(i) 241 242: 18(int) Load 191(i32) 243: 184(ivec3) Load 186(u32v) 244: 188(ivec3) CompositeConstruct 242 242 242 245: 184(ivec3) ShiftLeftLogical 243 244 Store 186(u32v) 245 246: 38(ptr) AccessChain 186(u32v) 176 247: 14(int) Load 246 248: 18(int) Load 191(i32) 249: 18(int) ShiftRightArithmetic 248 247 Store 191(i32) 249 250: 57(int64_t) Load 227(i64) 252: 38(ptr) AccessChain 186(u32v) 251 253: 14(int) Load 252 254: 57(int64_t) ShiftLeftLogical 250 253 Store 227(i64) 254 255: 184(ivec3) Load 186(u32v) 256: 18(int) Load 210(i) 257: 188(ivec3) CompositeConstruct 256 256 256 258: 184(ivec3) ShiftLeftLogical 255 257 Store 214(uv) 258 261: 38(ptr) AccessChain 186(u32v) 175 262: 14(int) Load 261 263: 18(int) Load 191(i32) 264: 14(int) Bitcast 263 265: 165(bool) INotEqual 262 264 Store 260(b) 265 266: 18(int) Load 191(i32) 267: 14(int) Bitcast 266 268: 38(ptr) AccessChain 186(u32v) 175 269: 14(int) Load 268 270: 165(bool) IEqual 267 269 Store 260(b) 270 271: 38(ptr) AccessChain 186(u32v) 175 272: 14(int) Load 271 273: 38(ptr) AccessChain 214(uv) 176 274: 14(int) Load 273 275: 165(bool) UGreaterThan 272 274 Store 260(b) 275 276: 18(int) Load 191(i32) 277: 18(int) Load 210(i) 278: 165(bool) SLessThan 276 277 Store 260(b) 278 279: 38(ptr) AccessChain 186(u32v) 176 280: 14(int) Load 279 281: 38(ptr) AccessChain 214(uv) 175 282: 14(int) Load 281 283: 165(bool) UGreaterThanEqual 280 282 Store 260(b) 283 284: 18(int) Load 191(i32) 285: 18(int) Load 210(i) 286: 165(bool) SLessThanEqual 284 285 Store 260(b) 286 287: 18(int) Load 191(i32) 288: 14(int) Bitcast 287 289: 184(ivec3) Load 214(uv) 290: 184(ivec3) CompositeConstruct 288 288 288 291: 184(ivec3) BitwiseOr 289 290 Store 214(uv) 291 292: 18(int) Load 191(i32) 293: 18(int) Load 210(i) 294: 18(int) BitwiseOr 292 293 Store 210(i) 294 295: 18(int) Load 191(i32) 296: 57(int64_t) SConvert 295 297: 57(int64_t) Load 227(i64) 298: 57(int64_t) BitwiseAnd 297 296 Store 227(i64) 298 299: 184(ivec3) Load 186(u32v) 300: 184(ivec3) Load 214(uv) 301: 184(ivec3) BitwiseAnd 299 300 Store 214(uv) 301 302: 18(int) Load 191(i32) 303: 14(int) Bitcast 302 304: 184(ivec3) Load 214(uv) 305: 184(ivec3) CompositeConstruct 303 303 303 306: 184(ivec3) BitwiseXor 304 305 Store 214(uv) 306 307: 184(ivec3) Load 186(u32v) 308: 18(int) Load 191(i32) 309: 14(int) Bitcast 308 310: 184(ivec3) CompositeConstruct 309 309 309 311: 184(ivec3) BitwiseXor 307 310 Store 186(u32v) 311 Return FunctionEnd 12(builtinFuncs(): 2 Function None 3 13: Label 312(i32v): 53(ptr) Variable Function 315(i32): 19(ptr) Variable Function 325(u32v): 185(ptr) Variable Function 327(u32): 38(ptr) Variable Function 399(i8v4): 398(ptr) Variable Function 402(i16v2): 104(ptr) Variable Function 407(u8v4): 406(ptr) Variable Function 410(u16v2): 131(ptr) Variable Function 413(i64): 226(ptr) Variable Function 416(u32v2): 50(ptr) Variable Function 418(u64): 417(ptr) Variable Function 422(bv): 421(ptr) Variable Function 313: 52(ivec2) Load 312(i32v) 314: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 313 Store 312(i32v) 314 316: 18(int) Load 315(i32) 317: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 316 Store 315(i32) 317 318: 52(ivec2) Load 312(i32v) 319: 18(int) Load 315(i32) 320: 52(ivec2) CompositeConstruct 319 319 321: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 318 320 Store 312(i32v) 321 322: 52(ivec2) Load 312(i32v) 324: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 322 323 Store 312(i32v) 324 326: 184(ivec3) Load 325(u32v) 328: 14(int) Load 327(u32) 329: 184(ivec3) CompositeConstruct 328 328 328 330: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 326 329 Store 325(u32v) 330 331: 184(ivec3) Load 325(u32v) 333: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 331 332 Store 325(u32v) 333 334: 52(ivec2) Load 312(i32v) 335: 18(int) Load 315(i32) 336: 52(ivec2) CompositeConstruct 335 335 337: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 334 336 Store 312(i32v) 337 338: 52(ivec2) Load 312(i32v) 339: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 338 323 Store 312(i32v) 339 340: 184(ivec3) Load 325(u32v) 341: 14(int) Load 327(u32) 342: 184(ivec3) CompositeConstruct 341 341 341 343: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 340 342 Store 325(u32v) 343 344: 184(ivec3) Load 325(u32v) 345: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 344 332 Store 325(u32v) 345 346: 52(ivec2) Load 312(i32v) 347: 18(int) Load 315(i32) 348: 18(int) SNegate 347 349: 18(int) Load 315(i32) 350: 52(ivec2) CompositeConstruct 348 348 351: 52(ivec2) CompositeConstruct 349 349 352: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 346 350 351 Store 312(i32v) 352 353: 52(ivec2) Load 312(i32v) 354: 52(ivec2) Load 312(i32v) 355: 52(ivec2) SNegate 354 356: 52(ivec2) Load 312(i32v) 357: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 353 355 356 Store 312(i32v) 357 358: 184(ivec3) Load 325(u32v) 359: 14(int) Load 327(u32) 360: 14(int) SNegate 359 361: 14(int) Load 327(u32) 362: 184(ivec3) CompositeConstruct 360 360 360 363: 184(ivec3) CompositeConstruct 361 361 361 364: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 358 362 363 Store 325(u32v) 364 365: 184(ivec3) Load 325(u32v) 366: 184(ivec3) Load 325(u32v) 367: 184(ivec3) SNegate 366 368: 184(ivec3) Load 325(u32v) 369: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 365 367 368 Store 325(u32v) 369 370: 19(ptr) AccessChain 312(i32v) 175 371: 18(int) Load 370 372: 19(ptr) AccessChain 312(i32v) 176 373: 18(int) Load 372 375: 18(int) Select 374 373 371 Store 315(i32) 375 376: 18(int) Load 315(i32) 377: 52(ivec2) CompositeConstruct 376 376 378: 18(int) Load 315(i32) 379: 18(int) SNegate 378 380: 52(ivec2) CompositeConstruct 379 379 383: 52(ivec2) Select 382 380 377 Store 312(i32v) 383 384: 38(ptr) AccessChain 325(u32v) 175 385: 14(int) Load 384 386: 38(ptr) AccessChain 325(u32v) 176 387: 14(int) Load 386 388: 14(int) Select 374 387 385 Store 327(u32) 388 389: 14(int) Load 327(u32) 390: 184(ivec3) CompositeConstruct 389 389 389 391: 14(int) Load 327(u32) 392: 14(int) SNegate 391 393: 184(ivec3) CompositeConstruct 392 392 392 396: 184(ivec3) Select 395 393 390 Store 325(u32v) 396 400: 397(i8vec4) Load 399(i8v4) 401: 18(int) Bitcast 400 Store 315(i32) 401 403:103(i16vec2) Load 402(i16v2) 404: 18(int) Bitcast 403 Store 315(i32) 404 408: 405(i8vec4) Load 407(u8v4) 409: 14(int) Bitcast 408 Store 327(u32) 409 411:110(i16vec2) Load 410(u16v2) 412: 14(int) Bitcast 411 Store 327(u32) 412 414: 57(int64_t) Load 413(i64) 415: 52(ivec2) Bitcast 414 Store 312(i32v) 415 419: 63(int64_t) Load 418(u64) 420: 49(ivec2) Bitcast 419 Store 416(u32v2) 420 423: 184(ivec3) Load 325(u32v) 424: 14(int) Load 327(u32) 425: 184(ivec3) CompositeConstruct 424 424 424 426: 394(bvec3) ULessThan 423 425 Store 422(bv) 426 427: 52(ivec2) Load 312(i32v) 428: 18(int) Load 315(i32) 429: 52(ivec2) CompositeConstruct 428 428 430: 166(bvec2) SLessThan 427 429 431: 394(bvec3) Load 422(bv) 432: 394(bvec3) VectorShuffle 431 430 3 4 2 Store 422(bv) 432 433: 184(ivec3) Load 325(u32v) 434: 14(int) Load 327(u32) 435: 184(ivec3) CompositeConstruct 434 434 434 436: 394(bvec3) ULessThanEqual 433 435 Store 422(bv) 436 437: 52(ivec2) Load 312(i32v) 438: 18(int) Load 315(i32) 439: 52(ivec2) CompositeConstruct 438 438 440: 166(bvec2) SLessThanEqual 437 439 441: 394(bvec3) Load 422(bv) 442: 394(bvec3) VectorShuffle 441 440 3 4 2 Store 422(bv) 442 443: 184(ivec3) Load 325(u32v) 444: 14(int) Load 327(u32) 445: 184(ivec3) CompositeConstruct 444 444 444 446: 394(bvec3) UGreaterThan 443 445 Store 422(bv) 446 447: 52(ivec2) Load 312(i32v) 448: 18(int) Load 315(i32) 449: 52(ivec2) CompositeConstruct 448 448 450: 166(bvec2) SGreaterThan 447 449 451: 394(bvec3) Load 422(bv) 452: 394(bvec3) VectorShuffle 451 450 3 4 2 Store 422(bv) 452 453: 184(ivec3) Load 325(u32v) 454: 14(int) Load 327(u32) 455: 184(ivec3) CompositeConstruct 454 454 454 456: 394(bvec3) UGreaterThanEqual 453 455 Store 422(bv) 456 457: 52(ivec2) Load 312(i32v) 458: 18(int) Load 315(i32) 459: 52(ivec2) CompositeConstruct 458 458 460: 166(bvec2) SGreaterThanEqual 457 459 461: 394(bvec3) Load 422(bv) 462: 394(bvec3) VectorShuffle 461 460 3 4 2 Store 422(bv) 462 463: 184(ivec3) Load 325(u32v) 464: 14(int) Load 327(u32) 465: 184(ivec3) CompositeConstruct 464 464 464 466: 394(bvec3) IEqual 463 465 Store 422(bv) 466 467: 52(ivec2) Load 312(i32v) 468: 18(int) Load 315(i32) 469: 52(ivec2) CompositeConstruct 468 468 470: 166(bvec2) IEqual 467 469 471: 394(bvec3) Load 422(bv) 472: 394(bvec3) VectorShuffle 471 470 3 4 2 Store 422(bv) 472 473: 184(ivec3) Load 325(u32v) 474: 14(int) Load 327(u32) 475: 184(ivec3) CompositeConstruct 474 474 474 476: 394(bvec3) INotEqual 473 475 Store 422(bv) 476 477: 52(ivec2) Load 312(i32v) 478: 18(int) Load 315(i32) 479: 52(ivec2) CompositeConstruct 478 478 480: 166(bvec2) INotEqual 477 479 481: 394(bvec3) Load 422(bv) 482: 394(bvec3) VectorShuffle 481 480 3 4 2 Store 422(bv) 482 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.int64.frag.out000066400000000000000000001013261360464450000221420ustar00rootroot00000000000000spv.int64.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 489 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 392 "iv" Name 397 "uv" Name 401 "bv" Name 462 "Block" MemberName 462(Block) 0 "i64v" MemberName 462(Block) 1 "u64" Name 464 "block" Name 465 "si64" Name 466 "su64" Name 467 "si" Name 468 "su" Name 469 "sb" Name 470 "su64inc" Name 471 "i64_to_b" Name 472 "u64_to_b" Name 473 "b_to_i64" Name 474 "b_to_u64" Name 475 "i64_to_i" Name 476 "i_to_i64" Name 477 "u64_to_u" Name 478 "u_to_u64" Name 479 "u64_to_i64" Name 480 "i64_to_u64" Name 482 "u64_to_i" Name 484 "i_to_u64" Name 486 "i64_to_u" Name 488 "u_to_i64" MemberDecorate 28(Uniforms) 0 Offset 0 Decorate 28(Uniforms) Block Decorate 30 DescriptorSet 0 Decorate 30 Binding 0 MemberDecorate 462(Block) 0 Offset 0 MemberDecorate 462(Block) 1 Offset 24 Decorate 462(Block) Block Decorate 464(block) DescriptorSet 0 Decorate 464(block) Binding 1 Decorate 465(si64) SpecId 100 Decorate 466(su64) SpecId 101 Decorate 467(si) SpecId 102 Decorate 468(su) SpecId 103 Decorate 469(sb) SpecId 104 Decorate 470(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) 388: 31(int) Constant 1 389: 31(int) Constant 2 390: 74(ivec2) ConstantComposite 388 389 395: 81(ivec2) ConstantComposite 217 22 400: TypePointer Function 368(bvec3) 462(Block): TypeStruct 136(i64vec3) 14(int64_t) 463: TypePointer Uniform 462(Block) 464(block): 463(ptr) Variable Uniform 465(si64): 18(int64_t) SpecConstant 4294967286 4294967295 466(su64): 14(int64_t) SpecConstant 20 0 467(si): 31(int) SpecConstant 4294967291 468(su): 21(int) SpecConstant 4 469(sb): 55(bool) SpecConstantTrue 470(su64inc): 14(int64_t) SpecConstantOp 128 466(su64) 70 471(i64_to_b): 55(bool) SpecConstantOp 171 465(si64) 69 472(u64_to_b): 55(bool) SpecConstantOp 171 466(su64) 69 473(b_to_i64): 18(int64_t) SpecConstantOp 169 469(sb) 61 60 474(b_to_u64): 14(int64_t) SpecConstantOp 169 469(sb) 70 69 475(i64_to_i): 31(int) SpecConstantOp 114 465(si64) 476(i_to_i64): 18(int64_t) SpecConstantOp 114 467(si) 477(u64_to_u): 21(int) SpecConstantOp 113 466(su64) 478(u_to_u64): 14(int64_t) SpecConstantOp 113 468(su) 479(u64_to_i64): 18(int64_t) SpecConstantOp 128 466(su64) 69 480(i64_to_u64): 14(int64_t) SpecConstantOp 128 465(si64) 69 481: 21(int) SpecConstantOp 113 466(su64) 482(u64_to_i): 31(int) SpecConstantOp 128 481 227 483: 18(int64_t) SpecConstantOp 114 467(si) 484(i_to_u64): 14(int64_t) SpecConstantOp 128 483 69 485: 31(int) SpecConstantOp 114 465(si64) 486(i64_to_u): 21(int) SpecConstantOp 128 485 227 487: 14(int64_t) SpecConstantOp 113 468(su) 488(u_to_i64): 18(int64_t) SpecConstantOp 128 487 69 4(main): 2 Function None 3 5: Label Store 16(u64Max) 17 Return FunctionEnd 6(literal(): 2 Function None 3 7: Label 20(i64): 19(ptr) Variable Function 37(indexable): 36(ptr) Variable Function 41(u64): 40(ptr) Variable Function 49(indexable): 48(ptr) Variable Function 34: 33(ptr) AccessChain 30 32 35: 21(int) Load 34 Store 37(indexable) 27 38: 19(ptr) AccessChain 37(indexable) 35 39: 18(int64_t) Load 38 Store 20(i64) 39 46: 33(ptr) AccessChain 30 32 47: 21(int) Load 46 Store 49(indexable) 45 50: 40(ptr) AccessChain 49(indexable) 47 51: 14(int64_t) Load 50 Store 41(u64) 51 Return FunctionEnd 8(typeCast(): 2 Function None 3 9: Label 54(i64v): 53(ptr) Variable Function 58(bv): 57(ptr) Variable Function 67(u64v): 66(ptr) Variable Function 76(iv): 75(ptr) Variable Function 83(uv): 82(ptr) Variable Function 91(fv): 90(ptr) Variable Function 97(dv): 96(ptr) Variable Function 59: 56(bvec2) Load 58(bv) 64: 52(i64vec2) Select 59 63 62 Store 54(i64v) 64 68: 56(bvec2) Load 58(bv) 73: 65(i64vec2) Select 68 72 71 Store 67(u64v) 73 77: 74(ivec2) Load 76(iv) 78: 52(i64vec2) SConvert 77 Store 54(i64v) 78 79: 52(i64vec2) Load 54(i64v) 80: 74(ivec2) SConvert 79 Store 76(iv) 80 84: 81(ivec2) Load 83(uv) 85: 65(i64vec2) UConvert 84 Store 67(u64v) 85 86: 65(i64vec2) Load 67(u64v) 87: 81(ivec2) UConvert 86 Store 83(uv) 87 92: 52(i64vec2) Load 54(i64v) 93: 89(fvec2) ConvertSToF 92 Store 91(fv) 93 98: 52(i64vec2) Load 54(i64v) 99: 95(f64vec2) ConvertSToF 98 Store 97(dv) 99 100: 65(i64vec2) Load 67(u64v) 101: 89(fvec2) ConvertUToF 100 Store 91(fv) 101 102: 65(i64vec2) Load 67(u64v) 103: 95(f64vec2) ConvertUToF 102 Store 97(dv) 103 104: 89(fvec2) Load 91(fv) 105: 52(i64vec2) ConvertFToS 104 Store 54(i64v) 105 106: 95(f64vec2) Load 97(dv) 107: 52(i64vec2) ConvertFToS 106 Store 54(i64v) 107 108: 89(fvec2) Load 91(fv) 109: 65(i64vec2) ConvertFToU 108 Store 67(u64v) 109 110: 95(f64vec2) Load 97(dv) 111: 65(i64vec2) ConvertFToU 110 Store 67(u64v) 111 112: 52(i64vec2) Load 54(i64v) 113: 56(bvec2) INotEqual 112 71 Store 58(bv) 113 114: 65(i64vec2) Load 67(u64v) 115: 56(bvec2) INotEqual 114 71 Store 58(bv) 115 116: 52(i64vec2) Load 54(i64v) 117: 65(i64vec2) Bitcast 116 Store 67(u64v) 117 118: 65(i64vec2) Load 67(u64v) 119: 52(i64vec2) Bitcast 118 Store 54(i64v) 119 120: 52(i64vec2) Load 54(i64v) 121: 74(ivec2) SConvert 120 122: 81(ivec2) Bitcast 121 Store 83(uv) 122 123: 81(ivec2) Load 83(uv) 124: 65(i64vec2) UConvert 123 125: 52(i64vec2) Bitcast 124 Store 54(i64v) 125 126: 65(i64vec2) Load 67(u64v) 127: 81(ivec2) UConvert 126 128: 74(ivec2) Bitcast 127 Store 76(iv) 128 129: 74(ivec2) Load 76(iv) 130: 52(i64vec2) SConvert 129 131: 65(i64vec2) Bitcast 130 Store 67(u64v) 131 Return FunctionEnd 10(operators(): 2 Function None 3 11: Label 134(u64v): 133(ptr) Variable Function 139(i64): 19(ptr) Variable Function 159(i): 158(ptr) Variable Function 166(uv): 165(ptr) Variable Function 226(b): 225(ptr) Variable Function 135:132(i64vec3) Load 134(u64v) 137:136(i64vec3) CompositeConstruct 61 61 61 138:132(i64vec3) IAdd 135 137 Store 134(u64v) 138 140: 18(int64_t) Load 139(i64) 141: 18(int64_t) ISub 140 61 Store 139(i64) 141 142: 18(int64_t) Load 139(i64) 143: 18(int64_t) IAdd 142 61 Store 139(i64) 143 144:132(i64vec3) Load 134(u64v) 145:136(i64vec3) CompositeConstruct 61 61 61 146:132(i64vec3) ISub 144 145 Store 134(u64v) 146 147:132(i64vec3) Load 134(u64v) 148:132(i64vec3) Not 147 Store 134(u64v) 148 149: 18(int64_t) Load 139(i64) Store 139(i64) 149 150:132(i64vec3) Load 134(u64v) 151:132(i64vec3) SNegate 150 Store 134(u64v) 151 152: 18(int64_t) Load 139(i64) 153: 18(int64_t) Load 139(i64) 154: 18(int64_t) IAdd 153 152 Store 139(i64) 154 155:132(i64vec3) Load 134(u64v) 156:132(i64vec3) Load 134(u64v) 157:132(i64vec3) ISub 156 155 Store 134(u64v) 157 160: 31(int) Load 159(i) 161: 18(int64_t) SConvert 160 162: 18(int64_t) Load 139(i64) 163: 18(int64_t) IMul 162 161 Store 139(i64) 163 167: 164(ivec3) Load 166(uv) 168:132(i64vec3) UConvert 167 169:132(i64vec3) Load 134(u64v) 170:132(i64vec3) UDiv 169 168 Store 134(u64v) 170 171: 31(int) Load 159(i) 172: 18(int64_t) SConvert 171 173: 14(int64_t) Bitcast 172 174:132(i64vec3) Load 134(u64v) 175:132(i64vec3) CompositeConstruct 173 173 173 176:132(i64vec3) UMod 174 175 Store 134(u64v) 176 177:132(i64vec3) Load 134(u64v) 178: 164(ivec3) Load 166(uv) 179:132(i64vec3) UConvert 178 180:132(i64vec3) IAdd 177 179 Store 134(u64v) 180 181: 18(int64_t) Load 139(i64) 182: 31(int) Load 159(i) 183: 18(int64_t) SConvert 182 184: 18(int64_t) ISub 181 183 Store 139(i64) 184 185:132(i64vec3) Load 134(u64v) 186: 164(ivec3) Load 166(uv) 187:132(i64vec3) UConvert 186 188:132(i64vec3) IMul 185 187 Store 134(u64v) 188 189: 18(int64_t) Load 139(i64) 190: 31(int) Load 159(i) 191: 18(int64_t) SConvert 190 192: 18(int64_t) IMul 189 191 Store 139(i64) 192 193: 18(int64_t) Load 139(i64) 194: 31(int) Load 159(i) 195: 18(int64_t) SConvert 194 196: 18(int64_t) SMod 193 195 Store 139(i64) 196 197:132(i64vec3) Load 134(u64v) 198: 31(int) Load 159(i) 200: 199(ivec3) CompositeConstruct 198 198 198 201:132(i64vec3) ShiftLeftLogical 197 200 Store 134(u64v) 201 202: 18(int64_t) Load 139(i64) 205: 204(ptr) AccessChain 166(uv) 203 206: 21(int) Load 205 207: 18(int64_t) ShiftRightArithmetic 202 206 Store 139(i64) 207 208: 31(int) Load 159(i) 209:132(i64vec3) Load 134(u64v) 210: 199(ivec3) CompositeConstruct 208 208 208 211:132(i64vec3) ShiftLeftLogical 209 210 Store 134(u64v) 211 212: 204(ptr) AccessChain 166(uv) 203 213: 21(int) Load 212 214: 18(int64_t) Load 139(i64) 215: 18(int64_t) ShiftRightArithmetic 214 213 Store 139(i64) 215 216: 18(int64_t) Load 139(i64) 218: 40(ptr) AccessChain 134(u64v) 217 219: 14(int64_t) Load 218 220: 18(int64_t) ShiftLeftLogical 216 219 Store 139(i64) 220 221:132(i64vec3) Load 134(u64v) 222: 18(int64_t) Load 139(i64) 223:136(i64vec3) CompositeConstruct 222 222 222 224:132(i64vec3) ShiftLeftLogical 221 223 Store 134(u64v) 224 228: 40(ptr) AccessChain 134(u64v) 227 229: 14(int64_t) Load 228 230: 18(int64_t) Load 139(i64) 231: 14(int64_t) Bitcast 230 232: 55(bool) INotEqual 229 231 Store 226(b) 232 233: 18(int64_t) Load 139(i64) 234: 14(int64_t) Bitcast 233 235: 40(ptr) AccessChain 134(u64v) 227 236: 14(int64_t) Load 235 237: 55(bool) IEqual 234 236 Store 226(b) 237 238: 40(ptr) AccessChain 134(u64v) 227 239: 14(int64_t) Load 238 240: 204(ptr) AccessChain 166(uv) 203 241: 21(int) Load 240 242: 14(int64_t) UConvert 241 243: 55(bool) UGreaterThan 239 242 Store 226(b) 243 244: 18(int64_t) Load 139(i64) 245: 31(int) Load 159(i) 246: 18(int64_t) SConvert 245 247: 55(bool) SLessThan 244 246 Store 226(b) 247 248: 40(ptr) AccessChain 134(u64v) 203 249: 14(int64_t) Load 248 250: 204(ptr) AccessChain 166(uv) 227 251: 21(int) Load 250 252: 14(int64_t) UConvert 251 253: 55(bool) UGreaterThanEqual 249 252 Store 226(b) 253 254: 18(int64_t) Load 139(i64) 255: 31(int) Load 159(i) 256: 18(int64_t) SConvert 255 257: 55(bool) SLessThanEqual 254 256 Store 226(b) 257 258: 31(int) Load 159(i) 259: 18(int64_t) SConvert 258 260: 14(int64_t) Bitcast 259 261:132(i64vec3) Load 134(u64v) 262:132(i64vec3) CompositeConstruct 260 260 260 263:132(i64vec3) BitwiseOr 261 262 Store 134(u64v) 263 264: 18(int64_t) Load 139(i64) 265: 31(int) Load 159(i) 266: 18(int64_t) SConvert 265 267: 18(int64_t) BitwiseOr 264 266 Store 139(i64) 267 268: 31(int) Load 159(i) 269: 18(int64_t) SConvert 268 270: 18(int64_t) Load 139(i64) 271: 18(int64_t) BitwiseAnd 270 269 Store 139(i64) 271 272:132(i64vec3) Load 134(u64v) 273: 164(ivec3) Load 166(uv) 274:132(i64vec3) UConvert 273 275:132(i64vec3) BitwiseAnd 272 274 Store 134(u64v) 275 276: 18(int64_t) Load 139(i64) 277: 14(int64_t) Bitcast 276 278:132(i64vec3) Load 134(u64v) 279:132(i64vec3) CompositeConstruct 277 277 277 280:132(i64vec3) BitwiseXor 278 279 Store 134(u64v) 280 281:132(i64vec3) Load 134(u64v) 282: 18(int64_t) Load 139(i64) 283: 14(int64_t) Bitcast 282 284:132(i64vec3) CompositeConstruct 283 283 283 285:132(i64vec3) BitwiseXor 281 284 Store 134(u64v) 285 Return FunctionEnd 12(builtinFuncs(): 2 Function None 3 13: Label 286(i64v): 53(ptr) Variable Function 289(i64): 19(ptr) Variable Function 299(u64v): 133(ptr) Variable Function 301(u64): 40(ptr) Variable Function 373(dv): 372(ptr) Variable Function 392(iv): 75(ptr) Variable Function 397(uv): 82(ptr) Variable Function 401(bv): 400(ptr) Variable Function 287: 52(i64vec2) Load 286(i64v) 288: 52(i64vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 287 Store 286(i64v) 288 290: 18(int64_t) Load 289(i64) 291: 18(int64_t) ExtInst 1(GLSL.std.450) 7(SSign) 290 Store 289(i64) 291 292: 52(i64vec2) Load 286(i64v) 293: 18(int64_t) Load 289(i64) 294: 52(i64vec2) CompositeConstruct 293 293 295: 52(i64vec2) ExtInst 1(GLSL.std.450) 39(SMin) 292 294 Store 286(i64v) 295 296: 52(i64vec2) Load 286(i64v) 298: 52(i64vec2) ExtInst 1(GLSL.std.450) 39(SMin) 296 297 Store 286(i64v) 298 300:132(i64vec3) Load 299(u64v) 302: 14(int64_t) Load 301(u64) 303:132(i64vec3) CompositeConstruct 302 302 302 304:132(i64vec3) ExtInst 1(GLSL.std.450) 38(UMin) 300 303 Store 299(u64v) 304 305:132(i64vec3) Load 299(u64v) 307:132(i64vec3) ExtInst 1(GLSL.std.450) 38(UMin) 305 306 Store 299(u64v) 307 308: 52(i64vec2) Load 286(i64v) 309: 18(int64_t) Load 289(i64) 310: 52(i64vec2) CompositeConstruct 309 309 311: 52(i64vec2) ExtInst 1(GLSL.std.450) 42(SMax) 308 310 Store 286(i64v) 311 312: 52(i64vec2) Load 286(i64v) 313: 52(i64vec2) ExtInst 1(GLSL.std.450) 42(SMax) 312 297 Store 286(i64v) 313 314:132(i64vec3) Load 299(u64v) 315: 14(int64_t) Load 301(u64) 316:132(i64vec3) CompositeConstruct 315 315 315 317:132(i64vec3) ExtInst 1(GLSL.std.450) 41(UMax) 314 316 Store 299(u64v) 317 318:132(i64vec3) Load 299(u64v) 319:132(i64vec3) ExtInst 1(GLSL.std.450) 41(UMax) 318 306 Store 299(u64v) 319 320: 52(i64vec2) Load 286(i64v) 321: 18(int64_t) Load 289(i64) 322: 18(int64_t) SNegate 321 323: 18(int64_t) Load 289(i64) 324: 52(i64vec2) CompositeConstruct 322 322 325: 52(i64vec2) CompositeConstruct 323 323 326: 52(i64vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 320 324 325 Store 286(i64v) 326 327: 52(i64vec2) Load 286(i64v) 328: 52(i64vec2) Load 286(i64v) 329: 52(i64vec2) SNegate 328 330: 52(i64vec2) Load 286(i64v) 331: 52(i64vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 327 329 330 Store 286(i64v) 331 332:132(i64vec3) Load 299(u64v) 333: 14(int64_t) Load 301(u64) 334: 14(int64_t) SNegate 333 335: 14(int64_t) Load 301(u64) 336:132(i64vec3) CompositeConstruct 334 334 334 337:132(i64vec3) CompositeConstruct 335 335 335 338:132(i64vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 332 336 337 Store 299(u64v) 338 339:132(i64vec3) Load 299(u64v) 340:132(i64vec3) Load 299(u64v) 341:132(i64vec3) SNegate 340 342:132(i64vec3) Load 299(u64v) 343:132(i64vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 339 341 342 Store 299(u64v) 343 344: 19(ptr) AccessChain 286(i64v) 227 345: 18(int64_t) Load 344 346: 19(ptr) AccessChain 286(i64v) 203 347: 18(int64_t) Load 346 349: 18(int64_t) Select 348 347 345 Store 289(i64) 349 350: 18(int64_t) Load 289(i64) 351: 52(i64vec2) CompositeConstruct 350 350 352: 18(int64_t) Load 289(i64) 353: 18(int64_t) SNegate 352 354: 52(i64vec2) CompositeConstruct 353 353 357: 52(i64vec2) Select 356 354 351 Store 286(i64v) 357 358: 40(ptr) AccessChain 299(u64v) 227 359: 14(int64_t) Load 358 360: 40(ptr) AccessChain 299(u64v) 203 361: 14(int64_t) Load 360 362: 14(int64_t) Select 348 361 359 Store 301(u64) 362 363: 14(int64_t) Load 301(u64) 364:132(i64vec3) CompositeConstruct 363 363 363 365: 14(int64_t) Load 301(u64) 366: 14(int64_t) SNegate 365 367:132(i64vec3) CompositeConstruct 366 366 366 370:132(i64vec3) Select 369 367 364 Store 299(u64v) 370 374:371(f64vec3) Load 373(dv) 375: 95(f64vec2) VectorShuffle 374 374 0 1 376: 52(i64vec2) Bitcast 375 Store 286(i64v) 376 378: 377(ptr) AccessChain 373(dv) 217 379:94(float64_t) Load 378 380: 14(int64_t) Bitcast 379 381: 40(ptr) AccessChain 299(u64v) 227 Store 381 380 382: 52(i64vec2) Load 286(i64v) 383: 95(f64vec2) Bitcast 382 384:371(f64vec3) Load 373(dv) 385:371(f64vec3) VectorShuffle 384 383 3 4 2 Store 373(dv) 385 386:132(i64vec3) Load 299(u64v) 387:371(f64vec3) Bitcast 386 Store 373(dv) 387 391: 18(int64_t) Bitcast 390 Store 289(i64) 391 393: 18(int64_t) Load 289(i64) 394: 74(ivec2) Bitcast 393 Store 392(iv) 394 396: 14(int64_t) Bitcast 395 Store 301(u64) 396 398: 14(int64_t) Load 301(u64) 399: 81(ivec2) Bitcast 398 Store 397(uv) 399 402:132(i64vec3) Load 299(u64v) 403: 14(int64_t) Load 301(u64) 404:132(i64vec3) CompositeConstruct 403 403 403 405: 368(bvec3) ULessThan 402 404 Store 401(bv) 405 406: 52(i64vec2) Load 286(i64v) 407: 18(int64_t) Load 289(i64) 408: 52(i64vec2) CompositeConstruct 407 407 409: 56(bvec2) SLessThan 406 408 410: 368(bvec3) Load 401(bv) 411: 368(bvec3) VectorShuffle 410 409 3 4 2 Store 401(bv) 411 412:132(i64vec3) Load 299(u64v) 413: 14(int64_t) Load 301(u64) 414:132(i64vec3) CompositeConstruct 413 413 413 415: 368(bvec3) ULessThanEqual 412 414 Store 401(bv) 415 416: 52(i64vec2) Load 286(i64v) 417: 18(int64_t) Load 289(i64) 418: 52(i64vec2) CompositeConstruct 417 417 419: 56(bvec2) SLessThanEqual 416 418 420: 368(bvec3) Load 401(bv) 421: 368(bvec3) VectorShuffle 420 419 3 4 2 Store 401(bv) 421 422:132(i64vec3) Load 299(u64v) 423: 14(int64_t) Load 301(u64) 424:132(i64vec3) CompositeConstruct 423 423 423 425: 368(bvec3) UGreaterThan 422 424 Store 401(bv) 425 426: 52(i64vec2) Load 286(i64v) 427: 18(int64_t) Load 289(i64) 428: 52(i64vec2) CompositeConstruct 427 427 429: 56(bvec2) SGreaterThan 426 428 430: 368(bvec3) Load 401(bv) 431: 368(bvec3) VectorShuffle 430 429 3 4 2 Store 401(bv) 431 432:132(i64vec3) Load 299(u64v) 433: 14(int64_t) Load 301(u64) 434:132(i64vec3) CompositeConstruct 433 433 433 435: 368(bvec3) UGreaterThanEqual 432 434 Store 401(bv) 435 436: 52(i64vec2) Load 286(i64v) 437: 18(int64_t) Load 289(i64) 438: 52(i64vec2) CompositeConstruct 437 437 439: 56(bvec2) SGreaterThanEqual 436 438 440: 368(bvec3) Load 401(bv) 441: 368(bvec3) VectorShuffle 440 439 3 4 2 Store 401(bv) 441 442:132(i64vec3) Load 299(u64v) 443: 14(int64_t) Load 301(u64) 444:132(i64vec3) CompositeConstruct 443 443 443 445: 368(bvec3) IEqual 442 444 Store 401(bv) 445 446: 52(i64vec2) Load 286(i64v) 447: 18(int64_t) Load 289(i64) 448: 52(i64vec2) CompositeConstruct 447 447 449: 56(bvec2) IEqual 446 448 450: 368(bvec3) Load 401(bv) 451: 368(bvec3) VectorShuffle 450 449 3 4 2 Store 401(bv) 451 452:132(i64vec3) Load 299(u64v) 453: 14(int64_t) Load 301(u64) 454:132(i64vec3) CompositeConstruct 453 453 453 455: 368(bvec3) INotEqual 452 454 Store 401(bv) 455 456: 52(i64vec2) Load 286(i64v) 457: 18(int64_t) Load 289(i64) 458: 52(i64vec2) CompositeConstruct 457 457 459: 56(bvec2) INotEqual 456 458 460: 368(bvec3) Load 401(bv) 461: 368(bvec3) VectorShuffle 460 459 3 4 2 Store 401(bv) 461 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.int8.frag.out000066400000000000000000001062551360464450000220660ustar00rootroot00000000000000spv.int8.frag // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 518 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 192 "u8v" Name 197 "i8" Name 217 "i" Name 224 "uv" Name 240 "i16" Name 276 "b" Name 338 "i8v" Name 341 "i8" Name 351 "u8v" Name 353 "u8" Name 423 "i16" Name 426 "i32" Name 429 "i8v4" Name 433 "u16" Name 434 "u8v2" Name 437 "u32" Name 440 "u8v4" Name 452 "bv" Name 513 "Block" MemberName 513(Block) 0 "i8" MemberName 513(Block) 1 "i8v2" MemberName 513(Block) 2 "i8v3" MemberName 513(Block) 3 "i8v4" MemberName 513(Block) 4 "u8" MemberName 513(Block) 5 "u8v2" MemberName 513(Block) 6 "u8v3" MemberName 513(Block) 7 "u8v4" Name 515 "block" Name 516 "si8" Name 517 "su8" MemberDecorate 24(Uniforms) 0 Offset 0 Decorate 24(Uniforms) Block Decorate 26 DescriptorSet 0 Decorate 26 Binding 0 MemberDecorate 513(Block) 0 Offset 0 MemberDecorate 513(Block) 1 Offset 2 MemberDecorate 513(Block) 2 Offset 4 MemberDecorate 513(Block) 3 Offset 8 MemberDecorate 513(Block) 4 Offset 12 MemberDecorate 513(Block) 5 Offset 14 MemberDecorate 513(Block) 6 Offset 16 MemberDecorate 513(Block) 7 Offset 20 Decorate 513(Block) Block Decorate 515(block) DescriptorSet 0 Decorate 515(block) Binding 1 Decorate 516(si8) SpecId 100 Decorate 517(su8) SpecId 101 2: TypeVoid 3: TypeFunction 2 14: TypeInt 8 1 15: TypePointer Function 14(int8_t) 17: TypeInt 32 0 18: 17(int) Constant 3 19: TypeArray 14(int8_t) 18 20: 14(int8_t) Constant 4294967279 21: 14(int8_t) Constant 4294967295 22: 14(int8_t) Constant 0 23: 19 ConstantComposite 20 21 22 24(Uniforms): TypeStruct 17(int) 25: TypePointer Uniform 24(Uniforms) 26: 25(ptr) Variable Uniform 27: TypeInt 32 1 28: 27(int) Constant 0 29: TypePointer Uniform 17(int) 32: TypePointer Function 19 36: TypeInt 8 0 37: TypePointer Function 36(int8_t) 39: TypeArray 36(int8_t) 18 40: 36(int8_t) Constant 255 41: 36(int8_t) Constant 127 42: 39 ConstantComposite 40 40 41 45: TypePointer Function 39 49: TypeVector 36(int8_t) 2 50: TypePointer Function 49(i8vec2) 52: TypeVector 14(int8_t) 2 53: TypePointer Function 52(i8vec2) 57: TypeInt 16 1 58: TypeVector 57(int16_t) 2 59: TypePointer Function 58(i16vec2) 64: TypeInt 16 0 65: TypeVector 64(int16_t) 2 68: TypeVector 27(int) 2 69: TypePointer Function 68(ivec2) 74: TypeVector 17(int) 2 77: TypePointer Function 74(ivec2) 82: TypeInt 64 1 83: TypeVector 82(int64_t) 2 84: TypePointer Function 83(i64vec2) 88: TypeInt 64 0 89: TypeVector 88(int64_t) 2 90: TypePointer Function 89(i64vec2) 102: TypeFloat 16 103: TypeVector 102(float16_t) 2 104: TypePointer Function 103(f16vec2) 108: TypeFloat 32 109: TypeVector 108(float) 2 110: TypePointer Function 109(fvec2) 114: TypeFloat 64 115: TypeVector 114(float64_t) 2 116: TypePointer Function 115(f64vec2) 143: TypePointer Function 65(i16vec2) 171: TypeBool 172: TypeVector 171(bool) 2 173: TypePointer Function 172(bvec2) 176: 14(int8_t) Constant 1 177: 52(i8vec2) ConstantComposite 22 22 178: 52(i8vec2) ConstantComposite 176 176 181: 36(int8_t) Constant 0 182: 36(int8_t) Constant 1 183: 49(i8vec2) ConstantComposite 181 181 184: 49(i8vec2) ConstantComposite 182 182 190: TypeVector 36(int8_t) 3 191: TypePointer Function 190(i8vec3) 194: TypeVector 14(int8_t) 3 216: TypePointer Function 27(int) 222: TypeVector 17(int) 3 223: TypePointer Function 222(ivec3) 239: TypePointer Function 57(int16_t) 261: 17(int) Constant 1 267: 17(int) Constant 2 275: TypePointer Function 171(bool) 277: 17(int) Constant 0 291: TypePointer Function 17(int) 349: 52(i8vec2) ConstantComposite 21 21 358: 190(i8vec3) ConstantComposite 181 181 181 400: 171(bool) ConstantTrue 407: 171(bool) ConstantFalse 408: 172(bvec2) ConstantComposite 407 407 420: TypeVector 171(bool) 3 421: 420(bvec3) ConstantComposite 407 407 407 427: TypeVector 14(int8_t) 4 428: TypePointer Function 427(i8vec4) 432: TypePointer Function 64(int16_t) 438: TypeVector 36(int8_t) 4 439: TypePointer Function 438(i8vec4) 451: TypePointer Function 420(bvec3) 513(Block): TypeStruct 14(int8_t) 52(i8vec2) 194(i8vec3) 427(i8vec4) 36(int8_t) 49(i8vec2) 190(i8vec3) 438(i8vec4) 514: TypePointer Uniform 513(Block) 515(block): 514(ptr) Variable Uniform 516(si8): 14(int8_t) SpecConstant 4294967286 517(su8): 36(int8_t) SpecConstant 20 4(main): 2 Function None 3 5: Label Return FunctionEnd 6(literal(): 2 Function None 3 7: Label 16(i8): 15(ptr) Variable Function 33(indexable): 32(ptr) Variable Function 38(u8): 37(ptr) Variable Function 46(indexable): 45(ptr) Variable Function 30: 29(ptr) AccessChain 26 28 31: 17(int) Load 30 Store 33(indexable) 23 34: 15(ptr) AccessChain 33(indexable) 31 35: 14(int8_t) Load 34 Store 16(i8) 35 43: 29(ptr) AccessChain 26 28 44: 17(int) Load 43 Store 46(indexable) 42 47: 37(ptr) AccessChain 46(indexable) 44 48: 36(int8_t) Load 47 Store 38(u8) 48 Return FunctionEnd 8(typeCast8(): 2 Function None 3 9: Label 51(u8v): 50(ptr) Variable Function 54(i8v): 53(ptr) Variable Function 60(i16v): 59(ptr) Variable Function 70(i32v): 69(ptr) Variable Function 78(u32v): 77(ptr) Variable Function 85(i64v): 84(ptr) Variable Function 91(u64v): 90(ptr) Variable Function 105(f16v): 104(ptr) Variable Function 111(f32v): 110(ptr) Variable Function 117(f64v): 116(ptr) Variable Function 144(u16v): 143(ptr) Variable Function 174(bv): 173(ptr) Variable Function 55: 52(i8vec2) Load 54(i8v) 56: 49(i8vec2) Bitcast 55 Store 51(u8v) 56 61: 52(i8vec2) Load 54(i8v) 62: 58(i16vec2) SConvert 61 Store 60(i16v) 62 63: 49(i8vec2) Load 51(u8v) 66: 65(i16vec2) UConvert 63 67: 58(i16vec2) Bitcast 66 Store 60(i16v) 67 71: 52(i8vec2) Load 54(i8v) 72: 68(ivec2) SConvert 71 Store 70(i32v) 72 73: 49(i8vec2) Load 51(u8v) 75: 74(ivec2) UConvert 73 76: 68(ivec2) Bitcast 75 Store 70(i32v) 76 79: 52(i8vec2) Load 54(i8v) 80: 68(ivec2) SConvert 79 81: 74(ivec2) Bitcast 80 Store 78(u32v) 81 86: 52(i8vec2) Load 54(i8v) 87: 83(i64vec2) SConvert 86 Store 85(i64v) 87 92: 52(i8vec2) Load 54(i8v) 93: 83(i64vec2) SConvert 92 94: 89(i64vec2) Bitcast 93 Store 91(u64v) 94 95: 49(i8vec2) Load 51(u8v) 96: 74(ivec2) UConvert 95 Store 78(u32v) 96 97: 49(i8vec2) Load 51(u8v) 98: 89(i64vec2) UConvert 97 99: 83(i64vec2) Bitcast 98 Store 85(i64v) 99 100: 49(i8vec2) Load 51(u8v) 101: 89(i64vec2) UConvert 100 Store 91(u64v) 101 106: 52(i8vec2) Load 54(i8v) 107:103(f16vec2) ConvertSToF 106 Store 105(f16v) 107 112: 52(i8vec2) Load 54(i8v) 113: 109(fvec2) ConvertSToF 112 Store 111(f32v) 113 118: 52(i8vec2) Load 54(i8v) 119:115(f64vec2) ConvertSToF 118 Store 117(f64v) 119 120: 49(i8vec2) Load 51(u8v) 121:103(f16vec2) ConvertUToF 120 Store 105(f16v) 121 122: 49(i8vec2) Load 51(u8v) 123: 109(fvec2) ConvertUToF 122 Store 111(f32v) 123 124: 49(i8vec2) Load 51(u8v) 125:115(f64vec2) ConvertUToF 124 Store 117(f64v) 125 126: 49(i8vec2) Load 51(u8v) 127: 52(i8vec2) Bitcast 126 Store 54(i8v) 127 128: 52(i8vec2) Load 54(i8v) 129: 58(i16vec2) SConvert 128 Store 60(i16v) 129 130: 49(i8vec2) Load 51(u8v) 131: 65(i16vec2) UConvert 130 132: 58(i16vec2) Bitcast 131 Store 60(i16v) 132 133: 52(i8vec2) Load 54(i8v) 134: 68(ivec2) SConvert 133 Store 70(i32v) 134 135: 49(i8vec2) Load 51(u8v) 136: 74(ivec2) UConvert 135 137: 68(ivec2) Bitcast 136 Store 70(i32v) 137 138: 52(i8vec2) Load 54(i8v) 139: 83(i64vec2) SConvert 138 Store 85(i64v) 139 140: 52(i8vec2) Load 54(i8v) 141: 83(i64vec2) SConvert 140 142: 89(i64vec2) Bitcast 141 Store 91(u64v) 142 145: 52(i8vec2) Load 54(i8v) 146: 58(i16vec2) SConvert 145 147: 65(i16vec2) Bitcast 146 Store 144(u16v) 147 148: 49(i8vec2) Load 51(u8v) 149: 65(i16vec2) UConvert 148 Store 144(u16v) 149 150: 49(i8vec2) Load 51(u8v) 151: 74(ivec2) UConvert 150 Store 78(u32v) 151 152: 49(i8vec2) Load 51(u8v) 153: 89(i64vec2) UConvert 152 154: 83(i64vec2) Bitcast 153 Store 85(i64v) 154 155: 49(i8vec2) Load 51(u8v) 156: 89(i64vec2) UConvert 155 157: 83(i64vec2) Bitcast 156 158: 89(i64vec2) Bitcast 157 Store 91(u64v) 158 159: 52(i8vec2) Load 54(i8v) 160:103(f16vec2) ConvertSToF 159 Store 105(f16v) 160 161: 52(i8vec2) Load 54(i8v) 162: 109(fvec2) ConvertSToF 161 Store 111(f32v) 162 163: 52(i8vec2) Load 54(i8v) 164:115(f64vec2) ConvertSToF 163 Store 117(f64v) 164 165: 49(i8vec2) Load 51(u8v) 166:103(f16vec2) ConvertUToF 165 Store 105(f16v) 166 167: 49(i8vec2) Load 51(u8v) 168: 109(fvec2) ConvertUToF 167 Store 111(f32v) 168 169: 49(i8vec2) Load 51(u8v) 170:115(f64vec2) ConvertUToF 169 Store 117(f64v) 170 175: 172(bvec2) Load 174(bv) 179: 52(i8vec2) Select 175 178 177 Store 54(i8v) 179 180: 172(bvec2) Load 174(bv) 185: 49(i8vec2) Select 180 184 183 Store 51(u8v) 185 186: 52(i8vec2) Load 54(i8v) 187: 172(bvec2) INotEqual 186 183 Store 174(bv) 187 188: 49(i8vec2) Load 51(u8v) 189: 172(bvec2) INotEqual 188 183 Store 174(bv) 189 Return FunctionEnd 10(operators(): 2 Function None 3 11: Label 192(u8v): 191(ptr) Variable Function 197(i8): 15(ptr) Variable Function 217(i): 216(ptr) Variable Function 224(uv): 223(ptr) Variable Function 240(i16): 239(ptr) Variable Function 276(b): 275(ptr) Variable Function 193: 190(i8vec3) Load 192(u8v) 195: 194(i8vec3) CompositeConstruct 176 176 176 196: 190(i8vec3) IAdd 193 195 Store 192(u8v) 196 198: 14(int8_t) Load 197(i8) 199: 14(int8_t) ISub 198 176 Store 197(i8) 199 200: 14(int8_t) Load 197(i8) 201: 14(int8_t) IAdd 200 176 Store 197(i8) 201 202: 190(i8vec3) Load 192(u8v) 203: 194(i8vec3) CompositeConstruct 176 176 176 204: 190(i8vec3) ISub 202 203 Store 192(u8v) 204 205: 190(i8vec3) Load 192(u8v) 206: 190(i8vec3) Not 205 Store 192(u8v) 206 207: 14(int8_t) Load 197(i8) Store 197(i8) 207 208: 190(i8vec3) Load 192(u8v) 209: 190(i8vec3) SNegate 208 Store 192(u8v) 209 210: 14(int8_t) Load 197(i8) 211: 14(int8_t) Load 197(i8) 212: 14(int8_t) IAdd 211 210 Store 197(i8) 212 213: 190(i8vec3) Load 192(u8v) 214: 190(i8vec3) Load 192(u8v) 215: 190(i8vec3) ISub 214 213 Store 192(u8v) 215 218: 14(int8_t) Load 197(i8) 219: 27(int) SConvert 218 220: 27(int) Load 217(i) 221: 27(int) IMul 220 219 Store 217(i) 221 225: 190(i8vec3) Load 192(u8v) 226: 222(ivec3) UConvert 225 227: 222(ivec3) Load 224(uv) 228: 222(ivec3) UDiv 227 226 Store 224(uv) 228 229: 14(int8_t) Load 197(i8) 230: 27(int) SConvert 229 231: 17(int) Bitcast 230 232: 222(ivec3) Load 224(uv) 233: 222(ivec3) CompositeConstruct 231 231 231 234: 222(ivec3) UMod 232 233 Store 224(uv) 234 235: 190(i8vec3) Load 192(u8v) 236: 222(ivec3) UConvert 235 237: 222(ivec3) Load 224(uv) 238: 222(ivec3) IAdd 236 237 Store 224(uv) 238 241: 14(int8_t) Load 197(i8) 242: 57(int16_t) SConvert 241 243: 57(int16_t) Load 240(i16) 244: 57(int16_t) ISub 242 243 Store 240(i16) 244 245: 190(i8vec3) Load 192(u8v) 246: 222(ivec3) UConvert 245 247: 222(ivec3) Load 224(uv) 248: 222(ivec3) IMul 246 247 Store 224(uv) 248 249: 14(int8_t) Load 197(i8) 250: 57(int16_t) SConvert 249 251: 57(int16_t) Load 240(i16) 252: 57(int16_t) IMul 250 251 Store 240(i16) 252 253: 14(int8_t) Load 197(i8) 254: 27(int) SConvert 253 255: 27(int) Load 217(i) 256: 27(int) SMod 254 255 Store 217(i) 256 257: 14(int8_t) Load 197(i8) 258: 190(i8vec3) Load 192(u8v) 259: 194(i8vec3) CompositeConstruct 257 257 257 260: 190(i8vec3) ShiftLeftLogical 258 259 Store 192(u8v) 260 262: 37(ptr) AccessChain 192(u8v) 261 263: 36(int8_t) Load 262 264: 14(int8_t) Load 197(i8) 265: 14(int8_t) ShiftRightArithmetic 264 263 Store 197(i8) 265 266: 14(int8_t) Load 197(i8) 268: 37(ptr) AccessChain 192(u8v) 267 269: 36(int8_t) Load 268 270: 14(int8_t) ShiftLeftLogical 266 269 Store 197(i8) 270 271: 190(i8vec3) Load 192(u8v) 272: 14(int8_t) Load 197(i8) 273: 194(i8vec3) CompositeConstruct 272 272 272 274: 190(i8vec3) ShiftLeftLogical 271 273 Store 192(u8v) 274 278: 37(ptr) AccessChain 192(u8v) 277 279: 36(int8_t) Load 278 280: 14(int8_t) Load 197(i8) 281: 36(int8_t) Bitcast 280 282: 171(bool) INotEqual 279 281 Store 276(b) 282 283: 14(int8_t) Load 197(i8) 284: 36(int8_t) Bitcast 283 285: 37(ptr) AccessChain 192(u8v) 277 286: 36(int8_t) Load 285 287: 171(bool) IEqual 284 286 Store 276(b) 287 288: 37(ptr) AccessChain 192(u8v) 277 289: 36(int8_t) Load 288 290: 17(int) UConvert 289 292: 291(ptr) AccessChain 224(uv) 261 293: 17(int) Load 292 294: 171(bool) UGreaterThan 290 293 Store 276(b) 294 295: 14(int8_t) Load 197(i8) 296: 27(int) SConvert 295 297: 27(int) Load 217(i) 298: 171(bool) SLessThan 296 297 Store 276(b) 298 299: 37(ptr) AccessChain 192(u8v) 261 300: 36(int8_t) Load 299 301: 17(int) UConvert 300 302: 291(ptr) AccessChain 224(uv) 277 303: 17(int) Load 302 304: 171(bool) UGreaterThanEqual 301 303 Store 276(b) 304 305: 14(int8_t) Load 197(i8) 306: 27(int) SConvert 305 307: 27(int) Load 217(i) 308: 171(bool) SLessThanEqual 306 307 Store 276(b) 308 309: 14(int8_t) Load 197(i8) 310: 27(int) SConvert 309 311: 17(int) Bitcast 310 312: 222(ivec3) Load 224(uv) 313: 222(ivec3) CompositeConstruct 311 311 311 314: 222(ivec3) BitwiseOr 312 313 Store 224(uv) 314 315: 14(int8_t) Load 197(i8) 316: 27(int) SConvert 315 317: 27(int) Load 217(i) 318: 27(int) BitwiseOr 316 317 Store 217(i) 318 319: 14(int8_t) Load 197(i8) 320: 57(int16_t) SConvert 319 321: 57(int16_t) Load 240(i16) 322: 57(int16_t) BitwiseAnd 321 320 Store 240(i16) 322 323: 190(i8vec3) Load 192(u8v) 324: 222(ivec3) UConvert 323 325: 222(ivec3) Load 224(uv) 326: 222(ivec3) BitwiseAnd 324 325 Store 224(uv) 326 327: 14(int8_t) Load 197(i8) 328: 27(int) SConvert 327 329: 17(int) Bitcast 328 330: 222(ivec3) Load 224(uv) 331: 222(ivec3) CompositeConstruct 329 329 329 332: 222(ivec3) BitwiseXor 330 331 Store 224(uv) 332 333: 190(i8vec3) Load 192(u8v) 334: 14(int8_t) Load 197(i8) 335: 36(int8_t) Bitcast 334 336: 190(i8vec3) CompositeConstruct 335 335 335 337: 190(i8vec3) BitwiseXor 333 336 Store 192(u8v) 337 Return FunctionEnd 12(builtinFuncs(): 2 Function None 3 13: Label 338(i8v): 53(ptr) Variable Function 341(i8): 15(ptr) Variable Function 351(u8v): 191(ptr) Variable Function 353(u8): 37(ptr) Variable Function 423(i16): 239(ptr) Variable Function 426(i32): 216(ptr) Variable Function 429(i8v4): 428(ptr) Variable Function 433(u16): 432(ptr) Variable Function 434(u8v2): 50(ptr) Variable Function 437(u32): 291(ptr) Variable Function 440(u8v4): 439(ptr) Variable Function 452(bv): 451(ptr) Variable Function 339: 52(i8vec2) Load 338(i8v) 340: 52(i8vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 339 Store 338(i8v) 340 342: 14(int8_t) Load 341(i8) 343: 14(int8_t) ExtInst 1(GLSL.std.450) 7(SSign) 342 Store 341(i8) 343 344: 52(i8vec2) Load 338(i8v) 345: 14(int8_t) Load 341(i8) 346: 52(i8vec2) CompositeConstruct 345 345 347: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 344 346 Store 338(i8v) 347 348: 52(i8vec2) Load 338(i8v) 350: 52(i8vec2) ExtInst 1(GLSL.std.450) 39(SMin) 348 349 Store 338(i8v) 350 352: 190(i8vec3) Load 351(u8v) 354: 36(int8_t) Load 353(u8) 355: 190(i8vec3) CompositeConstruct 354 354 354 356: 190(i8vec3) ExtInst 1(GLSL.std.450) 38(UMin) 352 355 Store 351(u8v) 356 357: 190(i8vec3) Load 351(u8v) 359: 190(i8vec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 358 Store 351(u8v) 359 360: 52(i8vec2) Load 338(i8v) 361: 14(int8_t) Load 341(i8) 362: 52(i8vec2) CompositeConstruct 361 361 363: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 360 362 Store 338(i8v) 363 364: 52(i8vec2) Load 338(i8v) 365: 52(i8vec2) ExtInst 1(GLSL.std.450) 42(SMax) 364 349 Store 338(i8v) 365 366: 190(i8vec3) Load 351(u8v) 367: 36(int8_t) Load 353(u8) 368: 190(i8vec3) CompositeConstruct 367 367 367 369: 190(i8vec3) ExtInst 1(GLSL.std.450) 41(UMax) 366 368 Store 351(u8v) 369 370: 190(i8vec3) Load 351(u8v) 371: 190(i8vec3) ExtInst 1(GLSL.std.450) 41(UMax) 370 358 Store 351(u8v) 371 372: 52(i8vec2) Load 338(i8v) 373: 14(int8_t) Load 341(i8) 374: 14(int8_t) SNegate 373 375: 14(int8_t) Load 341(i8) 376: 52(i8vec2) CompositeConstruct 374 374 377: 52(i8vec2) CompositeConstruct 375 375 378: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 372 376 377 Store 338(i8v) 378 379: 52(i8vec2) Load 338(i8v) 380: 52(i8vec2) Load 338(i8v) 381: 52(i8vec2) SNegate 380 382: 52(i8vec2) Load 338(i8v) 383: 52(i8vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 379 381 382 Store 338(i8v) 383 384: 190(i8vec3) Load 351(u8v) 385: 36(int8_t) Load 353(u8) 386: 36(int8_t) SNegate 385 387: 36(int8_t) Load 353(u8) 388: 190(i8vec3) CompositeConstruct 386 386 386 389: 190(i8vec3) CompositeConstruct 387 387 387 390: 190(i8vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 384 388 389 Store 351(u8v) 390 391: 190(i8vec3) Load 351(u8v) 392: 190(i8vec3) Load 351(u8v) 393: 190(i8vec3) SNegate 392 394: 190(i8vec3) Load 351(u8v) 395: 190(i8vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 391 393 394 Store 351(u8v) 395 396: 15(ptr) AccessChain 338(i8v) 277 397: 14(int8_t) Load 396 398: 15(ptr) AccessChain 338(i8v) 261 399: 14(int8_t) Load 398 401: 14(int8_t) Select 400 399 397 Store 341(i8) 401 402: 14(int8_t) Load 341(i8) 403: 52(i8vec2) CompositeConstruct 402 402 404: 14(int8_t) Load 341(i8) 405: 14(int8_t) SNegate 404 406: 52(i8vec2) CompositeConstruct 405 405 409: 52(i8vec2) Select 408 406 403 Store 338(i8v) 409 410: 37(ptr) AccessChain 351(u8v) 277 411: 36(int8_t) Load 410 412: 37(ptr) AccessChain 351(u8v) 261 413: 36(int8_t) Load 412 414: 36(int8_t) Select 400 413 411 Store 353(u8) 414 415: 36(int8_t) Load 353(u8) 416: 190(i8vec3) CompositeConstruct 415 415 415 417: 36(int8_t) Load 353(u8) 418: 36(int8_t) SNegate 417 419: 190(i8vec3) CompositeConstruct 418 418 418 422: 190(i8vec3) Select 421 419 416 Store 351(u8v) 422 424: 52(i8vec2) Load 338(i8v) 425: 57(int16_t) Bitcast 424 Store 423(i16) 425 430: 427(i8vec4) Load 429(i8v4) 431: 27(int) Bitcast 430 Store 426(i32) 431 435: 49(i8vec2) Load 434(u8v2) 436: 64(int16_t) Bitcast 435 Store 433(u16) 436 441: 438(i8vec4) Load 440(u8v4) 442: 17(int) Bitcast 441 Store 437(u32) 442 443: 57(int16_t) Load 423(i16) 444: 52(i8vec2) Bitcast 443 Store 338(i8v) 444 445: 27(int) Load 426(i32) 446: 427(i8vec4) Bitcast 445 Store 429(i8v4) 446 447: 64(int16_t) Load 433(u16) 448: 49(i8vec2) Bitcast 447 Store 434(u8v2) 448 449: 17(int) Load 437(u32) 450: 438(i8vec4) Bitcast 449 Store 440(u8v4) 450 453: 190(i8vec3) Load 351(u8v) 454: 36(int8_t) Load 353(u8) 455: 190(i8vec3) CompositeConstruct 454 454 454 456: 420(bvec3) ULessThan 453 455 Store 452(bv) 456 457: 52(i8vec2) Load 338(i8v) 458: 14(int8_t) Load 341(i8) 459: 52(i8vec2) CompositeConstruct 458 458 460: 172(bvec2) SLessThan 457 459 461: 420(bvec3) Load 452(bv) 462: 420(bvec3) VectorShuffle 461 460 3 4 2 Store 452(bv) 462 463: 190(i8vec3) Load 351(u8v) 464: 36(int8_t) Load 353(u8) 465: 190(i8vec3) CompositeConstruct 464 464 464 466: 420(bvec3) ULessThanEqual 463 465 Store 452(bv) 466 467: 52(i8vec2) Load 338(i8v) 468: 14(int8_t) Load 341(i8) 469: 52(i8vec2) CompositeConstruct 468 468 470: 172(bvec2) SLessThanEqual 467 469 471: 420(bvec3) Load 452(bv) 472: 420(bvec3) VectorShuffle 471 470 3 4 2 Store 452(bv) 472 473: 190(i8vec3) Load 351(u8v) 474: 36(int8_t) Load 353(u8) 475: 190(i8vec3) CompositeConstruct 474 474 474 476: 420(bvec3) UGreaterThan 473 475 Store 452(bv) 476 477: 52(i8vec2) Load 338(i8v) 478: 14(int8_t) Load 341(i8) 479: 52(i8vec2) CompositeConstruct 478 478 480: 172(bvec2) SGreaterThan 477 479 481: 420(bvec3) Load 452(bv) 482: 420(bvec3) VectorShuffle 481 480 3 4 2 Store 452(bv) 482 483: 190(i8vec3) Load 351(u8v) 484: 36(int8_t) Load 353(u8) 485: 190(i8vec3) CompositeConstruct 484 484 484 486: 420(bvec3) UGreaterThanEqual 483 485 Store 452(bv) 486 487: 52(i8vec2) Load 338(i8v) 488: 14(int8_t) Load 341(i8) 489: 52(i8vec2) CompositeConstruct 488 488 490: 172(bvec2) SGreaterThanEqual 487 489 491: 420(bvec3) Load 452(bv) 492: 420(bvec3) VectorShuffle 491 490 3 4 2 Store 452(bv) 492 493: 190(i8vec3) Load 351(u8v) 494: 36(int8_t) Load 353(u8) 495: 190(i8vec3) CompositeConstruct 494 494 494 496: 420(bvec3) IEqual 493 495 Store 452(bv) 496 497: 52(i8vec2) Load 338(i8v) 498: 14(int8_t) Load 341(i8) 499: 52(i8vec2) CompositeConstruct 498 498 500: 172(bvec2) IEqual 497 499 501: 420(bvec3) Load 452(bv) 502: 420(bvec3) VectorShuffle 501 500 3 4 2 Store 452(bv) 502 503: 190(i8vec3) Load 351(u8v) 504: 36(int8_t) Load 353(u8) 505: 190(i8vec3) CompositeConstruct 504 504 504 506: 420(bvec3) INotEqual 503 505 Store 452(bv) 506 507: 52(i8vec2) Load 338(i8v) 508: 14(int8_t) Load 341(i8) 509: 52(i8vec2) CompositeConstruct 508 508 510: 172(bvec2) INotEqual 507 509 511: 420(bvec3) Load 452(bv) 512: 420(bvec3) VectorShuffle 511 510 3 4 2 Store 452(bv) 512 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.intOps.vert.out000066400000000000000000000410631360464450000225140ustar00rootroot00000000000000spv.intOps.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 268 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247 Source ESSL 310 Name 4 "main" Name 9 "iout" Name 15 "uout" Name 21 "fout" Name 26 "u2" Name 30 "u2out" Name 31 "ResType" Name 47 "u1" Name 51 "u1out" Name 52 "ResType" Name 67 "u4" Name 71 "u4outHi" Name 72 "u4outLow" Name 73 "ResType" Name 83 "i4" Name 87 "i4outHi" Name 88 "i4outLow" Name 89 "ResType" Name 100 "v3" Name 104 "i3out" Name 105 "ResType" Name 121 "v1" Name 124 "i1out" Name 125 "ResType" Name 142 "v2" Name 146 "i2" Name 156 "i1" Name 173 "u3" Name 182 "i3" Name 247 "v4" 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeVector 6(int) 4 8: TypePointer Output 7(ivec4) 9(iout): 8(ptr) Variable Output 10: 6(int) Constant 0 11: 7(ivec4) ConstantComposite 10 10 10 10 12: TypeInt 32 0 13: TypeVector 12(int) 4 14: TypePointer Output 13(ivec4) 15(uout): 14(ptr) Variable Output 16: 12(int) Constant 0 17: 13(ivec4) ConstantComposite 16 16 16 16 18: TypeFloat 32 19: TypeVector 18(float) 4 20: TypePointer Output 19(fvec4) 21(fout): 20(ptr) Variable Output 22: 18(float) Constant 0 23: 19(fvec4) ConstantComposite 22 22 22 22 24: TypeVector 12(int) 2 25: TypePointer Input 24(ivec2) 26(u2): 25(ptr) Variable Input 29: TypePointer Function 24(ivec2) 31(ResType): TypeStruct 24(ivec2) 24(ivec2) 46: TypePointer Input 12(int) 47(u1): 46(ptr) Variable Input 50: TypePointer Function 12(int) 52(ResType): TypeStruct 12(int) 12(int) 56: TypePointer Output 12(int) 66: TypePointer Input 13(ivec4) 67(u4): 66(ptr) Variable Input 70: TypePointer Function 13(ivec4) 73(ResType): TypeStruct 13(ivec4) 13(ivec4) 82: TypePointer Input 7(ivec4) 83(i4): 82(ptr) Variable Input 86: TypePointer Function 7(ivec4) 89(ResType): TypeStruct 7(ivec4) 7(ivec4) 98: TypeVector 18(float) 3 99: TypePointer Input 98(fvec3) 100(v3): 99(ptr) Variable Input 102: TypeVector 6(int) 3 103: TypePointer Function 102(ivec3) 105(ResType): TypeStruct 98(fvec3) 102(ivec3) 120: TypePointer Input 18(float) 121(v1): 120(ptr) Variable Input 123: TypePointer Function 6(int) 125(ResType): TypeStruct 18(float) 6(int) 129: TypePointer Output 18(float) 135: TypePointer Output 6(int) 140: TypeVector 18(float) 2 141: TypePointer Input 140(fvec2) 142(v2): 141(ptr) Variable Input 144: TypeVector 6(int) 2 145: TypePointer Input 144(ivec2) 146(i2): 145(ptr) Variable Input 155: TypePointer Input 6(int) 156(i1): 155(ptr) Variable Input 164: 6(int) Constant 4 165: 6(int) Constant 5 171: TypeVector 12(int) 3 172: TypePointer Input 171(ivec3) 173(u3): 172(ptr) Variable Input 181: TypePointer Input 102(ivec3) 182(i3): 181(ptr) Variable Input 246: TypePointer Input 19(fvec4) 247(v4): 246(ptr) Variable Input 4(main): 2 Function None 3 5: Label 30(u2out): 29(ptr) Variable Function 51(u1out): 50(ptr) Variable Function 71(u4outHi): 70(ptr) Variable Function 72(u4outLow): 70(ptr) Variable Function 87(i4outHi): 86(ptr) Variable Function 88(i4outLow): 86(ptr) Variable Function 104(i3out): 103(ptr) Variable Function 124(i1out): 123(ptr) Variable Function Store 9(iout) 11 Store 15(uout) 17 Store 21(fout) 23 27: 24(ivec2) Load 26(u2) 28: 24(ivec2) Load 26(u2) 32: 31(ResType) IAddCarry 27 28 33: 24(ivec2) CompositeExtract 32 1 Store 30(u2out) 33 34: 24(ivec2) CompositeExtract 32 0 35: 13(ivec4) Load 15(uout) 36: 24(ivec2) VectorShuffle 35 35 0 1 37: 24(ivec2) IAdd 36 34 38: 13(ivec4) Load 15(uout) 39: 13(ivec4) VectorShuffle 38 37 4 5 2 3 Store 15(uout) 39 40: 24(ivec2) Load 30(u2out) 41: 13(ivec4) Load 15(uout) 42: 24(ivec2) VectorShuffle 41 41 0 1 43: 24(ivec2) IAdd 42 40 44: 13(ivec4) Load 15(uout) 45: 13(ivec4) VectorShuffle 44 43 4 5 2 3 Store 15(uout) 45 48: 12(int) Load 47(u1) 49: 12(int) Load 47(u1) 53: 52(ResType) ISubBorrow 48 49 54: 12(int) CompositeExtract 53 1 Store 51(u1out) 54 55: 12(int) CompositeExtract 53 0 57: 56(ptr) AccessChain 15(uout) 16 58: 12(int) Load 57 59: 12(int) IAdd 58 55 60: 56(ptr) AccessChain 15(uout) 16 Store 60 59 61: 12(int) Load 51(u1out) 62: 56(ptr) AccessChain 15(uout) 16 63: 12(int) Load 62 64: 12(int) IAdd 63 61 65: 56(ptr) AccessChain 15(uout) 16 Store 65 64 68: 13(ivec4) Load 67(u4) 69: 13(ivec4) Load 67(u4) 74: 73(ResType) UMulExtended 68 69 75: 13(ivec4) CompositeExtract 74 0 Store 72(u4outLow) 75 76: 13(ivec4) CompositeExtract 74 1 Store 71(u4outHi) 76 77: 13(ivec4) Load 71(u4outHi) 78: 13(ivec4) Load 72(u4outLow) 79: 13(ivec4) IAdd 77 78 80: 13(ivec4) Load 15(uout) 81: 13(ivec4) IAdd 80 79 Store 15(uout) 81 84: 7(ivec4) Load 83(i4) 85: 7(ivec4) Load 83(i4) 90: 89(ResType) SMulExtended 84 85 91: 7(ivec4) CompositeExtract 90 0 Store 88(i4outLow) 91 92: 7(ivec4) CompositeExtract 90 1 Store 87(i4outHi) 92 93: 7(ivec4) Load 88(i4outLow) 94: 7(ivec4) Load 87(i4outHi) 95: 7(ivec4) IAdd 93 94 96: 7(ivec4) Load 9(iout) 97: 7(ivec4) IAdd 96 95 Store 9(iout) 97 101: 98(fvec3) Load 100(v3) 106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101 107: 102(ivec3) CompositeExtract 106 1 Store 104(i3out) 107 108: 98(fvec3) CompositeExtract 106 0 109: 19(fvec4) Load 21(fout) 110: 98(fvec3) VectorShuffle 109 109 0 1 2 111: 98(fvec3) FAdd 110 108 112: 19(fvec4) Load 21(fout) 113: 19(fvec4) VectorShuffle 112 111 4 5 6 3 Store 21(fout) 113 114: 102(ivec3) Load 104(i3out) 115: 7(ivec4) Load 9(iout) 116: 102(ivec3) VectorShuffle 115 115 0 1 2 117: 102(ivec3) IAdd 116 114 118: 7(ivec4) Load 9(iout) 119: 7(ivec4) VectorShuffle 118 117 4 5 6 3 Store 9(iout) 119 122: 18(float) Load 121(v1) 126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122 127: 6(int) CompositeExtract 126 1 Store 124(i1out) 127 128: 18(float) CompositeExtract 126 0 130: 129(ptr) AccessChain 21(fout) 16 131: 18(float) Load 130 132: 18(float) FAdd 131 128 133: 129(ptr) AccessChain 21(fout) 16 Store 133 132 134: 6(int) Load 124(i1out) 136: 135(ptr) AccessChain 9(iout) 16 137: 6(int) Load 136 138: 6(int) IAdd 137 134 139: 135(ptr) AccessChain 9(iout) 16 Store 139 138 143: 140(fvec2) Load 142(v2) 147: 144(ivec2) Load 146(i2) 148: 140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147 149: 19(fvec4) Load 21(fout) 150: 140(fvec2) VectorShuffle 149 149 0 1 151: 140(fvec2) FAdd 150 148 152: 19(fvec4) Load 21(fout) 153: 19(fvec4) VectorShuffle 152 151 4 5 2 3 Store 21(fout) 153 154: 18(float) Load 121(v1) 157: 6(int) Load 156(i1) 158: 18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157 159: 129(ptr) AccessChain 21(fout) 16 160: 18(float) Load 159 161: 18(float) FAdd 160 158 162: 129(ptr) AccessChain 21(fout) 16 Store 162 161 163: 6(int) Load 156(i1) 166: 6(int) BitFieldSExtract 163 164 165 167: 135(ptr) AccessChain 9(iout) 16 168: 6(int) Load 167 169: 6(int) IAdd 168 166 170: 135(ptr) AccessChain 9(iout) 16 Store 170 169 174: 171(ivec3) Load 173(u3) 175: 171(ivec3) BitFieldUExtract 174 164 165 176: 13(ivec4) Load 15(uout) 177: 171(ivec3) VectorShuffle 176 176 0 1 2 178: 171(ivec3) IAdd 177 175 179: 13(ivec4) Load 15(uout) 180: 13(ivec4) VectorShuffle 179 178 4 5 6 3 Store 15(uout) 180 183: 102(ivec3) Load 182(i3) 184: 102(ivec3) Load 182(i3) 185: 102(ivec3) BitFieldInsert 183 184 164 165 186: 7(ivec4) Load 9(iout) 187: 102(ivec3) VectorShuffle 186 186 0 1 2 188: 102(ivec3) IAdd 187 185 189: 7(ivec4) Load 9(iout) 190: 7(ivec4) VectorShuffle 189 188 4 5 6 3 Store 9(iout) 190 191: 12(int) Load 47(u1) 192: 12(int) Load 47(u1) 193: 12(int) BitFieldInsert 191 192 164 165 194: 56(ptr) AccessChain 15(uout) 16 195: 12(int) Load 194 196: 12(int) IAdd 195 193 197: 56(ptr) AccessChain 15(uout) 16 Store 197 196 198: 144(ivec2) Load 146(i2) 199: 144(ivec2) BitReverse 198 200: 7(ivec4) Load 9(iout) 201: 144(ivec2) VectorShuffle 200 200 0 1 202: 144(ivec2) IAdd 201 199 203: 7(ivec4) Load 9(iout) 204: 7(ivec4) VectorShuffle 203 202 4 5 2 3 Store 9(iout) 204 205: 13(ivec4) Load 67(u4) 206: 13(ivec4) BitReverse 205 207: 13(ivec4) Load 15(uout) 208: 13(ivec4) IAdd 207 206 Store 15(uout) 208 209: 6(int) Load 156(i1) 210: 6(int) BitCount 209 211: 135(ptr) AccessChain 9(iout) 16 212: 6(int) Load 211 213: 6(int) IAdd 212 210 214: 135(ptr) AccessChain 9(iout) 16 Store 214 213 215: 171(ivec3) Load 173(u3) 216: 102(ivec3) BitCount 215 217: 7(ivec4) Load 9(iout) 218: 102(ivec3) VectorShuffle 217 217 0 1 2 219: 102(ivec3) IAdd 218 216 220: 7(ivec4) Load 9(iout) 221: 7(ivec4) VectorShuffle 220 219 4 5 6 3 Store 9(iout) 221 222: 144(ivec2) Load 146(i2) 223: 144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222 224: 7(ivec4) Load 9(iout) 225: 144(ivec2) VectorShuffle 224 224 0 1 226: 144(ivec2) IAdd 225 223 227: 7(ivec4) Load 9(iout) 228: 7(ivec4) VectorShuffle 227 226 4 5 2 3 Store 9(iout) 228 229: 13(ivec4) Load 67(u4) 230: 7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229 231: 7(ivec4) Load 9(iout) 232: 7(ivec4) IAdd 231 230 Store 9(iout) 232 233: 6(int) Load 156(i1) 234: 6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233 235: 135(ptr) AccessChain 9(iout) 16 236: 6(int) Load 235 237: 6(int) IAdd 236 234 238: 135(ptr) AccessChain 9(iout) 16 Store 238 237 239: 24(ivec2) Load 26(u2) 240: 144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239 241: 7(ivec4) Load 9(iout) 242: 144(ivec2) VectorShuffle 241 241 0 1 243: 144(ivec2) IAdd 242 240 244: 7(ivec4) Load 9(iout) 245: 7(ivec4) VectorShuffle 244 243 4 5 2 3 Store 9(iout) 245 248: 19(fvec4) Load 247(v4) 249: 12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248 250: 56(ptr) AccessChain 15(uout) 16 251: 12(int) Load 250 252: 12(int) IAdd 251 249 253: 56(ptr) AccessChain 15(uout) 16 Store 253 252 254: 19(fvec4) Load 247(v4) 255: 12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254 256: 56(ptr) AccessChain 15(uout) 16 257: 12(int) Load 256 258: 12(int) IAdd 257 255 259: 56(ptr) AccessChain 15(uout) 16 Store 259 258 260: 12(int) Load 47(u1) 261: 19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260 262: 19(fvec4) Load 21(fout) 263: 19(fvec4) FAdd 262 261 Store 21(fout) 263 264: 12(int) Load 47(u1) 265: 19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264 266: 19(fvec4) Load 21(fout) 267: 19(fvec4) FAdd 266 265 Store 21(fout) 267 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.intcoopmat.comp.out000066400000000000000000000531421360464450000233740ustar00rootroot00000000000000spv.intcoopmat.comp // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 262 Capability Shader Capability Float16 Capability Int8 Capability StorageBuffer8BitAccess Capability VulkanMemoryModelKHR Capability PhysicalStorageBufferAddressesEXT Capability CooperativeMatrixNV Extension "SPV_EXT_physical_storage_buffer" Extension "SPV_KHR_8bit_storage" 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 glslang-8.13.3559/Test/baseResults/spv.interpOps.frag.out000066400000000000000000000152751360464450000231700ustar00rootroot00000000000000spv.interpOps.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 100 Capability Shader Capability InterpolationFunction 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 13 24 33 41 47 72 98 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "f4" Name 13 "if1" Name 24 "if2" Name 33 "if3" Name 41 "if4" Name 47 "samp" Name 72 "offset" Name 98 "fragColor" Decorate 47(samp) Flat Decorate 72(offset) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: 6(float) Constant 0 11: 7(fvec4) ConstantComposite 10 10 10 10 12: TypePointer Input 6(float) 13(if1): 12(ptr) Variable Input 15: TypeInt 32 0 16: 15(int) Constant 0 17: TypePointer Function 6(float) 22: TypeVector 6(float) 2 23: TypePointer Input 22(fvec2) 24(if2): 23(ptr) Variable Input 31: TypeVector 6(float) 3 32: TypePointer Input 31(fvec3) 33(if3): 32(ptr) Variable Input 40: TypePointer Input 7(fvec4) 41(if4): 40(ptr) Variable Input 45: TypeInt 32 1 46: TypePointer Input 45(int) 47(samp): 46(ptr) Variable Input 72(offset): 23(ptr) Variable Input 97: TypePointer Output 7(fvec4) 98(fragColor): 97(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(f4): 8(ptr) Variable Function Store 9(f4) 11 14: 6(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 13(if1) 18: 17(ptr) AccessChain 9(f4) 16 19: 6(float) Load 18 20: 6(float) FAdd 19 14 21: 17(ptr) AccessChain 9(f4) 16 Store 21 20 25: 22(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 24(if2) 26: 7(fvec4) Load 9(f4) 27: 22(fvec2) VectorShuffle 26 26 0 1 28: 22(fvec2) FAdd 27 25 29: 7(fvec4) Load 9(f4) 30: 7(fvec4) VectorShuffle 29 28 4 5 2 3 Store 9(f4) 30 34: 31(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 33(if3) 35: 7(fvec4) Load 9(f4) 36: 31(fvec3) VectorShuffle 35 35 0 1 2 37: 31(fvec3) FAdd 36 34 38: 7(fvec4) Load 9(f4) 39: 7(fvec4) VectorShuffle 38 37 4 5 6 3 Store 9(f4) 39 42: 7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 41(if4) 43: 7(fvec4) Load 9(f4) 44: 7(fvec4) FAdd 43 42 Store 9(f4) 44 48: 45(int) Load 47(samp) 49: 6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 48 50: 17(ptr) AccessChain 9(f4) 16 51: 6(float) Load 50 52: 6(float) FAdd 51 49 53: 17(ptr) AccessChain 9(f4) 16 Store 53 52 54: 45(int) Load 47(samp) 55: 22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 54 56: 7(fvec4) Load 9(f4) 57: 22(fvec2) VectorShuffle 56 56 0 1 58: 22(fvec2) FAdd 57 55 59: 7(fvec4) Load 9(f4) 60: 7(fvec4) VectorShuffle 59 58 4 5 2 3 Store 9(f4) 60 61: 45(int) Load 47(samp) 62: 31(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 33(if3) 61 63: 7(fvec4) Load 9(f4) 64: 31(fvec3) VectorShuffle 63 63 0 1 2 65: 31(fvec3) FAdd 64 62 66: 7(fvec4) Load 9(f4) 67: 7(fvec4) VectorShuffle 66 65 4 5 6 3 Store 9(f4) 67 68: 45(int) Load 47(samp) 69: 7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 41(if4) 68 70: 7(fvec4) Load 9(f4) 71: 7(fvec4) FAdd 70 69 Store 9(f4) 71 73: 22(fvec2) Load 72(offset) 74: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 73 75: 17(ptr) AccessChain 9(f4) 16 76: 6(float) Load 75 77: 6(float) FAdd 76 74 78: 17(ptr) AccessChain 9(f4) 16 Store 78 77 79: 22(fvec2) Load 72(offset) 80: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 79 81: 7(fvec4) Load 9(f4) 82: 22(fvec2) VectorShuffle 81 81 0 1 83: 22(fvec2) FAdd 82 80 84: 7(fvec4) Load 9(f4) 85: 7(fvec4) VectorShuffle 84 83 4 5 2 3 Store 9(f4) 85 86: 22(fvec2) Load 72(offset) 87: 31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 86 88: 7(fvec4) Load 9(f4) 89: 31(fvec3) VectorShuffle 88 88 0 1 2 90: 31(fvec3) FAdd 89 87 91: 7(fvec4) Load 9(f4) 92: 7(fvec4) VectorShuffle 91 90 4 5 6 3 Store 9(f4) 92 93: 22(fvec2) Load 72(offset) 94: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 93 95: 7(fvec4) Load 9(f4) 96: 7(fvec4) FAdd 95 94 Store 9(f4) 96 99: 7(fvec4) Load 9(f4) Store 98(fragColor) 99 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.layoutNested.vert.out000066400000000000000000000321251360464450000237170ustar00rootroot00000000000000spv.layoutNested.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 66 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 62 65 Source GLSL 450 Name 4 "main" Name 14 "S" MemberName 14(S) 0 "a" MemberName 14(S) 1 "b" MemberName 14(S) 2 "c" Name 19 "Block140" MemberName 19(Block140) 0 "u" MemberName 19(Block140) 1 "s" MemberName 19(Block140) 2 "v" Name 21 "inst140" Name 23 "S" MemberName 23(S) 0 "a" MemberName 23(S) 1 "b" MemberName 23(S) 2 "c" Name 26 "Block430" MemberName 26(Block430) 0 "u" MemberName 26(Block430) 1 "s" MemberName 26(Block430) 2 "v" Name 28 "inst430" Name 29 "S" MemberName 29(S) 0 "a" MemberName 29(S) 1 "b" MemberName 29(S) 2 "c" Name 31 "s" Name 32 "T" MemberName 32(T) 0 "m" MemberName 32(T) 1 "a" Name 34 "t" Name 35 "T" MemberName 35(T) 0 "m" MemberName 35(T) 1 "a" Name 36 "Nestor" MemberName 36(Nestor) 0 "nestorT" Name 37 "Bt1" MemberName 37(Bt1) 0 "nt" Name 39 "Btn1" Name 40 "T" MemberName 40(T) 0 "m" MemberName 40(T) 1 "a" Name 41 "Nestor" MemberName 41(Nestor) 0 "nestorT" Name 42 "Bt2" MemberName 42(Bt2) 0 "nt" Name 44 "Btn2" Name 45 "Bt3" MemberName 45(Bt3) 0 "ntcol" MemberName 45(Bt3) 1 "ntrow" Name 47 "Btn3" Name 48 "T" MemberName 48(T) 0 "m" MemberName 48(T) 1 "a" Name 49 "Nestor" MemberName 49(Nestor) 0 "nestorT" Name 50 "bBt1" MemberName 50(bBt1) 0 "nt" Name 52 "bBtn1" Name 53 "T" MemberName 53(T) 0 "m" MemberName 53(T) 1 "a" Name 54 "Nestor" MemberName 54(Nestor) 0 "nestorT" Name 55 "bBt2" MemberName 55(bBt2) 0 "nt" Name 57 "bBtn2" Name 58 "bBt3" MemberName 58(bBt3) 0 "ntcol" MemberName 58(bBt3) 1 "ntrow" Name 60 "bBtn3" Name 62 "sout" Name 63 "S" MemberName 63(S) 0 "a" MemberName 63(S) 1 "b" MemberName 63(S) 2 "c" Name 65 "soutinv" Decorate 13 ArrayStride 32 MemberDecorate 14(S) 0 Offset 0 MemberDecorate 14(S) 1 ColMajor MemberDecorate 14(S) 1 RelaxedPrecision MemberDecorate 14(S) 1 Offset 16 MemberDecorate 14(S) 1 MatrixStride 16 MemberDecorate 14(S) 2 RelaxedPrecision MemberDecorate 14(S) 2 Offset 144 Decorate 16 ArrayStride 160 Decorate 18 ArrayStride 480 MemberDecorate 19(Block140) 0 RelaxedPrecision MemberDecorate 19(Block140) 0 Offset 0 MemberDecorate 19(Block140) 1 Offset 16 MemberDecorate 19(Block140) 2 RelaxedPrecision MemberDecorate 19(Block140) 2 Offset 976 Decorate 19(Block140) Block Decorate 21(inst140) DescriptorSet 0 Decorate 21(inst140) Binding 0 Decorate 22 ArrayStride 16 MemberDecorate 23(S) 0 Offset 0 MemberDecorate 23(S) 1 ColMajor MemberDecorate 23(S) 1 RelaxedPrecision MemberDecorate 23(S) 1 Offset 16 MemberDecorate 23(S) 1 MatrixStride 8 MemberDecorate 23(S) 2 RelaxedPrecision MemberDecorate 23(S) 2 Offset 80 Decorate 24 ArrayStride 96 Decorate 25 ArrayStride 288 MemberDecorate 26(Block430) 0 RelaxedPrecision MemberDecorate 26(Block430) 0 Offset 0 MemberDecorate 26(Block430) 1 Offset 16 MemberDecorate 26(Block430) 2 RelaxedPrecision MemberDecorate 26(Block430) 2 Offset 592 Decorate 26(Block430) BufferBlock Decorate 28(inst430) DescriptorSet 0 Decorate 28(inst430) Binding 1 MemberDecorate 29(S) 1 RelaxedPrecision MemberDecorate 29(S) 2 RelaxedPrecision MemberDecorate 35(T) 0 RowMajor MemberDecorate 35(T) 0 Offset 0 MemberDecorate 35(T) 0 MatrixStride 16 MemberDecorate 35(T) 1 Offset 32 MemberDecorate 36(Nestor) 0 Offset 0 MemberDecorate 37(Bt1) 0 Offset 0 Decorate 37(Bt1) Block Decorate 39(Btn1) DescriptorSet 1 Decorate 39(Btn1) Binding 0 MemberDecorate 40(T) 0 ColMajor MemberDecorate 40(T) 0 Offset 0 MemberDecorate 40(T) 0 MatrixStride 16 MemberDecorate 40(T) 1 Offset 32 MemberDecorate 41(Nestor) 0 Offset 0 MemberDecorate 42(Bt2) 0 Offset 0 Decorate 42(Bt2) Block Decorate 44(Btn2) DescriptorSet 1 Decorate 44(Btn2) Binding 0 MemberDecorate 45(Bt3) 0 Offset 0 MemberDecorate 45(Bt3) 1 Offset 48 Decorate 45(Bt3) Block Decorate 47(Btn3) DescriptorSet 1 Decorate 47(Btn3) Binding 0 MemberDecorate 48(T) 0 RowMajor MemberDecorate 48(T) 0 Offset 0 MemberDecorate 48(T) 0 MatrixStride 8 MemberDecorate 48(T) 1 Offset 16 MemberDecorate 49(Nestor) 0 Offset 0 MemberDecorate 50(bBt1) 0 Offset 0 Decorate 50(bBt1) BufferBlock Decorate 52(bBtn1) DescriptorSet 1 Decorate 52(bBtn1) Binding 0 MemberDecorate 53(T) 0 ColMajor MemberDecorate 53(T) 0 Offset 0 MemberDecorate 53(T) 0 MatrixStride 8 MemberDecorate 53(T) 1 Offset 16 MemberDecorate 54(Nestor) 0 Offset 0 MemberDecorate 55(bBt2) 0 Offset 0 Decorate 55(bBt2) BufferBlock Decorate 57(bBtn2) DescriptorSet 1 Decorate 57(bBtn2) Binding 0 MemberDecorate 58(bBt3) 0 Offset 0 MemberDecorate 58(bBt3) 1 Offset 24 Decorate 58(bBt3) BufferBlock Decorate 60(bBtn3) DescriptorSet 1 Decorate 60(bBtn3) Binding 0 Decorate 62(sout) Flat MemberDecorate 63(S) 0 Invariant MemberDecorate 63(S) 1 RelaxedPrecision MemberDecorate 63(S) 1 Invariant MemberDecorate 63(S) 2 RelaxedPrecision MemberDecorate 63(S) 2 Invariant Decorate 65(soutinv) Invariant 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeInt 32 0 8: TypeVector 7(int) 3 9: TypeFloat 32 10: TypeVector 9(float) 2 11: TypeMatrix 10(fvec2) 2 12: 7(int) Constant 4 13: TypeArray 11 12 14(S): TypeStruct 8(ivec3) 13 7(int) 15: 7(int) Constant 3 16: TypeArray 14(S) 15 17: 7(int) Constant 2 18: TypeArray 16 17 19(Block140): TypeStruct 6(int) 18 10(fvec2) 20: TypePointer Uniform 19(Block140) 21(inst140): 20(ptr) Variable Uniform 22: TypeArray 11 12 23(S): TypeStruct 8(ivec3) 22 7(int) 24: TypeArray 23(S) 15 25: TypeArray 24 17 26(Block430): TypeStruct 6(int) 25 10(fvec2) 27: TypePointer Uniform 26(Block430) 28(inst430): 27(ptr) Variable Uniform 29(S): TypeStruct 8(ivec3) 13 7(int) 30: TypePointer Private 29(S) 31(s): 30(ptr) Variable Private 32(T): TypeStruct 11 6(int) 33: TypePointer Private 32(T) 34(t): 33(ptr) Variable Private 35(T): TypeStruct 11 6(int) 36(Nestor): TypeStruct 35(T) 37(Bt1): TypeStruct 36(Nestor) 38: TypePointer Uniform 37(Bt1) 39(Btn1): 38(ptr) Variable Uniform 40(T): TypeStruct 11 6(int) 41(Nestor): TypeStruct 40(T) 42(Bt2): TypeStruct 41(Nestor) 43: TypePointer Uniform 42(Bt2) 44(Btn2): 43(ptr) Variable Uniform 45(Bt3): TypeStruct 41(Nestor) 36(Nestor) 46: TypePointer Uniform 45(Bt3) 47(Btn3): 46(ptr) Variable Uniform 48(T): TypeStruct 11 6(int) 49(Nestor): TypeStruct 48(T) 50(bBt1): TypeStruct 49(Nestor) 51: TypePointer Uniform 50(bBt1) 52(bBtn1): 51(ptr) Variable Uniform 53(T): TypeStruct 11 6(int) 54(Nestor): TypeStruct 53(T) 55(bBt2): TypeStruct 54(Nestor) 56: TypePointer Uniform 55(bBt2) 57(bBtn2): 56(ptr) Variable Uniform 58(bBt3): TypeStruct 49(Nestor) 54(Nestor) 59: TypePointer Uniform 58(bBt3) 60(bBtn3): 59(ptr) Variable Uniform 61: TypePointer Output 29(S) 62(sout): 61(ptr) Variable Output 63(S): TypeStruct 8(ivec3) 13 7(int) 64: TypePointer Output 63(S) 65(soutinv): 64(ptr) Variable Output 4(main): 2 Function None 3 5: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.length.frag.out000066400000000000000000000045131360464450000224570ustar00rootroot00000000000000spv.length.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 33 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 14 26 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "t" Name 14 "v" Name 26 "gl_FragColor" Name 32 "u" Decorate 26(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 2 8: TypePointer Function 7(fvec2) 10: TypeInt 32 0 11: 10(int) Constant 2 12: TypeArray 7(fvec2) 11 13: TypePointer Input 12 14(v): 13(ptr) Variable Input 15: TypeInt 32 1 16: 15(int) Constant 0 17: TypePointer Input 7(fvec2) 20: 15(int) Constant 1 24: TypeVector 6(float) 4 25: TypePointer Output 24(fvec4) 26(gl_FragColor): 25(ptr) Variable Output 27: 6(float) Constant 1106247680 28: 24(fvec4) ConstantComposite 27 27 27 27 29: 10(int) Constant 3 30: TypeArray 24(fvec4) 29 31: TypePointer Private 30 32(u): 31(ptr) Variable Private 4(main): 2 Function None 3 5: Label 9(t): 8(ptr) Variable Function 18: 17(ptr) AccessChain 14(v) 16 19: 7(fvec2) Load 18 21: 17(ptr) AccessChain 14(v) 20 22: 7(fvec2) Load 21 23: 7(fvec2) FAdd 19 22 Store 9(t) 23 Store 26(gl_FragColor) 28 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.localAggregates.frag.out000066400000000000000000000243001360464450000242560ustar00rootroot00000000000000spv.localAggregates.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 136 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 15 40 90 98 108 134 135 ExecutionMode 4 OriginUpperLeft Source GLSL 400 Name 4 "main" Name 8 "s1" MemberName 8(s1) 0 "i" MemberName 8(s1) 1 "f" Name 10 "s2" MemberName 10(s2) 0 "i" MemberName 10(s2) 1 "f" MemberName 10(s2) 2 "s1_1" MemberName 10(s2) 3 "bleh" Name 12 "locals2" Name 13 "s3" MemberName 13(s3) 0 "s2_1" MemberName 13(s3) 1 "i" MemberName 13(s3) 2 "f" MemberName 13(s3) 3 "s1_1" Name 15 "foo3" Name 36 "localFArray" Name 40 "coord" Name 49 "localIArray" Name 68 "x" Name 70 "localArray" Name 75 "i" Name 84 "a" Name 90 "condition" Name 98 "color" Name 108 "gl_FragColor" Name 128 "samp2D" Name 134 "foo" Name 135 "foo2" Decorate 15(foo3) Flat Decorate 90(condition) Flat Decorate 108(gl_FragColor) Location 0 Decorate 128(samp2D) DescriptorSet 0 Decorate 128(samp2D) Binding 0 Decorate 134(foo) Flat Decorate 135(foo2) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeFloat 32 8(s1): TypeStruct 6(int) 7(float) 9: TypeVector 7(float) 4 10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4) 11: TypePointer Function 10(s2) 13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1) 14: TypePointer Input 13(s3) 15(foo3): 14(ptr) Variable Input 16: 6(int) Constant 0 17: TypePointer Input 10(s2) 20: TypePointer Input 6(int) 23: TypeBool 27: 6(int) Constant 2 28: 6(int) Constant 1 29: 7(float) Constant 1065353216 30: TypePointer Function 7(float) 32: TypeInt 32 0 33: 32(int) Constant 16 34: TypeArray 7(float) 33 35: TypePointer Function 34 37: 6(int) Constant 4 38: TypeVector 7(float) 2 39: TypePointer Input 38(fvec2) 40(coord): 39(ptr) Variable Input 41: 32(int) Constant 0 42: TypePointer Input 7(float) 46: 32(int) Constant 8 47: TypeArray 6(int) 46 48: TypePointer Function 47 52: TypePointer Function 6(int) 69: 6(int) Constant 5 82: 6(int) Constant 16 86: 7(float) Constant 0 90(condition): 20(ptr) Variable Input 96: 6(int) Constant 3 97: TypePointer Input 9(fvec4) 98(color): 97(ptr) Variable Input 100: TypePointer Function 9(fvec4) 102: 32(int) Constant 1 105: 32(int) Constant 2 107: TypePointer Output 9(fvec4) 108(gl_FragColor): 107(ptr) Variable Output 125: TypeImage 7(float) 2D sampled format:Unknown 126: TypeSampledImage 125 127: TypePointer UniformConstant 126 128(samp2D): 127(ptr) Variable UniformConstant 133: TypePointer Input 8(s1) 134(foo): 133(ptr) Variable Input 135(foo2): 17(ptr) Variable Input 4(main): 2 Function None 3 5: Label 12(locals2): 11(ptr) Variable Function 36(localFArray): 35(ptr) Variable Function 49(localIArray): 48(ptr) Variable Function 68(x): 52(ptr) Variable Function 70(localArray): 35(ptr) Variable Function 75(i): 52(ptr) Variable Function 84(a): 35(ptr) Variable Function 18: 17(ptr) AccessChain 15(foo3) 16 19: 10(s2) Load 18 Store 12(locals2) 19 21: 20(ptr) AccessChain 15(foo3) 16 16 22: 6(int) Load 21 24: 23(bool) SGreaterThan 22 16 SelectionMerge 26 None BranchConditional 24 25 54 25: Label 31: 30(ptr) AccessChain 12(locals2) 27 28 Store 31 29 43: 42(ptr) AccessChain 40(coord) 41 44: 7(float) Load 43 45: 30(ptr) AccessChain 36(localFArray) 37 Store 45 44 50: 20(ptr) AccessChain 15(foo3) 16 16 51: 6(int) Load 50 53: 52(ptr) AccessChain 49(localIArray) 27 Store 53 51 Branch 26 54: Label 55: 42(ptr) AccessChain 40(coord) 41 56: 7(float) Load 55 57: 30(ptr) AccessChain 12(locals2) 27 28 Store 57 56 58: 30(ptr) AccessChain 36(localFArray) 37 Store 58 29 59: 52(ptr) AccessChain 49(localIArray) 27 Store 59 16 Branch 26 26: Label 60: 52(ptr) AccessChain 49(localIArray) 27 61: 6(int) Load 60 62: 23(bool) IEqual 61 16 SelectionMerge 64 None BranchConditional 62 63 64 63: Label 65: 30(ptr) AccessChain 36(localFArray) 37 66: 7(float) Load 65 67: 7(float) FAdd 66 29 Store 65 67 Branch 64 64: Label Store 68(x) 69 71: 6(int) Load 68(x) 72: 42(ptr) AccessChain 40(coord) 41 73: 7(float) Load 72 74: 30(ptr) AccessChain 70(localArray) 71 Store 74 73 Store 75(i) 16 Branch 76 76: Label LoopMerge 78 79 None Branch 80 80: Label 81: 6(int) Load 75(i) 83: 23(bool) SLessThan 81 82 BranchConditional 83 77 78 77: Label 85: 6(int) Load 75(i) 87: 30(ptr) AccessChain 84(a) 85 Store 87 86 Branch 79 79: Label 88: 6(int) Load 75(i) 89: 6(int) IAdd 88 28 Store 75(i) 89 Branch 76 78: Label 91: 6(int) Load 90(condition) 92: 23(bool) IEqual 91 28 SelectionMerge 94 None BranchConditional 92 93 94 93: Label 95: 34 Load 70(localArray) Store 84(a) 95 Branch 94 94: Label 99: 9(fvec4) Load 98(color) 101: 100(ptr) AccessChain 12(locals2) 96 Store 101 99 103: 42(ptr) AccessChain 40(coord) 102 104: 7(float) Load 103 106: 30(ptr) AccessChain 12(locals2) 96 105 Store 106 104 109: 100(ptr) AccessChain 12(locals2) 96 110: 9(fvec4) Load 109 111: 30(ptr) AccessChain 36(localFArray) 37 112: 7(float) Load 111 113: 30(ptr) AccessChain 12(locals2) 27 28 114: 7(float) Load 113 115: 7(float) FAdd 112 114 116: 6(int) Load 68(x) 117: 30(ptr) AccessChain 70(localArray) 116 118: 7(float) Load 117 119: 7(float) FAdd 115 118 120: 6(int) Load 68(x) 121: 30(ptr) AccessChain 84(a) 120 122: 7(float) Load 121 123: 7(float) FAdd 119 122 124: 9(fvec4) VectorTimesScalar 110 123 129: 126 Load 128(samp2D) 130: 38(fvec2) Load 40(coord) 131: 9(fvec4) ImageSampleImplicitLod 129 130 132: 9(fvec4) FMul 124 131 Store 108(gl_FragColor) 132 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.loops.frag.out000066400000000000000000001440101360464450000223270ustar00rootroot00000000000000spv.loops.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 725 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 11 54 57 71 106 114 118 131 137 157 160 171 308 344 350 366 380 418 450 469 512 544 552 562 588 615 624 629 649 687 698 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "color" Name 11 "BaseColor" Name 54 "d" Name 57 "bigColor" Name 71 "bigColor1_1" Name 106 "d2" Name 114 "d3" Name 118 "bigColor1_2" Name 131 "bigColor1_3" Name 137 "d4" Name 148 "i" Name 157 "Count" Name 160 "bigColor2" Name 171 "bigColor3" Name 179 "i" Name 195 "i" Name 231 "i" Name 254 "i" Name 279 "i" Name 308 "bigColor4" Name 344 "bigColor5" Name 350 "d5" Name 366 "d6" Name 380 "bigColor6" Name 418 "d7" Name 450 "bigColor7" Name 469 "d8" Name 512 "d9" Name 544 "d10" Name 552 "d11" Name 562 "d12" Name 588 "bigColor8" Name 615 "gl_FragColor" Name 624 "d14" Name 629 "d15" Name 649 "d16" Name 687 "d18" Name 698 "d17" Decorate 157(Count) Flat Decorate 615(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypePointer Input 7(fvec4) 11(BaseColor): 10(ptr) Variable Input 18: TypeBool 19: 18(bool) ConstantTrue 20: TypeInt 32 0 21: 20(int) Constant 0 22: TypePointer Function 6(float) 25: 6(float) Constant 1051260355 29: 7(fvec4) ConstantComposite 25 25 25 25 35: 6(float) Constant 1059648963 39: 7(fvec4) ConstantComposite 35 35 35 35 53: TypePointer Input 6(float) 54(d): 53(ptr) Variable Input 57(bigColor): 10(ptr) Variable Input 66: 20(int) Constant 2 71(bigColor1_1): 10(ptr) Variable Input 75: 20(int) Constant 3 93: 6(float) Constant 1109917696 96: 6(float) Constant 1065353216 106(d2): 53(ptr) Variable Input 111: 20(int) Constant 1 114(d3): 53(ptr) Variable Input 118(bigColor1_2): 10(ptr) Variable Input 131(bigColor1_3): 10(ptr) Variable Input 137(d4): 53(ptr) Variable Input 146: TypeInt 32 1 147: TypePointer Function 146(int) 149: 146(int) Constant 0 156: TypePointer Input 146(int) 157(Count): 156(ptr) Variable Input 160(bigColor2): 10(ptr) Variable Input 165: 146(int) Constant 1 171(bigColor3): 10(ptr) Variable Input 186: 146(int) Constant 42 202: 146(int) Constant 100 206: 6(float) Constant 1101004800 238: 146(int) Constant 120 308(bigColor4): 10(ptr) Variable Input 344(bigColor5): 10(ptr) Variable Input 350(d5): 53(ptr) Variable Input 366(d6): 53(ptr) Variable Input 380(bigColor6): 10(ptr) Variable Input 418(d7): 53(ptr) Variable Input 445: 6(float) Constant 0 450(bigColor7): 10(ptr) Variable Input 469(d8): 53(ptr) Variable Input 486: 6(float) Constant 1073741824 512(d9): 53(ptr) Variable Input 528: 6(float) Constant 1084227584 544(d10): 53(ptr) Variable Input 552(d11): 53(ptr) Variable Input 562(d12): 53(ptr) Variable Input 586: 6(float) Constant 1092616192 588(bigColor8): 10(ptr) Variable Input 614: TypePointer Output 7(fvec4) 615(gl_FragColor): 614(ptr) Variable Output 624(d14): 53(ptr) Variable Input 629(d15): 53(ptr) Variable Input 649(d16): 53(ptr) Variable Input 687(d18): 53(ptr) Variable Input 698(d17): 53(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(color): 8(ptr) Variable Function 148(i): 147(ptr) Variable Function 179(i): 147(ptr) Variable Function 195(i): 147(ptr) Variable Function 231(i): 147(ptr) Variable Function 254(i): 147(ptr) Variable Function 279(i): 147(ptr) Variable Function 12: 7(fvec4) Load 11(BaseColor) Store 9(color) 12 Branch 13 13: Label LoopMerge 15 16 None Branch 17 17: Label BranchConditional 19 14 15 14: Label 23: 22(ptr) AccessChain 9(color) 21 24: 6(float) Load 23 26: 18(bool) FOrdLessThan 24 25 SelectionMerge 28 None BranchConditional 26 27 28 27: Label 30: 7(fvec4) Load 9(color) 31: 7(fvec4) FAdd 30 29 Store 9(color) 31 Branch 15 28: Label 33: 22(ptr) AccessChain 9(color) 21 34: 6(float) Load 33 36: 18(bool) FOrdLessThan 34 35 SelectionMerge 38 None BranchConditional 36 37 38 37: Label 40: 7(fvec4) Load 9(color) 41: 7(fvec4) FAdd 40 39 Store 9(color) 41 Branch 15 38: Label 43: 7(fvec4) Load 9(color) 44: 7(fvec4) FAdd 43 29 Store 9(color) 44 Branch 15 16: Label Branch 13 15: Label Branch 46 46: Label LoopMerge 48 49 None Branch 50 50: Label 51: 22(ptr) AccessChain 9(color) 21 52: 6(float) Load 51 55: 6(float) Load 54(d) 56: 18(bool) FOrdLessThan 52 55 BranchConditional 56 47 48 47: Label 58: 7(fvec4) Load 57(bigColor) 59: 7(fvec4) Load 9(color) 60: 7(fvec4) FAdd 59 58 Store 9(color) 60 Branch 49 49: Label Branch 46 48: Label Branch 61 61: Label LoopMerge 63 64 None Branch 65 65: Label 67: 22(ptr) AccessChain 9(color) 66 68: 6(float) Load 67 69: 6(float) Load 54(d) 70: 18(bool) FOrdLessThan 68 69 BranchConditional 70 62 63 62: Label 72: 7(fvec4) Load 71(bigColor1_1) 73: 7(fvec4) Load 9(color) 74: 7(fvec4) FAdd 73 72 Store 9(color) 74 76: 22(ptr) AccessChain 9(color) 75 77: 6(float) Load 76 78: 6(float) Load 54(d) 79: 18(bool) FOrdLessThan 77 78 SelectionMerge 81 None BranchConditional 79 80 81 80: Label Branch 64 81: Label 83: 7(fvec4) Load 71(bigColor1_1) 84: 7(fvec4) Load 9(color) 85: 7(fvec4) FAdd 84 83 Store 9(color) 85 Branch 64 64: Label Branch 61 63: Label Branch 86 86: Label LoopMerge 88 89 None Branch 90 90: Label 91: 22(ptr) AccessChain 9(color) 21 92: 6(float) Load 91 94: 18(bool) FOrdLessThan 92 93 BranchConditional 94 87 88 87: Label 95: 7(fvec4) Load 9(color) 97: 7(fvec4) CompositeConstruct 96 96 96 96 98: 7(fvec4) FAdd 95 97 Store 9(color) 98 Branch 89 89: Label Branch 86 88: Label Branch 99 99: Label LoopMerge 101 102 None Branch 103 103: Label 104: 22(ptr) AccessChain 9(color) 75 105: 6(float) Load 104 107: 6(float) Load 106(d2) 108: 18(bool) FOrdLessThan 105 107 SelectionMerge 110 None BranchConditional 108 109 110 109: Label 112: 22(ptr) AccessChain 9(color) 111 113: 6(float) Load 112 115: 6(float) Load 114(d3) 116: 18(bool) FOrdLessThan 113 115 Branch 110 110: Label 117: 18(bool) Phi 108 103 116 109 BranchConditional 117 100 101 100: Label 119: 7(fvec4) Load 118(bigColor1_2) 120: 7(fvec4) Load 9(color) 121: 7(fvec4) FAdd 120 119 Store 9(color) 121 Branch 102 102: Label Branch 99 101: Label Branch 122 122: Label LoopMerge 124 125 None Branch 126 126: Label 127: 22(ptr) AccessChain 9(color) 66 128: 6(float) Load 127 129: 6(float) Load 114(d3) 130: 18(bool) FOrdLessThan 128 129 BranchConditional 130 123 124 123: Label 132: 7(fvec4) Load 131(bigColor1_3) 133: 7(fvec4) Load 9(color) 134: 7(fvec4) FAdd 133 132 Store 9(color) 134 135: 22(ptr) AccessChain 9(color) 111 136: 6(float) Load 135 138: 6(float) Load 137(d4) 139: 18(bool) FOrdLessThan 136 138 SelectionMerge 141 None BranchConditional 139 140 141 140: Label Branch 124 141: Label 143: 7(fvec4) Load 131(bigColor1_3) 144: 7(fvec4) Load 9(color) 145: 7(fvec4) FAdd 144 143 Store 9(color) 145 Branch 125 125: Label Branch 122 124: Label Store 148(i) 149 Branch 150 150: Label LoopMerge 152 153 None Branch 154 154: Label 155: 146(int) Load 148(i) 158: 146(int) Load 157(Count) 159: 18(bool) SLessThan 155 158 BranchConditional 159 151 152 151: Label 161: 7(fvec4) Load 160(bigColor2) 162: 7(fvec4) Load 9(color) 163: 7(fvec4) FAdd 162 161 Store 9(color) 163 Branch 153 153: Label 164: 146(int) Load 148(i) 166: 146(int) IAdd 164 165 Store 148(i) 166 Branch 150 152: Label Branch 167 167: Label LoopMerge 169 170 None Branch 168 168: Label 172: 7(fvec4) Load 171(bigColor3) 173: 7(fvec4) Load 9(color) 174: 7(fvec4) FAdd 173 172 Store 9(color) 174 Branch 170 170: Label 175: 22(ptr) AccessChain 9(color) 21 176: 6(float) Load 175 177: 6(float) Load 106(d2) 178: 18(bool) FOrdLessThan 176 177 BranchConditional 178 167 169 169: Label Store 179(i) 149 Branch 180 180: Label LoopMerge 182 183 None Branch 184 184: Label 185: 146(int) Load 179(i) 187: 18(bool) SLessThan 185 186 BranchConditional 187 181 182 181: Label 188: 6(float) Load 114(d3) 189: 22(ptr) AccessChain 9(color) 66 190: 6(float) Load 189 191: 6(float) FAdd 190 188 192: 22(ptr) AccessChain 9(color) 66 Store 192 191 Branch 183 183: Label 193: 146(int) Load 179(i) 194: 146(int) IAdd 193 165 Store 179(i) 194 Branch 180 182: Label Store 195(i) 149 Branch 196 196: Label LoopMerge 198 199 None Branch 200 200: Label 201: 146(int) Load 195(i) 203: 18(bool) SLessThan 201 202 BranchConditional 203 197 198 197: Label 204: 22(ptr) AccessChain 9(color) 66 205: 6(float) Load 204 207: 18(bool) FOrdLessThan 205 206 SelectionMerge 209 None BranchConditional 207 208 213 208: Label 210: 22(ptr) AccessChain 9(color) 21 211: 6(float) Load 210 212: 6(float) FAdd 211 96 Store 210 212 Branch 209 213: Label 214: 22(ptr) AccessChain 9(color) 111 215: 6(float) Load 214 216: 6(float) FAdd 215 96 Store 214 216 Branch 209 209: Label 217: 22(ptr) AccessChain 9(color) 75 218: 6(float) Load 217 219: 18(bool) FOrdLessThan 218 206 SelectionMerge 221 None BranchConditional 219 220 221 220: Label 222: 22(ptr) AccessChain 9(color) 66 223: 6(float) Load 222 224: 22(ptr) AccessChain 9(color) 111 225: 6(float) Load 224 226: 18(bool) FOrdGreaterThan 223 225 SelectionMerge 228 None BranchConditional 226 227 228 227: Label Branch 228 228: Label Branch 221 221: Label Branch 199 199: Label 229: 146(int) Load 195(i) 230: 146(int) IAdd 229 165 Store 195(i) 230 Branch 196 198: Label Store 231(i) 149 Branch 232 232: Label LoopMerge 234 235 None Branch 236 236: Label 237: 146(int) Load 231(i) 239: 18(bool) SLessThan 237 238 BranchConditional 239 233 234 233: Label 240: 22(ptr) AccessChain 9(color) 66 241: 6(float) Load 240 242: 18(bool) FOrdLessThan 241 206 SelectionMerge 244 None BranchConditional 242 243 248 243: Label 245: 22(ptr) AccessChain 9(color) 21 246: 6(float) Load 245 247: 6(float) FAdd 246 96 Store 245 247 Branch 244 248: Label 249: 22(ptr) AccessChain 9(color) 111 250: 6(float) Load 249 251: 6(float) FAdd 250 96 Store 249 251 Branch 244 244: Label Branch 235 235: Label 252: 146(int) Load 231(i) 253: 146(int) IAdd 252 165 Store 231(i) 253 Branch 232 234: Label Store 254(i) 149 Branch 255 255: Label LoopMerge 257 258 None Branch 259 259: Label 260: 146(int) Load 254(i) 261: 18(bool) SLessThan 260 186 BranchConditional 261 256 257 256: Label 262: 6(float) Load 114(d3) 263: 22(ptr) AccessChain 9(color) 66 264: 6(float) Load 263 265: 6(float) FAdd 264 262 266: 22(ptr) AccessChain 9(color) 66 Store 266 265 267: 22(ptr) AccessChain 9(color) 21 268: 6(float) Load 267 269: 6(float) Load 137(d4) 270: 18(bool) FOrdLessThan 268 269 SelectionMerge 272 None BranchConditional 270 271 272 271: Label Branch 258 272: Label 274: 22(ptr) AccessChain 9(color) 75 275: 6(float) Load 274 276: 6(float) FAdd 275 96 Store 274 276 Branch 258 258: Label 277: 146(int) Load 254(i) 278: 146(int) IAdd 277 165 Store 254(i) 278 Branch 255 257: Label Store 279(i) 149 Branch 280 280: Label LoopMerge 282 283 None Branch 284 284: Label 285: 146(int) Load 279(i) 286: 18(bool) SLessThan 285 186 BranchConditional 286 281 282 281: Label 287: 6(float) Load 114(d3) 288: 22(ptr) AccessChain 9(color) 66 289: 6(float) Load 288 290: 6(float) FAdd 289 287 291: 22(ptr) AccessChain 9(color) 66 Store 291 290 292: 22(ptr) AccessChain 9(color) 21 293: 6(float) Load 292 294: 6(float) Load 137(d4) 295: 18(bool) FOrdLessThan 293 294 SelectionMerge 297 None BranchConditional 295 296 297 296: Label Branch 282 297: Label 299: 22(ptr) AccessChain 9(color) 75 300: 6(float) Load 299 301: 6(float) FAdd 300 96 Store 299 301 Branch 283 283: Label 302: 146(int) Load 279(i) 303: 146(int) IAdd 302 165 Store 279(i) 303 Branch 280 282: Label Branch 304 304: Label LoopMerge 306 307 None Branch 305 305: Label 309: 7(fvec4) Load 308(bigColor4) 310: 7(fvec4) Load 9(color) 311: 7(fvec4) FAdd 310 309 Store 9(color) 311 312: 22(ptr) AccessChain 9(color) 21 313: 6(float) Load 312 314: 6(float) Load 137(d4) 315: 18(bool) FOrdLessThan 313 314 SelectionMerge 317 None BranchConditional 315 316 317 316: Label Branch 307 317: Label 319: 22(ptr) AccessChain 9(color) 111 320: 6(float) Load 319 321: 6(float) Load 137(d4) 322: 18(bool) FOrdLessThan 320 321 SelectionMerge 324 None BranchConditional 322 323 330 323: Label 325: 6(float) Load 137(d4) 326: 22(ptr) AccessChain 9(color) 111 327: 6(float) Load 326 328: 6(float) FAdd 327 325 329: 22(ptr) AccessChain 9(color) 111 Store 329 328 Branch 324 330: Label 331: 6(float) Load 137(d4) 332: 22(ptr) AccessChain 9(color) 21 333: 6(float) Load 332 334: 6(float) FAdd 333 331 335: 22(ptr) AccessChain 9(color) 21 Store 335 334 Branch 324 324: Label Branch 307 307: Label 336: 22(ptr) AccessChain 9(color) 66 337: 6(float) Load 336 338: 6(float) Load 137(d4) 339: 18(bool) FOrdLessThan 337 338 BranchConditional 339 304 306 306: Label Branch 340 340: Label LoopMerge 342 343 None Branch 341 341: Label 345: 7(fvec4) Load 344(bigColor5) 346: 7(fvec4) Load 9(color) 347: 7(fvec4) FAdd 346 345 Store 9(color) 347 348: 22(ptr) AccessChain 9(color) 111 349: 6(float) Load 348 351: 6(float) Load 350(d5) 352: 18(bool) FOrdLessThan 349 351 SelectionMerge 354 None BranchConditional 352 353 354 353: Label 355: 6(float) Load 350(d5) 356: 22(ptr) AccessChain 9(color) 111 357: 6(float) Load 356 358: 6(float) FAdd 357 355 359: 22(ptr) AccessChain 9(color) 111 Store 359 358 Branch 354 354: Label Branch 343 343: Label 360: 22(ptr) AccessChain 9(color) 21 361: 6(float) Load 360 362: 6(float) Load 350(d5) 363: 18(bool) FOrdLessThan 361 362 BranchConditional 363 340 342 342: Label 364: 22(ptr) AccessChain 9(color) 21 365: 6(float) Load 364 367: 6(float) Load 366(d6) 368: 18(bool) FOrdLessThan 365 367 SelectionMerge 370 None BranchConditional 368 369 384 369: Label Branch 371 371: Label LoopMerge 373 374 None Branch 375 375: Label 376: 22(ptr) AccessChain 9(color) 111 377: 6(float) Load 376 378: 6(float) Load 366(d6) 379: 18(bool) FOrdLessThan 377 378 BranchConditional 379 372 373 372: Label 381: 7(fvec4) Load 380(bigColor6) 382: 7(fvec4) Load 9(color) 383: 7(fvec4) FAdd 382 381 Store 9(color) 383 Branch 374 374: Label Branch 371 373: Label Branch 370 384: Label Branch 385 385: Label LoopMerge 387 388 None Branch 389 389: Label 390: 22(ptr) AccessChain 9(color) 66 391: 6(float) Load 390 392: 6(float) Load 366(d6) 393: 18(bool) FOrdLessThan 391 392 BranchConditional 393 386 387 386: Label 394: 53(ptr) AccessChain 380(bigColor6) 66 395: 6(float) Load 394 396: 22(ptr) AccessChain 9(color) 66 397: 6(float) Load 396 398: 6(float) FAdd 397 395 399: 22(ptr) AccessChain 9(color) 66 Store 399 398 Branch 388 388: Label Branch 385 387: Label Branch 370 370: Label 400: 22(ptr) AccessChain 9(color) 21 401: 6(float) Load 400 402: 6(float) Load 366(d6) 403: 18(bool) FOrdLessThan 401 402 SelectionMerge 405 None BranchConditional 403 404 424 404: Label Branch 406 406: Label LoopMerge 408 409 None Branch 410 410: Label 411: 22(ptr) AccessChain 9(color) 111 412: 6(float) Load 411 413: 6(float) Load 366(d6) 414: 18(bool) FOrdLessThan 412 413 BranchConditional 414 407 408 407: Label 415: 7(fvec4) Load 380(bigColor6) 416: 7(fvec4) Load 9(color) 417: 7(fvec4) FAdd 416 415 Store 9(color) 417 419: 6(float) Load 418(d7) 420: 18(bool) FOrdLessThan 419 96 SelectionMerge 422 None BranchConditional 420 421 422 421: Label Branch 408 422: Label Branch 409 409: Label Branch 406 408: Label Branch 405 424: Label Branch 425 425: Label LoopMerge 427 428 None Branch 429 429: Label 430: 22(ptr) AccessChain 9(color) 66 431: 6(float) Load 430 432: 6(float) Load 366(d6) 433: 18(bool) FOrdLessThan 431 432 BranchConditional 433 426 427 426: Label 434: 53(ptr) AccessChain 380(bigColor6) 66 435: 6(float) Load 434 436: 22(ptr) AccessChain 9(color) 66 437: 6(float) Load 436 438: 6(float) FAdd 437 435 439: 22(ptr) AccessChain 9(color) 66 Store 439 438 Branch 428 428: Label Branch 425 427: Label Branch 405 405: Label Branch 440 440: Label LoopMerge 442 443 None Branch 441 441: Label 444: 6(float) Load 418(d7) 446: 18(bool) FOrdLessThan 444 445 SelectionMerge 448 None BranchConditional 446 447 448 447: Label Branch 442 448: Label 451: 7(fvec4) Load 450(bigColor7) 452: 7(fvec4) Load 9(color) 453: 7(fvec4) FAdd 452 451 Store 9(color) 453 454: 6(float) Load 418(d7) 455: 18(bool) FOrdLessThan 454 96 SelectionMerge 457 None BranchConditional 455 456 457 456: Label 458: 22(ptr) AccessChain 9(color) 66 459: 6(float) Load 458 460: 6(float) FAdd 459 96 Store 458 460 Branch 442 457: Label 462: 7(fvec4) Load 11(BaseColor) 463: 7(fvec4) Load 9(color) 464: 7(fvec4) FAdd 463 462 Store 9(color) 464 Branch 443 443: Label BranchConditional 19 440 442 442: Label Branch 465 465: Label LoopMerge 467 468 None Branch 466 466: Label 470: 6(float) Load 469(d8) 471: 18(bool) FOrdLessThan 470 445 SelectionMerge 473 None BranchConditional 471 472 473 472: Label Branch 467 473: Label 475: 7(fvec4) Load 450(bigColor7) 476: 7(fvec4) Load 9(color) 477: 7(fvec4) FAdd 476 475 Store 9(color) 477 478: 6(float) Load 469(d8) 479: 18(bool) FOrdLessThan 478 96 SelectionMerge 481 None BranchConditional 479 480 481 480: Label 482: 22(ptr) AccessChain 9(color) 66 483: 6(float) Load 482 484: 6(float) FAdd 483 96 Store 482 484 485: 6(float) Load 469(d8) 487: 18(bool) FOrdLessThan 485 486 SelectionMerge 489 None BranchConditional 487 488 493 488: Label 490: 22(ptr) AccessChain 9(color) 111 491: 6(float) Load 490 492: 6(float) FAdd 491 96 Store 490 492 Branch 489 493: Label 494: 22(ptr) AccessChain 9(color) 21 495: 6(float) Load 494 496: 6(float) FAdd 495 96 Store 494 496 Branch 489 489: Label Branch 467 481: Label 498: 7(fvec4) Load 11(BaseColor) 499: 7(fvec4) Load 9(color) 500: 7(fvec4) FAdd 499 498 Store 9(color) 500 Branch 468 468: Label 501: 22(ptr) AccessChain 9(color) 66 502: 6(float) Load 501 503: 6(float) Load 469(d8) 504: 18(bool) FOrdLessThan 502 503 BranchConditional 504 465 467 467: Label Branch 505 505: Label LoopMerge 507 508 None Branch 509 509: Label 510: 22(ptr) AccessChain 9(color) 75 511: 6(float) Load 510 513: 6(float) Load 512(d9) 514: 18(bool) FOrdLessThan 511 513 BranchConditional 514 506 507 506: Label 515: 6(float) Load 512(d9) 516: 6(float) Load 469(d8) 517: 18(bool) FOrdGreaterThan 515 516 SelectionMerge 519 None BranchConditional 517 518 519 518: Label 520: 22(ptr) AccessChain 9(color) 21 521: 6(float) Load 520 522: 6(float) Load 418(d7) 523: 18(bool) FOrdLessThanEqual 521 522 SelectionMerge 525 None BranchConditional 523 524 525 524: Label 526: 22(ptr) AccessChain 9(color) 66 527: 6(float) Load 526 529: 18(bool) FOrdEqual 527 528 SelectionMerge 531 None BranchConditional 529 530 535 530: Label 532: 22(ptr) AccessChain 9(color) 75 533: 6(float) Load 532 534: 6(float) FAdd 533 96 Store 532 534 Branch 531 535: Label Branch 507 531: Label Branch 525 525: Label Branch 519 519: Label Branch 508 508: Label Branch 505 507: Label Branch 537 537: Label LoopMerge 539 540 None Branch 541 541: Label 542: 22(ptr) AccessChain 9(color) 66 543: 6(float) Load 542 545: 6(float) Load 544(d10) 546: 18(bool) FOrdLessThan 543 545 BranchConditional 546 538 539 538: Label 547: 22(ptr) AccessChain 9(color) 111 548: 6(float) Load 547 549: 6(float) FAdd 548 96 Store 547 549 550: 22(ptr) AccessChain 9(color) 111 551: 6(float) Load 550 553: 6(float) Load 552(d11) 554: 18(bool) FOrdLessThan 551 553 SelectionMerge 556 None BranchConditional 554 555 556 555: Label 557: 22(ptr) AccessChain 9(color) 66 558: 6(float) Load 557 559: 6(float) FAdd 558 96 Store 557 559 560: 22(ptr) AccessChain 9(color) 75 561: 6(float) Load 560 563: 6(float) Load 562(d12) 564: 18(bool) FOrdLessThan 561 563 SelectionMerge 566 None BranchConditional 564 565 570 565: Label 567: 22(ptr) AccessChain 9(color) 75 568: 6(float) Load 567 569: 6(float) FAdd 568 96 Store 567 569 Branch 566 570: Label 571: 22(ptr) AccessChain 9(color) 21 572: 6(float) Load 571 573: 6(float) FAdd 572 96 Store 571 573 Branch 566 566: Label Branch 540 556: Label 575: 7(fvec4) Load 9(color) 576: 7(fvec4) CompositeConstruct 96 96 96 96 577: 7(fvec4) FAdd 575 576 Store 9(color) 577 Branch 539 540: Label Branch 537 539: Label Branch 579 579: Label LoopMerge 581 582 None Branch 583 583: Label 584: 22(ptr) AccessChain 9(color) 21 585: 6(float) Load 584 587: 18(bool) FOrdLessThan 585 586 BranchConditional 587 580 581 580: Label 589: 7(fvec4) Load 588(bigColor8) 590: 7(fvec4) Load 9(color) 591: 7(fvec4) FAdd 590 589 Store 9(color) 591 592: 22(ptr) AccessChain 9(color) 66 593: 6(float) Load 592 594: 6(float) Load 469(d8) 595: 18(bool) FOrdLessThan 593 594 SelectionMerge 597 None BranchConditional 595 596 597 596: Label 598: 22(ptr) AccessChain 9(color) 75 599: 6(float) Load 598 600: 6(float) Load 366(d6) 601: 18(bool) FOrdLessThan 599 600 SelectionMerge 603 None BranchConditional 601 602 603 602: Label Branch 582 603: Label Branch 597 597: Label 605: 53(ptr) AccessChain 588(bigColor8) 21 606: 6(float) Load 605 607: 22(ptr) AccessChain 9(color) 111 608: 6(float) Load 607 609: 6(float) FAdd 608 606 610: 22(ptr) AccessChain 9(color) 111 Store 610 609 Branch 582 582: Label Branch 579 581: Label 611: 7(fvec4) Load 9(color) 612: 7(fvec4) CompositeConstruct 96 96 96 96 613: 7(fvec4) FAdd 611 612 Store 9(color) 613 616: 7(fvec4) Load 9(color) Store 615(gl_FragColor) 616 Branch 617 617: Label LoopMerge 619 620 None Branch 621 621: Label 622: 22(ptr) AccessChain 9(color) 21 623: 6(float) Load 622 625: 6(float) Load 624(d14) 626: 18(bool) FOrdLessThan 623 625 BranchConditional 626 618 619 618: Label 627: 22(ptr) AccessChain 9(color) 111 628: 6(float) Load 627 630: 6(float) Load 629(d15) 631: 18(bool) FOrdLessThan 628 630 SelectionMerge 633 None BranchConditional 631 632 635 632: Label Return 635: Label 636: 7(fvec4) Load 9(color) 637: 7(fvec4) CompositeConstruct 96 96 96 96 638: 7(fvec4) FAdd 636 637 Store 9(color) 638 Branch 633 633: Label Branch 620 620: Label Branch 617 619: Label 639: 7(fvec4) Load 9(color) 640: 7(fvec4) CompositeConstruct 96 96 96 96 641: 7(fvec4) FAdd 639 640 Store 9(color) 641 Branch 642 642: Label LoopMerge 644 645 None Branch 646 646: Label 647: 22(ptr) AccessChain 9(color) 75 648: 6(float) Load 647 650: 6(float) Load 649(d16) 651: 18(bool) FOrdLessThan 648 650 BranchConditional 651 643 644 643: Label 652: 22(ptr) AccessChain 9(color) 75 653: 6(float) Load 652 654: 6(float) FAdd 653 96 Store 652 654 Branch 645 645: Label Branch 642 644: Label Branch 655 655: Label LoopMerge 657 658 None Branch 659 659: Label 660: 22(ptr) AccessChain 9(color) 75 661: 6(float) Load 660 662: 6(float) Load 106(d2) 663: 18(bool) FOrdLessThan 661 662 SelectionMerge 665 None BranchConditional 663 664 665 664: Label 666: 22(ptr) AccessChain 9(color) 111 667: 6(float) Load 666 668: 6(float) Load 114(d3) 669: 18(bool) FOrdLessThan 667 668 Branch 665 665: Label 670: 18(bool) Phi 663 659 669 664 BranchConditional 670 656 657 656: Label 671: 7(fvec4) Load 118(bigColor1_2) 672: 7(fvec4) Load 9(color) 673: 7(fvec4) FAdd 672 671 Store 9(color) 673 674: 22(ptr) AccessChain 9(color) 66 675: 6(float) Load 674 676: 6(float) Load 114(d3) 677: 18(bool) FOrdLessThan 675 676 SelectionMerge 679 None BranchConditional 677 678 679 678: Label Return 679: Label Branch 658 658: Label Branch 655 657: Label Branch 681 681: Label LoopMerge 683 684 None Branch 682 682: Label 685: 22(ptr) AccessChain 9(color) 111 686: 6(float) Load 685 688: 6(float) Load 687(d18) 689: 18(bool) FOrdLessThan 686 688 SelectionMerge 691 None BranchConditional 689 690 691 690: Label Return 691: Label 693: 7(fvec4) Load 9(color) 694: 7(fvec4) CompositeConstruct 96 96 96 96 695: 7(fvec4) FAdd 693 694 Store 9(color) 695 Branch 684 684: Label 696: 22(ptr) AccessChain 9(color) 21 697: 6(float) Load 696 699: 6(float) Load 698(d17) 700: 18(bool) FOrdLessThan 697 699 BranchConditional 700 681 683 683: Label Branch 701 701: Label LoopMerge 703 704 None Branch 705 705: Label 706: 22(ptr) AccessChain 9(color) 111 707: 6(float) Load 706 708: 6(float) Load 649(d16) 709: 18(bool) FOrdLessThan 707 708 BranchConditional 709 702 703 702: Label 710: 22(ptr) AccessChain 9(color) 75 711: 6(float) Load 710 712: 6(float) Load 649(d16) 713: 18(bool) FOrdLessThan 711 712 SelectionMerge 715 None BranchConditional 713 714 717 714: Label Kill 717: Label 718: 7(fvec4) Load 9(color) 719: 7(fvec4) CompositeConstruct 96 96 96 96 720: 7(fvec4) FAdd 718 719 Store 9(color) 720 Branch 715 715: Label Branch 704 704: Label Branch 701 703: Label 721: 7(fvec4) Load 9(color) 722: 7(fvec4) CompositeConstruct 96 96 96 96 723: 7(fvec4) FAdd 721 722 Store 9(color) 723 724: 7(fvec4) Load 9(color) Store 615(gl_FragColor) 724 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.loopsArtificial.frag.out000066400000000000000000000261231360464450000243230ustar00rootroot00000000000000spv.loopsArtificial.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 158 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 11 17 27 80 140 142 143 144 145 146 147 148 149 150 151 152 153 154 157 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "color" Name 11 "BaseColor" Name 17 "bigColor4" Name 27 "d4" Name 80 "d13" Name 140 "gl_FragColor" Name 142 "bigColor" Name 143 "bigColor1_1" Name 144 "bigColor1_2" Name 145 "bigColor1_3" Name 146 "bigColor2" Name 147 "bigColor3" Name 148 "bigColor5" Name 149 "bigColor6" Name 150 "bigColor7" Name 151 "bigColor8" Name 152 "d" Name 153 "d2" Name 154 "d3" Name 157 "Count" Decorate 140(gl_FragColor) Location 0 Decorate 157(Count) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypePointer Input 7(fvec4) 11(BaseColor): 10(ptr) Variable Input 17(bigColor4): 10(ptr) Variable Input 21: TypeInt 32 0 22: 21(int) Constant 0 23: TypePointer Function 6(float) 26: TypePointer Input 6(float) 27(d4): 26(ptr) Variable Input 29: TypeBool 33: 6(float) Constant 1073741824 34: 21(int) Constant 2 47: 6(float) Constant 1065353216 50: 21(int) Constant 1 77: 21(int) Constant 3 80(d13): 26(ptr) Variable Input 139: TypePointer Output 7(fvec4) 140(gl_FragColor): 139(ptr) Variable Output 142(bigColor): 10(ptr) Variable Input 143(bigColor1_1): 10(ptr) Variable Input 144(bigColor1_2): 10(ptr) Variable Input 145(bigColor1_3): 10(ptr) Variable Input 146(bigColor2): 10(ptr) Variable Input 147(bigColor3): 10(ptr) Variable Input 148(bigColor5): 10(ptr) Variable Input 149(bigColor6): 10(ptr) Variable Input 150(bigColor7): 10(ptr) Variable Input 151(bigColor8): 10(ptr) Variable Input 152(d): 26(ptr) Variable Input 153(d2): 26(ptr) Variable Input 154(d3): 26(ptr) Variable Input 155: TypeInt 32 1 156: TypePointer Input 155(int) 157(Count): 156(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(color): 8(ptr) Variable Function 12: 7(fvec4) Load 11(BaseColor) Store 9(color) 12 Branch 13 13: Label LoopMerge 15 16 None Branch 14 14: Label 18: 7(fvec4) Load 17(bigColor4) 19: 7(fvec4) Load 9(color) 20: 7(fvec4) FAdd 19 18 Store 9(color) 20 24: 23(ptr) AccessChain 9(color) 22 25: 6(float) Load 24 28: 6(float) Load 27(d4) 30: 29(bool) FOrdLessThan 25 28 SelectionMerge 32 None BranchConditional 30 31 32 31: Label 35: 23(ptr) AccessChain 9(color) 34 36: 6(float) Load 35 37: 6(float) FAdd 36 33 38: 23(ptr) AccessChain 9(color) 34 Store 38 37 39: 23(ptr) AccessChain 9(color) 34 40: 6(float) Load 39 41: 6(float) Load 27(d4) 42: 29(bool) FOrdLessThan 40 41 SelectionMerge 44 None BranchConditional 42 43 44 43: Label 45: 23(ptr) AccessChain 9(color) 22 46: 6(float) Load 45 48: 6(float) FAdd 46 47 Store 45 48 Branch 16 44: Label Branch 32 32: Label 51: 23(ptr) AccessChain 9(color) 50 52: 6(float) Load 51 53: 6(float) Load 27(d4) 54: 29(bool) FOrdLessThan 52 53 SelectionMerge 56 None BranchConditional 54 55 62 55: Label 57: 6(float) Load 27(d4) 58: 23(ptr) AccessChain 9(color) 50 59: 6(float) Load 58 60: 6(float) FAdd 59 57 61: 23(ptr) AccessChain 9(color) 50 Store 61 60 Branch 56 62: Label 63: 6(float) Load 27(d4) 64: 23(ptr) AccessChain 9(color) 22 65: 6(float) Load 64 66: 6(float) FAdd 65 63 67: 23(ptr) AccessChain 9(color) 22 Store 67 66 Branch 56 56: Label Branch 16 16: Label 68: 23(ptr) AccessChain 9(color) 34 69: 6(float) Load 68 70: 6(float) Load 27(d4) 71: 29(bool) FOrdLessThan 69 70 BranchConditional 71 13 15 15: Label Branch 72 72: Label LoopMerge 74 75 None Branch 76 76: Label 78: 23(ptr) AccessChain 9(color) 77 79: 6(float) Load 78 81: 6(float) Load 80(d13) 82: 29(bool) FOrdLessThan 79 81 BranchConditional 82 73 74 73: Label 83: 23(ptr) AccessChain 9(color) 34 84: 6(float) Load 83 85: 6(float) Load 80(d13) 86: 29(bool) FOrdLessThan 84 85 SelectionMerge 88 None BranchConditional 86 87 92 87: Label 89: 7(fvec4) Load 9(color) 90: 7(fvec4) CompositeConstruct 47 47 47 47 91: 7(fvec4) FAdd 89 90 Store 9(color) 91 Branch 88 92: Label 93: 7(fvec4) Load 9(color) 94: 7(fvec4) CompositeConstruct 47 47 47 47 95: 7(fvec4) FSub 93 94 Store 9(color) 95 Branch 88 88: Label 96: 7(fvec4) Load 17(bigColor4) 97: 7(fvec4) Load 9(color) 98: 7(fvec4) FAdd 97 96 Store 9(color) 98 99: 23(ptr) AccessChain 9(color) 22 100: 6(float) Load 99 101: 6(float) Load 27(d4) 102: 29(bool) FOrdLessThan 100 101 SelectionMerge 104 None BranchConditional 102 103 104 103: Label 105: 23(ptr) AccessChain 9(color) 34 106: 6(float) Load 105 107: 6(float) FAdd 106 33 108: 23(ptr) AccessChain 9(color) 34 Store 108 107 109: 23(ptr) AccessChain 9(color) 34 110: 6(float) Load 109 111: 6(float) Load 27(d4) 112: 29(bool) FOrdLessThan 110 111 SelectionMerge 114 None BranchConditional 112 113 114 113: Label 115: 23(ptr) AccessChain 9(color) 22 116: 6(float) Load 115 117: 6(float) FAdd 116 47 Store 115 117 Branch 75 114: Label Branch 104 104: Label 119: 23(ptr) AccessChain 9(color) 50 120: 6(float) Load 119 121: 6(float) Load 27(d4) 122: 29(bool) FOrdLessThan 120 121 SelectionMerge 124 None BranchConditional 122 123 130 123: Label 125: 6(float) Load 27(d4) 126: 23(ptr) AccessChain 9(color) 50 127: 6(float) Load 126 128: 6(float) FAdd 127 125 129: 23(ptr) AccessChain 9(color) 50 Store 129 128 Branch 124 130: Label 131: 6(float) Load 27(d4) 132: 23(ptr) AccessChain 9(color) 22 133: 6(float) Load 132 134: 6(float) FAdd 133 131 135: 23(ptr) AccessChain 9(color) 22 Store 135 134 Branch 124 124: Label Branch 75 75: Label Branch 72 74: Label 136: 7(fvec4) Load 9(color) 137: 7(fvec4) CompositeConstruct 47 47 47 47 138: 7(fvec4) FAdd 136 137 Store 9(color) 138 141: 7(fvec4) Load 9(color) Store 140(gl_FragColor) 141 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.looseUniformNoLoc.vert.out000066400000000000000000000004741360464450000246550ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.matFun.vert.out000066400000000000000000000173071360464450000224760ustar00rootroot00000000000000spv.matFun.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.matrix.frag.out000066400000000000000000000401001360464450000224720ustar00rootroot00000000000000spv.matrix.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 286 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 12 14 28 161 169 187 ExecutionMode 4 OriginUpperLeft Source GLSL 420 Name 4 "main" Name 10 "sum34" Name 12 "m1" Name 14 "m2" Name 28 "f" Name 140 "dm" Name 159 "sum3" Name 161 "v4" Name 166 "sum4" Name 169 "v3" Name 174 "m43" Name 179 "m4" Name 187 "color" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeMatrix 7(fvec4) 3 9: TypePointer Function 8 11: TypePointer Input 8 12(m1): 11(ptr) Variable Input 14(m2): 11(ptr) Variable Input 27: TypePointer Input 6(float) 28(f): 27(ptr) Variable Input 81: 6(float) Constant 1065353216 136: TypeFloat 64 137: TypeVector 136(float64_t) 4 138: TypeMatrix 137(f64vec4) 3 139: TypePointer Function 138 157: TypeVector 6(float) 3 158: TypePointer Function 157(fvec3) 160: TypePointer Input 7(fvec4) 161(v4): 160(ptr) Variable Input 165: TypePointer Function 7(fvec4) 168: TypePointer Input 157(fvec3) 169(v3): 168(ptr) Variable Input 172: TypeMatrix 157(fvec3) 4 173: TypePointer Function 172 177: TypeMatrix 7(fvec4) 4 178: TypePointer Function 177 186: TypePointer Output 7(fvec4) 187(color): 186(ptr) Variable Output 208: 6(float) Constant 0 270: TypeVector 6(float) 2 271: TypeMatrix 270(fvec2) 2 279: 6(float) Constant 1088841318 4(main): 2 Function None 3 5: Label 10(sum34): 9(ptr) Variable Function 140(dm): 139(ptr) Variable Function 159(sum3): 158(ptr) Variable Function 166(sum4): 165(ptr) Variable Function 174(m43): 173(ptr) Variable Function 179(m4): 178(ptr) Variable Function 13: 8 Load 12(m1) 15: 8 Load 14(m2) 16: 7(fvec4) CompositeExtract 13 0 17: 7(fvec4) CompositeExtract 15 0 18: 7(fvec4) FSub 16 17 19: 7(fvec4) CompositeExtract 13 1 20: 7(fvec4) CompositeExtract 15 1 21: 7(fvec4) FSub 19 20 22: 7(fvec4) CompositeExtract 13 2 23: 7(fvec4) CompositeExtract 15 2 24: 7(fvec4) FSub 22 23 25: 8 CompositeConstruct 18 21 24 Store 10(sum34) 25 26: 8 Load 12(m1) 29: 6(float) Load 28(f) 30: 8 MatrixTimesScalar 26 29 31: 8 Load 10(sum34) 32: 7(fvec4) CompositeExtract 31 0 33: 7(fvec4) CompositeExtract 30 0 34: 7(fvec4) FAdd 32 33 35: 7(fvec4) CompositeExtract 31 1 36: 7(fvec4) CompositeExtract 30 1 37: 7(fvec4) FAdd 35 36 38: 7(fvec4) CompositeExtract 31 2 39: 7(fvec4) CompositeExtract 30 2 40: 7(fvec4) FAdd 38 39 41: 8 CompositeConstruct 34 37 40 Store 10(sum34) 41 42: 6(float) Load 28(f) 43: 8 Load 12(m1) 44: 8 MatrixTimesScalar 43 42 45: 8 Load 10(sum34) 46: 7(fvec4) CompositeExtract 45 0 47: 7(fvec4) CompositeExtract 44 0 48: 7(fvec4) FAdd 46 47 49: 7(fvec4) CompositeExtract 45 1 50: 7(fvec4) CompositeExtract 44 1 51: 7(fvec4) FAdd 49 50 52: 7(fvec4) CompositeExtract 45 2 53: 7(fvec4) CompositeExtract 44 2 54: 7(fvec4) FAdd 52 53 55: 8 CompositeConstruct 48 51 54 Store 10(sum34) 55 56: 8 Load 12(m1) 57: 8 Load 14(m2) 58: 7(fvec4) CompositeExtract 56 0 59: 7(fvec4) CompositeExtract 57 0 60: 7(fvec4) FMul 58 59 61: 7(fvec4) CompositeExtract 56 1 62: 7(fvec4) CompositeExtract 57 1 63: 7(fvec4) FMul 61 62 64: 7(fvec4) CompositeExtract 56 2 65: 7(fvec4) CompositeExtract 57 2 66: 7(fvec4) FMul 64 65 67: 8 CompositeConstruct 60 63 66 68: 8 Load 10(sum34) 69: 7(fvec4) CompositeExtract 68 0 70: 7(fvec4) CompositeExtract 67 0 71: 7(fvec4) FDiv 69 70 72: 7(fvec4) CompositeExtract 68 1 73: 7(fvec4) CompositeExtract 67 1 74: 7(fvec4) FDiv 72 73 75: 7(fvec4) CompositeExtract 68 2 76: 7(fvec4) CompositeExtract 67 2 77: 7(fvec4) FDiv 75 76 78: 8 CompositeConstruct 71 74 77 Store 10(sum34) 78 79: 8 Load 12(m1) 80: 6(float) Load 28(f) 82: 6(float) FDiv 81 80 83: 8 MatrixTimesScalar 79 82 84: 8 Load 10(sum34) 85: 7(fvec4) CompositeExtract 84 0 86: 7(fvec4) CompositeExtract 83 0 87: 7(fvec4) FAdd 85 86 88: 7(fvec4) CompositeExtract 84 1 89: 7(fvec4) CompositeExtract 83 1 90: 7(fvec4) FAdd 88 89 91: 7(fvec4) CompositeExtract 84 2 92: 7(fvec4) CompositeExtract 83 2 93: 7(fvec4) FAdd 91 92 94: 8 CompositeConstruct 87 90 93 Store 10(sum34) 94 95: 6(float) Load 28(f) 96: 8 Load 12(m1) 97: 7(fvec4) CompositeConstruct 95 95 95 95 98: 7(fvec4) CompositeExtract 96 0 99: 7(fvec4) FDiv 97 98 100: 7(fvec4) CompositeExtract 96 1 101: 7(fvec4) FDiv 97 100 102: 7(fvec4) CompositeExtract 96 2 103: 7(fvec4) FDiv 97 102 104: 8 CompositeConstruct 99 101 103 105: 8 Load 10(sum34) 106: 7(fvec4) CompositeExtract 105 0 107: 7(fvec4) CompositeExtract 104 0 108: 7(fvec4) FAdd 106 107 109: 7(fvec4) CompositeExtract 105 1 110: 7(fvec4) CompositeExtract 104 1 111: 7(fvec4) FAdd 109 110 112: 7(fvec4) CompositeExtract 105 2 113: 7(fvec4) CompositeExtract 104 2 114: 7(fvec4) FAdd 112 113 115: 8 CompositeConstruct 108 111 114 Store 10(sum34) 115 116: 6(float) Load 28(f) 117: 8 Load 10(sum34) 118: 7(fvec4) CompositeConstruct 116 116 116 116 119: 7(fvec4) CompositeExtract 117 0 120: 7(fvec4) FAdd 119 118 121: 7(fvec4) CompositeExtract 117 1 122: 7(fvec4) FAdd 121 118 123: 7(fvec4) CompositeExtract 117 2 124: 7(fvec4) FAdd 123 118 125: 8 CompositeConstruct 120 122 124 Store 10(sum34) 125 126: 6(float) Load 28(f) 127: 8 Load 10(sum34) 128: 7(fvec4) CompositeConstruct 126 126 126 126 129: 7(fvec4) CompositeExtract 127 0 130: 7(fvec4) FSub 129 128 131: 7(fvec4) CompositeExtract 127 1 132: 7(fvec4) FSub 131 128 133: 7(fvec4) CompositeExtract 127 2 134: 7(fvec4) FSub 133 128 135: 8 CompositeConstruct 130 132 134 Store 10(sum34) 135 141: 8 Load 10(sum34) 142: 7(fvec4) CompositeExtract 141 0 143:137(f64vec4) FConvert 142 144: 7(fvec4) CompositeExtract 141 1 145:137(f64vec4) FConvert 144 146: 7(fvec4) CompositeExtract 141 2 147:137(f64vec4) FConvert 146 148: 138 CompositeConstruct 143 145 147 Store 140(dm) 148 149: 138 Load 140(dm) 150:137(f64vec4) CompositeExtract 149 0 151: 7(fvec4) FConvert 150 152:137(f64vec4) CompositeExtract 149 1 153: 7(fvec4) FConvert 152 154:137(f64vec4) CompositeExtract 149 2 155: 7(fvec4) FConvert 154 156: 8 CompositeConstruct 151 153 155 Store 10(sum34) 156 162: 7(fvec4) Load 161(v4) 163: 8 Load 14(m2) 164: 157(fvec3) VectorTimesMatrix 162 163 Store 159(sum3) 164 167: 8 Load 14(m2) 170: 157(fvec3) Load 169(v3) 171: 7(fvec4) MatrixTimesVector 167 170 Store 166(sum4) 171 175: 8 Load 10(sum34) 176: 172 Transpose 175 Store 174(m43) 176 180: 8 Load 12(m1) 181: 172 Load 174(m43) 182: 177 MatrixTimesMatrix 180 181 Store 179(m4) 182 183: 7(fvec4) Load 161(v4) 184: 177 Load 179(m4) 185: 7(fvec4) VectorTimesMatrix 183 184 Store 166(sum4) 185 188: 7(fvec4) Load 166(sum4) Store 187(color) 188 189: 8 Load 10(sum34) 190: 7(fvec4) CompositeConstruct 81 81 81 81 191: 7(fvec4) CompositeExtract 189 0 192: 7(fvec4) FAdd 191 190 193: 7(fvec4) CompositeExtract 189 1 194: 7(fvec4) FAdd 193 190 195: 7(fvec4) CompositeExtract 189 2 196: 7(fvec4) FAdd 195 190 197: 8 CompositeConstruct 192 194 196 Store 10(sum34) 197 198: 8 Load 10(sum34) 199: 7(fvec4) CompositeConstruct 81 81 81 81 200: 7(fvec4) CompositeExtract 198 0 201: 7(fvec4) FSub 200 199 202: 7(fvec4) CompositeExtract 198 1 203: 7(fvec4) FSub 202 199 204: 7(fvec4) CompositeExtract 198 2 205: 7(fvec4) FSub 204 199 206: 8 CompositeConstruct 201 203 205 Store 10(sum34) 206 207: 6(float) Load 28(f) 209: 7(fvec4) CompositeConstruct 207 208 208 208 210: 7(fvec4) CompositeConstruct 208 207 208 208 211: 7(fvec4) CompositeConstruct 208 208 207 208 212: 8 CompositeConstruct 209 210 211 213: 8 Load 10(sum34) 214: 7(fvec4) CompositeExtract 213 0 215: 7(fvec4) CompositeExtract 212 0 216: 7(fvec4) FAdd 214 215 217: 7(fvec4) CompositeExtract 213 1 218: 7(fvec4) CompositeExtract 212 1 219: 7(fvec4) FAdd 217 218 220: 7(fvec4) CompositeExtract 213 2 221: 7(fvec4) CompositeExtract 212 2 222: 7(fvec4) FAdd 220 221 223: 8 CompositeConstruct 216 219 222 Store 10(sum34) 223 224: 157(fvec3) Load 169(v3) 225: 6(float) Load 28(f) 226: 157(fvec3) Load 169(v3) 227: 6(float) Load 28(f) 228: 157(fvec3) Load 169(v3) 229: 6(float) Load 28(f) 230: 6(float) CompositeExtract 224 0 231: 6(float) CompositeExtract 224 1 232: 6(float) CompositeExtract 224 2 233: 6(float) CompositeExtract 226 0 234: 6(float) CompositeExtract 226 1 235: 6(float) CompositeExtract 226 2 236: 6(float) CompositeExtract 228 0 237: 6(float) CompositeExtract 228 1 238: 6(float) CompositeExtract 228 2 239: 7(fvec4) CompositeConstruct 230 231 232 225 240: 7(fvec4) CompositeConstruct 233 234 235 227 241: 7(fvec4) CompositeConstruct 236 237 238 229 242: 8 CompositeConstruct 239 240 241 243: 8 Load 10(sum34) 244: 7(fvec4) CompositeExtract 243 0 245: 7(fvec4) CompositeExtract 242 0 246: 7(fvec4) FAdd 244 245 247: 7(fvec4) CompositeExtract 243 1 248: 7(fvec4) CompositeExtract 242 1 249: 7(fvec4) FAdd 247 248 250: 7(fvec4) CompositeExtract 243 2 251: 7(fvec4) CompositeExtract 242 2 252: 7(fvec4) FAdd 250 251 253: 8 CompositeConstruct 246 249 252 Store 10(sum34) 253 254: 157(fvec3) Load 159(sum3) 255: 172 Load 174(m43) 256: 7(fvec4) VectorTimesMatrix 254 255 257: 7(fvec4) Load 166(sum4) 258: 7(fvec4) FAdd 256 257 259: 7(fvec4) Load 187(color) 260: 7(fvec4) FAdd 259 258 Store 187(color) 260 261: 172 Load 174(m43) 262: 6(float) CompositeExtract 261 0 0 263: 6(float) CompositeExtract 261 0 1 264: 6(float) CompositeExtract 261 0 2 265: 6(float) CompositeExtract 261 1 0 266: 7(fvec4) CompositeConstruct 262 263 264 265 267: 7(fvec4) Load 187(color) 268: 7(fvec4) FAdd 267 266 Store 187(color) 268 269: 6(float) Load 28(f) 272: 270(fvec2) CompositeConstruct 269 208 273: 270(fvec2) CompositeConstruct 208 269 274: 271 CompositeConstruct 272 273 275: 6(float) CompositeExtract 274 0 0 276: 6(float) CompositeExtract 274 0 1 277: 6(float) CompositeExtract 274 1 0 278: 157(fvec3) CompositeConstruct 275 276 277 280: 6(float) CompositeExtract 278 0 281: 6(float) CompositeExtract 278 1 282: 6(float) CompositeExtract 278 2 283: 7(fvec4) CompositeConstruct 280 281 282 279 284: 7(fvec4) Load 187(color) 285: 7(fvec4) FAdd 284 283 Store 187(color) 285 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.matrix2.frag.out000066400000000000000000000321221360464450000225610ustar00rootroot00000000000000spv.matrix2.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 221 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 12 16 37 38 65 87 147 158 181 218 219 220 ExecutionMode 4 OriginUpperLeft Source GLSL 150 Name 4 "main" Name 10 "m34" Name 12 "v" Name 16 "u" Name 37 "FragColor" Name 38 "Color" Name 63 "m44" Name 65 "un34" Name 87 "um43" Name 147 "um4" Name 156 "inv" Name 158 "um2" Name 179 "inv3" Name 181 "um3" Name 190 "inv4" Name 218 "colorTransform" Name 219 "m" Name 220 "n" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeMatrix 7(fvec4) 3 9: TypePointer Function 8 11: TypePointer Input 7(fvec4) 12(v): 11(ptr) Variable Input 14: TypeVector 6(float) 3 15: TypePointer Input 14(fvec3) 16(u): 15(ptr) Variable Input 19: 6(float) Constant 1082759578 20: 6(float) Constant 0 21: 7(fvec4) ConstantComposite 19 20 20 20 22: 7(fvec4) ConstantComposite 20 19 20 20 23: 7(fvec4) ConstantComposite 20 20 19 20 24: 8 ConstantComposite 21 22 23 36: TypePointer Output 7(fvec4) 37(FragColor): 36(ptr) Variable Output 38(Color): 15(ptr) Variable Input 40: 6(float) Constant 1065353216 54: TypeInt 32 0 55: 54(int) Constant 0 56: TypePointer Input 6(float) 61: TypeMatrix 7(fvec4) 4 62: TypePointer Function 61 64: TypePointer Input 8 65(un34): 64(ptr) Variable Input 85: TypeMatrix 14(fvec3) 4 86: TypePointer Input 85 87(um43): 86(ptr) Variable Input 146: TypePointer Input 61 147(um4): 146(ptr) Variable Input 153: TypeVector 6(float) 2 154: TypeMatrix 153(fvec2) 2 155: TypePointer Function 154 157: TypePointer Input 154 158(um2): 157(ptr) Variable Input 161: TypeInt 32 1 162: 161(int) Constant 0 163: TypePointer Function 6(float) 166: 161(int) Constant 1 169: 54(int) Constant 1 177: TypeMatrix 14(fvec3) 3 178: TypePointer Function 177 180: TypePointer Input 177 181(um3): 180(ptr) Variable Input 184: 161(int) Constant 2 210: 54(int) Constant 3 211: TypePointer Output 6(float) 218(colorTransform): 180(ptr) Variable Input 219(m): 146(ptr) Variable Input 220(n): 146(ptr) Variable Input 4(main): 2 Function None 3 5: Label 10(m34): 9(ptr) Variable Function 63(m44): 62(ptr) Variable Function 156(inv): 155(ptr) Variable Function 179(inv3): 178(ptr) Variable Function 190(inv4): 62(ptr) Variable Function 13: 7(fvec4) Load 12(v) 17: 14(fvec3) Load 16(u) 18: 8 OuterProduct 13 17 Store 10(m34) 18 25: 8 Load 10(m34) 26: 7(fvec4) CompositeExtract 25 0 27: 7(fvec4) CompositeExtract 24 0 28: 7(fvec4) FAdd 26 27 29: 7(fvec4) CompositeExtract 25 1 30: 7(fvec4) CompositeExtract 24 1 31: 7(fvec4) FAdd 29 30 32: 7(fvec4) CompositeExtract 25 2 33: 7(fvec4) CompositeExtract 24 2 34: 7(fvec4) FAdd 32 33 35: 8 CompositeConstruct 28 31 34 Store 10(m34) 35 39: 14(fvec3) Load 38(Color) 41: 6(float) CompositeExtract 39 0 42: 6(float) CompositeExtract 39 1 43: 6(float) CompositeExtract 39 2 44: 7(fvec4) CompositeConstruct 41 42 43 40 Store 37(FragColor) 44 45: 7(fvec4) Load 37(FragColor) 46: 8 Load 10(m34) 47: 14(fvec3) VectorTimesMatrix 45 46 48: 6(float) CompositeExtract 47 0 49: 6(float) CompositeExtract 47 1 50: 6(float) CompositeExtract 47 2 51: 7(fvec4) CompositeConstruct 48 49 50 40 52: 7(fvec4) Load 37(FragColor) 53: 7(fvec4) FMul 52 51 Store 37(FragColor) 53 57: 56(ptr) AccessChain 12(v) 55 58: 6(float) Load 57 59: 8 Load 10(m34) 60: 8 MatrixTimesScalar 59 58 Store 10(m34) 60 66: 8 Load 65(un34) 67: 6(float) CompositeExtract 66 0 0 68: 6(float) CompositeExtract 66 0 1 69: 6(float) CompositeExtract 66 0 2 70: 6(float) CompositeExtract 66 0 3 71: 6(float) CompositeExtract 66 1 0 72: 6(float) CompositeExtract 66 1 1 73: 6(float) CompositeExtract 66 1 2 74: 6(float) CompositeExtract 66 1 3 75: 6(float) CompositeExtract 66 2 0 76: 6(float) CompositeExtract 66 2 1 77: 6(float) CompositeExtract 66 2 2 78: 6(float) CompositeExtract 66 2 3 79: 7(fvec4) CompositeConstruct 67 68 69 70 80: 7(fvec4) CompositeConstruct 71 72 73 74 81: 7(fvec4) CompositeConstruct 75 76 77 78 82: 7(fvec4) CompositeConstruct 20 20 20 40 83: 61 CompositeConstruct 79 80 81 82 Store 63(m44) 83 84: 8 Load 10(m34) 88: 85 Load 87(um43) 89: 61 MatrixTimesMatrix 84 88 90: 61 Load 63(m44) 91: 7(fvec4) CompositeExtract 90 0 92: 7(fvec4) CompositeExtract 89 0 93: 7(fvec4) FAdd 91 92 94: 7(fvec4) CompositeExtract 90 1 95: 7(fvec4) CompositeExtract 89 1 96: 7(fvec4) FAdd 94 95 97: 7(fvec4) CompositeExtract 90 2 98: 7(fvec4) CompositeExtract 89 2 99: 7(fvec4) FAdd 97 98 100: 7(fvec4) CompositeExtract 90 3 101: 7(fvec4) CompositeExtract 89 3 102: 7(fvec4) FAdd 100 101 103: 61 CompositeConstruct 93 96 99 102 Store 63(m44) 103 104: 61 Load 63(m44) 105: 7(fvec4) CompositeExtract 104 0 106: 7(fvec4) FNegate 105 107: 7(fvec4) CompositeExtract 104 1 108: 7(fvec4) FNegate 107 109: 7(fvec4) CompositeExtract 104 2 110: 7(fvec4) FNegate 109 111: 7(fvec4) CompositeExtract 104 3 112: 7(fvec4) FNegate 111 113: 61 CompositeConstruct 106 108 110 112 114: 7(fvec4) Load 12(v) 115: 7(fvec4) MatrixTimesVector 113 114 116: 7(fvec4) Load 37(FragColor) 117: 7(fvec4) FAdd 116 115 Store 37(FragColor) 117 118: 61 Load 63(m44) 119: 61 Load 63(m44) 120: 7(fvec4) CompositeExtract 118 0 121: 7(fvec4) CompositeExtract 119 0 122: 7(fvec4) FMul 120 121 123: 7(fvec4) CompositeExtract 118 1 124: 7(fvec4) CompositeExtract 119 1 125: 7(fvec4) FMul 123 124 126: 7(fvec4) CompositeExtract 118 2 127: 7(fvec4) CompositeExtract 119 2 128: 7(fvec4) FMul 126 127 129: 7(fvec4) CompositeExtract 118 3 130: 7(fvec4) CompositeExtract 119 3 131: 7(fvec4) FMul 129 130 132: 61 CompositeConstruct 122 125 128 131 133: 7(fvec4) Load 37(FragColor) 134: 7(fvec4) VectorTimesMatrix 133 132 Store 37(FragColor) 134 135: 85 Load 87(um43) 136: 8 Transpose 135 Store 10(m34) 136 137: 7(fvec4) Load 37(FragColor) 138: 8 Load 10(m34) 139: 14(fvec3) VectorTimesMatrix 137 138 140: 6(float) CompositeExtract 139 0 141: 6(float) CompositeExtract 139 1 142: 6(float) CompositeExtract 139 2 143: 7(fvec4) CompositeConstruct 140 141 142 40 144: 7(fvec4) Load 37(FragColor) 145: 7(fvec4) FMul 144 143 Store 37(FragColor) 145 148: 61 Load 147(um4) 149: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 148 150: 7(fvec4) CompositeConstruct 149 149 149 149 151: 7(fvec4) Load 37(FragColor) 152: 7(fvec4) FMul 151 150 Store 37(FragColor) 152 159: 154 Load 158(um2) 160: 154 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 159 Store 156(inv) 160 164: 163(ptr) AccessChain 156(inv) 162 55 165: 6(float) Load 164 167: 163(ptr) AccessChain 156(inv) 166 55 168: 6(float) Load 167 170: 163(ptr) AccessChain 156(inv) 162 169 171: 6(float) Load 170 172: 163(ptr) AccessChain 156(inv) 166 169 173: 6(float) Load 172 174: 7(fvec4) CompositeConstruct 165 168 171 173 175: 7(fvec4) Load 37(FragColor) 176: 7(fvec4) FMul 175 174 Store 37(FragColor) 176 182: 177 Load 181(um3) 183: 177 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 182 Store 179(inv3) 183 185: 163(ptr) AccessChain 179(inv3) 184 169 186: 6(float) Load 185 187: 7(fvec4) CompositeConstruct 186 186 186 186 188: 7(fvec4) Load 37(FragColor) 189: 7(fvec4) FMul 188 187 Store 37(FragColor) 189 191: 61 Load 147(um4) 192: 61 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 191 Store 190(inv4) 192 193: 61 Load 190(inv4) 194: 7(fvec4) Load 37(FragColor) 195: 7(fvec4) VectorTimesMatrix 194 193 Store 37(FragColor) 195 196: 7(fvec4) Load 37(FragColor) 197: 8 Load 65(un34) 198: 8 Load 65(un34) 199: 7(fvec4) CompositeExtract 197 0 200: 7(fvec4) CompositeExtract 198 0 201: 7(fvec4) FMul 199 200 202: 7(fvec4) CompositeExtract 197 1 203: 7(fvec4) CompositeExtract 198 1 204: 7(fvec4) FMul 202 203 205: 7(fvec4) CompositeExtract 197 2 206: 7(fvec4) CompositeExtract 198 2 207: 7(fvec4) FMul 205 206 208: 8 CompositeConstruct 201 204 207 209: 14(fvec3) VectorTimesMatrix 196 208 212: 211(ptr) AccessChain 37(FragColor) 210 213: 6(float) Load 212 214: 6(float) CompositeExtract 209 0 215: 6(float) CompositeExtract 209 1 216: 6(float) CompositeExtract 209 2 217: 7(fvec4) CompositeConstruct 214 215 216 213 Store 37(FragColor) 217 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.memoryQualifier.frag.out000066400000000000000000000220041360464450000243430ustar00rootroot00000000000000spv.memoryQualifier.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 97 Capability Shader Capability ImageRect Capability Image1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "texel" Name 12 "i1D" Name 19 "i2D" Name 28 "i2DRect" Name 35 "i3D" Name 44 "iCube" Name 49 "Data" MemberName 49(Data) 0 "f1" MemberName 49(Data) 1 "f2" Name 50 "Buffer" MemberName 50(Buffer) 0 "f1" MemberName 50(Buffer) 1 "f2" MemberName 50(Buffer) 2 "f3" MemberName 50(Buffer) 3 "f4" MemberName 50(Buffer) 4 "i1" MemberName 50(Buffer) 5 "data" Name 52 "" Decorate 12(i1D) DescriptorSet 0 Decorate 12(i1D) Binding 0 Decorate 12(i1D) Coherent Decorate 19(i2D) DescriptorSet 0 Decorate 19(i2D) Binding 1 Decorate 19(i2D) Volatile Decorate 19(i2D) Coherent Decorate 28(i2DRect) DescriptorSet 0 Decorate 28(i2DRect) Binding 2 Decorate 28(i2DRect) Restrict Decorate 35(i3D) DescriptorSet 0 Decorate 35(i3D) Binding 3 Decorate 35(i3D) NonWritable Decorate 44(iCube) DescriptorSet 0 Decorate 44(iCube) Binding 3 Decorate 44(iCube) NonReadable MemberDecorate 49(Data) 0 Offset 0 MemberDecorate 49(Data) 1 Offset 8 MemberDecorate 50(Buffer) 0 Coherent MemberDecorate 50(Buffer) 0 Volatile MemberDecorate 50(Buffer) 0 Coherent MemberDecorate 50(Buffer) 0 Offset 0 MemberDecorate 50(Buffer) 1 Coherent MemberDecorate 50(Buffer) 1 Restrict MemberDecorate 50(Buffer) 1 Offset 8 MemberDecorate 50(Buffer) 2 Coherent MemberDecorate 50(Buffer) 2 NonWritable MemberDecorate 50(Buffer) 2 Offset 16 MemberDecorate 50(Buffer) 3 Coherent MemberDecorate 50(Buffer) 3 NonReadable MemberDecorate 50(Buffer) 3 Offset 32 MemberDecorate 50(Buffer) 4 Coherent MemberDecorate 50(Buffer) 4 Offset 48 MemberDecorate 50(Buffer) 5 Coherent MemberDecorate 50(Buffer) 5 Offset 56 Decorate 50(Buffer) BufferBlock Decorate 52 DescriptorSet 0 Decorate 52 Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypeImage 6(float) 1D nonsampled format:R32f 11: TypePointer UniformConstant 10 12(i1D): 11(ptr) Variable UniformConstant 14: TypeInt 32 1 15: 14(int) Constant 1 17: TypeImage 6(float) 2D nonsampled format:R32f 18: TypePointer UniformConstant 17 19(i2D): 18(ptr) Variable UniformConstant 21: TypeVector 14(int) 2 22: 21(ivec2) ConstantComposite 15 15 26: TypeImage 6(float) Rect nonsampled format:R32f 27: TypePointer UniformConstant 26 28(i2DRect): 27(ptr) Variable UniformConstant 33: TypeImage 6(float) 3D nonsampled format:R32f 34: TypePointer UniformConstant 33 35(i3D): 34(ptr) Variable UniformConstant 37: TypeVector 14(int) 3 38: 37(ivec3) ConstantComposite 15 15 15 42: TypeImage 6(float) Cube nonsampled format:R32f 43: TypePointer UniformConstant 42 44(iCube): 43(ptr) Variable UniformConstant 47: TypeVector 6(float) 2 48: TypeVector 6(float) 3 49(Data): TypeStruct 6(float) 47(fvec2) 50(Buffer): TypeStruct 6(float) 47(fvec2) 48(fvec3) 7(fvec4) 14(int) 49(Data) 51: TypePointer Uniform 50(Buffer) 52: 51(ptr) Variable Uniform 53: 14(int) Constant 4 54: TypePointer Uniform 14(int) 57: 14(int) Constant 0 58: TypePointer Uniform 6(float) 61: TypePointer Function 6(float) 63: TypePointer Uniform 47(fvec2) 71: 14(int) Constant 2 72: TypePointer Uniform 48(fvec3) 80: 14(int) Constant 5 83: TypeInt 32 0 84: 83(int) Constant 1 88: 83(int) Constant 3 93: 14(int) Constant 3 95: TypePointer Uniform 7(fvec4) 4(main): 2 Function None 3 5: Label 9(texel): 8(ptr) Variable Function 13: 10 Load 12(i1D) 16: 7(fvec4) ImageRead 13 15 Store 9(texel) 16 20: 17 Load 19(i2D) 23: 7(fvec4) ImageRead 20 22 24: 7(fvec4) Load 9(texel) 25: 7(fvec4) FAdd 24 23 Store 9(texel) 25 29: 26 Load 28(i2DRect) 30: 7(fvec4) ImageRead 29 22 31: 7(fvec4) Load 9(texel) 32: 7(fvec4) FAdd 31 30 Store 9(texel) 32 36: 33 Load 35(i3D) 39: 7(fvec4) ImageRead 36 38 40: 7(fvec4) Load 9(texel) 41: 7(fvec4) FAdd 40 39 Store 9(texel) 41 45: 42 Load 44(iCube) 46: 7(fvec4) Load 9(texel) ImageWrite 45 38 46 55: 54(ptr) AccessChain 52 53 56: 14(int) Load 55 59: 58(ptr) AccessChain 52 57 60: 6(float) Load 59 62: 61(ptr) AccessChain 9(texel) 56 Store 62 60 64: 63(ptr) AccessChain 52 15 65: 47(fvec2) Load 64 66: 7(fvec4) Load 9(texel) 67: 47(fvec2) VectorShuffle 66 66 0 1 68: 47(fvec2) FAdd 67 65 69: 7(fvec4) Load 9(texel) 70: 7(fvec4) VectorShuffle 69 68 4 5 2 3 Store 9(texel) 70 73: 72(ptr) AccessChain 52 71 74: 48(fvec3) Load 73 75: 7(fvec4) Load 9(texel) 76: 48(fvec3) VectorShuffle 75 75 0 1 2 77: 48(fvec3) FSub 76 74 78: 7(fvec4) Load 9(texel) 79: 7(fvec4) VectorShuffle 78 77 4 5 6 3 Store 9(texel) 79 81: 58(ptr) AccessChain 52 80 57 82: 6(float) Load 81 85: 58(ptr) AccessChain 52 80 15 84 86: 6(float) Load 85 87: 6(float) FAdd 82 86 89: 61(ptr) AccessChain 9(texel) 88 90: 6(float) Load 89 91: 6(float) FAdd 90 87 92: 61(ptr) AccessChain 9(texel) 88 Store 92 91 94: 7(fvec4) Load 9(texel) 96: 95(ptr) AccessChain 52 93 Store 96 94 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.memoryScopeSemantics.comp.out000066400000000000000000000361141360464450000253700ustar00rootroot00000000000000spv.memoryScopeSemantics.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 163 Capability Shader Capability Int64 Capability Int64Atomics 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" 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 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 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 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.memoryScopeSemantics_Error.comp.out000066400000000000000000000031161360464450000265350ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.merge-unreachable.frag.out000066400000000000000000000034231360464450000245430ustar00rootroot00000000000000spv.merge-unreachable.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.meshShaderBuiltins.mesh.out000066400000000000000000000352051360464450000250120ustar00rootroot00000000000000spv.meshShaderBuiltins.mesh // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 148 Capability ClipDistance Capability CullDistance Capability MultiViewport 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 glslang-8.13.3559/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out000066400000000000000000000302541360464450000263130ustar00rootroot00000000000000spv.meshShaderPerViewBuiltins.mesh // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 126 Capability MultiViewport 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 glslang-8.13.3559/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out000066400000000000000000000251241360464450000267170ustar00rootroot00000000000000spv.meshShaderPerViewUserDefined.mesh // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.meshShaderPerView_Errors.mesh.out000066400000000000000000000011761360464450000261360ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out000066400000000000000000000273551360464450000261400ustar00rootroot00000000000000spv.meshShaderRedeclBuiltins.mesh // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 129 Capability ClipDistance Capability CullDistance Capability MultiViewport 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 glslang-8.13.3559/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out000066400000000000000000000241171360464450000274330ustar00rootroot00000000000000spv.meshShaderRedeclPerViewBuiltins.mesh // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.meshShaderSharedMem.mesh.out000066400000000000000000000144051360464450000250650ustar00rootroot00000000000000spv.meshShaderSharedMem.mesh // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 glslang-8.13.3559/Test/baseResults/spv.meshShaderTaskMem.mesh.out000066400000000000000000000130661360464450000245630ustar00rootroot00000000000000spv.meshShaderTaskMem.mesh // Module Version 10000 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.meshShaderUserDefined.mesh.out000066400000000000000000000237161360464450000254220ustar00rootroot00000000000000spv.meshShaderUserDefined.mesh // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 138 Capability MeshShadingNV Extension "SPV_NV_mesh_shader" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint MeshNV 4 "main" 11 17 34 101 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 97 "myblock2" MemberName 97(myblock2) 0 "f" MemberName 97(myblock2) 1 "pos" MemberName 97(myblock2) 2 "m" Name 101 "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 97(myblock2) Block Decorate 101(blk2) Location 20 Decorate 137 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 68: TypePointer Output 24(fvec4) 74: 36(int) Constant 4 75: 20(float) Constant 1098907648 76: 24(fvec4) ConstantComposite 55 53 54 75 81: 36(int) Constant 5 84: 6(int) Constant 3 91: 20(float) Constant 1099431936 92: 20(float) Constant 1099956224 93: 20(float) Constant 1100480512 94: 23(fvec3) ConstantComposite 91 92 93 96: 6(int) Constant 264 97(myblock2): TypeStruct 20(float) 24(fvec4) 26 98: 6(int) Constant 81 99: TypeArray 97(myblock2) 98 100: TypePointer Output 99 101(blk2): 100(ptr) Variable Output 107: 20(float) Constant 1101004800 111: 20(float) Constant 1101529088 112: 20(float) Constant 1102053376 113: 20(float) Constant 1102577664 114: 20(float) Constant 1103101952 115: 24(fvec4) ConstantComposite 111 112 113 114 127: 20(float) Constant 1105723392 137: 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 69: 68(ptr) AccessChain 34(blk) 62 63 44 70: 24(fvec4) Load 69 71: 24(fvec4) VectorShuffle 70 67 0 4 5 6 Store 69 71 72: 6(int) Load 8(iid) 73: 6(int) UDiv 72 21 77: 68(ptr) AccessChain 34(blk) 73 74 52 78: 24(fvec4) Load 77 79: 24(fvec4) VectorShuffle 78 76 7 6 5 4 Store 77 79 80: 6(int) Load 8(iid) 82: 6(int) Load 8(iid) 83: 6(int) UDiv 82 21 85: 39(ptr) AccessChain 34(blk) 83 74 52 84 86: 20(float) Load 85 87: 39(ptr) AccessChain 34(blk) 80 81 37 44 42 Store 87 86 88: 6(int) Load 8(iid) 89: 6(int) IMul 88 21 90: 6(int) Load 16(gid) 95: 57(ptr) AccessChain 34(blk) 89 81 44 90 Store 95 94 MemoryBarrier 42 96 ControlBarrier 28 28 96 102: 6(int) Load 8(iid) 103: 6(int) Load 8(iid) 104: 6(int) ISub 103 42 105: 39(ptr) AccessChain 101(blk2) 104 37 106: 20(float) Load 105 108: 20(float) FAdd 106 107 109: 39(ptr) AccessChain 101(blk2) 102 37 Store 109 108 110: 6(int) Load 8(iid) 116: 68(ptr) AccessChain 101(blk2) 110 44 Store 116 115 117: 6(int) Load 8(iid) 118: 6(int) IAdd 117 42 119: 6(int) Load 16(gid) 120: 6(int) Load 8(iid) 121: 68(ptr) AccessChain 101(blk2) 120 44 122: 24(fvec4) Load 121 123: 68(ptr) AccessChain 101(blk2) 118 52 119 Store 123 122 124: 6(int) Load 8(iid) 125: 6(int) IAdd 124 42 126: 6(int) Load 16(gid) 128: 39(ptr) AccessChain 101(blk2) 125 52 126 28 Store 128 127 129: 6(int) Load 8(iid) 130: 6(int) IAdd 129 28 131: 6(int) Load 8(iid) 132: 6(int) IAdd 131 42 133: 6(int) Load 16(gid) 134: 68(ptr) AccessChain 101(blk2) 132 52 133 135: 24(fvec4) Load 134 136: 68(ptr) AccessChain 101(blk2) 130 52 63 Store 136 135 MemoryBarrier 42 96 ControlBarrier 28 28 96 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.meshTaskShader.task.out000066400000000000000000000232761360464450000241360ustar00rootroot00000000000000spv.meshTaskShader.task // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 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 glslang-8.13.3559/Test/baseResults/spv.multiStruct.comp.out000066400000000000000000000325301360464450000235540ustar00rootroot00000000000000spv.multiStruct.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.multiStructFuncall.frag.out000066400000000000000000000133701360464450000250430ustar00rootroot00000000000000spv.multiStructFuncall.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 66 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "S" MemberName 9(S) 0 "m" Name 12 "fooConst(struct-S-mf441;" Name 11 "s" Name 17 "foo(struct-S-mf441;" Name 16 "s" Name 20 "fooOut(struct-S-mf441;" Name 19 "s" Name 22 "S" MemberName 22(S) 0 "m" Name 23 "blockName" MemberName 23(blockName) 0 "s1" Name 25 "" Name 31 "S" MemberName 31(S) 0 "m" Name 32 "arg" Name 39 "s2" Name 42 "param" Name 48 "param" Name 51 "param" Name 62 "param" MemberDecorate 22(S) 0 ColMajor MemberDecorate 22(S) 0 Offset 0 MemberDecorate 22(S) 0 MatrixStride 16 MemberDecorate 23(blockName) 0 Offset 0 Decorate 23(blockName) BufferBlock Decorate 25 DescriptorSet 0 Decorate 25 Binding 0 MemberDecorate 31(S) 0 ColMajor 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeMatrix 7(fvec4) 4 9(S): TypeStruct 8 10: TypeFunction 2 9(S) 14: TypePointer Function 9(S) 15: TypeFunction 2 14(ptr) 22(S): TypeStruct 8 23(blockName): TypeStruct 22(S) 24: TypePointer Uniform 23(blockName) 25: 24(ptr) Variable Uniform 26: TypeInt 32 1 27: 26(int) Constant 0 28: TypePointer Uniform 22(S) 31(S): TypeStruct 8 34: TypePointer Function 8 38: TypePointer Private 9(S) 39(s2): 38(ptr) Variable Private 60: TypePointer Uniform 8 4(main): 2 Function None 3 5: Label 32(arg): 14(ptr) Variable Function 42(param): 14(ptr) Variable Function 48(param): 14(ptr) Variable Function 51(param): 14(ptr) Variable Function 62(param): 14(ptr) Variable Function 29: 28(ptr) AccessChain 25 27 30: 22(S) Load 29 33: 8 CompositeExtract 30 0 35: 34(ptr) AccessChain 32(arg) 27 Store 35 33 36: 9(S) Load 32(arg) 37: 2 FunctionCall 12(fooConst(struct-S-mf441;) 36 40: 9(S) Load 39(s2) 41: 2 FunctionCall 12(fooConst(struct-S-mf441;) 40 43: 28(ptr) AccessChain 25 27 44: 22(S) Load 43 45: 8 CompositeExtract 44 0 46: 34(ptr) AccessChain 42(param) 27 Store 46 45 47: 2 FunctionCall 17(foo(struct-S-mf441;) 42(param) 49: 9(S) Load 39(s2) Store 48(param) 49 50: 2 FunctionCall 17(foo(struct-S-mf441;) 48(param) 52: 28(ptr) AccessChain 25 27 53: 22(S) Load 52 54: 8 CompositeExtract 53 0 55: 34(ptr) AccessChain 51(param) 27 Store 55 54 56: 2 FunctionCall 20(fooOut(struct-S-mf441;) 51(param) 57: 9(S) Load 51(param) 58: 28(ptr) AccessChain 25 27 59: 8 CompositeExtract 57 0 61: 60(ptr) AccessChain 58 27 Store 61 59 63: 9(S) Load 39(s2) Store 62(param) 63 64: 2 FunctionCall 20(fooOut(struct-S-mf441;) 62(param) 65: 9(S) Load 62(param) Store 39(s2) 65 Return FunctionEnd 12(fooConst(struct-S-mf441;): 2 Function None 10 11(s): 9(S) FunctionParameter 13: Label Return FunctionEnd 17(foo(struct-S-mf441;): 2 Function None 15 16(s): 14(ptr) FunctionParameter 18: Label Return FunctionEnd 20(fooOut(struct-S-mf441;): 2 Function None 15 19(s): 14(ptr) FunctionParameter 21: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.multiView.frag.out000066400000000000000000000032151360464450000231610ustar00rootroot00000000000000spv.multiView.frag // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 17 Capability Shader Capability MultiView 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 9 12 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_EXT_multiview" Name 4 "main" Name 9 "color" Name 12 "gl_ViewIndex" Decorate 12(gl_ViewIndex) Flat Decorate 12(gl_ViewIndex) BuiltIn ViewIndex 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Output 7(fvec4) 9(color): 8(ptr) Variable Output 10: TypeInt 32 1 11: TypePointer Input 10(int) 12(gl_ViewIndex): 11(ptr) Variable Input 15: 6(float) Constant 0 4(main): 2 Function None 3 5: Label 13: 10(int) Load 12(gl_ViewIndex) 14: 6(float) ConvertSToF 13 16: 7(fvec4) CompositeConstruct 14 15 15 15 Store 9(color) 16 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out000066400000000000000000000105751360464450000266200ustar00rootroot00000000000000spv.multiviewPerViewAttributes.tesc // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.multiviewPerViewAttributes.vert.out000066400000000000000000000063651360464450000266440ustar00rootroot00000000000000spv.multiviewPerViewAttributes.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.newTexture.frag.out000066400000000000000000000503511360464450000233510ustar00rootroot00000000000000spv.newTexture.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 23(sCubeArrayShadow) DescriptorSet 0 Decorate 23(sCubeArrayShadow) Binding 0 Decorate 42(s3D) DescriptorSet 0 Decorate 42(s3D) Binding 0 Decorate 51(s2DArray) DescriptorSet 0 Decorate 51(s2DArray) Binding 0 Decorate 64(s2DShadow) DescriptorSet 0 Decorate 64(s2DShadow) Binding 0 Decorate 81(ic3D) Flat Decorate 84(ic1D) Flat Decorate 92(ic2D) Flat Decorate 102(sr) DescriptorSet 0 Decorate 102(sr) Binding 0 Decorate 128(sCube) DescriptorSet 0 Decorate 128(sCube) Binding 0 Decorate 139(s2DArrayShadow) DescriptorSet 0 Decorate 139(s2DArrayShadow) Binding 0 Decorate 171(is2D) DescriptorSet 0 Decorate 171(is2D) Binding 0 Decorate 208(is3D) DescriptorSet 0 Decorate 208(is3D) Binding 0 Decorate 220(isCube) DescriptorSet 0 Decorate 220(isCube) Binding 0 Decorate 232(is2DArray) DescriptorSet 0 Decorate 232(is2DArray) Binding 0 Decorate 247(sCubeShadow) DescriptorSet 0 Decorate 247(sCubeShadow) Binding 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 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 glslang-8.13.3559/Test/baseResults/spv.noBuiltInLoc.vert.out000066400000000000000000000103541360464450000236000ustar00rootroot00000000000000spv.noBuiltInLoc.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.noDeadDecorations.vert.out000066400000000000000000000054441360464450000246300ustar00rootroot00000000000000spv.noDeadDecorations.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 32 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 22 Source ESSL 310 Name 4 "main" Name 10 "func(f1;" Name 9 "a" Name 20 "gl_PerVertex" MemberName 20(gl_PerVertex) 0 "gl_Position" MemberName 20(gl_PerVertex) 1 "gl_PointSize" Name 22 "" Name 26 "param" Decorate 10(func(f1;) RelaxedPrecision Decorate 9(a) RelaxedPrecision Decorate 12 RelaxedPrecision Decorate 13 RelaxedPrecision MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize Decorate 20(gl_PerVertex) Block Decorate 27 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeFunction 6(float) 7(ptr) 16: 6(float) Constant 3212836864 19: TypeVector 6(float) 4 20(gl_PerVertex): TypeStruct 19(fvec4) 6(float) 21: TypePointer Output 20(gl_PerVertex) 22: 21(ptr) Variable Output 23: TypeInt 32 1 24: 23(int) Constant 0 25: 6(float) Constant 0 28: TypeInt 32 0 29: 28(int) Constant 0 30: TypePointer Output 6(float) 4(main): 2 Function None 3 5: Label 26(param): 7(ptr) Variable Function Store 26(param) 25 27: 6(float) FunctionCall 10(func(f1;) 26(param) 31: 30(ptr) AccessChain 22 24 29 Store 31 27 Return FunctionEnd 10(func(f1;): 6(float) Function None 8 9(a): 7(ptr) FunctionParameter 11: Label 12: 6(float) Load 9(a) 13: 6(float) FNegate 12 ReturnValue 13 FunctionEnd glslang-8.13.3559/Test/baseResults/spv.noLocation.vert.out000066400000000000000000000011041360464450000233350ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.noWorkgroup.comp.out000066400000000000000000000023241360464450000235470ustar00rootroot00000000000000spv.noWorkgroup.comp // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 12 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" ExecutionMode 4 LocalSize 1 1 1 Source GLSL 450 Name 4 "main" Decorate 7 SpecId 18 Decorate 8 SpecId 10 Decorate 9 SpecId 19 Decorate 11 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: 6(int) SpecConstant 1 8: 6(int) SpecConstant 1 9: 6(int) SpecConstant 1 10: TypeVector 6(int) 3 11: 10(ivec3) SpecConstantComposite 7 8 9 4(main): 2 Function None 3 5: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.nonSquare.vert.out000066400000000000000000000126041360464450000232120ustar00rootroot00000000000000spv.nonSquare.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 90 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 12 22 28 55 Source GLSL 140 Name 4 "main" Name 9 "a" Name 12 "v3" Name 16 "m23" Name 19 "b" Name 22 "m32" Name 28 "gl_Position" Name 55 "v4" Decorate 28(gl_Position) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 2 8: TypePointer Function 7(fvec2) 10: TypeVector 6(float) 3 11: TypePointer Input 10(fvec3) 12(v3): 11(ptr) Variable Input 14: TypeMatrix 10(fvec3) 2 15: TypePointer Function 14 20: TypeMatrix 7(fvec2) 3 21: TypePointer Output 20 22(m32): 21(ptr) Variable Output 26: TypeVector 6(float) 4 27: TypePointer Output 26(fvec4) 28(gl_Position): 27(ptr) Variable Output 31: TypeMatrix 10(fvec3) 3 35: 6(float) Constant 0 40: TypeMatrix 26(fvec4) 4 41: 6(float) Constant 1077936128 42: 6(float) Constant 1086324736 43: 26(fvec4) ConstantComposite 41 42 35 35 44: 6(float) Constant 1091567616 45: 6(float) Constant 1094713344 46: 26(fvec4) ConstantComposite 44 45 35 35 47: 6(float) Constant 1097859072 48: 6(float) Constant 1099956224 49: 26(fvec4) ConstantComposite 47 48 35 35 50: 6(float) Constant 1101529088 51: 6(float) Constant 1103101952 52: 26(fvec4) ConstantComposite 50 51 35 35 53: 40 ConstantComposite 43 46 49 52 54: TypePointer Input 26(fvec4) 55(v4): 54(ptr) Variable Input 59: 6(float) Constant 1112014848 60: 6(float) Constant 1121714176 61: 6(float) Constant 1126825984 62: 6(float) Constant 1130758144 63: 26(fvec4) ConstantComposite 59 60 61 62 65: 6(float) Constant 1106247680 66: 6(float) Constant 1114636288 67: 26(fvec4) ConstantComposite 65 66 35 35 69: 6(float) Constant 1101004800 70: 6(float) Constant 1092616192 71: 6(float) Constant 1084227584 72: 26(fvec4) ConstantComposite 69 70 42 71 74: 7(fvec2) ConstantComposite 70 69 75: TypeMatrix 26(fvec4) 2 76: 26(fvec4) ConstantComposite 41 35 35 35 77: 26(fvec4) ConstantComposite 35 41 35 35 78: 75 ConstantComposite 76 77 79: TypeMatrix 7(fvec2) 4 80: 6(float) Constant 1065353216 81: 6(float) Constant 1073741824 82: 7(fvec2) ConstantComposite 80 81 83: 6(float) Constant 1082130432 84: 7(fvec2) ConstantComposite 41 83 85: 7(fvec2) ConstantComposite 71 42 86: 6(float) Constant 1088421888 87: 6(float) Constant 1090519040 88: 7(fvec2) ConstantComposite 86 87 89: 79 ConstantComposite 82 84 85 88 4(main): 2 Function None 3 5: Label 9(a): 8(ptr) Variable Function 16(m23): 15(ptr) Variable Function 19(b): 8(ptr) Variable Function 13: 10(fvec3) Load 12(v3) 17: 14 Load 16(m23) 18: 7(fvec2) VectorTimesMatrix 13 17 Store 9(a) 18 23: 20 Load 22(m32) 24: 10(fvec3) Load 12(v3) 25: 7(fvec2) MatrixTimesVector 23 24 Store 19(b) 25 29: 14 Load 16(m23) 30: 20 Load 22(m32) 32: 31 MatrixTimesMatrix 29 30 33: 10(fvec3) Load 12(v3) 34: 10(fvec3) MatrixTimesVector 32 33 36: 6(float) CompositeExtract 34 0 37: 6(float) CompositeExtract 34 1 38: 6(float) CompositeExtract 34 2 39: 26(fvec4) CompositeConstruct 36 37 38 35 56: 26(fvec4) Load 55(v4) 57: 26(fvec4) MatrixTimesVector 53 56 58: 26(fvec4) FAdd 39 57 64: 26(fvec4) FAdd 58 63 68: 26(fvec4) FAdd 64 67 73: 26(fvec4) FAdd 68 72 Store 28(gl_Position) 73 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.nonuniform.frag.out000066400000000000000000000462431360464450000233760ustar00rootroot00000000000000spv.nonuniform.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 212 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" 35 92 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 32 "b" Name 35 "nu_inv4" Name 41 "nu_gf" Name 47 "inputAttachmentDyn" Name 48 "dyn_i" Name 64 "uniformTexelBufferDyn" Name 78 "storageTexelBufferDyn" Name 87 "uname" MemberName 87(uname) 0 "a" Name 90 "uniformBuffer" Name 92 "nu_ii" Name 99 "bname" MemberName 99(bname) 0 "b" Name 102 "storageBuffer" Name 112 "sampledImage" Name 127 "storageImage" Name 139 "inputAttachment" Name 149 "uniformTexelBuffer" Name 160 "storageTexelBuffer" Name 170 "v" Name 185 "uv" Name 195 "m" Name 203 "S" MemberName 203(S) 0 "a" Name 205 "s" Decorate 13 DecorationNonUniformEXT Decorate 17(nu_li) DecorationNonUniformEXT Decorate 19 DecorationNonUniformEXT Decorate 24 DecorationNonUniformEXT Decorate 28 DecorationNonUniformEXT Decorate 29 DecorationNonUniformEXT Decorate 35(nu_inv4) Location 0 Decorate 35(nu_inv4) DecorationNonUniformEXT Decorate 40 DecorationNonUniformEXT Decorate 41(nu_gf) DecorationNonUniformEXT Decorate 42 DecorationNonUniformEXT Decorate 43 DecorationNonUniformEXT Decorate 47(inputAttachmentDyn) DescriptorSet 0 Decorate 47(inputAttachmentDyn) Binding 0 Decorate 47(inputAttachmentDyn) InputAttachmentIndex 0 Decorate 64(uniformTexelBufferDyn) DescriptorSet 0 Decorate 64(uniformTexelBufferDyn) Binding 1 Decorate 78(storageTexelBufferDyn) DescriptorSet 0 Decorate 78(storageTexelBufferDyn) Binding 2 MemberDecorate 87(uname) 0 Offset 0 Decorate 87(uname) Block Decorate 90(uniformBuffer) DescriptorSet 0 Decorate 90(uniformBuffer) Binding 3 Decorate 92(nu_ii) Flat Decorate 92(nu_ii) Location 1 Decorate 92(nu_ii) DecorationNonUniformEXT Decorate 93 DecorationNonUniformEXT Decorate 96 DecorationNonUniformEXT MemberDecorate 99(bname) 0 Offset 0 Decorate 99(bname) BufferBlock Decorate 102(storageBuffer) DescriptorSet 0 Decorate 102(storageBuffer) Binding 4 Decorate 103 DecorationNonUniformEXT Decorate 105 DecorationNonUniformEXT Decorate 112(sampledImage) DescriptorSet 0 Decorate 112(sampledImage) Binding 5 Decorate 113 DecorationNonUniformEXT Decorate 116 DecorationNonUniformEXT Decorate 127(storageImage) DescriptorSet 0 Decorate 127(storageImage) Binding 6 Decorate 128 DecorationNonUniformEXT Decorate 131 DecorationNonUniformEXT Decorate 139(inputAttachment) DescriptorSet 0 Decorate 139(inputAttachment) Binding 7 Decorate 139(inputAttachment) InputAttachmentIndex 1 Decorate 140 DecorationNonUniformEXT Decorate 142 DecorationNonUniformEXT Decorate 149(uniformTexelBuffer) DescriptorSet 0 Decorate 149(uniformTexelBuffer) Binding 8 Decorate 150 DecorationNonUniformEXT Decorate 152 DecorationNonUniformEXT Decorate 160(storageTexelBuffer) DescriptorSet 0 Decorate 160(storageTexelBuffer) Binding 9 Decorate 161 DecorationNonUniformEXT Decorate 163 DecorationNonUniformEXT Decorate 170(v) DecorationNonUniformEXT Decorate 173 DecorationNonUniformEXT Decorate 175 DecorationNonUniformEXT Decorate 180 DecorationNonUniformEXT Decorate 182 DecorationNonUniformEXT Decorate 186 DecorationNonUniformEXT Decorate 188 DecorationNonUniformEXT Decorate 190 DecorationNonUniformEXT Decorate 195(m) DecorationNonUniformEXT Decorate 197 DecorationNonUniformEXT Decorate 205(s) DecorationNonUniformEXT Decorate 207 DecorationNonUniformEXT Decorate 209 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 30: TypeFloat 32 31: TypePointer Function 30(float) 33: TypeVector 30(float) 4 34: TypePointer Input 33(fvec4) 35(nu_inv4): 34(ptr) Variable Input 36: TypeInt 32 0 37: 36(int) Constant 0 38: TypePointer Input 30(float) 44: TypeImage 30(float) SubpassData nonsampled format:Unknown 45: TypeRuntimeArray 44 46: TypePointer UniformConstant 45 47(inputAttachmentDyn): 46(ptr) Variable UniformConstant 50: TypePointer UniformConstant 44 53: 6(int) Constant 0 54: TypeVector 6(int) 2 55: 54(ivec2) ConstantComposite 53 53 60: TypeImage 30(float) Buffer sampled format:Unknown 61: TypeSampledImage 60 62: TypeRuntimeArray 61 63: TypePointer UniformConstant 62 64(uniformTexelBufferDyn): 63(ptr) Variable UniformConstant 66: TypePointer UniformConstant 61 69: 6(int) Constant 1 75: TypeImage 30(float) Buffer nonsampled format:R32f 76: TypeRuntimeArray 75 77: TypePointer UniformConstant 76 78(storageTexelBufferDyn): 77(ptr) Variable UniformConstant 80: TypePointer UniformConstant 75 87(uname): TypeStruct 30(float) 88: TypeRuntimeArray 87(uname) 89: TypePointer Uniform 88 90(uniformBuffer): 89(ptr) Variable Uniform 91: TypePointer Input 6(int) 92(nu_ii): 91(ptr) Variable Input 94: TypePointer Uniform 30(float) 99(bname): TypeStruct 30(float) 100: TypeRuntimeArray 99(bname) 101: TypePointer Uniform 100 102(storageBuffer): 101(ptr) Variable Uniform 108: TypeImage 30(float) 2D sampled format:Unknown 109: TypeSampledImage 108 110: TypeRuntimeArray 109 111: TypePointer UniformConstant 110 112(sampledImage): 111(ptr) Variable UniformConstant 114: TypePointer UniformConstant 109 117: TypeVector 30(float) 2 118: 30(float) Constant 1056964608 119: 117(fvec2) ConstantComposite 118 118 124: TypeImage 30(float) 2D nonsampled format:R32f 125: TypeRuntimeArray 124 126: TypePointer UniformConstant 125 127(storageImage): 126(ptr) Variable UniformConstant 129: TypePointer UniformConstant 124 132: 54(ivec2) ConstantComposite 69 69 137: TypeRuntimeArray 44 138: TypePointer UniformConstant 137 139(inputAttachment): 138(ptr) Variable UniformConstant 147: TypeRuntimeArray 61 148: TypePointer UniformConstant 147 149(uniformTexelBuffer): 148(ptr) Variable UniformConstant 158: TypeRuntimeArray 75 159: TypePointer UniformConstant 158 160(storageTexelBuffer): 159(ptr) Variable UniformConstant 168: TypeVector 6(int) 4 169: TypePointer Function 168(ivec4) 171: 36(int) Constant 1 178: 36(int) Constant 2 193: TypeMatrix 33(fvec4) 4 194: TypePointer Function 193 203(S): TypeStruct 6(int) 204: TypePointer Function 203(S) 4(main): 2 Function None 3 5: Label 16(a): 7(ptr) Variable Function 17(nu_li): 7(ptr) Variable Function 18(param): 7(ptr) Variable Function 20(param): 7(ptr) Variable Function 32(b): 31(ptr) Variable Function 41(nu_gf): 31(ptr) Variable Function 48(dyn_i): 7(ptr) Variable Function 170(v): 169(ptr) Variable Function 185(uv): 169(ptr) Variable Function 195(m): 194(ptr) Variable Function 205(s): 204(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 39: 38(ptr) AccessChain 35(nu_inv4) 37 40: 30(float) Load 39 42: 30(float) Load 41(nu_gf) 43: 30(float) FMul 40 42 Store 32(b) 43 49: 6(int) Load 48(dyn_i) 51: 50(ptr) AccessChain 47(inputAttachmentDyn) 49 52: 44 Load 51 56: 33(fvec4) ImageRead 52 55 57: 30(float) CompositeExtract 56 0 58: 30(float) Load 32(b) 59: 30(float) FAdd 58 57 Store 32(b) 59 65: 6(int) Load 48(dyn_i) 67: 66(ptr) AccessChain 64(uniformTexelBufferDyn) 65 68: 61 Load 67 70: 60 Image 68 71: 33(fvec4) ImageFetch 70 69 72: 30(float) CompositeExtract 71 0 73: 30(float) Load 32(b) 74: 30(float) FAdd 73 72 Store 32(b) 74 79: 6(int) Load 48(dyn_i) 81: 80(ptr) AccessChain 78(storageTexelBufferDyn) 79 82: 75 Load 81 83: 33(fvec4) ImageRead 82 69 84: 30(float) CompositeExtract 83 0 85: 30(float) Load 32(b) 86: 30(float) FAdd 85 84 Store 32(b) 86 93: 6(int) Load 92(nu_ii) 95: 94(ptr) AccessChain 90(uniformBuffer) 93 53 96: 30(float) Load 95 97: 30(float) Load 32(b) 98: 30(float) FAdd 97 96 Store 32(b) 98 103: 6(int) Load 92(nu_ii) 104: 94(ptr) AccessChain 102(storageBuffer) 103 53 105: 30(float) Load 104 106: 30(float) Load 32(b) 107: 30(float) FAdd 106 105 Store 32(b) 107 113: 6(int) Load 92(nu_ii) 115: 114(ptr) AccessChain 112(sampledImage) 113 116: 109 Load 115 120: 33(fvec4) ImageSampleImplicitLod 116 119 121: 30(float) CompositeExtract 120 0 122: 30(float) Load 32(b) 123: 30(float) FAdd 122 121 Store 32(b) 123 128: 6(int) Load 92(nu_ii) 130: 129(ptr) AccessChain 127(storageImage) 128 131: 124 Load 130 133: 33(fvec4) ImageRead 131 132 134: 30(float) CompositeExtract 133 0 135: 30(float) Load 32(b) 136: 30(float) FAdd 135 134 Store 32(b) 136 140: 6(int) Load 92(nu_ii) 141: 50(ptr) AccessChain 139(inputAttachment) 140 142: 44 Load 141 143: 33(fvec4) ImageRead 142 55 144: 30(float) CompositeExtract 143 0 145: 30(float) Load 32(b) 146: 30(float) FAdd 145 144 Store 32(b) 146 150: 6(int) Load 92(nu_ii) 151: 66(ptr) AccessChain 149(uniformTexelBuffer) 150 152: 61 Load 151 153: 60 Image 152 154: 33(fvec4) ImageFetch 153 69 155: 30(float) CompositeExtract 154 0 156: 30(float) Load 32(b) 157: 30(float) FAdd 156 155 Store 32(b) 157 161: 6(int) Load 92(nu_ii) 162: 80(ptr) AccessChain 160(storageTexelBuffer) 161 163: 75 Load 162 164: 33(fvec4) ImageRead 163 69 165: 30(float) CompositeExtract 164 0 166: 30(float) Load 32(b) 167: 30(float) FAdd 166 165 Store 32(b) 167 172: 7(ptr) AccessChain 170(v) 171 173: 6(int) Load 172 174: 94(ptr) AccessChain 90(uniformBuffer) 173 53 175: 30(float) Load 174 176: 30(float) Load 32(b) 177: 30(float) FAdd 176 175 Store 32(b) 177 179: 7(ptr) AccessChain 170(v) 178 180: 6(int) Load 179 181: 94(ptr) AccessChain 90(uniformBuffer) 180 53 182: 30(float) Load 181 183: 30(float) Load 32(b) 184: 30(float) FAdd 183 182 Store 32(b) 184 186: 6(int) Load 92(nu_ii) 187: 7(ptr) AccessChain 185(uv) 186 188: 6(int) Load 187 189: 94(ptr) AccessChain 90(uniformBuffer) 188 53 190: 30(float) Load 189 191: 30(float) Load 32(b) 192: 30(float) FAdd 191 190 Store 32(b) 192 196: 31(ptr) AccessChain 195(m) 26 178 197: 30(float) Load 196 198: 6(int) ConvertFToS 197 199: 94(ptr) AccessChain 90(uniformBuffer) 198 53 200: 30(float) Load 199 201: 30(float) Load 32(b) 202: 30(float) FAdd 201 200 Store 32(b) 202 206: 7(ptr) AccessChain 205(s) 53 207: 6(int) Load 206 208: 94(ptr) AccessChain 90(uniformBuffer) 207 53 209: 30(float) Load 208 210: 30(float) Load 32(b) 211: 30(float) FAdd 210 209 Store 32(b) 211 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 glslang-8.13.3559/Test/baseResults/spv.nonuniform2.frag.out000066400000000000000000000052161360464450000234530ustar00rootroot00000000000000spv.nonuniform2.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.offsets.frag.out000066400000000000000000000051711360464450000226500ustar00rootroot00000000000000spv.offsets.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.paramMemory.frag.out000066400000000000000000000141001360464450000234600ustar00rootroot00000000000000spv.paramMemory.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.perprimitiveNV.frag.out000066400000000000000000000047501360464450000241640ustar00rootroot00000000000000spv.perprimitiveNV.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.pp.line.frag.out000066400000000000000000000146311360464450000225450ustar00rootroot00000000000000spv.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): 80008 // 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 0 Decorate 53(gl_FragColor) 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 glslang-8.13.3559/Test/baseResults/spv.precise.tesc.out000066400000000000000000000135401360464450000226470ustar00rootroot00000000000000spv.precise.tesc // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.precise.tese.out000066400000000000000000000221361360464450000226520ustar00rootroot00000000000000spv.precise.tese // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 119 Capability Tessellation 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationEvaluation 4 "main" 12 21 62 112 ExecutionMode 4 Triangles ExecutionMode 4 SpacingEqual ExecutionMode 4 VertexOrderCcw Source ESSL 310 SourceExtension "GL_EXT_gpu_shader5" SourceExtension "GL_EXT_shader_io_blocks" SourceExtension "GL_EXT_tessellation_shader" Name 4 "main" Name 9 "pos" Name 12 "gl_TessCoord" Name 21 "in_te_position" Name 45 "f" Name 62 "in_f_color" Name 73 "bits" Name 77 "numBits" Name 78 "i" Name 110 "gl_PerVertex" MemberName 110(gl_PerVertex) 0 "gl_Position" MemberName 110(gl_PerVertex) 1 "gl_PointSize" Name 112 "" Decorate 12(gl_TessCoord) BuiltIn TessCoord Decorate 21(in_te_position) Location 0 Decorate 27 NoContraction Decorate 34 NoContraction Decorate 35 NoContraction Decorate 42 NoContraction Decorate 43 NoContraction Decorate 62(in_f_color) RelaxedPrecision Decorate 62(in_f_color) Location 0 Decorate 67 RelaxedPrecision Decorate 68 RelaxedPrecision Decorate 69 RelaxedPrecision Decorate 70 RelaxedPrecision Decorate 97 NoContraction Decorate 99 NoContraction Decorate 101 NoContraction Decorate 106 NoContraction Decorate 109 NoContraction MemberDecorate 110(gl_PerVertex) 0 BuiltIn Position MemberDecorate 110(gl_PerVertex) 1 BuiltIn PointSize Decorate 110(gl_PerVertex) Block 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 2 8: TypePointer Function 7(fvec2) 10: TypeVector 6(float) 3 11: TypePointer Input 10(fvec3) 12(gl_TessCoord): 11(ptr) Variable Input 13: TypeInt 32 0 14: 13(int) Constant 0 15: TypePointer Input 6(float) 18: 13(int) Constant 32 19: TypeArray 7(fvec2) 18 20: TypePointer Input 19 21(in_te_position): 20(ptr) Variable Input 22: TypeInt 32 1 23: 22(int) Constant 0 24: TypePointer Input 7(fvec2) 28: 13(int) Constant 1 31: 22(int) Constant 1 36: 13(int) Constant 2 39: 22(int) Constant 2 44: TypePointer Function 6(float) 46: 6(float) Constant 1077936128 57: 6(float) Constant 1056964608 60: TypeVector 6(float) 4 61: TypePointer Output 60(fvec4) 62(in_f_color): 61(ptr) Variable Output 66: 6(float) Constant 1065353216 71: TypeVector 13(int) 2 72: TypePointer Function 71(ivec2) 76: TypePointer Function 13(int) 85: TypeBool 105: 6(float) Constant 1025758986 110(gl_PerVertex): TypeStruct 60(fvec4) 6(float) 111: TypePointer Output 110(gl_PerVertex) 112: 111(ptr) Variable Output 114: 6(float) Constant 0 4(main): 2 Function None 3 5: Label 9(pos): 8(ptr) Variable Function 45(f): 44(ptr) Variable Function 73(bits): 72(ptr) Variable Function 77(numBits): 76(ptr) Variable Function 78(i): 76(ptr) Variable Function 16: 15(ptr) AccessChain 12(gl_TessCoord) 14 17: 6(float) Load 16 25: 24(ptr) AccessChain 21(in_te_position) 23 26: 7(fvec2) Load 25 27: 7(fvec2) VectorTimesScalar 26 17 29: 15(ptr) AccessChain 12(gl_TessCoord) 28 30: 6(float) Load 29 32: 24(ptr) AccessChain 21(in_te_position) 31 33: 7(fvec2) Load 32 34: 7(fvec2) VectorTimesScalar 33 30 35: 7(fvec2) FAdd 27 34 37: 15(ptr) AccessChain 12(gl_TessCoord) 36 38: 6(float) Load 37 40: 24(ptr) AccessChain 21(in_te_position) 39 41: 7(fvec2) Load 40 42: 7(fvec2) VectorTimesScalar 41 38 43: 7(fvec2) FAdd 35 42 Store 9(pos) 43 47: 15(ptr) AccessChain 12(gl_TessCoord) 14 48: 6(float) Load 47 49: 15(ptr) AccessChain 12(gl_TessCoord) 28 50: 6(float) Load 49 51: 15(ptr) AccessChain 12(gl_TessCoord) 36 52: 6(float) Load 51 53: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 50 52 54: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 48 53 55: 6(float) FMul 46 54 56: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 55 58: 6(float) FMul 56 57 59: 6(float) FAdd 58 57 Store 45(f) 59 63: 10(fvec3) Load 12(gl_TessCoord) 64: 6(float) Load 45(f) 65: 10(fvec3) VectorTimesScalar 63 64 67: 6(float) CompositeExtract 65 0 68: 6(float) CompositeExtract 65 1 69: 6(float) CompositeExtract 65 2 70: 60(fvec4) CompositeConstruct 67 68 69 66 Store 62(in_f_color) 70 74: 7(fvec2) Load 9(pos) 75: 71(ivec2) Bitcast 74 Store 73(bits) 75 Store 77(numBits) 14 Store 78(i) 14 Branch 79 79: Label LoopMerge 81 82 None Branch 83 83: Label 84: 13(int) Load 78(i) 86: 85(bool) ULessThan 84 18 BranchConditional 86 80 81 80: Label 87: 76(ptr) AccessChain 73(bits) 14 88: 13(int) Load 87 89: 13(int) Load 78(i) 90: 13(int) ShiftLeftLogical 88 89 91: 13(int) BitwiseAnd 90 28 92: 76(ptr) AccessChain 73(bits) 28 93: 13(int) Load 92 94: 13(int) Load 78(i) 95: 13(int) ShiftLeftLogical 93 94 96: 13(int) BitwiseAnd 95 28 97: 13(int) IAdd 91 96 98: 13(int) Load 77(numBits) 99: 13(int) IAdd 98 97 Store 77(numBits) 99 Branch 82 82: Label 100: 13(int) Load 78(i) 101: 13(int) IAdd 100 31 Store 78(i) 101 Branch 79 81: Label 102: 13(int) Load 77(numBits) 103: 13(int) BitwiseAnd 102 28 104: 6(float) ConvertUToF 103 106: 6(float) FMul 104 105 107: 7(fvec2) Load 9(pos) 108: 7(fvec2) CompositeConstruct 106 106 109: 7(fvec2) FAdd 107 108 Store 9(pos) 109 113: 7(fvec2) Load 9(pos) 115: 6(float) CompositeExtract 113 0 116: 6(float) CompositeExtract 113 1 117: 60(fvec4) CompositeConstruct 115 116 114 66 118: 61(ptr) AccessChain 112 23 Store 118 117 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.precision.frag.out000066400000000000000000000267211360464450000231760ustar00rootroot00000000000000spv.precision.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 127 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 23 59 61 73 116 ExecutionMode 4 OriginUpperLeft Source ESSL 310 Name 4 "main" Name 12 "foo(vf3;" Name 11 "mv3" Name 19 "boolfun(vb2;" Name 18 "bv2" Name 23 "highfin" Name 38 "sum" Name 40 "uniform_medium" Name 42 "uniform_high" Name 48 "uniform_low" Name 53 "arg1" Name 55 "arg2" Name 57 "d" Name 59 "lowfin" Name 61 "mediumfin" Name 65 "global_highp" Name 69 "local_highp" Name 73 "mediumfout" Name 104 "ub2" Name 105 "param" Name 114 "S" MemberName 114(S) 0 "a" MemberName 114(S) 1 "b" Name 116 "s" Decorate 12(foo(vf3;) RelaxedPrecision Decorate 11(mv3) RelaxedPrecision Decorate 38(sum) RelaxedPrecision Decorate 40(uniform_medium) RelaxedPrecision Decorate 41 RelaxedPrecision Decorate 46 RelaxedPrecision Decorate 48(uniform_low) RelaxedPrecision Decorate 49 RelaxedPrecision Decorate 50 RelaxedPrecision Decorate 51 RelaxedPrecision Decorate 53(arg1) RelaxedPrecision Decorate 55(arg2) RelaxedPrecision Decorate 57(d) RelaxedPrecision Decorate 59(lowfin) RelaxedPrecision Decorate 60 RelaxedPrecision Decorate 61(mediumfin) RelaxedPrecision Decorate 62 RelaxedPrecision Decorate 63 RelaxedPrecision Decorate 73(mediumfout) RelaxedPrecision Decorate 74 RelaxedPrecision Decorate 75 RelaxedPrecision Decorate 76 RelaxedPrecision Decorate 77 RelaxedPrecision Decorate 78 RelaxedPrecision Decorate 79 RelaxedPrecision Decorate 83 RelaxedPrecision Decorate 85 RelaxedPrecision Decorate 87 RelaxedPrecision Decorate 88 RelaxedPrecision Decorate 90 RelaxedPrecision Decorate 91 RelaxedPrecision Decorate 94 RelaxedPrecision Decorate 95 RelaxedPrecision Decorate 96 RelaxedPrecision Decorate 97 RelaxedPrecision Decorate 98 RelaxedPrecision Decorate 99 RelaxedPrecision Decorate 100 RelaxedPrecision Decorate 101 RelaxedPrecision Decorate 102 RelaxedPrecision Decorate 110 RelaxedPrecision Decorate 112 RelaxedPrecision Decorate 113 RelaxedPrecision MemberDecorate 114(S) 1 RelaxedPrecision Decorate 120 RelaxedPrecision Decorate 124 RelaxedPrecision Decorate 125 RelaxedPrecision Decorate 126 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8: TypePointer Function 7(fvec3) 9: TypeVector 6(float) 2 10: TypeFunction 9(fvec2) 8(ptr) 14: TypeBool 15: TypeVector 14(bool) 2 16: TypePointer Function 15(bvec2) 17: TypeFunction 14(bool) 16(ptr) 21: TypeVector 6(float) 4 22: TypePointer Input 21(fvec4) 23(highfin): 22(ptr) Variable Input 29: 14(bool) ConstantFalse 30: 14(bool) ConstantTrue 31: 15(bvec2) ConstantComposite 29 30 36: TypeInt 32 1 37: TypePointer Function 36(int) 39: TypePointer Private 36(int) 40(uniform_medium): 39(ptr) Variable Private 42(uniform_high): 39(ptr) Variable Private 48(uniform_low): 39(ptr) Variable Private 52: TypePointer Function 6(float) 54: 6(float) Constant 1078774989 56: 6(float) Constant 1232730691 58: TypePointer Input 6(float) 59(lowfin): 58(ptr) Variable Input 61(mediumfin): 58(ptr) Variable Input 64: TypePointer Private 6(float) 65(global_highp): 64(ptr) Variable Private 68: TypePointer Function 21(fvec4) 72: TypePointer Output 21(fvec4) 73(mediumfout): 72(ptr) Variable Output 82: 36(int) Constant 4 84: TypeVector 36(int) 2 92: TypeInt 32 0 93: 92(int) Constant 0 103: TypePointer Private 15(bvec2) 104(ub2): 103(ptr) Variable Private 111: 6(float) Constant 1065353216 114(S): TypeStruct 6(float) 6(float) 115: TypePointer Input 114(S) 116(s): 115(ptr) Variable Input 117: 36(int) Constant 0 122: 36(int) Constant 1 4(main): 2 Function None 3 5: Label 38(sum): 37(ptr) Variable Function 53(arg1): 52(ptr) Variable Function 55(arg2): 52(ptr) Variable Function 57(d): 52(ptr) Variable Function 69(local_highp): 68(ptr) Variable Function 105(param): 16(ptr) Variable Function 41: 36(int) Load 40(uniform_medium) 43: 36(int) Load 42(uniform_high) 44: 36(int) IAdd 41 43 Store 38(sum) 44 45: 36(int) Load 42(uniform_high) 46: 36(int) Load 38(sum) 47: 36(int) IAdd 46 45 Store 38(sum) 47 49: 36(int) Load 48(uniform_low) 50: 36(int) Load 38(sum) 51: 36(int) IAdd 50 49 Store 38(sum) 51 Store 53(arg1) 54 Store 55(arg2) 56 60: 6(float) Load 59(lowfin) 62: 6(float) Load 61(mediumfin) 63: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 60 62 Store 57(d) 63 66: 21(fvec4) Load 23(highfin) 67: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 66 Store 65(global_highp) 67 70: 6(float) Load 65(global_highp) 71: 21(fvec4) CompositeConstruct 70 70 70 70 Store 69(local_highp) 71 74: 6(float) Load 57(d) 75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74 76: 21(fvec4) CompositeConstruct 75 75 75 75 77: 6(float) Load 55(arg2) 78: 21(fvec4) CompositeConstruct 77 77 77 77 79: 21(fvec4) FAdd 76 78 80: 21(fvec4) Load 69(local_highp) 81: 21(fvec4) FAdd 79 80 Store 73(mediumfout) 81 83: 36(int) Load 48(uniform_low) 85: 84(ivec2) CompositeConstruct 83 83 86: 36(int) Load 42(uniform_high) 87: 84(ivec2) CompositeConstruct 86 86 88: 84(ivec2) IMul 85 87 89: 36(int) Load 42(uniform_high) 90: 84(ivec2) CompositeConstruct 89 89 91: 84(ivec2) IAdd 88 90 94: 36(int) CompositeExtract 91 0 95: 36(int) IAdd 82 94 96: 36(int) Load 38(sum) 97: 36(int) IAdd 96 95 Store 38(sum) 97 98: 36(int) Load 38(sum) 99: 6(float) ConvertSToF 98 100: 21(fvec4) CompositeConstruct 99 99 99 99 101: 21(fvec4) Load 73(mediumfout) 102: 21(fvec4) FAdd 101 100 Store 73(mediumfout) 102 106: 15(bvec2) Load 104(ub2) Store 105(param) 106 107: 14(bool) FunctionCall 19(boolfun(vb2;) 105(param) SelectionMerge 109 None BranchConditional 107 108 109 108: Label 110: 21(fvec4) Load 73(mediumfout) 112: 21(fvec4) CompositeConstruct 111 111 111 111 113: 21(fvec4) FAdd 110 112 Store 73(mediumfout) 113 Branch 109 109: Label 118: 58(ptr) AccessChain 116(s) 117 119: 6(float) Load 118 120: 21(fvec4) Load 73(mediumfout) 121: 21(fvec4) VectorTimesScalar 120 119 Store 73(mediumfout) 121 123: 58(ptr) AccessChain 116(s) 122 124: 6(float) Load 123 125: 21(fvec4) Load 73(mediumfout) 126: 21(fvec4) VectorTimesScalar 125 124 Store 73(mediumfout) 126 Return FunctionEnd 12(foo(vf3;): 9(fvec2) Function None 10 11(mv3): 8(ptr) FunctionParameter 13: Label 24: 21(fvec4) Load 23(highfin) 25: 9(fvec2) VectorShuffle 24 24 0 1 ReturnValue 25 FunctionEnd 19(boolfun(vb2;): 14(bool) Function None 17 18(bv2): 16(ptr) FunctionParameter 20: Label 28: 15(bvec2) Load 18(bv2) 32: 15(bvec2) LogicalEqual 28 31 33: 14(bool) All 32 ReturnValue 33 FunctionEnd glslang-8.13.3559/Test/baseResults/spv.precisionNonESSamp.frag.out000066400000000000000000000122051360464450000247120ustar00rootroot00000000000000spv.precisionNonESSamp.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 27(v3) RelaxedPrecision Decorate 27(v3) Location 1 Decorate 28 RelaxedPrecision Decorate 31(vi1) RelaxedPrecision Decorate 34(i1) RelaxedPrecision Decorate 34(i1) DescriptorSet 0 Decorate 34(i1) Binding 0 Decorate 35 RelaxedPrecision Decorate 39(iv2) RelaxedPrecision Decorate 39(iv2) Flat Decorate 39(iv2) Location 3 Decorate 40 RelaxedPrecision Decorate 41 RelaxedPrecision Decorate 42(vi2) RelaxedPrecision Decorate 43(i2) DescriptorSet 0 Decorate 43(i2) Binding 0 Decorate 45 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Output 7(fvec4) 9(color): 8(ptr) Variable Output 10: TypeImage 6(float) 2D sampled format:Unknown 11: TypeSampledImage 10 12: TypePointer UniformConstant 11 13(s): 12(ptr) Variable UniformConstant 15: TypeVector 6(float) 2 16: TypePointer Input 15(fvec2) 17(v2): 16(ptr) Variable Input 20: TypeImage 6(float) 3D sampled format:Unknown 21: TypeSampledImage 20 22: TypePointer UniformConstant 21 23(t): 22(ptr) Variable UniformConstant 25: TypeVector 6(float) 3 26: TypePointer Input 25(fvec3) 27(v3): 26(ptr) Variable Input 30: TypePointer Function 7(fvec4) 32: TypeImage 6(float) 2D nonsampled format:Rgba32f 33: TypePointer UniformConstant 32 34(i1): 33(ptr) Variable UniformConstant 36: TypeInt 32 1 37: TypeVector 36(int) 2 38: TypePointer Input 37(ivec2) 39(iv2): 38(ptr) Variable Input 43(i2): 33(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 31(vi1): 30(ptr) Variable Function 42(vi2): 30(ptr) Variable Function 14: 11 Load 13(s) 18: 15(fvec2) Load 17(v2) 19: 7(fvec4) ImageSampleImplicitLod 14 18 Store 9(color) 19 24: 21 Load 23(t) 28: 25(fvec3) Load 27(v3) 29: 7(fvec4) ImageSampleImplicitLod 24 28 Store 9(color) 29 35: 32 Load 34(i1) 40: 37(ivec2) Load 39(iv2) 41: 7(fvec4) ImageRead 35 40 Store 31(vi1) 41 44: 32 Load 43(i2) 45: 37(ivec2) Load 39(iv2) 46: 7(fvec4) ImageRead 44 45 Store 42(vi2) 46 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.prepost.frag.out000066400000000000000000000145141360464450000226740ustar00rootroot00000000000000spv.prepost.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.privateVariableTypes.frag.out000066400000000000000000000051731360464450000253460ustar00rootroot00000000000000spv.privateVariableTypes.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.pushConstant.vert.out000066400000000000000000000055061360464450000237330ustar00rootroot00000000000000spv.pushConstant.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 35 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 24 Source GLSL 400 Name 4 "main" Name 11 "Material" MemberName 11(Material) 0 "kind" MemberName 11(Material) 1 "fa" Name 13 "matInst" Name 24 "color" Decorate 10 ArrayStride 4 MemberDecorate 11(Material) 0 Offset 0 MemberDecorate 11(Material) 1 Offset 4 Decorate 11(Material) Block 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeFloat 32 8: TypeInt 32 0 9: 8(int) Constant 3 10: TypeArray 7(float) 9 11(Material): TypeStruct 6(int) 10 12: TypePointer PushConstant 11(Material) 13(matInst): 12(ptr) Variable PushConstant 14: 6(int) Constant 0 15: TypePointer PushConstant 6(int) 22: TypeVector 7(float) 4 23: TypePointer Output 22(fvec4) 24(color): 23(ptr) Variable Output 25: 7(float) Constant 1045220557 26: 22(fvec4) ConstantComposite 25 25 25 25 28: 7(float) Constant 1056964608 29: 22(fvec4) ConstantComposite 28 28 28 28 31: 7(float) Constant 0 32: 22(fvec4) ConstantComposite 31 31 31 31 4(main): 2 Function None 3 5: Label 16: 15(ptr) AccessChain 13(matInst) 14 17: 6(int) Load 16 SelectionMerge 21 None Switch 17 20 case 1: 18 case 2: 19 20: Label Store 24(color) 32 Branch 21 18: Label Store 24(color) 26 Branch 21 19: Label Store 24(color) 29 Branch 21 21: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.pushConstantAnon.vert.out000066400000000000000000000057321360464450000245500ustar00rootroot00000000000000spv.pushConstantAnon.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 38 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 24 Source GLSL 400 Name 4 "main" Name 11 "Material" MemberName 11(Material) 0 "kind" MemberName 11(Material) 1 "fa" Name 13 "" Name 24 "color" Decorate 10 ArrayStride 4 MemberDecorate 11(Material) 0 Offset 0 MemberDecorate 11(Material) 1 Offset 4 Decorate 11(Material) Block 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeFloat 32 8: TypeInt 32 0 9: 8(int) Constant 3 10: TypeArray 7(float) 9 11(Material): TypeStruct 6(int) 10 12: TypePointer PushConstant 11(Material) 13: 12(ptr) Variable PushConstant 14: 6(int) Constant 0 15: TypePointer PushConstant 6(int) 22: TypeVector 7(float) 4 23: TypePointer Output 22(fvec4) 24(color): 23(ptr) Variable Output 25: 7(float) Constant 1045220557 26: 22(fvec4) ConstantComposite 25 25 25 25 28: 7(float) Constant 1056964608 29: 22(fvec4) ConstantComposite 28 28 28 28 31: 6(int) Constant 1 32: TypePointer PushConstant 7(float) 4(main): 2 Function None 3 5: Label 16: 15(ptr) AccessChain 13 14 17: 6(int) Load 16 SelectionMerge 21 None Switch 17 20 case 1: 18 case 2: 19 20: Label 33: 32(ptr) AccessChain 13 31 31 34: 7(float) Load 33 35: 22(fvec4) CompositeConstruct 34 34 34 34 Store 24(color) 35 Branch 21 18: Label Store 24(color) 26 Branch 21 19: Label Store 24(color) 29 Branch 21 21: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.qualifiers.vert.out000066400000000000000000000042361360464450000234050ustar00rootroot00000000000000spv.qualifiers.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 21 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 9 11 13 15 17 19 Source GLSL 430 Name 4 "main" Name 9 "outVc" Name 11 "inV" Name 13 "outVs" Name 15 "outVf" Name 17 "outVn" Name 19 "outVcn" Decorate 9(outVc) Centroid Decorate 15(outVf) Flat Decorate 17(outVn) NoPerspective Decorate 19(outVcn) NoPerspective Decorate 19(outVcn) Centroid 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Output 7(fvec4) 9(outVc): 8(ptr) Variable Output 10: TypePointer Input 7(fvec4) 11(inV): 10(ptr) Variable Input 13(outVs): 8(ptr) Variable Output 15(outVf): 8(ptr) Variable Output 17(outVn): 8(ptr) Variable Output 19(outVcn): 8(ptr) Variable Output 4(main): 2 Function None 3 5: Label 12: 7(fvec4) Load 11(inV) Store 9(outVc) 12 14: 7(fvec4) Load 11(inV) Store 13(outVs) 14 16: 7(fvec4) Load 11(inV) Store 15(outVf) 16 18: 7(fvec4) Load 11(inV) Store 17(outVn) 18 20: 7(fvec4) Load 11(inV) Store 19(outVcn) 20 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.queryL.frag.out000066400000000000000000000420421360464450000224560ustar00rootroot00000000000000spv.queryL.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 34(usamp3D) DescriptorSet 0 Decorate 34(usamp3D) Binding 0 Decorate 46(sampCube) DescriptorSet 0 Decorate 46(sampCube) Binding 0 Decorate 55(isamp1DA) DescriptorSet 0 Decorate 55(isamp1DA) Binding 0 Decorate 64(usamp2DA) DescriptorSet 0 Decorate 64(usamp2DA) Binding 0 Decorate 73(isampCubeA) DescriptorSet 0 Decorate 73(isampCubeA) Binding 0 Decorate 82(samp1Ds) DescriptorSet 0 Decorate 82(samp1Ds) Binding 0 Decorate 91(samp2Ds) DescriptorSet 0 Decorate 91(samp2Ds) Binding 0 Decorate 100(sampCubes) DescriptorSet 0 Decorate 100(sampCubes) Binding 0 Decorate 109(samp1DAs) DescriptorSet 0 Decorate 109(samp1DAs) Binding 0 Decorate 118(samp2DAs) DescriptorSet 0 Decorate 118(samp2DAs) Binding 0 Decorate 127(sampCubeAs) DescriptorSet 0 Decorate 127(sampCubeAs) Binding 0 Decorate 141(usamp2D) DescriptorSet 0 Decorate 141(usamp2D) Binding 0 Decorate 150(isamp3D) DescriptorSet 0 Decorate 150(isamp3D) Binding 0 Decorate 159(isampCube) DescriptorSet 0 Decorate 159(isampCube) Binding 0 Decorate 173(samp2DA) DescriptorSet 0 Decorate 173(samp2DA) Binding 0 Decorate 182(usampCubeA) DescriptorSet 0 Decorate 182(usampCubeA) Binding 0 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 glslang-8.13.3559/Test/baseResults/spv.rankShift.comp.out000066400000000000000000000052111360464450000231420ustar00rootroot00000000000000spv.rankShift.comp // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 33 Capability Shader Capability Int64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" ExecutionMode 4 LocalSize 54 1 1 Source GLSL 450 SourceExtension "GL_ARB_gpu_shader_int64" Name 4 "main" Name 8 "result" Name 11 "arg0" Name 15 "arg1" Decorate 11(arg0) Location 4 Decorate 15(arg1) Location 5 Decorate 32 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 64 0 7: TypePointer Function 6(int64_t) 9: TypeInt 64 1 10: TypePointer UniformConstant 9(int64_t) 11(arg0): 10(ptr) Variable UniformConstant 13: TypeInt 32 0 14: TypePointer UniformConstant 13(int) 15(arg1): 14(ptr) Variable UniformConstant 29: TypeVector 13(int) 3 30: 13(int) Constant 54 31: 13(int) Constant 1 32: 29(ivec3) ConstantComposite 30 31 31 4(main): 2 Function None 3 5: Label 8(result): 7(ptr) Variable Function 12: 9(int64_t) Load 11(arg0) 16: 13(int) Load 15(arg1) 17: 9(int64_t) ShiftLeftLogical 12 16 18: 6(int64_t) Bitcast 17 Store 8(result) 18 19: 9(int64_t) Load 11(arg0) 20: 13(int) Load 15(arg1) 21: 9(int64_t) ShiftRightArithmetic 19 20 22: 6(int64_t) Bitcast 21 Store 8(result) 22 23: 13(int) Load 15(arg1) 24: 6(int64_t) Load 8(result) 25: 6(int64_t) ShiftLeftLogical 24 23 Store 8(result) 25 26: 13(int) Load 15(arg1) 27: 6(int64_t) Load 8(result) 28: 6(int64_t) ShiftRightLogical 27 26 Store 8(result) 28 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.register.autoassign-2.frag.out000066400000000000000000000100241360464450000253270ustar00rootroot00000000000000spv.register.autoassign-2.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.register.autoassign.frag.out000066400000000000000000000313621360464450000252000ustar00rootroot00000000000000spv.register.autoassign.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.register.autoassign.rangetest.frag.out000066400000000000000000000003061360464450000271650ustar00rootroot00000000000000spv.register.autoassign.rangetest.frag INTERNAL ERROR: mapped binding out of range: g_tSamp INTERNAL ERROR: mapped binding out of range: g_tScene SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/spv.register.noautoassign.frag.out000066400000000000000000000313601360464450000255330ustar00rootroot00000000000000spv.register.noautoassign.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.register.subpass.frag.out000066400000000000000000000075331360464450000245060ustar00rootroot00000000000000spv.register.subpass.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.rw.autoassign.frag.out000066400000000000000000000072371360464450000240100ustar00rootroot00000000000000spv.rw.autoassign.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 42 Capability Shader Capability Image1D Capability ImageBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 39 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 8 "PS_OUTPUT" MemberName 8(PS_OUTPUT) 0 "Color" Name 10 "@main(" Name 13 "r00" Name 16 "g_tTex1df1" Name 23 "r01" Name 26 "g_tBuf1du1" Name 30 "psout" Name 39 "@entryPointOutput.Color" Decorate 16(g_tTex1df1) DescriptorSet 0 Decorate 16(g_tTex1df1) Binding 20 Decorate 26(g_tBuf1du1) DescriptorSet 0 Decorate 26(g_tBuf1du1) Binding 21 Decorate 39(@entryPointOutput.Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8(PS_OUTPUT): TypeStruct 7(fvec4) 9: TypeFunction 8(PS_OUTPUT) 12: TypePointer Function 6(float) 14: TypeImage 6(float) 1D nonsampled format:R32f 15: TypePointer UniformConstant 14 16(g_tTex1df1): 15(ptr) Variable UniformConstant 18: TypeInt 32 1 19: 18(int) Constant 0 21: TypeInt 32 0 22: TypePointer Function 21(int) 24: TypeImage 21(int) Buffer nonsampled format:R32ui 25: TypePointer UniformConstant 24 26(g_tBuf1du1): 25(ptr) Variable UniformConstant 29: TypePointer Function 8(PS_OUTPUT) 31: 6(float) Constant 0 32: 7(fvec4) ConstantComposite 31 31 31 31 33: TypePointer Function 7(fvec4) 38: TypePointer Output 7(fvec4) 39(@entryPointOutput.Color): 38(ptr) Variable Output 4(main): 2 Function None 3 5: Label 40:8(PS_OUTPUT) FunctionCall 10(@main() 41: 7(fvec4) CompositeExtract 40 0 Store 39(@entryPointOutput.Color) 41 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 11: Label 13(r00): 12(ptr) Variable Function 23(r01): 22(ptr) Variable Function 30(psout): 29(ptr) Variable Function 17: 14 Load 16(g_tTex1df1) 20: 6(float) ImageRead 17 19 Store 13(r00) 20 27: 24 Load 26(g_tBuf1du1) 28: 21(int) ImageRead 27 19 Store 23(r01) 28 34: 33(ptr) AccessChain 30(psout) 19 Store 34 32 35:8(PS_OUTPUT) Load 30(psout) ReturnValue 35 FunctionEnd glslang-8.13.3559/Test/baseResults/spv.sample.frag.out000066400000000000000000000026511360464450000224600ustar00rootroot00000000000000spv.sample.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.sampleId.frag.out000066400000000000000000000045621360464450000227400ustar00rootroot00000000000000spv.sampleId.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out000066400000000000000000000036571360464450000264570ustar00rootroot00000000000000spv.sampleMaskOverrideCoverage.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.samplePosition.frag.out000066400000000000000000000050551360464450000242060ustar00rootroot00000000000000spv.samplePosition.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.samplerlessTextureFunctions.frag.out000066400000000000000000000112461360464450000270030ustar00rootroot00000000000000spv.samplerlessTextureFunctions.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.scalarlayout.frag.out000066400000000000000000000100631360464450000236760ustar00rootroot00000000000000spv.scalarlayout.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.scalarlayoutfloat16.frag.out000066400000000000000000000072141360464450000250770ustar00rootroot00000000000000spv.scalarlayoutfloat16.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.separate.frag.out000066400000000000000000000615301360464450000230040ustar00rootroot00000000000000spv.separate.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 14(t2d) DescriptorSet 0 Decorate 14(t2d) Binding 0 Decorate 18(s) DescriptorSet 0 Decorate 18(s) Binding 0 Decorate 31(t3d) DescriptorSet 0 Decorate 31(t3d) Binding 0 Decorate 34(i) Flat Decorate 41(sA) DescriptorSet 0 Decorate 41(sA) Binding 0 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 glslang-8.13.3559/Test/baseResults/spv.set.vert.out000066400000000000000000000042231360464450000220300ustar00rootroot00000000000000spv.set.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 22 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 9 Source GLSL 450 Name 4 "main" Name 9 "color" Name 10 "setBuf" MemberName 10(setBuf) 0 "color" Name 12 "setBufInst" Name 21 "samp2D" MemberDecorate 10(setBuf) 0 Offset 0 Decorate 10(setBuf) BufferBlock Decorate 12(setBufInst) DescriptorSet 0 Decorate 12(setBufInst) Binding 8 Decorate 21(samp2D) DescriptorSet 4 Decorate 21(samp2D) Binding 7 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Output 7(fvec4) 9(color): 8(ptr) Variable Output 10(setBuf): TypeStruct 7(fvec4) 11: TypePointer Uniform 10(setBuf) 12(setBufInst): 11(ptr) Variable Uniform 13: TypeInt 32 1 14: 13(int) Constant 0 15: TypePointer Uniform 7(fvec4) 18: TypeImage 6(float) 2D sampled format:Unknown 19: TypeSampledImage 18 20: TypePointer UniformConstant 19 21(samp2D): 20(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 16: 15(ptr) AccessChain 12(setBufInst) 14 17: 7(fvec4) Load 16 Store 9(color) 17 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.shaderBallot.comp.out000066400000000000000000000515311360464450000236230ustar00rootroot00000000000000spv.shaderBallot.comp // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 318 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 317 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) 102: 70(int) Constant 2 103: TypeVector 68(float) 3 119: 70(int) Constant 3 134: TypePointer Uniform 70(int) 141: TypeVector 70(int) 2 142: TypePointer Uniform 71(ivec4) 156: TypeVector 70(int) 3 186: TypePointer Uniform 6(int) 193: TypePointer Uniform 20(ivec4) 207: TypeVector 6(int) 3 315: 6(int) Constant 8 316: 6(int) Constant 1 317: 207(ivec3) ConstantComposite 315 315 316 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 236 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: 88(ptr) AccessChain 75(data) 85 77 99: 69(fvec4) Load 98 100: 69(fvec4) VectorShuffle 99 97 4 5 2 3 Store 98 100 101: 6(int) Load 8(invocation) 104: 88(ptr) AccessChain 75(data) 102 77 105: 69(fvec4) Load 104 106: 103(fvec3) VectorShuffle 105 105 0 1 2 107: 6(int) Load 8(invocation) 108: 68(float) CompositeExtract 106 0 109: 68(float) SubgroupReadInvocationKHR 108 107 110: 68(float) CompositeExtract 106 1 111: 68(float) SubgroupReadInvocationKHR 110 107 112: 68(float) CompositeExtract 106 2 113: 68(float) SubgroupReadInvocationKHR 112 107 114: 103(fvec3) CompositeConstruct 109 111 113 115: 88(ptr) AccessChain 75(data) 101 77 116: 69(fvec4) Load 115 117: 69(fvec4) VectorShuffle 116 114 4 5 6 3 Store 115 117 118: 6(int) Load 8(invocation) 120: 88(ptr) AccessChain 75(data) 119 77 121: 69(fvec4) Load 120 122: 6(int) Load 8(invocation) 123: 68(float) CompositeExtract 121 0 124: 68(float) SubgroupReadInvocationKHR 123 122 125: 68(float) CompositeExtract 121 1 126: 68(float) SubgroupReadInvocationKHR 125 122 127: 68(float) CompositeExtract 121 2 128: 68(float) SubgroupReadInvocationKHR 127 122 129: 68(float) CompositeExtract 121 3 130: 68(float) SubgroupReadInvocationKHR 129 122 131: 69(fvec4) CompositeConstruct 124 126 128 130 132: 88(ptr) AccessChain 75(data) 118 77 Store 132 131 133: 6(int) Load 8(invocation) 135: 134(ptr) AccessChain 75(data) 77 86 78 136: 70(int) Load 135 137: 6(int) Load 8(invocation) 138: 70(int) SubgroupReadInvocationKHR 136 137 139: 134(ptr) AccessChain 75(data) 133 86 78 Store 139 138 140: 6(int) Load 8(invocation) 143: 142(ptr) AccessChain 75(data) 86 86 144: 71(ivec4) Load 143 145: 141(ivec2) VectorShuffle 144 144 0 1 146: 6(int) Load 8(invocation) 147: 70(int) CompositeExtract 145 0 148: 70(int) SubgroupReadInvocationKHR 147 146 149: 70(int) CompositeExtract 145 1 150: 70(int) SubgroupReadInvocationKHR 149 146 151: 141(ivec2) CompositeConstruct 148 150 152: 142(ptr) AccessChain 75(data) 140 86 153: 71(ivec4) Load 152 154: 71(ivec4) VectorShuffle 153 151 4 5 2 3 Store 152 154 155: 6(int) Load 8(invocation) 157: 142(ptr) AccessChain 75(data) 102 86 158: 71(ivec4) Load 157 159: 156(ivec3) VectorShuffle 158 158 0 1 2 160: 6(int) Load 8(invocation) 161: 70(int) CompositeExtract 159 0 162: 70(int) SubgroupReadInvocationKHR 161 160 163: 70(int) CompositeExtract 159 1 164: 70(int) SubgroupReadInvocationKHR 163 160 165: 70(int) CompositeExtract 159 2 166: 70(int) SubgroupReadInvocationKHR 165 160 167: 156(ivec3) CompositeConstruct 162 164 166 168: 142(ptr) AccessChain 75(data) 155 86 169: 71(ivec4) Load 168 170: 71(ivec4) VectorShuffle 169 167 4 5 6 3 Store 168 170 171: 6(int) Load 8(invocation) 172: 142(ptr) AccessChain 75(data) 119 86 173: 71(ivec4) Load 172 174: 6(int) Load 8(invocation) 175: 70(int) CompositeExtract 173 0 176: 70(int) SubgroupReadInvocationKHR 175 174 177: 70(int) CompositeExtract 173 1 178: 70(int) SubgroupReadInvocationKHR 177 174 179: 70(int) CompositeExtract 173 2 180: 70(int) SubgroupReadInvocationKHR 179 174 181: 70(int) CompositeExtract 173 3 182: 70(int) SubgroupReadInvocationKHR 181 174 183: 71(ivec4) CompositeConstruct 176 178 180 182 184: 142(ptr) AccessChain 75(data) 171 86 Store 184 183 185: 6(int) Load 8(invocation) 187: 186(ptr) AccessChain 75(data) 77 102 78 188: 6(int) Load 187 189: 6(int) Load 8(invocation) 190: 6(int) SubgroupReadInvocationKHR 188 189 191: 186(ptr) AccessChain 75(data) 185 102 78 Store 191 190 192: 6(int) Load 8(invocation) 194: 193(ptr) AccessChain 75(data) 86 102 195: 20(ivec4) Load 194 196: 26(ivec2) VectorShuffle 195 195 0 1 197: 6(int) Load 8(invocation) 198: 6(int) CompositeExtract 196 0 199: 6(int) SubgroupReadInvocationKHR 198 197 200: 6(int) CompositeExtract 196 1 201: 6(int) SubgroupReadInvocationKHR 200 197 202: 26(ivec2) CompositeConstruct 199 201 203: 193(ptr) AccessChain 75(data) 192 102 204: 20(ivec4) Load 203 205: 20(ivec4) VectorShuffle 204 202 4 5 2 3 Store 203 205 206: 6(int) Load 8(invocation) 208: 193(ptr) AccessChain 75(data) 102 102 209: 20(ivec4) Load 208 210: 207(ivec3) VectorShuffle 209 209 0 1 2 211: 6(int) Load 8(invocation) 212: 6(int) CompositeExtract 210 0 213: 6(int) SubgroupReadInvocationKHR 212 211 214: 6(int) CompositeExtract 210 1 215: 6(int) SubgroupReadInvocationKHR 214 211 216: 6(int) CompositeExtract 210 2 217: 6(int) SubgroupReadInvocationKHR 216 211 218: 207(ivec3) CompositeConstruct 213 215 217 219: 193(ptr) AccessChain 75(data) 206 102 220: 20(ivec4) Load 219 221: 20(ivec4) VectorShuffle 220 218 4 5 6 3 Store 219 221 222: 6(int) Load 8(invocation) 223: 193(ptr) AccessChain 75(data) 119 102 224: 20(ivec4) Load 223 225: 6(int) Load 8(invocation) 226: 6(int) CompositeExtract 224 0 227: 6(int) SubgroupReadInvocationKHR 226 225 228: 6(int) CompositeExtract 224 1 229: 6(int) SubgroupReadInvocationKHR 228 225 230: 6(int) CompositeExtract 224 2 231: 6(int) SubgroupReadInvocationKHR 230 225 232: 6(int) CompositeExtract 224 3 233: 6(int) SubgroupReadInvocationKHR 232 225 234: 20(ivec4) CompositeConstruct 227 229 231 233 235: 193(ptr) AccessChain 75(data) 222 102 Store 235 234 Branch 67 236: Label 237: 6(int) Load 8(invocation) 238: 79(ptr) AccessChain 75(data) 77 77 78 239: 68(float) Load 238 240: 68(float) SubgroupFirstInvocationKHR 239 241: 79(ptr) AccessChain 75(data) 237 77 78 Store 241 240 242: 6(int) Load 8(invocation) 243: 88(ptr) AccessChain 75(data) 86 77 244: 69(fvec4) Load 243 245: 87(fvec2) VectorShuffle 244 244 0 1 246: 87(fvec2) SubgroupFirstInvocationKHR 245 247: 88(ptr) AccessChain 75(data) 242 77 248: 69(fvec4) Load 247 249: 69(fvec4) VectorShuffle 248 246 4 5 2 3 Store 247 249 250: 6(int) Load 8(invocation) 251: 88(ptr) AccessChain 75(data) 102 77 252: 69(fvec4) Load 251 253: 103(fvec3) VectorShuffle 252 252 0 1 2 254: 103(fvec3) SubgroupFirstInvocationKHR 253 255: 88(ptr) AccessChain 75(data) 250 77 256: 69(fvec4) Load 255 257: 69(fvec4) VectorShuffle 256 254 4 5 6 3 Store 255 257 258: 6(int) Load 8(invocation) 259: 88(ptr) AccessChain 75(data) 119 77 260: 69(fvec4) Load 259 261: 69(fvec4) SubgroupFirstInvocationKHR 260 262: 88(ptr) AccessChain 75(data) 258 77 Store 262 261 263: 6(int) Load 8(invocation) 264: 134(ptr) AccessChain 75(data) 77 86 78 265: 70(int) Load 264 266: 70(int) SubgroupFirstInvocationKHR 265 267: 134(ptr) AccessChain 75(data) 263 86 78 Store 267 266 268: 6(int) Load 8(invocation) 269: 142(ptr) AccessChain 75(data) 86 86 270: 71(ivec4) Load 269 271: 141(ivec2) VectorShuffle 270 270 0 1 272: 141(ivec2) SubgroupFirstInvocationKHR 271 273: 142(ptr) AccessChain 75(data) 268 86 274: 71(ivec4) Load 273 275: 71(ivec4) VectorShuffle 274 272 4 5 2 3 Store 273 275 276: 6(int) Load 8(invocation) 277: 142(ptr) AccessChain 75(data) 102 86 278: 71(ivec4) Load 277 279: 156(ivec3) VectorShuffle 278 278 0 1 2 280: 156(ivec3) SubgroupFirstInvocationKHR 279 281: 142(ptr) AccessChain 75(data) 276 86 282: 71(ivec4) Load 281 283: 71(ivec4) VectorShuffle 282 280 4 5 6 3 Store 281 283 284: 6(int) Load 8(invocation) 285: 142(ptr) AccessChain 75(data) 119 86 286: 71(ivec4) Load 285 287: 71(ivec4) SubgroupFirstInvocationKHR 286 288: 142(ptr) AccessChain 75(data) 284 86 Store 288 287 289: 6(int) Load 8(invocation) 290: 186(ptr) AccessChain 75(data) 77 102 78 291: 6(int) Load 290 292: 6(int) SubgroupFirstInvocationKHR 291 293: 186(ptr) AccessChain 75(data) 289 102 78 Store 293 292 294: 6(int) Load 8(invocation) 295: 193(ptr) AccessChain 75(data) 86 102 296: 20(ivec4) Load 295 297: 26(ivec2) VectorShuffle 296 296 0 1 298: 26(ivec2) SubgroupFirstInvocationKHR 297 299: 193(ptr) AccessChain 75(data) 294 102 300: 20(ivec4) Load 299 301: 20(ivec4) VectorShuffle 300 298 4 5 2 3 Store 299 301 302: 6(int) Load 8(invocation) 303: 193(ptr) AccessChain 75(data) 102 102 304: 20(ivec4) Load 303 305: 207(ivec3) VectorShuffle 304 304 0 1 2 306: 207(ivec3) SubgroupFirstInvocationKHR 305 307: 193(ptr) AccessChain 75(data) 302 102 308: 20(ivec4) Load 307 309: 20(ivec4) VectorShuffle 308 306 4 5 6 3 Store 307 309 310: 6(int) Load 8(invocation) 311: 193(ptr) AccessChain 75(data) 119 102 312: 20(ivec4) Load 311 313: 20(ivec4) SubgroupFirstInvocationKHR 312 314: 193(ptr) AccessChain 75(data) 310 102 Store 314 313 Branch 67 67: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.shaderBallotAMD.comp.out000066400000000000000000002422311360464450000241440ustar00rootroot00000000000000spv.shaderBallotAMD.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.shaderDrawParams.vert.out000066400000000000000000000122671360464450000244740ustar00rootroot00000000000000spv.shaderDrawParams.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.shaderFragMaskAMD.frag.out000066400000000000000000000140451360464450000244030ustar00rootroot00000000000000spv.shaderFragMaskAMD.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.shaderGroupVote.comp.out000066400000000000000000000055361360464450000243440ustar00rootroot00000000000000spv.shaderGroupVote.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.shaderImageFootprint.frag.out000066400000000000000000001231421360464450000253140ustar00rootroot00000000000000spv.shaderImageFootprint.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 0 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 0 Decorate 383(sample3D) DescriptorSet 0 Decorate 383(sample3D) Binding 0 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 glslang-8.13.3559/Test/baseResults/spv.shaderStencilExport.frag.out000066400000000000000000000025161360464450000251710ustar00rootroot00000000000000spv.shaderStencilExport.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.shadingRate.frag.out000066400000000000000000000047621360464450000234350ustar00rootroot00000000000000spv.shadingRate.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.shiftOps.frag.out000066400000000000000000000057001360464450000227740ustar00rootroot00000000000000spv.shiftOps.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 38 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 9 11 15 25 27 30 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "icolor" Name 11 "i3" Name 15 "u1" Name 25 "ucolor" Name 27 "u3" Name 30 "i1" Decorate 11(i3) Flat Decorate 15(u1) Flat Decorate 27(u3) Flat Decorate 30(i1) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeVector 6(int) 3 8: TypePointer Output 7(ivec3) 9(icolor): 8(ptr) Variable Output 10: TypePointer Input 7(ivec3) 11(i3): 10(ptr) Variable Input 13: TypeInt 32 0 14: TypePointer Input 13(int) 15(u1): 14(ptr) Variable Input 17: TypeVector 13(int) 3 20: 13(int) Constant 4 24: TypePointer Output 17(ivec3) 25(ucolor): 24(ptr) Variable Output 26: TypePointer Input 17(ivec3) 27(u3): 26(ptr) Variable Input 29: TypePointer Input 6(int) 30(i1): 29(ptr) Variable Input 34: 6(int) Constant 5 4(main): 2 Function None 3 5: Label 12: 7(ivec3) Load 11(i3) 16: 13(int) Load 15(u1) 18: 17(ivec3) CompositeConstruct 16 16 16 19: 7(ivec3) ShiftLeftLogical 12 18 Store 9(icolor) 19 21: 7(ivec3) Load 9(icolor) 22: 17(ivec3) CompositeConstruct 20 20 20 23: 7(ivec3) ShiftLeftLogical 21 22 Store 9(icolor) 23 28: 17(ivec3) Load 27(u3) 31: 6(int) Load 30(i1) 32: 7(ivec3) CompositeConstruct 31 31 31 33: 17(ivec3) ShiftRightLogical 28 32 Store 25(ucolor) 33 35: 17(ivec3) Load 25(ucolor) 36: 7(ivec3) CompositeConstruct 34 34 34 37: 17(ivec3) ShiftRightLogical 35 36 Store 25(ucolor) 37 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.shortCircuit.frag.out000066400000000000000000000252161360464450000236630ustar00rootroot00000000000000spv.shortCircuit.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 147 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 12 24 34 113 140 142 ExecutionMode 4 OriginUpperLeft Source GLSL 400 Name 4 "main" Name 8 "foo(" Name 12 "of1" Name 24 "of4" Name 27 "ub" Name 34 "ui" Name 44 "uba" Name 113 "uf" Name 140 "uiv4" Name 142 "uv4" Name 145 "ub41" Name 146 "ub42" Decorate 34(ui) Flat Decorate 140(uiv4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeBool 7: TypeFunction 6(bool) 10: TypeFloat 32 11: TypePointer Output 10(float) 12(of1): 11(ptr) Variable Output 14: 10(float) Constant 1065353216 17: 10(float) Constant 1092616192 21: 10(float) Constant 0 22: TypeVector 10(float) 4 23: TypePointer Output 22(fvec4) 24(of4): 23(ptr) Variable Output 25: 22(fvec4) ConstantComposite 21 21 21 21 26: TypePointer Private 6(bool) 27(ub): 26(ptr) Variable Private 32: TypeInt 32 1 33: TypePointer Input 32(int) 34(ui): 33(ptr) Variable Input 36: 32(int) Constant 2 44(uba): 26(ptr) Variable Private 112: TypePointer Input 10(float) 113(uf): 112(ptr) Variable Input 116: 10(float) Constant 1082130432 138: TypeVector 32(int) 4 139: TypePointer Input 138(ivec4) 140(uiv4): 139(ptr) Variable Input 141: TypePointer Input 22(fvec4) 142(uv4): 141(ptr) Variable Input 143: TypeVector 6(bool) 4 144: TypePointer Private 143(bvec4) 145(ub41): 144(ptr) Variable Private 146(ub42): 144(ptr) Variable Private 4(main): 2 Function None 3 5: Label Store 12(of1) 21 Store 24(of4) 25 28: 6(bool) Load 27(ub) 29: 6(bool) LogicalNot 28 SelectionMerge 31 None BranchConditional 29 30 31 30: Label 35: 32(int) Load 34(ui) 37: 6(bool) SGreaterThan 35 36 Branch 31 31: Label 38: 6(bool) Phi 28 5 37 30 SelectionMerge 40 None BranchConditional 38 39 40 39: Label 41: 10(float) Load 12(of1) 42: 10(float) FAdd 41 14 Store 12(of1) 42 Branch 40 40: Label 43: 6(bool) Load 27(ub) 45: 6(bool) Load 44(uba) 46: 6(bool) LogicalNot 45 47: 6(bool) LogicalAnd 43 46 SelectionMerge 49 None BranchConditional 47 48 49 48: Label 50: 10(float) Load 12(of1) 51: 10(float) FAdd 50 14 Store 12(of1) 51 Branch 49 49: Label 52: 6(bool) Load 27(ub) 53: 6(bool) LogicalNot 52 SelectionMerge 55 None BranchConditional 53 54 55 54: Label 56: 6(bool) FunctionCall 8(foo() Branch 55 55: Label 57: 6(bool) Phi 52 49 56 54 SelectionMerge 59 None BranchConditional 57 58 59 58: Label 60: 10(float) Load 12(of1) 61: 10(float) FAdd 60 14 Store 12(of1) 61 Branch 59 59: Label 62: 6(bool) Load 27(ub) SelectionMerge 64 None BranchConditional 62 63 64 63: Label 65: 6(bool) FunctionCall 8(foo() Branch 64 64: Label 66: 6(bool) Phi 62 59 65 63 SelectionMerge 68 None BranchConditional 66 67 68 67: Label 69: 10(float) Load 12(of1) 70: 10(float) FAdd 69 14 Store 12(of1) 70 Branch 68 68: Label 71: 6(bool) FunctionCall 8(foo() 72: 6(bool) Load 27(ub) 73: 6(bool) LogicalOr 71 72 SelectionMerge 75 None BranchConditional 73 74 75 74: Label 76: 10(float) Load 12(of1) 77: 10(float) FAdd 76 14 Store 12(of1) 77 Branch 75 75: Label 78: 6(bool) FunctionCall 8(foo() 79: 6(bool) Load 27(ub) 80: 6(bool) LogicalAnd 78 79 SelectionMerge 82 None BranchConditional 80 81 82 81: Label 83: 10(float) Load 12(of1) 84: 10(float) FAdd 83 14 Store 12(of1) 84 Branch 82 82: Label 85: 6(bool) Load 27(ub) 86: 6(bool) LogicalNot 85 SelectionMerge 88 None BranchConditional 86 87 88 87: Label 89: 10(float) Load 12(of1) 90: 10(float) FAdd 89 14 Store 12(of1) 90 91: 6(bool) FOrdGreaterThan 90 14 Branch 88 88: Label 92: 6(bool) Phi 85 82 91 87 SelectionMerge 94 None BranchConditional 92 93 94 93: Label 95: 22(fvec4) Load 24(of4) 96: 22(fvec4) CompositeConstruct 14 14 14 14 97: 22(fvec4) FAdd 95 96 Store 24(of4) 97 Branch 94 94: Label 98: 10(float) Load 12(of1) 99: 10(float) FAdd 98 14 Store 12(of1) 99 100: 6(bool) FOrdGreaterThan 99 14 101: 6(bool) Load 27(ub) 102: 6(bool) LogicalOr 100 101 SelectionMerge 104 None BranchConditional 102 103 104 103: Label 105: 22(fvec4) Load 24(of4) 106: 22(fvec4) CompositeConstruct 14 14 14 14 107: 22(fvec4) FAdd 105 106 Store 24(of4) 107 Branch 104 104: Label 108: 6(bool) Load 27(ub) 109: 6(bool) LogicalNot 108 SelectionMerge 111 None BranchConditional 109 110 111 110: Label 114: 10(float) Load 113(uf) 115: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 114 117: 10(float) FMul 115 116 118: 10(float) Load 12(of1) 119: 6(bool) FOrdGreaterThan 117 118 Branch 111 111: Label 120: 6(bool) Phi 108 104 119 110 SelectionMerge 122 None BranchConditional 120 121 122 121: Label 123: 10(float) Load 12(of1) 124: 10(float) FAdd 123 14 Store 12(of1) 124 Branch 122 122: Label 125: 6(bool) Load 27(ub) SelectionMerge 127 None BranchConditional 125 126 127 126: Label 128: 10(float) Load 113(uf) 129: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 128 130: 10(float) FMul 129 116 131: 10(float) Load 12(of1) 132: 6(bool) FOrdGreaterThan 130 131 Branch 127 127: Label 133: 6(bool) Phi 125 122 132 126 SelectionMerge 135 None BranchConditional 133 134 135 134: Label 136: 10(float) Load 12(of1) 137: 10(float) FAdd 136 14 Store 12(of1) 137 Branch 135 135: Label Return FunctionEnd 8(foo(): 6(bool) Function None 7 9: Label 13: 10(float) Load 12(of1) 15: 10(float) FAdd 13 14 Store 12(of1) 15 16: 10(float) Load 12(of1) 18: 6(bool) FOrdGreaterThan 16 17 ReturnValue 18 FunctionEnd glslang-8.13.3559/Test/baseResults/spv.simpleFunctionCall.frag.out000066400000000000000000000031501360464450000247650ustar00rootroot00000000000000spv.simpleFunctionCall.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 19 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 12 17 ExecutionMode 4 OriginUpperLeft Source GLSL 150 Name 4 "main" Name 9 "foo(" Name 12 "BaseColor" Name 17 "gl_FragColor" Decorate 17(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeFunction 7(fvec4) 11: TypePointer Input 7(fvec4) 12(BaseColor): 11(ptr) Variable Input 16: TypePointer Output 7(fvec4) 17(gl_FragColor): 16(ptr) Variable Output 4(main): 2 Function None 3 5: Label 18: 7(fvec4) FunctionCall 9(foo() Store 17(gl_FragColor) 18 Return FunctionEnd 9(foo(): 7(fvec4) Function None 8 10: Label 13: 7(fvec4) Load 12(BaseColor) ReturnValue 13 FunctionEnd glslang-8.13.3559/Test/baseResults/spv.simpleMat.vert.out000066400000000000000000000052231360464450000231710ustar00rootroot00000000000000spv.simpleMat.vert WARNING: 0:3: varying deprecated in version 130; may be removed in future release // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 39 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 9 12 15 19 23 34 Source GLSL 330 Name 4 "main" Name 9 "glPos" Name 12 "mvp" Name 15 "v" Name 19 "f" Name 23 "am3" Name 34 "arraym" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Output 7(fvec4) 9(glPos): 8(ptr) Variable Output 10: TypeMatrix 7(fvec4) 4 11: TypePointer Output 10 12(mvp): 11(ptr) Variable Output 14: TypePointer Input 7(fvec4) 15(v): 14(ptr) Variable Input 18: TypePointer Output 6(float) 19(f): 18(ptr) Variable Output 20: TypeVector 6(float) 3 21: TypeMatrix 20(fvec3) 3 22: TypePointer Input 21 23(am3): 22(ptr) Variable Input 24: TypeInt 32 1 25: 24(int) Constant 2 26: TypeInt 32 0 27: 26(int) Constant 1 28: TypePointer Input 6(float) 31: 26(int) Constant 3 32: TypeArray 10 31 33: TypePointer Input 32 34(arraym): 33(ptr) Variable Input 35: 24(int) Constant 1 4(main): 2 Function None 3 5: Label 13: 10 Load 12(mvp) 16: 7(fvec4) Load 15(v) 17: 7(fvec4) MatrixTimesVector 13 16 Store 9(glPos) 17 29: 28(ptr) AccessChain 23(am3) 25 27 30: 6(float) Load 29 36: 28(ptr) AccessChain 34(arraym) 35 25 31 37: 6(float) Load 36 38: 6(float) FAdd 30 37 Store 19(f) 38 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.smBuiltins.frag.out000066400000000000000000000047711360464450000233350ustar00rootroot00000000000000spv.smBuiltins.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.smBuiltins.vert.out000066400000000000000000000061431360464450000233710ustar00rootroot00000000000000spv.smBuiltins.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.sparseTexture.frag.out000066400000000000000000000761531360464450000240650ustar00rootroot00000000000000spv.sparseTexture.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 438 Capability Shader Capability ImageGatherExtended Capability StorageImageMultisample Capability SampledRect Capability SparseResidency Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 33 48 89 365 393 405 423 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_ARB_sparse_texture2" Name 4 "main" Name 8 "resident" Name 13 "texel" Name 18 "itexel" Name 23 "utexel" Name 29 "s2D" Name 33 "c2" Name 35 "ResType" Name 44 "s3D" Name 48 "c3" Name 59 "isCube" Name 62 "ResType" Name 71 "s2DShadow" Name 77 "ResType" Name 86 "sCubeArrayShadow" Name 89 "c4" Name 108 "usCubeArray" Name 111 "ResType" Name 140 "us2DRect" Name 154 "s2DArrayShadow" Name 188 "s2DMS" Name 228 "is2DArray" Name 261 "sCubeShadow" Name 294 "s2DRectShadow" Name 365 "offsets" Name 390 "i2D" Name 393 "ic2" Name 402 "ii3D" Name 405 "ic3" Name 414 "i2DMS" Name 423 "outColor" Decorate 29(s2D) DescriptorSet 0 Decorate 29(s2D) Binding 0 Decorate 44(s3D) DescriptorSet 0 Decorate 44(s3D) Binding 0 Decorate 59(isCube) DescriptorSet 0 Decorate 59(isCube) Binding 0 Decorate 71(s2DShadow) DescriptorSet 0 Decorate 71(s2DShadow) Binding 0 Decorate 86(sCubeArrayShadow) DescriptorSet 0 Decorate 86(sCubeArrayShadow) Binding 0 Decorate 108(usCubeArray) DescriptorSet 0 Decorate 108(usCubeArray) Binding 0 Decorate 140(us2DRect) DescriptorSet 0 Decorate 140(us2DRect) Binding 0 Decorate 154(s2DArrayShadow) DescriptorSet 0 Decorate 154(s2DArrayShadow) Binding 0 Decorate 188(s2DMS) DescriptorSet 0 Decorate 188(s2DMS) Binding 0 Decorate 228(is2DArray) DescriptorSet 0 Decorate 228(is2DArray) Binding 0 Decorate 261(sCubeShadow) DescriptorSet 0 Decorate 261(sCubeShadow) Binding 0 Decorate 294(s2DRectShadow) DescriptorSet 0 Decorate 294(s2DRectShadow) Binding 0 Decorate 365(offsets) Flat Decorate 390(i2D) DescriptorSet 0 Decorate 390(i2D) Binding 0 Decorate 393(ic2) Flat Decorate 402(ii3D) DescriptorSet 0 Decorate 402(ii3D) Binding 0 Decorate 405(ic3) Flat Decorate 414(i2DMS) DescriptorSet 0 Decorate 414(i2DMS) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 9: 6(int) Constant 0 10: TypeFloat 32 11: TypeVector 10(float) 4 12: TypePointer Function 11(fvec4) 14: 10(float) Constant 0 15: 11(fvec4) ConstantComposite 14 14 14 14 16: TypeVector 6(int) 4 17: TypePointer Function 16(ivec4) 19: 16(ivec4) ConstantComposite 9 9 9 9 20: TypeInt 32 0 21: TypeVector 20(int) 4 22: TypePointer Function 21(ivec4) 24: 20(int) Constant 0 25: 21(ivec4) ConstantComposite 24 24 24 24 26: TypeImage 10(float) 2D sampled format:Unknown 27: TypeSampledImage 26 28: TypePointer UniformConstant 27 29(s2D): 28(ptr) Variable UniformConstant 31: TypeVector 10(float) 2 32: TypePointer Input 31(fvec2) 33(c2): 32(ptr) Variable Input 35(ResType): TypeStruct 6(int) 11(fvec4) 41: TypeImage 10(float) 3D sampled format:Unknown 42: TypeSampledImage 41 43: TypePointer UniformConstant 42 44(s3D): 43(ptr) Variable UniformConstant 46: TypeVector 10(float) 3 47: TypePointer Input 46(fvec3) 48(c3): 47(ptr) Variable Input 50: 10(float) Constant 1073741824 56: TypeImage 6(int) Cube sampled format:Unknown 57: TypeSampledImage 56 58: TypePointer UniformConstant 57 59(isCube): 58(ptr) Variable UniformConstant 62(ResType): TypeStruct 6(int) 16(ivec4) 68: TypeImage 10(float) 2D depth sampled format:Unknown 69: TypeSampledImage 68 70: TypePointer UniformConstant 69 71(s2DShadow): 70(ptr) Variable UniformConstant 74: TypePointer Function 10(float) 77(ResType): TypeStruct 6(int) 10(float) 83: TypeImage 10(float) Cube depth array sampled format:Unknown 84: TypeSampledImage 83 85: TypePointer UniformConstant 84 86(sCubeArrayShadow): 85(ptr) Variable UniformConstant 88: TypePointer Input 11(fvec4) 89(c4): 88(ptr) Variable Input 91: 10(float) Constant 1065353216 105: TypeImage 20(int) Cube array sampled format:Unknown 106: TypeSampledImage 105 107: TypePointer UniformConstant 106 108(usCubeArray): 107(ptr) Variable UniformConstant 111(ResType): TypeStruct 6(int) 21(ivec4) 119: 20(int) Constant 1 129: TypeVector 6(int) 3 130: 6(int) Constant 2 131: 129(ivec3) ConstantComposite 130 130 130 137: TypeImage 20(int) Rect sampled format:Unknown 138: TypeSampledImage 137 139: TypePointer UniformConstant 138 140(us2DRect): 139(ptr) Variable UniformConstant 143: TypeVector 6(int) 2 144: 6(int) Constant 3 145: 143(ivec2) ConstantComposite 144 144 151: TypeImage 10(float) 2D depth array sampled format:Unknown 152: TypeSampledImage 151 153: TypePointer UniformConstant 152 154(s2DArrayShadow): 153(ptr) Variable UniformConstant 157: 6(int) Constant 5 158: 143(ivec2) ConstantComposite 157 157 159: 20(int) Constant 2 185: TypeImage 10(float) 2D multi-sampled sampled format:Unknown 186: TypeSampledImage 185 187: TypePointer UniformConstant 186 188(s2DMS): 187(ptr) Variable UniformConstant 192: 6(int) Constant 4 202: 129(ivec3) ConstantComposite 192 192 192 225: TypeImage 6(int) 2D array sampled format:Unknown 226: TypeSampledImage 225 227: TypePointer UniformConstant 226 228(is2DArray): 227(ptr) Variable UniformConstant 231: 6(int) Constant 6 232: 143(ivec2) ConstantComposite 231 231 240: 6(int) Constant 7 241: 143(ivec2) ConstantComposite 240 240 258: TypeImage 10(float) Cube depth sampled format:Unknown 259: TypeSampledImage 258 260: TypePointer UniformConstant 259 261(sCubeShadow): 260(ptr) Variable UniformConstant 291: TypeImage 10(float) Rect depth sampled format:Unknown 292: TypeSampledImage 291 293: TypePointer UniformConstant 292 294(s2DRectShadow): 293(ptr) Variable UniformConstant 299: 20(int) Constant 3 311: 143(ivec2) ConstantComposite 130 130 340: 143(ivec2) ConstantComposite 192 192 362: 20(int) Constant 4 363: TypeArray 143(ivec2) 362 364: TypePointer Input 363 365(offsets): 364(ptr) Variable Input 388: TypeImage 10(float) 2D nonsampled format:Rgba32f 389: TypePointer UniformConstant 388 390(i2D): 389(ptr) Variable UniformConstant 392: TypePointer Input 143(ivec2) 393(ic2): 392(ptr) Variable Input 400: TypeImage 6(int) 3D nonsampled format:Rgba32i 401: TypePointer UniformConstant 400 402(ii3D): 401(ptr) Variable UniformConstant 404: TypePointer Input 129(ivec3) 405(ic3): 404(ptr) Variable Input 412: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f 413: TypePointer UniformConstant 412 414(i2DMS): 413(ptr) Variable UniformConstant 422: TypePointer Output 11(fvec4) 423(outColor): 422(ptr) Variable Output 425: TypeBool 4(main): 2 Function None 3 5: Label 8(resident): 7(ptr) Variable Function 13(texel): 12(ptr) Variable Function 18(itexel): 17(ptr) Variable Function 23(utexel): 22(ptr) Variable Function 427: 12(ptr) Variable Function Store 8(resident) 9 Store 13(texel) 15 Store 18(itexel) 19 Store 23(utexel) 25 30: 27 Load 29(s2D) 34: 31(fvec2) Load 33(c2) 36: 35(ResType) ImageSparseSampleImplicitLod 30 34 37: 11(fvec4) CompositeExtract 36 1 Store 13(texel) 37 38: 6(int) CompositeExtract 36 0 39: 6(int) Load 8(resident) 40: 6(int) BitwiseOr 39 38 Store 8(resident) 40 45: 42 Load 44(s3D) 49: 46(fvec3) Load 48(c3) 51: 35(ResType) ImageSparseSampleImplicitLod 45 49 Bias 50 52: 11(fvec4) CompositeExtract 51 1 Store 13(texel) 52 53: 6(int) CompositeExtract 51 0 54: 6(int) Load 8(resident) 55: 6(int) BitwiseOr 54 53 Store 8(resident) 55 60: 57 Load 59(isCube) 61: 46(fvec3) Load 48(c3) 63: 62(ResType) ImageSparseSampleImplicitLod 60 61 64: 16(ivec4) CompositeExtract 63 1 Store 18(itexel) 64 65: 6(int) CompositeExtract 63 0 66: 6(int) Load 8(resident) 67: 6(int) BitwiseOr 66 65 Store 8(resident) 67 72: 69 Load 71(s2DShadow) 73: 46(fvec3) Load 48(c3) 75: 74(ptr) AccessChain 13(texel) 24 76: 10(float) CompositeExtract 73 2 78: 77(ResType) ImageSparseSampleDrefImplicitLod 72 73 76 79: 10(float) CompositeExtract 78 1 Store 75 79 80: 6(int) CompositeExtract 78 0 81: 6(int) Load 8(resident) 82: 6(int) BitwiseOr 81 80 Store 8(resident) 82 87: 84 Load 86(sCubeArrayShadow) 90: 11(fvec4) Load 89(c4) 92: 74(ptr) AccessChain 13(texel) 24 93: 77(ResType) ImageSparseSampleDrefImplicitLod 87 90 91 94: 10(float) CompositeExtract 93 1 Store 92 94 95: 6(int) CompositeExtract 93 0 96: 6(int) Load 8(resident) 97: 6(int) BitwiseOr 96 95 Store 8(resident) 97 98: 27 Load 29(s2D) 99: 31(fvec2) Load 33(c2) 100: 35(ResType) ImageSparseSampleExplicitLod 98 99 Lod 50 101: 11(fvec4) CompositeExtract 100 1 Store 13(texel) 101 102: 6(int) CompositeExtract 100 0 103: 6(int) Load 8(resident) 104: 6(int) BitwiseOr 103 102 Store 8(resident) 104 109: 106 Load 108(usCubeArray) 110: 11(fvec4) Load 89(c4) 112:111(ResType) ImageSparseSampleExplicitLod 109 110 Lod 91 113: 21(ivec4) CompositeExtract 112 1 Store 23(utexel) 113 114: 6(int) CompositeExtract 112 0 115: 6(int) Load 8(resident) 116: 6(int) BitwiseOr 115 114 Store 8(resident) 116 117: 69 Load 71(s2DShadow) 118: 46(fvec3) Load 48(c3) 120: 74(ptr) AccessChain 13(texel) 119 121: 10(float) CompositeExtract 118 2 122: 77(ResType) ImageSparseSampleDrefExplicitLod 117 118 121 Lod 50 123: 10(float) CompositeExtract 122 1 Store 120 123 124: 6(int) CompositeExtract 122 0 125: 6(int) Load 8(resident) 126: 6(int) BitwiseOr 125 124 Store 8(resident) 126 127: 42 Load 44(s3D) 128: 46(fvec3) Load 48(c3) 132: 35(ResType) ImageSparseSampleImplicitLod 127 128 Bias ConstOffset 50 131 133: 11(fvec4) CompositeExtract 132 1 Store 13(texel) 133 134: 6(int) CompositeExtract 132 0 135: 6(int) Load 8(resident) 136: 6(int) BitwiseOr 135 134 Store 8(resident) 136 141: 138 Load 140(us2DRect) 142: 31(fvec2) Load 33(c2) 146:111(ResType) ImageSparseSampleImplicitLod 141 142 ConstOffset 145 147: 21(ivec4) CompositeExtract 146 1 Store 23(utexel) 147 148: 6(int) CompositeExtract 146 0 149: 6(int) Load 8(resident) 150: 6(int) BitwiseOr 149 148 Store 8(resident) 150 155: 152 Load 154(s2DArrayShadow) 156: 11(fvec4) Load 89(c4) 160: 74(ptr) AccessChain 13(texel) 159 161: 10(float) CompositeExtract 156 3 162: 77(ResType) ImageSparseSampleDrefImplicitLod 155 156 161 ConstOffset 158 163: 10(float) CompositeExtract 162 1 Store 160 163 164: 6(int) CompositeExtract 162 0 165: 6(int) Load 8(resident) 166: 6(int) BitwiseOr 165 164 Store 8(resident) 166 167: 27 Load 29(s2D) 168: 31(fvec2) Load 33(c2) 169: 143(ivec2) ConvertFToS 168 170: 26 Image 167 171: 35(ResType) ImageSparseFetch 170 169 Lod 130 172: 11(fvec4) CompositeExtract 171 1 Store 13(texel) 172 173: 6(int) CompositeExtract 171 0 174: 6(int) Load 8(resident) 175: 6(int) BitwiseOr 174 173 Store 8(resident) 175 176: 138 Load 140(us2DRect) 177: 31(fvec2) Load 33(c2) 178: 143(ivec2) ConvertFToS 177 179: 137 Image 176 180:111(ResType) ImageSparseFetch 179 178 181: 21(ivec4) CompositeExtract 180 1 Store 23(utexel) 181 182: 6(int) CompositeExtract 180 0 183: 6(int) Load 8(resident) 184: 6(int) BitwiseOr 183 182 Store 8(resident) 184 189: 186 Load 188(s2DMS) 190: 31(fvec2) Load 33(c2) 191: 143(ivec2) ConvertFToS 190 193: 185 Image 189 194: 35(ResType) ImageSparseFetch 193 191 Sample 192 195: 11(fvec4) CompositeExtract 194 1 Store 13(texel) 195 196: 6(int) CompositeExtract 194 0 197: 6(int) Load 8(resident) 198: 6(int) BitwiseOr 197 196 Store 8(resident) 198 199: 42 Load 44(s3D) 200: 46(fvec3) Load 48(c3) 201: 129(ivec3) ConvertFToS 200 203: 41 Image 199 204: 35(ResType) ImageSparseFetch 203 201 Lod ConstOffset 130 202 205: 11(fvec4) CompositeExtract 204 1 Store 13(texel) 205 206: 6(int) CompositeExtract 204 0 207: 6(int) Load 8(resident) 208: 6(int) BitwiseOr 207 206 Store 8(resident) 208 209: 138 Load 140(us2DRect) 210: 31(fvec2) Load 33(c2) 211: 143(ivec2) ConvertFToS 210 212: 137 Image 209 213:111(ResType) ImageSparseFetch 212 211 ConstOffset 145 214: 21(ivec4) CompositeExtract 213 1 Store 23(utexel) 214 215: 6(int) CompositeExtract 213 0 216: 6(int) Load 8(resident) 217: 6(int) BitwiseOr 216 215 Store 8(resident) 217 218: 27 Load 29(s2D) 219: 31(fvec2) Load 33(c2) 220: 35(ResType) ImageSparseSampleExplicitLod 218 219 Lod ConstOffset 50 158 221: 11(fvec4) CompositeExtract 220 1 Store 13(texel) 221 222: 6(int) CompositeExtract 220 0 223: 6(int) Load 8(resident) 224: 6(int) BitwiseOr 223 222 Store 8(resident) 224 229: 226 Load 228(is2DArray) 230: 46(fvec3) Load 48(c3) 233: 62(ResType) ImageSparseSampleExplicitLod 229 230 Lod ConstOffset 50 232 234: 16(ivec4) CompositeExtract 233 1 Store 18(itexel) 234 235: 6(int) CompositeExtract 233 0 236: 6(int) Load 8(resident) 237: 6(int) BitwiseOr 236 235 Store 8(resident) 237 238: 69 Load 71(s2DShadow) 239: 46(fvec3) Load 48(c3) 242: 74(ptr) AccessChain 13(texel) 159 243: 10(float) CompositeExtract 239 2 244: 77(ResType) ImageSparseSampleDrefExplicitLod 238 239 243 Lod ConstOffset 50 241 245: 10(float) CompositeExtract 244 1 Store 242 245 246: 6(int) CompositeExtract 244 0 247: 6(int) Load 8(resident) 248: 6(int) BitwiseOr 247 246 Store 8(resident) 248 249: 42 Load 44(s3D) 250: 46(fvec3) Load 48(c3) 251: 46(fvec3) Load 48(c3) 252: 46(fvec3) Load 48(c3) 253: 35(ResType) ImageSparseSampleExplicitLod 249 250 Grad 251 252 254: 11(fvec4) CompositeExtract 253 1 Store 13(texel) 254 255: 6(int) CompositeExtract 253 0 256: 6(int) Load 8(resident) 257: 6(int) BitwiseOr 256 255 Store 8(resident) 257 262: 259 Load 261(sCubeShadow) 263: 11(fvec4) Load 89(c4) 264: 46(fvec3) Load 48(c3) 265: 46(fvec3) Load 48(c3) 266: 74(ptr) AccessChain 13(texel) 119 267: 10(float) CompositeExtract 263 3 268: 77(ResType) ImageSparseSampleDrefExplicitLod 262 263 267 Grad 264 265 269: 10(float) CompositeExtract 268 1 Store 266 269 270: 6(int) CompositeExtract 268 0 271: 6(int) Load 8(resident) 272: 6(int) BitwiseOr 271 270 Store 8(resident) 272 273: 106 Load 108(usCubeArray) 274: 11(fvec4) Load 89(c4) 275: 46(fvec3) Load 48(c3) 276: 46(fvec3) Load 48(c3) 277:111(ResType) ImageSparseSampleExplicitLod 273 274 Grad 275 276 278: 21(ivec4) CompositeExtract 277 1 Store 23(utexel) 278 279: 6(int) CompositeExtract 277 0 280: 6(int) Load 8(resident) 281: 6(int) BitwiseOr 280 279 Store 8(resident) 281 282: 27 Load 29(s2D) 283: 31(fvec2) Load 33(c2) 284: 31(fvec2) Load 33(c2) 285: 31(fvec2) Load 33(c2) 286: 35(ResType) ImageSparseSampleExplicitLod 282 283 Grad ConstOffset 284 285 158 287: 11(fvec4) CompositeExtract 286 1 Store 13(texel) 287 288: 6(int) CompositeExtract 286 0 289: 6(int) Load 8(resident) 290: 6(int) BitwiseOr 289 288 Store 8(resident) 290 295: 292 Load 294(s2DRectShadow) 296: 46(fvec3) Load 48(c3) 297: 31(fvec2) Load 33(c2) 298: 31(fvec2) Load 33(c2) 300: 74(ptr) AccessChain 13(texel) 299 301: 10(float) CompositeExtract 296 2 302: 77(ResType) ImageSparseSampleDrefExplicitLod 295 296 301 Grad ConstOffset 297 298 232 303: 10(float) CompositeExtract 302 1 Store 300 303 304: 6(int) CompositeExtract 302 0 305: 6(int) Load 8(resident) 306: 6(int) BitwiseOr 305 304 Store 8(resident) 306 307: 226 Load 228(is2DArray) 308: 46(fvec3) Load 48(c3) 309: 31(fvec2) Load 33(c2) 310: 31(fvec2) Load 33(c2) 312: 62(ResType) ImageSparseSampleExplicitLod 307 308 Grad ConstOffset 309 310 311 313: 16(ivec4) CompositeExtract 312 1 Store 18(itexel) 313 314: 6(int) CompositeExtract 312 0 315: 6(int) Load 8(resident) 316: 6(int) BitwiseOr 315 314 Store 8(resident) 316 317: 27 Load 29(s2D) 318: 31(fvec2) Load 33(c2) 319: 35(ResType) ImageSparseGather 317 318 9 320: 11(fvec4) CompositeExtract 319 1 Store 13(texel) 320 321: 6(int) CompositeExtract 319 0 322: 6(int) Load 8(resident) 323: 6(int) BitwiseOr 322 321 Store 8(resident) 323 324: 226 Load 228(is2DArray) 325: 46(fvec3) Load 48(c3) 326: 62(ResType) ImageSparseGather 324 325 130 327: 16(ivec4) CompositeExtract 326 1 Store 18(itexel) 327 328: 6(int) CompositeExtract 326 0 329: 6(int) Load 8(resident) 330: 6(int) BitwiseOr 329 328 Store 8(resident) 330 331: 152 Load 154(s2DArrayShadow) 332: 46(fvec3) Load 48(c3) 333: 35(ResType) ImageSparseDrefGather 331 332 50 334: 11(fvec4) CompositeExtract 333 1 Store 13(texel) 334 335: 6(int) CompositeExtract 333 0 336: 6(int) Load 8(resident) 337: 6(int) BitwiseOr 336 335 Store 8(resident) 337 338: 27 Load 29(s2D) 339: 31(fvec2) Load 33(c2) 341: 35(ResType) ImageSparseGather 338 339 9 ConstOffset 340 342: 11(fvec4) CompositeExtract 341 1 Store 13(texel) 342 343: 6(int) CompositeExtract 341 0 344: 6(int) Load 8(resident) 345: 6(int) BitwiseOr 344 343 Store 8(resident) 345 346: 226 Load 228(is2DArray) 347: 46(fvec3) Load 48(c3) 348: 62(ResType) ImageSparseGather 346 347 130 ConstOffset 158 349: 16(ivec4) CompositeExtract 348 1 Store 18(itexel) 349 350: 6(int) CompositeExtract 348 0 351: 6(int) Load 8(resident) 352: 6(int) BitwiseOr 351 350 Store 8(resident) 352 353: 292 Load 294(s2DRectShadow) 354: 31(fvec2) Load 33(c2) 355: 35(ResType) ImageSparseDrefGather 353 354 50 ConstOffset 241 356: 11(fvec4) CompositeExtract 355 1 Store 13(texel) 356 357: 6(int) CompositeExtract 355 0 358: 6(int) Load 8(resident) 359: 6(int) BitwiseOr 358 357 Store 8(resident) 359 360: 27 Load 29(s2D) 361: 31(fvec2) Load 33(c2) 366: 363 Load 365(offsets) 367: 35(ResType) ImageSparseGather 360 361 9 ConstOffsets 366 368: 11(fvec4) CompositeExtract 367 1 Store 13(texel) 368 369: 6(int) CompositeExtract 367 0 370: 6(int) Load 8(resident) 371: 6(int) BitwiseOr 370 369 Store 8(resident) 371 372: 226 Load 228(is2DArray) 373: 46(fvec3) Load 48(c3) 374: 363 Load 365(offsets) 375: 62(ResType) ImageSparseGather 372 373 130 ConstOffsets 374 376: 16(ivec4) CompositeExtract 375 1 Store 18(itexel) 376 377: 6(int) CompositeExtract 375 0 378: 6(int) Load 8(resident) 379: 6(int) BitwiseOr 378 377 Store 8(resident) 379 380: 292 Load 294(s2DRectShadow) 381: 31(fvec2) Load 33(c2) 382: 363 Load 365(offsets) 383: 35(ResType) ImageSparseDrefGather 380 381 50 ConstOffsets 382 384: 11(fvec4) CompositeExtract 383 1 Store 13(texel) 384 385: 6(int) CompositeExtract 383 0 386: 6(int) Load 8(resident) 387: 6(int) BitwiseOr 386 385 Store 8(resident) 387 391: 388 Load 390(i2D) 394: 143(ivec2) Load 393(ic2) 395: 35(ResType) ImageSparseRead 391 394 396: 11(fvec4) CompositeExtract 395 1 Store 13(texel) 396 397: 6(int) CompositeExtract 395 0 398: 6(int) Load 8(resident) 399: 6(int) BitwiseOr 398 397 Store 8(resident) 399 403: 400 Load 402(ii3D) 406: 129(ivec3) Load 405(ic3) 407: 62(ResType) ImageSparseRead 403 406 408: 16(ivec4) CompositeExtract 407 1 Store 18(itexel) 408 409: 6(int) CompositeExtract 407 0 410: 6(int) Load 8(resident) 411: 6(int) BitwiseOr 410 409 Store 8(resident) 411 415: 412 Load 414(i2DMS) 416: 143(ivec2) Load 393(ic2) 417: 35(ResType) ImageSparseRead 415 416 Sample 144 418: 11(fvec4) CompositeExtract 417 1 Store 13(texel) 418 419: 6(int) CompositeExtract 417 0 420: 6(int) Load 8(resident) 421: 6(int) BitwiseOr 420 419 Store 8(resident) 421 424: 6(int) Load 8(resident) 426: 425(bool) ImageSparseTexelsResident 424 SelectionMerge 429 None BranchConditional 426 428 431 428: Label 430: 11(fvec4) Load 13(texel) Store 427 430 Branch 429 431: Label 432: 16(ivec4) Load 18(itexel) 433: 11(fvec4) ConvertSToF 432 434: 21(ivec4) Load 23(utexel) 435: 11(fvec4) ConvertUToF 434 436: 11(fvec4) FAdd 433 435 Store 427 436 Branch 429 429: Label 437: 11(fvec4) Load 427 Store 423(outColor) 437 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.sparseTextureClamp.frag.out000066400000000000000000000610141360464450000250300ustar00rootroot00000000000000spv.sparseTextureClamp.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 47(s3D) DescriptorSet 0 Decorate 47(s3D) Binding 0 Decorate 63(isCube) DescriptorSet 0 Decorate 63(isCube) Binding 0 Decorate 76(s2DShadow) DescriptorSet 0 Decorate 76(s2DShadow) Binding 0 Decorate 92(sCubeArrayShadow) DescriptorSet 0 Decorate 92(sCubeArrayShadow) Binding 0 Decorate 154(us2DRect) DescriptorSet 0 Decorate 154(us2DRect) Binding 0 Decorate 170(s2DArrayShadow) DescriptorSet 0 Decorate 170(s2DArrayShadow) Binding 0 Decorate 218(sCubeShadow) DescriptorSet 0 Decorate 218(sCubeShadow) Binding 0 Decorate 235(usCubeArray) DescriptorSet 0 Decorate 235(usCubeArray) Binding 0 Decorate 286(s2DRectShadow) DescriptorSet 0 Decorate 286(s2DRectShadow) Binding 0 Decorate 305(is2DArray) DescriptorSet 0 Decorate 305(is2DArray) Binding 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 glslang-8.13.3559/Test/baseResults/spv.specConst.vert.out000066400000000000000000000055501360464450000232020ustar00rootroot00000000000000spv.specConst.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.specConstArrayCheck.vert.out000077500000000000000000000002641360464450000251370ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.specConstant.comp.out000066400000000000000000000044651360464450000236670ustar00rootroot00000000000000spv.specConstant.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.specConstant.vert.out000066400000000000000000000156111360464450000237040ustar00rootroot00000000000000spv.specConstant.vert // Module Version 10000 // Generated by (magic number): 80008 // 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[s4529];" Name 13 "p" Name 17 "builtin_spec_constant(" Name 20 "color" Name 22 "ucol" Name 28 "size" Name 30 "spBool" Name 34 "scale" Name 39 "spDouble" Name 40 "spFloat" Name 47 "param" Name 50 "dupArraySize" Name 53 "dupUcol" Name 60 "spDupBool" Name 63 "dupScale" Name 67 "spDupDouble" Name 68 "spDupFloat" Name 76 "result" Name 77 "gl_MaxImageUnits" Decorate 9(arraySize) SpecId 16 Decorate 30(spBool) SpecId 17 Decorate 34(scale) SpecId 22 Decorate 39(spDouble) SpecId 19 Decorate 40(spFloat) SpecId 18 Decorate 50(dupArraySize) SpecId 116 Decorate 60(spDupBool) SpecId 117 Decorate 63(dupScale) SpecId 122 Decorate 67(spDupDouble) SpecId 119 Decorate 68(spDupFloat) SpecId 118 Decorate 77(gl_MaxImageUnits) SpecId 24 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeInt 32 1 9(arraySize): 8(int) SpecConstant 5 10: TypeArray 7(fvec4) 9(arraySize) 11: TypePointer Function 10 12: TypeFunction 2 11(ptr) 16: TypeFunction 8(int) 19: TypePointer Output 7(fvec4) 20(color): 19(ptr) Variable Output 21: TypePointer Input 10 22(ucol): 21(ptr) Variable Input 23: 8(int) Constant 2 24: TypePointer Input 7(fvec4) 27: TypePointer Output 8(int) 28(size): 27(ptr) Variable Output 29: TypeBool 30(spBool): 29(bool) SpecConstantTrue 33: TypeInt 32 0 34(scale): 33(int) SpecConstant 2 38: TypeFloat 64 39(spDouble):38(float64_t) SpecConstant 1413754136 1074340347 40(spFloat): 6(float) SpecConstant 1078523331 41:38(float64_t) SpecConstantOp 115 40(spFloat) 50(dupArraySize): 8(int) SpecConstant 12 51: TypeArray 7(fvec4) 50(dupArraySize) 52: TypePointer Input 51 53(dupUcol): 52(ptr) Variable Input 60(spDupBool): 29(bool) SpecConstantTrue 63(dupScale): 33(int) SpecConstant 2 67(spDupDouble):38(float64_t) SpecConstant 1413754136 1074340347 68(spDupFloat): 6(float) SpecConstant 1078523331 69:38(float64_t) SpecConstantOp 115 68(spDupFloat) 75: TypePointer Function 8(int) 77(gl_MaxImageUnits): 8(int) SpecConstant 8 4(main): 2 Function None 3 5: Label 47(param): 11(ptr) Variable Function 25: 24(ptr) AccessChain 22(ucol) 23 26: 7(fvec4) Load 25 Store 20(color) 26 Store 28(size) 9(arraySize) SelectionMerge 32 None BranchConditional 30(spBool) 31 32 31: Label 35: 6(float) ConvertUToF 34(scale) 36: 7(fvec4) Load 20(color) 37: 7(fvec4) VectorTimesScalar 36 35 Store 20(color) 37 Branch 32 32: Label 42:38(float64_t) FDiv 39(spDouble) 41 43: 6(float) FConvert 42 44: 7(fvec4) Load 20(color) 45: 7(fvec4) CompositeConstruct 43 43 43 43 46: 7(fvec4) FAdd 44 45 Store 20(color) 46 48: 10 Load 22(ucol) Store 47(param) 48 49: 2 FunctionCall 14(foo(vf4[s4529];) 47(param) Return FunctionEnd 14(foo(vf4[s4529];): 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 glslang-8.13.3559/Test/baseResults/spv.specConstantComposite.vert.out000066400000000000000000000103071360464450000255640ustar00rootroot00000000000000spv.specConstantComposite.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 43 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 27 42 Source GLSL 450 Name 4 "main" Name 6 "refer_primary_spec_const(" Name 8 "refer_composite_spec_const(" Name 10 "refer_copmosite_dot_dereference(" Name 12 "refer_composite_bracket_dereference(" Name 16 "refer_spec_const_array_length(" Name 18 "declare_spec_const_in_func(" Name 21 "spec_bool" Name 27 "color" Name 28 "spec_int" Name 33 "len" Name 37 "spec_float" Name 39 "spec_double" Name 42 "global_vec4_array_with_spec_length" Decorate 21(spec_bool) SpecId 203 Decorate 28(spec_int) SpecId 200 Decorate 37(spec_float) SpecId 201 Decorate 39(spec_double) SpecId 202 2: TypeVoid 3: TypeFunction 2 14: TypeInt 32 1 15: TypeFunction 14(int) 20: TypeBool 21(spec_bool): 20(bool) SpecConstantTrue 24: TypeFloat 32 25: TypeVector 24(float) 4 26: TypePointer Output 25(fvec4) 27(color): 26(ptr) Variable Output 28(spec_int): 14(int) SpecConstant 3 32: TypePointer Function 14(int) 37(spec_float): 24(float) SpecConstant 1078523331 38: TypeFloat 64 39(spec_double):38(float64_t) SpecConstant 1413754136 1074340347 40: TypeArray 25(fvec4) 28(spec_int) 41: TypePointer Input 40 42(global_vec4_array_with_spec_length): 41(ptr) Variable Input 4(main): 2 Function None 3 5: Label Return FunctionEnd 6(refer_primary_spec_const(): 2 Function None 3 7: Label SelectionMerge 23 None BranchConditional 21(spec_bool) 22 23 22: Label 29: 24(float) ConvertSToF 28(spec_int) 30: 25(fvec4) Load 27(color) 31: 25(fvec4) VectorTimesScalar 30 29 Store 27(color) 31 Branch 23 23: Label Return FunctionEnd 8(refer_composite_spec_const(): 2 Function None 3 9: Label Return FunctionEnd 10(refer_copmosite_dot_dereference(): 2 Function None 3 11: Label Return FunctionEnd 12(refer_composite_bracket_dereference(): 2 Function None 3 13: Label Return FunctionEnd 16(refer_spec_const_array_length(): 14(int) Function None 15 17: Label 33(len): 32(ptr) Variable Function Store 33(len) 28(spec_int) 34: 14(int) Load 33(len) ReturnValue 34 FunctionEnd 18(declare_spec_const_in_func(): 2 Function None 3 19: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.specConstantOperations.vert.out000066400000000000000000000340141360464450000257460ustar00rootroot00000000000000spv.specConstantOperations.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.ssbo.autoassign.frag.out000066400000000000000000000167001360464450000243210ustar00rootroot00000000000000spv.ssbo.autoassign.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.ssboAlias.frag.out000066400000000000000000000104201360464450000231100ustar00rootroot00000000000000spv.ssboAlias.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.stereoViewRendering.tesc.out000066400000000000000000000120641360464450000252070ustar00rootroot00000000000000spv.stereoViewRendering.tesc // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 42 Capability Geometry Capability Tessellation Capability ShaderViewportIndexLayerNV Capability ShaderViewportMaskNV Capability ShaderStereoViewNV Extension "SPV_EXT_shader_viewport_index_layer" Extension "SPV_NV_stereo_view_rendering" Extension "SPV_NV_viewport_array2" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 16 18 31 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 glslang-8.13.3559/Test/baseResults/spv.stereoViewRendering.vert.out000066400000000000000000000074411360464450000252340ustar00rootroot00000000000000spv.stereoViewRendering.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 27 Capability Shader Capability Geometry Capability ShaderViewportIndexLayerNV Capability ShaderViewportMaskNV Capability ShaderStereoViewNV Extension "SPV_EXT_shader_viewport_index_layer" Extension "SPV_NV_stereo_view_rendering" Extension "SPV_NV_viewport_array2" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 11 19 23 26 Source GLSL 450 SourceExtension "GL_NV_stereo_view_rendering" SourceExtension "GL_NV_viewport_array2" Name 4 "main" Name 11 "gl_SecondaryViewportMaskNV" Name 19 "gl_SecondaryPositionNV" Name 21 "gl_PerVertex" MemberName 21(gl_PerVertex) 0 "gl_Position" MemberName 21(gl_PerVertex) 1 "gl_PointSize" MemberName 21(gl_PerVertex) 2 "gl_ClipDistance" MemberName 21(gl_PerVertex) 3 "gl_CullDistance" Name 23 "" Name 26 "gl_Layer" Decorate 11(gl_SecondaryViewportMaskNV) BuiltIn SecondaryViewportMaskNV Decorate 19(gl_SecondaryPositionNV) BuiltIn SecondaryPositionNV MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance Decorate 21(gl_PerVertex) Block Decorate 26(gl_Layer) BuiltIn Layer Decorate 26(gl_Layer) ViewportRelativeNV Decorate 26(gl_Layer) SecondaryViewportRelativeNV 2 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeInt 32 0 8: 7(int) Constant 1 9: TypeArray 6(int) 8 10: TypePointer Output 9 11(gl_SecondaryViewportMaskNV): 10(ptr) Variable Output 12: 6(int) Constant 0 13: 6(int) Constant 1 14: TypePointer Output 6(int) 16: TypeFloat 32 17: TypeVector 16(float) 4 18: TypePointer Output 17(fvec4) 19(gl_SecondaryPositionNV): 18(ptr) Variable Output 20: TypeArray 16(float) 8 21(gl_PerVertex): TypeStruct 17(fvec4) 16(float) 20 20 22: TypePointer Output 21(gl_PerVertex) 23: 22(ptr) Variable Output 26(gl_Layer): 14(ptr) Variable Output 4(main): 2 Function None 3 5: Label 15: 14(ptr) AccessChain 11(gl_SecondaryViewportMaskNV) 12 Store 15 13 24: 18(ptr) AccessChain 23 12 25: 17(fvec4) Load 24 Store 19(gl_SecondaryPositionNV) 25 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.storageBuffer.vert.out000066400000000000000000000070411360464450000240340ustar00rootroot00000000000000spv.storageBuffer.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeInt 32 0 9: 8(int) Constant 1 10: TypeArray 6(float) 9 11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 12: TypePointer Output 11(gl_PerVertex) 13: 12(ptr) Variable Output 14: TypeInt 32 1 15: 14(int) Constant 0 16(ub): TypeStruct 7(fvec4) 17: TypePointer Uniform 16(ub) 18(ubi): 17(ptr) Variable Uniform 19: TypePointer Uniform 7(fvec4) 22(bb): TypeStruct 7(fvec4) 23: TypePointer StorageBuffer 22(bb) 24(bbi): 23(ptr) Variable StorageBuffer 25: TypePointer StorageBuffer 7(fvec4) 29: TypePointer Output 7(fvec4) 4(main): 2 Function None 3 5: Label 20: 19(ptr) AccessChain 18(ubi) 15 21: 7(fvec4) Load 20 26: 25(ptr) AccessChain 24(bbi) 15 27: 7(fvec4) Load 26 28: 7(fvec4) FAdd 21 27 30: 29(ptr) AccessChain 13 15 Store 30 28 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.structAssignment.frag.out000066400000000000000000000122141360464450000245500ustar00rootroot00000000000000spv.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): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.structDeref.frag.out000066400000000000000000000222321360464450000234660ustar00rootroot00000000000000spv.structDeref.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 123 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 61 99 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 8 "s0" MemberName 8(s0) 0 "i" Name 9 "s1" MemberName 9(s1) 0 "i" MemberName 9(s1) 1 "f" MemberName 9(s1) 2 "s0_1" Name 10 "s2" MemberName 10(s2) 0 "i" MemberName 10(s2) 1 "f" MemberName 10(s2) 2 "s1_1" Name 14 "s3" MemberName 14(s3) 0 "s2_1" MemberName 14(s3) 1 "i" MemberName 14(s3) 2 "f" MemberName 14(s3) 3 "s1_1" Name 16 "foo3" Name 27 "locals2" Name 40 "fArray" Name 46 "locals1Array" Name 49 "foo1" Name 53 "locals0" Name 54 "s00" MemberName 54(s00) 0 "s0_0" Name 56 "locals00" Name 61 "coord" Name 71 "foo0" Name 86 "foo00" Name 99 "gl_FragColor" Name 116 "samp2D" Name 122 "foo2" Decorate 99(gl_FragColor) Location 0 Decorate 116(samp2D) DescriptorSet 0 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 glslang-8.13.3559/Test/baseResults/spv.structure.frag.out000066400000000000000000000113001360464450000232260ustar00rootroot00000000000000spv.structure.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.subgroup.frag.out000066400000000000000000000044131360464450000230430ustar00rootroot00000000000000spv.subgroup.frag // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 17 Capability Shader Capability GroupNonUniform 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 9 11 13 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_KHR_shader_subgroup_basic" Name 4 "main" Name 9 "data" Name 11 "gl_SubgroupSize" Name 13 "gl_SubgroupInvocationID" Decorate 9(data) Location 0 Decorate 11(gl_SubgroupSize) RelaxedPrecision Decorate 11(gl_SubgroupSize) Flat Decorate 11(gl_SubgroupSize) BuiltIn SubgroupSize Decorate 12 RelaxedPrecision Decorate 13(gl_SubgroupInvocationID) RelaxedPrecision Decorate 13(gl_SubgroupInvocationID) Flat Decorate 13(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 14 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypeVector 6(int) 4 8: TypePointer Output 7(ivec4) 9(data): 8(ptr) Variable Output 10: TypePointer Input 6(int) 11(gl_SubgroupSize): 10(ptr) Variable Input 13(gl_SubgroupInvocationID): 10(ptr) Variable Input 15: 6(int) Constant 0 4(main): 2 Function None 3 5: Label 12: 6(int) Load 11(gl_SubgroupSize) 14: 6(int) Load 13(gl_SubgroupInvocationID) 16: 7(ivec4) CompositeConstruct 12 14 15 15 Store 9(data) 16 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroup.geom.out000066400000000000000000000063501360464450000230550ustar00rootroot00000000000000spv.subgroup.geom // Module Version 10300 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.subgroup.tesc.out000066400000000000000000000060761360464450000230710ustar00rootroot00000000000000spv.subgroup.tesc // Module Version 10300 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.subgroup.tese.out000066400000000000000000000062611360464450000230670ustar00rootroot00000000000000spv.subgroup.tese // Module Version 10300 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.subgroup.vert.out000066400000000000000000000057541360464450000231150ustar00rootroot00000000000000spv.subgroup.vert // Module Version 10300 // Generated by (magic number): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.subgroupArithmetic.comp.out000066400000000000000000003750711360464450000251070ustar00rootroot00000000000000spv.subgroupArithmetic.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 2085 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformArithmetic 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" 10 12 ExecutionMode 4 LocalSize 8 1 1 Source GLSL 450 SourceExtension "GL_KHR_shader_subgroup_arithmetic" SourceExtension "GL_KHR_shader_subgroup_basic" Name 4 "main" Name 8 "invocation" Name 10 "gl_SubgroupInvocationID" Name 12 "gl_SubgroupSize" Name 24 "Buffers" MemberName 24(Buffers) 0 "f4" MemberName 24(Buffers) 1 "i4" MemberName 24(Buffers) 2 "u4" MemberName 24(Buffers) 3 "d4" Name 27 "data" Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 11 RelaxedPrecision Decorate 12(gl_SubgroupSize) RelaxedPrecision Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize Decorate 13 RelaxedPrecision Decorate 14 RelaxedPrecision Decorate 16 RelaxedPrecision MemberDecorate 24(Buffers) 0 Offset 0 MemberDecorate 24(Buffers) 1 Offset 16 MemberDecorate 24(Buffers) 2 Offset 32 MemberDecorate 24(Buffers) 3 Offset 64 Decorate 24(Buffers) Block Decorate 27(data) DescriptorSet 0 Decorate 27(data) Binding 0 Decorate 2084 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 9: TypePointer Input 6(int) 10(gl_SubgroupInvocationID): 9(ptr) Variable Input 12(gl_SubgroupSize): 9(ptr) Variable Input 15: 6(int) Constant 4 17: TypeFloat 32 18: TypeVector 17(float) 4 19: TypeInt 32 1 20: TypeVector 19(int) 4 21: TypeVector 6(int) 4 22: TypeFloat 64 23: TypeVector 22(float64_t) 4 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) 25: TypeArray 24(Buffers) 15 26: TypePointer 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) 49: 19(int) Constant 2 50: TypeVector 17(float) 3 59: 19(int) Constant 3 65: TypePointer StorageBuffer 19(int) 71: TypeVector 19(int) 2 72: TypePointer StorageBuffer 20(ivec4) 81: TypeVector 19(int) 3 95: TypePointer StorageBuffer 6(int) 101: TypeVector 6(int) 2 102: TypePointer StorageBuffer 21(ivec4) 111: TypeVector 6(int) 3 125: TypePointer StorageBuffer 22(float64_t) 131: TypeVector 22(float64_t) 2 132: TypePointer StorageBuffer 23(f64vec4) 141: TypeVector 22(float64_t) 3 521: TypeBool 530: 71(ivec2) ConstantComposite 29 29 531: TypeVector 521(bool) 2 534: 71(ivec2) ConstantComposite 38 38 543: 81(ivec3) ConstantComposite 29 29 29 544: TypeVector 521(bool) 3 547: 81(ivec3) ConstantComposite 38 38 38 555: 20(ivec4) ConstantComposite 29 29 29 29 556: TypeVector 521(bool) 4 559: 20(ivec4) ConstantComposite 38 38 38 38 2082: 6(int) Constant 8 2083: 6(int) Constant 1 2084: 111(ivec3) ConstantComposite 2082 2083 2083 4(main): 2 Function None 3 5: Label 8(invocation): 7(ptr) Variable Function 11: 6(int) Load 10(gl_SubgroupInvocationID) 13: 6(int) Load 12(gl_SubgroupSize) 14: 6(int) IAdd 11 13 16: 6(int) UMod 14 15 Store 8(invocation) 16 28: 6(int) Load 8(invocation) 32: 31(ptr) AccessChain 27(data) 29 29 30 33: 17(float) Load 32 35: 17(float) GroupNonUniformFAdd 34 Reduce 33 36: 31(ptr) AccessChain 27(data) 28 29 30 Store 36 35 37: 6(int) Load 8(invocation) 41: 40(ptr) AccessChain 27(data) 38 29 42: 18(fvec4) Load 41 43: 39(fvec2) VectorShuffle 42 42 0 1 44: 39(fvec2) GroupNonUniformFAdd 34 Reduce 43 45: 40(ptr) AccessChain 27(data) 37 29 46: 18(fvec4) Load 45 47: 18(fvec4) VectorShuffle 46 44 4 5 2 3 Store 45 47 48: 6(int) Load 8(invocation) 51: 40(ptr) AccessChain 27(data) 49 29 52: 18(fvec4) Load 51 53: 50(fvec3) VectorShuffle 52 52 0 1 2 54: 50(fvec3) GroupNonUniformFAdd 34 Reduce 53 55: 40(ptr) AccessChain 27(data) 48 29 56: 18(fvec4) Load 55 57: 18(fvec4) VectorShuffle 56 54 4 5 6 3 Store 55 57 58: 6(int) Load 8(invocation) 60: 40(ptr) AccessChain 27(data) 59 29 61: 18(fvec4) Load 60 62: 18(fvec4) GroupNonUniformFAdd 34 Reduce 61 63: 40(ptr) AccessChain 27(data) 58 29 Store 63 62 64: 6(int) Load 8(invocation) 66: 65(ptr) AccessChain 27(data) 29 38 30 67: 19(int) Load 66 68: 19(int) GroupNonUniformIAdd 34 Reduce 67 69: 65(ptr) AccessChain 27(data) 64 38 30 Store 69 68 70: 6(int) Load 8(invocation) 73: 72(ptr) AccessChain 27(data) 38 38 74: 20(ivec4) Load 73 75: 71(ivec2) VectorShuffle 74 74 0 1 76: 71(ivec2) GroupNonUniformIAdd 34 Reduce 75 77: 72(ptr) AccessChain 27(data) 70 38 78: 20(ivec4) Load 77 79: 20(ivec4) VectorShuffle 78 76 4 5 2 3 Store 77 79 80: 6(int) Load 8(invocation) 82: 72(ptr) AccessChain 27(data) 49 38 83: 20(ivec4) Load 82 84: 81(ivec3) VectorShuffle 83 83 0 1 2 85: 81(ivec3) GroupNonUniformIAdd 34 Reduce 84 86: 72(ptr) AccessChain 27(data) 80 38 87: 20(ivec4) Load 86 88: 20(ivec4) VectorShuffle 87 85 4 5 6 3 Store 86 88 89: 6(int) Load 8(invocation) 90: 72(ptr) AccessChain 27(data) 59 38 91: 20(ivec4) Load 90 92: 20(ivec4) GroupNonUniformIAdd 34 Reduce 91 93: 72(ptr) AccessChain 27(data) 89 38 Store 93 92 94: 6(int) Load 8(invocation) 96: 95(ptr) AccessChain 27(data) 29 49 30 97: 6(int) Load 96 98: 6(int) GroupNonUniformIAdd 34 Reduce 97 99: 95(ptr) AccessChain 27(data) 94 49 30 Store 99 98 100: 6(int) Load 8(invocation) 103: 102(ptr) AccessChain 27(data) 38 49 104: 21(ivec4) Load 103 105: 101(ivec2) VectorShuffle 104 104 0 1 106: 101(ivec2) GroupNonUniformIAdd 34 Reduce 105 107: 102(ptr) AccessChain 27(data) 100 49 108: 21(ivec4) Load 107 109: 21(ivec4) VectorShuffle 108 106 4 5 2 3 Store 107 109 110: 6(int) Load 8(invocation) 112: 102(ptr) AccessChain 27(data) 49 49 113: 21(ivec4) Load 112 114: 111(ivec3) VectorShuffle 113 113 0 1 2 115: 111(ivec3) GroupNonUniformIAdd 34 Reduce 114 116: 102(ptr) AccessChain 27(data) 110 49 117: 21(ivec4) Load 116 118: 21(ivec4) VectorShuffle 117 115 4 5 6 3 Store 116 118 119: 6(int) Load 8(invocation) 120: 102(ptr) AccessChain 27(data) 59 49 121: 21(ivec4) Load 120 122: 21(ivec4) GroupNonUniformIAdd 34 Reduce 121 123: 102(ptr) AccessChain 27(data) 119 49 Store 123 122 124: 6(int) Load 8(invocation) 126: 125(ptr) AccessChain 27(data) 29 59 30 127:22(float64_t) Load 126 128:22(float64_t) GroupNonUniformFAdd 34 Reduce 127 129: 125(ptr) AccessChain 27(data) 124 59 30 Store 129 128 130: 6(int) Load 8(invocation) 133: 132(ptr) AccessChain 27(data) 38 59 134: 23(f64vec4) Load 133 135:131(f64vec2) VectorShuffle 134 134 0 1 136:131(f64vec2) GroupNonUniformFAdd 34 Reduce 135 137: 132(ptr) AccessChain 27(data) 130 59 138: 23(f64vec4) Load 137 139: 23(f64vec4) VectorShuffle 138 136 4 5 2 3 Store 137 139 140: 6(int) Load 8(invocation) 142: 132(ptr) AccessChain 27(data) 49 59 143: 23(f64vec4) Load 142 144:141(f64vec3) VectorShuffle 143 143 0 1 2 145:141(f64vec3) GroupNonUniformFAdd 34 Reduce 144 146: 132(ptr) AccessChain 27(data) 140 59 147: 23(f64vec4) Load 146 148: 23(f64vec4) VectorShuffle 147 145 4 5 6 3 Store 146 148 149: 6(int) Load 8(invocation) 150: 132(ptr) AccessChain 27(data) 59 59 151: 23(f64vec4) Load 150 152: 23(f64vec4) GroupNonUniformFAdd 34 Reduce 151 153: 132(ptr) AccessChain 27(data) 149 59 Store 153 152 154: 6(int) Load 8(invocation) 155: 31(ptr) AccessChain 27(data) 29 29 30 156: 17(float) Load 155 157: 17(float) GroupNonUniformFMul 34 Reduce 156 158: 31(ptr) AccessChain 27(data) 154 29 30 Store 158 157 159: 6(int) Load 8(invocation) 160: 40(ptr) AccessChain 27(data) 38 29 161: 18(fvec4) Load 160 162: 39(fvec2) VectorShuffle 161 161 0 1 163: 39(fvec2) GroupNonUniformFMul 34 Reduce 162 164: 40(ptr) AccessChain 27(data) 159 29 165: 18(fvec4) Load 164 166: 18(fvec4) VectorShuffle 165 163 4 5 2 3 Store 164 166 167: 6(int) Load 8(invocation) 168: 40(ptr) AccessChain 27(data) 49 29 169: 18(fvec4) Load 168 170: 50(fvec3) VectorShuffle 169 169 0 1 2 171: 50(fvec3) GroupNonUniformFMul 34 Reduce 170 172: 40(ptr) AccessChain 27(data) 167 29 173: 18(fvec4) Load 172 174: 18(fvec4) VectorShuffle 173 171 4 5 6 3 Store 172 174 175: 6(int) Load 8(invocation) 176: 40(ptr) AccessChain 27(data) 59 29 177: 18(fvec4) Load 176 178: 18(fvec4) GroupNonUniformFMul 34 Reduce 177 179: 40(ptr) AccessChain 27(data) 175 29 Store 179 178 180: 6(int) Load 8(invocation) 181: 65(ptr) AccessChain 27(data) 29 38 30 182: 19(int) Load 181 183: 19(int) GroupNonUniformIMul 34 Reduce 182 184: 65(ptr) AccessChain 27(data) 180 38 30 Store 184 183 185: 6(int) Load 8(invocation) 186: 72(ptr) AccessChain 27(data) 38 38 187: 20(ivec4) Load 186 188: 71(ivec2) VectorShuffle 187 187 0 1 189: 71(ivec2) GroupNonUniformIMul 34 Reduce 188 190: 72(ptr) AccessChain 27(data) 185 38 191: 20(ivec4) Load 190 192: 20(ivec4) VectorShuffle 191 189 4 5 2 3 Store 190 192 193: 6(int) Load 8(invocation) 194: 72(ptr) AccessChain 27(data) 49 38 195: 20(ivec4) Load 194 196: 81(ivec3) VectorShuffle 195 195 0 1 2 197: 81(ivec3) GroupNonUniformIMul 34 Reduce 196 198: 72(ptr) AccessChain 27(data) 193 38 199: 20(ivec4) Load 198 200: 20(ivec4) VectorShuffle 199 197 4 5 6 3 Store 198 200 201: 6(int) Load 8(invocation) 202: 72(ptr) AccessChain 27(data) 59 38 203: 20(ivec4) Load 202 204: 20(ivec4) GroupNonUniformIMul 34 Reduce 203 205: 72(ptr) AccessChain 27(data) 201 38 Store 205 204 206: 6(int) Load 8(invocation) 207: 95(ptr) AccessChain 27(data) 29 49 30 208: 6(int) Load 207 209: 6(int) GroupNonUniformIMul 34 Reduce 208 210: 95(ptr) AccessChain 27(data) 206 49 30 Store 210 209 211: 6(int) Load 8(invocation) 212: 102(ptr) AccessChain 27(data) 38 49 213: 21(ivec4) Load 212 214: 101(ivec2) VectorShuffle 213 213 0 1 215: 101(ivec2) GroupNonUniformIMul 34 Reduce 214 216: 102(ptr) AccessChain 27(data) 211 49 217: 21(ivec4) Load 216 218: 21(ivec4) VectorShuffle 217 215 4 5 2 3 Store 216 218 219: 6(int) Load 8(invocation) 220: 102(ptr) AccessChain 27(data) 49 49 221: 21(ivec4) Load 220 222: 111(ivec3) VectorShuffle 221 221 0 1 2 223: 111(ivec3) GroupNonUniformIMul 34 Reduce 222 224: 102(ptr) AccessChain 27(data) 219 49 225: 21(ivec4) Load 224 226: 21(ivec4) VectorShuffle 225 223 4 5 6 3 Store 224 226 227: 6(int) Load 8(invocation) 228: 102(ptr) AccessChain 27(data) 59 49 229: 21(ivec4) Load 228 230: 21(ivec4) GroupNonUniformIMul 34 Reduce 229 231: 102(ptr) AccessChain 27(data) 227 49 Store 231 230 232: 6(int) Load 8(invocation) 233: 125(ptr) AccessChain 27(data) 29 59 30 234:22(float64_t) Load 233 235:22(float64_t) GroupNonUniformFMul 34 Reduce 234 236: 125(ptr) AccessChain 27(data) 232 59 30 Store 236 235 237: 6(int) Load 8(invocation) 238: 132(ptr) AccessChain 27(data) 38 59 239: 23(f64vec4) Load 238 240:131(f64vec2) VectorShuffle 239 239 0 1 241:131(f64vec2) GroupNonUniformFMul 34 Reduce 240 242: 132(ptr) AccessChain 27(data) 237 59 243: 23(f64vec4) Load 242 244: 23(f64vec4) VectorShuffle 243 241 4 5 2 3 Store 242 244 245: 6(int) Load 8(invocation) 246: 132(ptr) AccessChain 27(data) 49 59 247: 23(f64vec4) Load 246 248:141(f64vec3) VectorShuffle 247 247 0 1 2 249:141(f64vec3) GroupNonUniformFMul 34 Reduce 248 250: 132(ptr) AccessChain 27(data) 245 59 251: 23(f64vec4) Load 250 252: 23(f64vec4) VectorShuffle 251 249 4 5 6 3 Store 250 252 253: 6(int) Load 8(invocation) 254: 132(ptr) AccessChain 27(data) 59 59 255: 23(f64vec4) Load 254 256: 23(f64vec4) GroupNonUniformFMul 34 Reduce 255 257: 132(ptr) AccessChain 27(data) 253 59 Store 257 256 258: 6(int) Load 8(invocation) 259: 31(ptr) AccessChain 27(data) 29 29 30 260: 17(float) Load 259 261: 17(float) GroupNonUniformFMin 34 Reduce 260 262: 31(ptr) AccessChain 27(data) 258 29 30 Store 262 261 263: 6(int) Load 8(invocation) 264: 40(ptr) AccessChain 27(data) 38 29 265: 18(fvec4) Load 264 266: 39(fvec2) VectorShuffle 265 265 0 1 267: 39(fvec2) GroupNonUniformFMin 34 Reduce 266 268: 40(ptr) AccessChain 27(data) 263 29 269: 18(fvec4) Load 268 270: 18(fvec4) VectorShuffle 269 267 4 5 2 3 Store 268 270 271: 6(int) Load 8(invocation) 272: 40(ptr) AccessChain 27(data) 49 29 273: 18(fvec4) Load 272 274: 50(fvec3) VectorShuffle 273 273 0 1 2 275: 50(fvec3) GroupNonUniformFMin 34 Reduce 274 276: 40(ptr) AccessChain 27(data) 271 29 277: 18(fvec4) Load 276 278: 18(fvec4) VectorShuffle 277 275 4 5 6 3 Store 276 278 279: 6(int) Load 8(invocation) 280: 40(ptr) AccessChain 27(data) 59 29 281: 18(fvec4) Load 280 282: 18(fvec4) GroupNonUniformFMin 34 Reduce 281 283: 40(ptr) AccessChain 27(data) 279 29 Store 283 282 284: 6(int) Load 8(invocation) 285: 65(ptr) AccessChain 27(data) 29 38 30 286: 19(int) Load 285 287: 19(int) GroupNonUniformSMin 34 Reduce 286 288: 65(ptr) AccessChain 27(data) 284 38 30 Store 288 287 289: 6(int) Load 8(invocation) 290: 72(ptr) AccessChain 27(data) 38 38 291: 20(ivec4) Load 290 292: 71(ivec2) VectorShuffle 291 291 0 1 293: 71(ivec2) GroupNonUniformSMin 34 Reduce 292 294: 72(ptr) AccessChain 27(data) 289 38 295: 20(ivec4) Load 294 296: 20(ivec4) VectorShuffle 295 293 4 5 2 3 Store 294 296 297: 6(int) Load 8(invocation) 298: 72(ptr) AccessChain 27(data) 49 38 299: 20(ivec4) Load 298 300: 81(ivec3) VectorShuffle 299 299 0 1 2 301: 81(ivec3) GroupNonUniformSMin 34 Reduce 300 302: 72(ptr) AccessChain 27(data) 297 38 303: 20(ivec4) Load 302 304: 20(ivec4) VectorShuffle 303 301 4 5 6 3 Store 302 304 305: 6(int) Load 8(invocation) 306: 72(ptr) AccessChain 27(data) 59 38 307: 20(ivec4) Load 306 308: 20(ivec4) GroupNonUniformSMin 34 Reduce 307 309: 72(ptr) AccessChain 27(data) 305 38 Store 309 308 310: 6(int) Load 8(invocation) 311: 95(ptr) AccessChain 27(data) 29 49 30 312: 6(int) Load 311 313: 6(int) GroupNonUniformUMin 34 Reduce 312 314: 95(ptr) AccessChain 27(data) 310 49 30 Store 314 313 315: 6(int) Load 8(invocation) 316: 102(ptr) AccessChain 27(data) 38 49 317: 21(ivec4) Load 316 318: 101(ivec2) VectorShuffle 317 317 0 1 319: 101(ivec2) GroupNonUniformUMin 34 Reduce 318 320: 102(ptr) AccessChain 27(data) 315 49 321: 21(ivec4) Load 320 322: 21(ivec4) VectorShuffle 321 319 4 5 2 3 Store 320 322 323: 6(int) Load 8(invocation) 324: 102(ptr) AccessChain 27(data) 49 49 325: 21(ivec4) Load 324 326: 111(ivec3) VectorShuffle 325 325 0 1 2 327: 111(ivec3) GroupNonUniformUMin 34 Reduce 326 328: 102(ptr) AccessChain 27(data) 323 49 329: 21(ivec4) Load 328 330: 21(ivec4) VectorShuffle 329 327 4 5 6 3 Store 328 330 331: 6(int) Load 8(invocation) 332: 102(ptr) AccessChain 27(data) 59 49 333: 21(ivec4) Load 332 334: 21(ivec4) GroupNonUniformUMin 34 Reduce 333 335: 102(ptr) AccessChain 27(data) 331 49 Store 335 334 336: 6(int) Load 8(invocation) 337: 125(ptr) AccessChain 27(data) 29 59 30 338:22(float64_t) Load 337 339:22(float64_t) GroupNonUniformFMin 34 Reduce 338 340: 125(ptr) AccessChain 27(data) 336 59 30 Store 340 339 341: 6(int) Load 8(invocation) 342: 132(ptr) AccessChain 27(data) 38 59 343: 23(f64vec4) Load 342 344:131(f64vec2) VectorShuffle 343 343 0 1 345:131(f64vec2) GroupNonUniformFMin 34 Reduce 344 346: 132(ptr) AccessChain 27(data) 341 59 347: 23(f64vec4) Load 346 348: 23(f64vec4) VectorShuffle 347 345 4 5 2 3 Store 346 348 349: 6(int) Load 8(invocation) 350: 132(ptr) AccessChain 27(data) 49 59 351: 23(f64vec4) Load 350 352:141(f64vec3) VectorShuffle 351 351 0 1 2 353:141(f64vec3) GroupNonUniformFMin 34 Reduce 352 354: 132(ptr) AccessChain 27(data) 349 59 355: 23(f64vec4) Load 354 356: 23(f64vec4) VectorShuffle 355 353 4 5 6 3 Store 354 356 357: 6(int) Load 8(invocation) 358: 132(ptr) AccessChain 27(data) 59 59 359: 23(f64vec4) Load 358 360: 23(f64vec4) GroupNonUniformFMin 34 Reduce 359 361: 132(ptr) AccessChain 27(data) 357 59 Store 361 360 362: 6(int) Load 8(invocation) 363: 31(ptr) AccessChain 27(data) 29 29 30 364: 17(float) Load 363 365: 17(float) GroupNonUniformFMax 34 Reduce 364 366: 31(ptr) AccessChain 27(data) 362 29 30 Store 366 365 367: 6(int) Load 8(invocation) 368: 40(ptr) AccessChain 27(data) 38 29 369: 18(fvec4) Load 368 370: 39(fvec2) VectorShuffle 369 369 0 1 371: 39(fvec2) GroupNonUniformFMax 34 Reduce 370 372: 40(ptr) AccessChain 27(data) 367 29 373: 18(fvec4) Load 372 374: 18(fvec4) VectorShuffle 373 371 4 5 2 3 Store 372 374 375: 6(int) Load 8(invocation) 376: 40(ptr) AccessChain 27(data) 49 29 377: 18(fvec4) Load 376 378: 50(fvec3) VectorShuffle 377 377 0 1 2 379: 50(fvec3) GroupNonUniformFMax 34 Reduce 378 380: 40(ptr) AccessChain 27(data) 375 29 381: 18(fvec4) Load 380 382: 18(fvec4) VectorShuffle 381 379 4 5 6 3 Store 380 382 383: 6(int) Load 8(invocation) 384: 40(ptr) AccessChain 27(data) 59 29 385: 18(fvec4) Load 384 386: 18(fvec4) GroupNonUniformFMax 34 Reduce 385 387: 40(ptr) AccessChain 27(data) 383 29 Store 387 386 388: 6(int) Load 8(invocation) 389: 65(ptr) AccessChain 27(data) 29 38 30 390: 19(int) Load 389 391: 19(int) GroupNonUniformSMax 34 Reduce 390 392: 65(ptr) AccessChain 27(data) 388 38 30 Store 392 391 393: 6(int) Load 8(invocation) 394: 72(ptr) AccessChain 27(data) 38 38 395: 20(ivec4) Load 394 396: 71(ivec2) VectorShuffle 395 395 0 1 397: 71(ivec2) GroupNonUniformSMax 34 Reduce 396 398: 72(ptr) AccessChain 27(data) 393 38 399: 20(ivec4) Load 398 400: 20(ivec4) VectorShuffle 399 397 4 5 2 3 Store 398 400 401: 6(int) Load 8(invocation) 402: 72(ptr) AccessChain 27(data) 49 38 403: 20(ivec4) Load 402 404: 81(ivec3) VectorShuffle 403 403 0 1 2 405: 81(ivec3) GroupNonUniformSMax 34 Reduce 404 406: 72(ptr) AccessChain 27(data) 401 38 407: 20(ivec4) Load 406 408: 20(ivec4) VectorShuffle 407 405 4 5 6 3 Store 406 408 409: 6(int) Load 8(invocation) 410: 72(ptr) AccessChain 27(data) 59 38 411: 20(ivec4) Load 410 412: 20(ivec4) GroupNonUniformSMax 34 Reduce 411 413: 72(ptr) AccessChain 27(data) 409 38 Store 413 412 414: 6(int) Load 8(invocation) 415: 95(ptr) AccessChain 27(data) 29 49 30 416: 6(int) Load 415 417: 6(int) GroupNonUniformUMax 34 Reduce 416 418: 95(ptr) AccessChain 27(data) 414 49 30 Store 418 417 419: 6(int) Load 8(invocation) 420: 102(ptr) AccessChain 27(data) 38 49 421: 21(ivec4) Load 420 422: 101(ivec2) VectorShuffle 421 421 0 1 423: 101(ivec2) GroupNonUniformUMax 34 Reduce 422 424: 102(ptr) AccessChain 27(data) 419 49 425: 21(ivec4) Load 424 426: 21(ivec4) VectorShuffle 425 423 4 5 2 3 Store 424 426 427: 6(int) Load 8(invocation) 428: 102(ptr) AccessChain 27(data) 49 49 429: 21(ivec4) Load 428 430: 111(ivec3) VectorShuffle 429 429 0 1 2 431: 111(ivec3) GroupNonUniformUMax 34 Reduce 430 432: 102(ptr) AccessChain 27(data) 427 49 433: 21(ivec4) Load 432 434: 21(ivec4) VectorShuffle 433 431 4 5 6 3 Store 432 434 435: 6(int) Load 8(invocation) 436: 102(ptr) AccessChain 27(data) 59 49 437: 21(ivec4) Load 436 438: 21(ivec4) GroupNonUniformUMax 34 Reduce 437 439: 102(ptr) AccessChain 27(data) 435 49 Store 439 438 440: 6(int) Load 8(invocation) 441: 125(ptr) AccessChain 27(data) 29 59 30 442:22(float64_t) Load 441 443:22(float64_t) GroupNonUniformFMax 34 Reduce 442 444: 125(ptr) AccessChain 27(data) 440 59 30 Store 444 443 445: 6(int) Load 8(invocation) 446: 132(ptr) AccessChain 27(data) 38 59 447: 23(f64vec4) Load 446 448:131(f64vec2) VectorShuffle 447 447 0 1 449:131(f64vec2) GroupNonUniformFMax 34 Reduce 448 450: 132(ptr) AccessChain 27(data) 445 59 451: 23(f64vec4) Load 450 452: 23(f64vec4) VectorShuffle 451 449 4 5 2 3 Store 450 452 453: 6(int) Load 8(invocation) 454: 132(ptr) AccessChain 27(data) 49 59 455: 23(f64vec4) Load 454 456:141(f64vec3) VectorShuffle 455 455 0 1 2 457:141(f64vec3) GroupNonUniformFMax 34 Reduce 456 458: 132(ptr) AccessChain 27(data) 453 59 459: 23(f64vec4) Load 458 460: 23(f64vec4) VectorShuffle 459 457 4 5 6 3 Store 458 460 461: 6(int) Load 8(invocation) 462: 132(ptr) AccessChain 27(data) 59 59 463: 23(f64vec4) Load 462 464: 23(f64vec4) GroupNonUniformFMax 34 Reduce 463 465: 132(ptr) AccessChain 27(data) 461 59 Store 465 464 466: 6(int) Load 8(invocation) 467: 65(ptr) AccessChain 27(data) 29 38 30 468: 19(int) Load 467 469: 19(int) GroupNonUniformBitwiseAnd 34 Reduce 468 470: 65(ptr) AccessChain 27(data) 466 38 30 Store 470 469 471: 6(int) Load 8(invocation) 472: 72(ptr) AccessChain 27(data) 38 38 473: 20(ivec4) Load 472 474: 71(ivec2) VectorShuffle 473 473 0 1 475: 71(ivec2) GroupNonUniformBitwiseAnd 34 Reduce 474 476: 72(ptr) AccessChain 27(data) 471 38 477: 20(ivec4) Load 476 478: 20(ivec4) VectorShuffle 477 475 4 5 2 3 Store 476 478 479: 6(int) Load 8(invocation) 480: 72(ptr) AccessChain 27(data) 49 38 481: 20(ivec4) Load 480 482: 81(ivec3) VectorShuffle 481 481 0 1 2 483: 81(ivec3) GroupNonUniformBitwiseAnd 34 Reduce 482 484: 72(ptr) AccessChain 27(data) 479 38 485: 20(ivec4) Load 484 486: 20(ivec4) VectorShuffle 485 483 4 5 6 3 Store 484 486 487: 6(int) Load 8(invocation) 488: 72(ptr) AccessChain 27(data) 59 38 489: 20(ivec4) Load 488 490: 20(ivec4) GroupNonUniformBitwiseAnd 34 Reduce 489 491: 72(ptr) AccessChain 27(data) 487 38 Store 491 490 492: 6(int) Load 8(invocation) 493: 95(ptr) AccessChain 27(data) 29 49 30 494: 6(int) Load 493 495: 6(int) GroupNonUniformBitwiseAnd 34 Reduce 494 496: 95(ptr) AccessChain 27(data) 492 49 30 Store 496 495 497: 6(int) Load 8(invocation) 498: 102(ptr) AccessChain 27(data) 38 49 499: 21(ivec4) Load 498 500: 101(ivec2) VectorShuffle 499 499 0 1 501: 101(ivec2) GroupNonUniformBitwiseAnd 34 Reduce 500 502: 102(ptr) AccessChain 27(data) 497 49 503: 21(ivec4) Load 502 504: 21(ivec4) VectorShuffle 503 501 4 5 2 3 Store 502 504 505: 6(int) Load 8(invocation) 506: 102(ptr) AccessChain 27(data) 49 49 507: 21(ivec4) Load 506 508: 111(ivec3) VectorShuffle 507 507 0 1 2 509: 111(ivec3) GroupNonUniformBitwiseAnd 34 Reduce 508 510: 102(ptr) AccessChain 27(data) 505 49 511: 21(ivec4) Load 510 512: 21(ivec4) VectorShuffle 511 509 4 5 6 3 Store 510 512 513: 6(int) Load 8(invocation) 514: 102(ptr) AccessChain 27(data) 59 49 515: 21(ivec4) Load 514 516: 21(ivec4) GroupNonUniformBitwiseAnd 34 Reduce 515 517: 102(ptr) AccessChain 27(data) 513 49 Store 517 516 518: 6(int) Load 8(invocation) 519: 65(ptr) AccessChain 27(data) 29 38 30 520: 19(int) Load 519 522: 521(bool) SLessThan 520 29 523: 521(bool) GroupNonUniformLogicalAnd 34 Reduce 522 524: 19(int) Select 523 38 29 525: 65(ptr) AccessChain 27(data) 518 38 30 Store 525 524 526: 6(int) Load 8(invocation) 527: 72(ptr) AccessChain 27(data) 38 38 528: 20(ivec4) Load 527 529: 71(ivec2) VectorShuffle 528 528 0 1 532: 531(bvec2) SLessThan 529 530 533: 531(bvec2) GroupNonUniformLogicalAnd 34 Reduce 532 535: 71(ivec2) Select 533 534 530 536: 72(ptr) AccessChain 27(data) 526 38 537: 20(ivec4) Load 536 538: 20(ivec4) VectorShuffle 537 535 4 5 2 3 Store 536 538 539: 6(int) Load 8(invocation) 540: 72(ptr) AccessChain 27(data) 38 38 541: 20(ivec4) Load 540 542: 81(ivec3) VectorShuffle 541 541 0 1 2 545: 544(bvec3) SLessThan 542 543 546: 544(bvec3) GroupNonUniformLogicalAnd 34 Reduce 545 548: 81(ivec3) Select 546 547 543 549: 72(ptr) AccessChain 27(data) 539 38 550: 20(ivec4) Load 549 551: 20(ivec4) VectorShuffle 550 548 4 5 6 3 Store 549 551 552: 6(int) Load 8(invocation) 553: 72(ptr) AccessChain 27(data) 38 38 554: 20(ivec4) Load 553 557: 556(bvec4) SLessThan 554 555 558: 556(bvec4) GroupNonUniformLogicalAnd 34 Reduce 557 560: 20(ivec4) Select 558 559 555 561: 72(ptr) AccessChain 27(data) 552 38 Store 561 560 562: 6(int) Load 8(invocation) 563: 65(ptr) AccessChain 27(data) 29 38 30 564: 19(int) Load 563 565: 19(int) GroupNonUniformBitwiseOr 34 Reduce 564 566: 65(ptr) AccessChain 27(data) 562 38 30 Store 566 565 567: 6(int) Load 8(invocation) 568: 72(ptr) AccessChain 27(data) 38 38 569: 20(ivec4) Load 568 570: 71(ivec2) VectorShuffle 569 569 0 1 571: 71(ivec2) GroupNonUniformBitwiseOr 34 Reduce 570 572: 72(ptr) AccessChain 27(data) 567 38 573: 20(ivec4) Load 572 574: 20(ivec4) VectorShuffle 573 571 4 5 2 3 Store 572 574 575: 6(int) Load 8(invocation) 576: 72(ptr) AccessChain 27(data) 49 38 577: 20(ivec4) Load 576 578: 81(ivec3) VectorShuffle 577 577 0 1 2 579: 81(ivec3) GroupNonUniformBitwiseOr 34 Reduce 578 580: 72(ptr) AccessChain 27(data) 575 38 581: 20(ivec4) Load 580 582: 20(ivec4) VectorShuffle 581 579 4 5 6 3 Store 580 582 583: 6(int) Load 8(invocation) 584: 72(ptr) AccessChain 27(data) 59 38 585: 20(ivec4) Load 584 586: 20(ivec4) GroupNonUniformBitwiseOr 34 Reduce 585 587: 72(ptr) AccessChain 27(data) 583 38 Store 587 586 588: 6(int) Load 8(invocation) 589: 95(ptr) AccessChain 27(data) 29 49 30 590: 6(int) Load 589 591: 6(int) GroupNonUniformBitwiseOr 34 Reduce 590 592: 95(ptr) AccessChain 27(data) 588 49 30 Store 592 591 593: 6(int) Load 8(invocation) 594: 102(ptr) AccessChain 27(data) 38 49 595: 21(ivec4) Load 594 596: 101(ivec2) VectorShuffle 595 595 0 1 597: 101(ivec2) GroupNonUniformBitwiseOr 34 Reduce 596 598: 102(ptr) AccessChain 27(data) 593 49 599: 21(ivec4) Load 598 600: 21(ivec4) VectorShuffle 599 597 4 5 2 3 Store 598 600 601: 6(int) Load 8(invocation) 602: 102(ptr) AccessChain 27(data) 49 49 603: 21(ivec4) Load 602 604: 111(ivec3) VectorShuffle 603 603 0 1 2 605: 111(ivec3) GroupNonUniformBitwiseOr 34 Reduce 604 606: 102(ptr) AccessChain 27(data) 601 49 607: 21(ivec4) Load 606 608: 21(ivec4) VectorShuffle 607 605 4 5 6 3 Store 606 608 609: 6(int) Load 8(invocation) 610: 102(ptr) AccessChain 27(data) 59 49 611: 21(ivec4) Load 610 612: 21(ivec4) GroupNonUniformBitwiseOr 34 Reduce 611 613: 102(ptr) AccessChain 27(data) 609 49 Store 613 612 614: 6(int) Load 8(invocation) 615: 65(ptr) AccessChain 27(data) 29 38 30 616: 19(int) Load 615 617: 521(bool) SLessThan 616 29 618: 521(bool) GroupNonUniformLogicalOr 34 Reduce 617 619: 19(int) Select 618 38 29 620: 65(ptr) AccessChain 27(data) 614 38 30 Store 620 619 621: 6(int) Load 8(invocation) 622: 72(ptr) AccessChain 27(data) 38 38 623: 20(ivec4) Load 622 624: 71(ivec2) VectorShuffle 623 623 0 1 625: 531(bvec2) SLessThan 624 530 626: 531(bvec2) GroupNonUniformLogicalOr 34 Reduce 625 627: 71(ivec2) Select 626 534 530 628: 72(ptr) AccessChain 27(data) 621 38 629: 20(ivec4) Load 628 630: 20(ivec4) VectorShuffle 629 627 4 5 2 3 Store 628 630 631: 6(int) Load 8(invocation) 632: 72(ptr) AccessChain 27(data) 38 38 633: 20(ivec4) Load 632 634: 81(ivec3) VectorShuffle 633 633 0 1 2 635: 544(bvec3) SLessThan 634 543 636: 544(bvec3) GroupNonUniformLogicalOr 34 Reduce 635 637: 81(ivec3) Select 636 547 543 638: 72(ptr) AccessChain 27(data) 631 38 639: 20(ivec4) Load 638 640: 20(ivec4) VectorShuffle 639 637 4 5 6 3 Store 638 640 641: 6(int) Load 8(invocation) 642: 72(ptr) AccessChain 27(data) 38 38 643: 20(ivec4) Load 642 644: 556(bvec4) SLessThan 643 555 645: 556(bvec4) GroupNonUniformLogicalOr 34 Reduce 644 646: 20(ivec4) Select 645 559 555 647: 72(ptr) AccessChain 27(data) 641 38 Store 647 646 648: 6(int) Load 8(invocation) 649: 65(ptr) AccessChain 27(data) 29 38 30 650: 19(int) Load 649 651: 19(int) GroupNonUniformBitwiseXor 34 Reduce 650 652: 65(ptr) AccessChain 27(data) 648 38 30 Store 652 651 653: 6(int) Load 8(invocation) 654: 72(ptr) AccessChain 27(data) 38 38 655: 20(ivec4) Load 654 656: 71(ivec2) VectorShuffle 655 655 0 1 657: 71(ivec2) GroupNonUniformBitwiseXor 34 Reduce 656 658: 72(ptr) AccessChain 27(data) 653 38 659: 20(ivec4) Load 658 660: 20(ivec4) VectorShuffle 659 657 4 5 2 3 Store 658 660 661: 6(int) Load 8(invocation) 662: 72(ptr) AccessChain 27(data) 49 38 663: 20(ivec4) Load 662 664: 81(ivec3) VectorShuffle 663 663 0 1 2 665: 81(ivec3) GroupNonUniformBitwiseXor 34 Reduce 664 666: 72(ptr) AccessChain 27(data) 661 38 667: 20(ivec4) Load 666 668: 20(ivec4) VectorShuffle 667 665 4 5 6 3 Store 666 668 669: 6(int) Load 8(invocation) 670: 72(ptr) AccessChain 27(data) 59 38 671: 20(ivec4) Load 670 672: 20(ivec4) GroupNonUniformBitwiseXor 34 Reduce 671 673: 72(ptr) AccessChain 27(data) 669 38 Store 673 672 674: 6(int) Load 8(invocation) 675: 95(ptr) AccessChain 27(data) 29 49 30 676: 6(int) Load 675 677: 6(int) GroupNonUniformBitwiseXor 34 Reduce 676 678: 95(ptr) AccessChain 27(data) 674 49 30 Store 678 677 679: 6(int) Load 8(invocation) 680: 102(ptr) AccessChain 27(data) 38 49 681: 21(ivec4) Load 680 682: 101(ivec2) VectorShuffle 681 681 0 1 683: 101(ivec2) GroupNonUniformBitwiseXor 34 Reduce 682 684: 102(ptr) AccessChain 27(data) 679 49 685: 21(ivec4) Load 684 686: 21(ivec4) VectorShuffle 685 683 4 5 2 3 Store 684 686 687: 6(int) Load 8(invocation) 688: 102(ptr) AccessChain 27(data) 49 49 689: 21(ivec4) Load 688 690: 111(ivec3) VectorShuffle 689 689 0 1 2 691: 111(ivec3) GroupNonUniformBitwiseXor 34 Reduce 690 692: 102(ptr) AccessChain 27(data) 687 49 693: 21(ivec4) Load 692 694: 21(ivec4) VectorShuffle 693 691 4 5 6 3 Store 692 694 695: 6(int) Load 8(invocation) 696: 102(ptr) AccessChain 27(data) 59 49 697: 21(ivec4) Load 696 698: 21(ivec4) GroupNonUniformBitwiseXor 34 Reduce 697 699: 102(ptr) AccessChain 27(data) 695 49 Store 699 698 700: 6(int) Load 8(invocation) 701: 65(ptr) AccessChain 27(data) 29 38 30 702: 19(int) Load 701 703: 521(bool) SLessThan 702 29 704: 521(bool) GroupNonUniformLogicalXor 34 Reduce 703 705: 19(int) Select 704 38 29 706: 65(ptr) AccessChain 27(data) 700 38 30 Store 706 705 707: 6(int) Load 8(invocation) 708: 72(ptr) AccessChain 27(data) 38 38 709: 20(ivec4) Load 708 710: 71(ivec2) VectorShuffle 709 709 0 1 711: 531(bvec2) SLessThan 710 530 712: 531(bvec2) GroupNonUniformLogicalXor 34 Reduce 711 713: 71(ivec2) Select 712 534 530 714: 72(ptr) AccessChain 27(data) 707 38 715: 20(ivec4) Load 714 716: 20(ivec4) VectorShuffle 715 713 4 5 2 3 Store 714 716 717: 6(int) Load 8(invocation) 718: 72(ptr) AccessChain 27(data) 38 38 719: 20(ivec4) Load 718 720: 81(ivec3) VectorShuffle 719 719 0 1 2 721: 544(bvec3) SLessThan 720 543 722: 544(bvec3) GroupNonUniformLogicalXor 34 Reduce 721 723: 81(ivec3) Select 722 547 543 724: 72(ptr) AccessChain 27(data) 717 38 725: 20(ivec4) Load 724 726: 20(ivec4) VectorShuffle 725 723 4 5 6 3 Store 724 726 727: 6(int) Load 8(invocation) 728: 72(ptr) AccessChain 27(data) 38 38 729: 20(ivec4) Load 728 730: 556(bvec4) SLessThan 729 555 731: 556(bvec4) GroupNonUniformLogicalXor 34 Reduce 730 732: 20(ivec4) Select 731 559 555 733: 72(ptr) AccessChain 27(data) 727 38 Store 733 732 734: 6(int) Load 8(invocation) 735: 31(ptr) AccessChain 27(data) 29 29 30 736: 17(float) Load 735 737: 17(float) GroupNonUniformFAdd 34 InclusiveScan 736 738: 31(ptr) AccessChain 27(data) 734 29 30 Store 738 737 739: 6(int) Load 8(invocation) 740: 40(ptr) AccessChain 27(data) 38 29 741: 18(fvec4) Load 740 742: 39(fvec2) VectorShuffle 741 741 0 1 743: 39(fvec2) GroupNonUniformFAdd 34 InclusiveScan 742 744: 40(ptr) AccessChain 27(data) 739 29 745: 18(fvec4) Load 744 746: 18(fvec4) VectorShuffle 745 743 4 5 2 3 Store 744 746 747: 6(int) Load 8(invocation) 748: 40(ptr) AccessChain 27(data) 49 29 749: 18(fvec4) Load 748 750: 50(fvec3) VectorShuffle 749 749 0 1 2 751: 50(fvec3) GroupNonUniformFAdd 34 InclusiveScan 750 752: 40(ptr) AccessChain 27(data) 747 29 753: 18(fvec4) Load 752 754: 18(fvec4) VectorShuffle 753 751 4 5 6 3 Store 752 754 755: 6(int) Load 8(invocation) 756: 40(ptr) AccessChain 27(data) 59 29 757: 18(fvec4) Load 756 758: 18(fvec4) GroupNonUniformFAdd 34 InclusiveScan 757 759: 40(ptr) AccessChain 27(data) 755 29 Store 759 758 760: 6(int) Load 8(invocation) 761: 65(ptr) AccessChain 27(data) 29 38 30 762: 19(int) Load 761 763: 19(int) GroupNonUniformIAdd 34 InclusiveScan 762 764: 65(ptr) AccessChain 27(data) 760 38 30 Store 764 763 765: 6(int) Load 8(invocation) 766: 72(ptr) AccessChain 27(data) 38 38 767: 20(ivec4) Load 766 768: 71(ivec2) VectorShuffle 767 767 0 1 769: 71(ivec2) GroupNonUniformIAdd 34 InclusiveScan 768 770: 72(ptr) AccessChain 27(data) 765 38 771: 20(ivec4) Load 770 772: 20(ivec4) VectorShuffle 771 769 4 5 2 3 Store 770 772 773: 6(int) Load 8(invocation) 774: 72(ptr) AccessChain 27(data) 49 38 775: 20(ivec4) Load 774 776: 81(ivec3) VectorShuffle 775 775 0 1 2 777: 81(ivec3) GroupNonUniformIAdd 34 InclusiveScan 776 778: 72(ptr) AccessChain 27(data) 773 38 779: 20(ivec4) Load 778 780: 20(ivec4) VectorShuffle 779 777 4 5 6 3 Store 778 780 781: 6(int) Load 8(invocation) 782: 72(ptr) AccessChain 27(data) 59 38 783: 20(ivec4) Load 782 784: 20(ivec4) GroupNonUniformIAdd 34 InclusiveScan 783 785: 72(ptr) AccessChain 27(data) 781 38 Store 785 784 786: 6(int) Load 8(invocation) 787: 95(ptr) AccessChain 27(data) 29 49 30 788: 6(int) Load 787 789: 6(int) GroupNonUniformIAdd 34 InclusiveScan 788 790: 95(ptr) AccessChain 27(data) 786 49 30 Store 790 789 791: 6(int) Load 8(invocation) 792: 102(ptr) AccessChain 27(data) 38 49 793: 21(ivec4) Load 792 794: 101(ivec2) VectorShuffle 793 793 0 1 795: 101(ivec2) GroupNonUniformIAdd 34 InclusiveScan 794 796: 102(ptr) AccessChain 27(data) 791 49 797: 21(ivec4) Load 796 798: 21(ivec4) VectorShuffle 797 795 4 5 2 3 Store 796 798 799: 6(int) Load 8(invocation) 800: 102(ptr) AccessChain 27(data) 49 49 801: 21(ivec4) Load 800 802: 111(ivec3) VectorShuffle 801 801 0 1 2 803: 111(ivec3) GroupNonUniformIAdd 34 InclusiveScan 802 804: 102(ptr) AccessChain 27(data) 799 49 805: 21(ivec4) Load 804 806: 21(ivec4) VectorShuffle 805 803 4 5 6 3 Store 804 806 807: 6(int) Load 8(invocation) 808: 102(ptr) AccessChain 27(data) 59 49 809: 21(ivec4) Load 808 810: 21(ivec4) GroupNonUniformIAdd 34 InclusiveScan 809 811: 102(ptr) AccessChain 27(data) 807 49 Store 811 810 812: 6(int) Load 8(invocation) 813: 125(ptr) AccessChain 27(data) 29 59 30 814:22(float64_t) Load 813 815:22(float64_t) GroupNonUniformFAdd 34 InclusiveScan 814 816: 125(ptr) AccessChain 27(data) 812 59 30 Store 816 815 817: 6(int) Load 8(invocation) 818: 132(ptr) AccessChain 27(data) 38 59 819: 23(f64vec4) Load 818 820:131(f64vec2) VectorShuffle 819 819 0 1 821:131(f64vec2) GroupNonUniformFAdd 34 InclusiveScan 820 822: 132(ptr) AccessChain 27(data) 817 59 823: 23(f64vec4) Load 822 824: 23(f64vec4) VectorShuffle 823 821 4 5 2 3 Store 822 824 825: 6(int) Load 8(invocation) 826: 132(ptr) AccessChain 27(data) 49 59 827: 23(f64vec4) Load 826 828:141(f64vec3) VectorShuffle 827 827 0 1 2 829:141(f64vec3) GroupNonUniformFAdd 34 InclusiveScan 828 830: 132(ptr) AccessChain 27(data) 825 59 831: 23(f64vec4) Load 830 832: 23(f64vec4) VectorShuffle 831 829 4 5 6 3 Store 830 832 833: 6(int) Load 8(invocation) 834: 132(ptr) AccessChain 27(data) 59 59 835: 23(f64vec4) Load 834 836: 23(f64vec4) GroupNonUniformFAdd 34 InclusiveScan 835 837: 132(ptr) AccessChain 27(data) 833 59 Store 837 836 838: 6(int) Load 8(invocation) 839: 31(ptr) AccessChain 27(data) 29 29 30 840: 17(float) Load 839 841: 17(float) GroupNonUniformFMul 34 InclusiveScan 840 842: 31(ptr) AccessChain 27(data) 838 29 30 Store 842 841 843: 6(int) Load 8(invocation) 844: 40(ptr) AccessChain 27(data) 38 29 845: 18(fvec4) Load 844 846: 39(fvec2) VectorShuffle 845 845 0 1 847: 39(fvec2) GroupNonUniformFMul 34 InclusiveScan 846 848: 40(ptr) AccessChain 27(data) 843 29 849: 18(fvec4) Load 848 850: 18(fvec4) VectorShuffle 849 847 4 5 2 3 Store 848 850 851: 6(int) Load 8(invocation) 852: 40(ptr) AccessChain 27(data) 49 29 853: 18(fvec4) Load 852 854: 50(fvec3) VectorShuffle 853 853 0 1 2 855: 50(fvec3) GroupNonUniformFMul 34 InclusiveScan 854 856: 40(ptr) AccessChain 27(data) 851 29 857: 18(fvec4) Load 856 858: 18(fvec4) VectorShuffle 857 855 4 5 6 3 Store 856 858 859: 6(int) Load 8(invocation) 860: 40(ptr) AccessChain 27(data) 59 29 861: 18(fvec4) Load 860 862: 18(fvec4) GroupNonUniformFMul 34 InclusiveScan 861 863: 40(ptr) AccessChain 27(data) 859 29 Store 863 862 864: 6(int) Load 8(invocation) 865: 65(ptr) AccessChain 27(data) 29 38 30 866: 19(int) Load 865 867: 19(int) GroupNonUniformIMul 34 InclusiveScan 866 868: 65(ptr) AccessChain 27(data) 864 38 30 Store 868 867 869: 6(int) Load 8(invocation) 870: 72(ptr) AccessChain 27(data) 38 38 871: 20(ivec4) Load 870 872: 71(ivec2) VectorShuffle 871 871 0 1 873: 71(ivec2) GroupNonUniformIMul 34 InclusiveScan 872 874: 72(ptr) AccessChain 27(data) 869 38 875: 20(ivec4) Load 874 876: 20(ivec4) VectorShuffle 875 873 4 5 2 3 Store 874 876 877: 6(int) Load 8(invocation) 878: 72(ptr) AccessChain 27(data) 49 38 879: 20(ivec4) Load 878 880: 81(ivec3) VectorShuffle 879 879 0 1 2 881: 81(ivec3) GroupNonUniformIMul 34 InclusiveScan 880 882: 72(ptr) AccessChain 27(data) 877 38 883: 20(ivec4) Load 882 884: 20(ivec4) VectorShuffle 883 881 4 5 6 3 Store 882 884 885: 6(int) Load 8(invocation) 886: 72(ptr) AccessChain 27(data) 59 38 887: 20(ivec4) Load 886 888: 20(ivec4) GroupNonUniformIMul 34 InclusiveScan 887 889: 72(ptr) AccessChain 27(data) 885 38 Store 889 888 890: 6(int) Load 8(invocation) 891: 95(ptr) AccessChain 27(data) 29 49 30 892: 6(int) Load 891 893: 6(int) GroupNonUniformIMul 34 InclusiveScan 892 894: 95(ptr) AccessChain 27(data) 890 49 30 Store 894 893 895: 6(int) Load 8(invocation) 896: 102(ptr) AccessChain 27(data) 38 49 897: 21(ivec4) Load 896 898: 101(ivec2) VectorShuffle 897 897 0 1 899: 101(ivec2) GroupNonUniformIMul 34 InclusiveScan 898 900: 102(ptr) AccessChain 27(data) 895 49 901: 21(ivec4) Load 900 902: 21(ivec4) VectorShuffle 901 899 4 5 2 3 Store 900 902 903: 6(int) Load 8(invocation) 904: 102(ptr) AccessChain 27(data) 49 49 905: 21(ivec4) Load 904 906: 111(ivec3) VectorShuffle 905 905 0 1 2 907: 111(ivec3) GroupNonUniformIMul 34 InclusiveScan 906 908: 102(ptr) AccessChain 27(data) 903 49 909: 21(ivec4) Load 908 910: 21(ivec4) VectorShuffle 909 907 4 5 6 3 Store 908 910 911: 6(int) Load 8(invocation) 912: 102(ptr) AccessChain 27(data) 59 49 913: 21(ivec4) Load 912 914: 21(ivec4) GroupNonUniformIMul 34 InclusiveScan 913 915: 102(ptr) AccessChain 27(data) 911 49 Store 915 914 916: 6(int) Load 8(invocation) 917: 125(ptr) AccessChain 27(data) 29 59 30 918:22(float64_t) Load 917 919:22(float64_t) GroupNonUniformFMul 34 InclusiveScan 918 920: 125(ptr) AccessChain 27(data) 916 59 30 Store 920 919 921: 6(int) Load 8(invocation) 922: 132(ptr) AccessChain 27(data) 38 59 923: 23(f64vec4) Load 922 924:131(f64vec2) VectorShuffle 923 923 0 1 925:131(f64vec2) GroupNonUniformFMul 34 InclusiveScan 924 926: 132(ptr) AccessChain 27(data) 921 59 927: 23(f64vec4) Load 926 928: 23(f64vec4) VectorShuffle 927 925 4 5 2 3 Store 926 928 929: 6(int) Load 8(invocation) 930: 132(ptr) AccessChain 27(data) 49 59 931: 23(f64vec4) Load 930 932:141(f64vec3) VectorShuffle 931 931 0 1 2 933:141(f64vec3) GroupNonUniformFMul 34 InclusiveScan 932 934: 132(ptr) AccessChain 27(data) 929 59 935: 23(f64vec4) Load 934 936: 23(f64vec4) VectorShuffle 935 933 4 5 6 3 Store 934 936 937: 6(int) Load 8(invocation) 938: 132(ptr) AccessChain 27(data) 59 59 939: 23(f64vec4) Load 938 940: 23(f64vec4) GroupNonUniformFMul 34 InclusiveScan 939 941: 132(ptr) AccessChain 27(data) 937 59 Store 941 940 942: 6(int) Load 8(invocation) 943: 31(ptr) AccessChain 27(data) 29 29 30 944: 17(float) Load 943 945: 17(float) GroupNonUniformFMin 34 InclusiveScan 944 946: 31(ptr) AccessChain 27(data) 942 29 30 Store 946 945 947: 6(int) Load 8(invocation) 948: 40(ptr) AccessChain 27(data) 38 29 949: 18(fvec4) Load 948 950: 39(fvec2) VectorShuffle 949 949 0 1 951: 39(fvec2) GroupNonUniformFMin 34 InclusiveScan 950 952: 40(ptr) AccessChain 27(data) 947 29 953: 18(fvec4) Load 952 954: 18(fvec4) VectorShuffle 953 951 4 5 2 3 Store 952 954 955: 6(int) Load 8(invocation) 956: 40(ptr) AccessChain 27(data) 49 29 957: 18(fvec4) Load 956 958: 50(fvec3) VectorShuffle 957 957 0 1 2 959: 50(fvec3) GroupNonUniformFMin 34 InclusiveScan 958 960: 40(ptr) AccessChain 27(data) 955 29 961: 18(fvec4) Load 960 962: 18(fvec4) VectorShuffle 961 959 4 5 6 3 Store 960 962 963: 6(int) Load 8(invocation) 964: 40(ptr) AccessChain 27(data) 59 29 965: 18(fvec4) Load 964 966: 18(fvec4) GroupNonUniformFMin 34 InclusiveScan 965 967: 40(ptr) AccessChain 27(data) 963 29 Store 967 966 968: 6(int) Load 8(invocation) 969: 65(ptr) AccessChain 27(data) 29 38 30 970: 19(int) Load 969 971: 19(int) GroupNonUniformSMin 34 InclusiveScan 970 972: 65(ptr) AccessChain 27(data) 968 38 30 Store 972 971 973: 6(int) Load 8(invocation) 974: 72(ptr) AccessChain 27(data) 38 38 975: 20(ivec4) Load 974 976: 71(ivec2) VectorShuffle 975 975 0 1 977: 71(ivec2) GroupNonUniformSMin 34 InclusiveScan 976 978: 72(ptr) AccessChain 27(data) 973 38 979: 20(ivec4) Load 978 980: 20(ivec4) VectorShuffle 979 977 4 5 2 3 Store 978 980 981: 6(int) Load 8(invocation) 982: 72(ptr) AccessChain 27(data) 49 38 983: 20(ivec4) Load 982 984: 81(ivec3) VectorShuffle 983 983 0 1 2 985: 81(ivec3) GroupNonUniformSMin 34 InclusiveScan 984 986: 72(ptr) AccessChain 27(data) 981 38 987: 20(ivec4) Load 986 988: 20(ivec4) VectorShuffle 987 985 4 5 6 3 Store 986 988 989: 6(int) Load 8(invocation) 990: 72(ptr) AccessChain 27(data) 59 38 991: 20(ivec4) Load 990 992: 20(ivec4) GroupNonUniformSMin 34 InclusiveScan 991 993: 72(ptr) AccessChain 27(data) 989 38 Store 993 992 994: 6(int) Load 8(invocation) 995: 95(ptr) AccessChain 27(data) 29 49 30 996: 6(int) Load 995 997: 6(int) GroupNonUniformUMin 34 InclusiveScan 996 998: 95(ptr) AccessChain 27(data) 994 49 30 Store 998 997 999: 6(int) Load 8(invocation) 1000: 102(ptr) AccessChain 27(data) 38 49 1001: 21(ivec4) Load 1000 1002: 101(ivec2) VectorShuffle 1001 1001 0 1 1003: 101(ivec2) GroupNonUniformUMin 34 InclusiveScan 1002 1004: 102(ptr) AccessChain 27(data) 999 49 1005: 21(ivec4) Load 1004 1006: 21(ivec4) VectorShuffle 1005 1003 4 5 2 3 Store 1004 1006 1007: 6(int) Load 8(invocation) 1008: 102(ptr) AccessChain 27(data) 49 49 1009: 21(ivec4) Load 1008 1010: 111(ivec3) VectorShuffle 1009 1009 0 1 2 1011: 111(ivec3) GroupNonUniformUMin 34 InclusiveScan 1010 1012: 102(ptr) AccessChain 27(data) 1007 49 1013: 21(ivec4) Load 1012 1014: 21(ivec4) VectorShuffle 1013 1011 4 5 6 3 Store 1012 1014 1015: 6(int) Load 8(invocation) 1016: 102(ptr) AccessChain 27(data) 59 49 1017: 21(ivec4) Load 1016 1018: 21(ivec4) GroupNonUniformUMin 34 InclusiveScan 1017 1019: 102(ptr) AccessChain 27(data) 1015 49 Store 1019 1018 1020: 6(int) Load 8(invocation) 1021: 125(ptr) AccessChain 27(data) 29 59 30 1022:22(float64_t) Load 1021 1023:22(float64_t) GroupNonUniformFMin 34 InclusiveScan 1022 1024: 125(ptr) AccessChain 27(data) 1020 59 30 Store 1024 1023 1025: 6(int) Load 8(invocation) 1026: 132(ptr) AccessChain 27(data) 38 59 1027: 23(f64vec4) Load 1026 1028:131(f64vec2) VectorShuffle 1027 1027 0 1 1029:131(f64vec2) GroupNonUniformFMin 34 InclusiveScan 1028 1030: 132(ptr) AccessChain 27(data) 1025 59 1031: 23(f64vec4) Load 1030 1032: 23(f64vec4) VectorShuffle 1031 1029 4 5 2 3 Store 1030 1032 1033: 6(int) Load 8(invocation) 1034: 132(ptr) AccessChain 27(data) 49 59 1035: 23(f64vec4) Load 1034 1036:141(f64vec3) VectorShuffle 1035 1035 0 1 2 1037:141(f64vec3) GroupNonUniformFMin 34 InclusiveScan 1036 1038: 132(ptr) AccessChain 27(data) 1033 59 1039: 23(f64vec4) Load 1038 1040: 23(f64vec4) VectorShuffle 1039 1037 4 5 6 3 Store 1038 1040 1041: 6(int) Load 8(invocation) 1042: 132(ptr) AccessChain 27(data) 59 59 1043: 23(f64vec4) Load 1042 1044: 23(f64vec4) GroupNonUniformFMin 34 InclusiveScan 1043 1045: 132(ptr) AccessChain 27(data) 1041 59 Store 1045 1044 1046: 6(int) Load 8(invocation) 1047: 31(ptr) AccessChain 27(data) 29 29 30 1048: 17(float) Load 1047 1049: 17(float) GroupNonUniformFMax 34 InclusiveScan 1048 1050: 31(ptr) AccessChain 27(data) 1046 29 30 Store 1050 1049 1051: 6(int) Load 8(invocation) 1052: 40(ptr) AccessChain 27(data) 38 29 1053: 18(fvec4) Load 1052 1054: 39(fvec2) VectorShuffle 1053 1053 0 1 1055: 39(fvec2) GroupNonUniformFMax 34 InclusiveScan 1054 1056: 40(ptr) AccessChain 27(data) 1051 29 1057: 18(fvec4) Load 1056 1058: 18(fvec4) VectorShuffle 1057 1055 4 5 2 3 Store 1056 1058 1059: 6(int) Load 8(invocation) 1060: 40(ptr) AccessChain 27(data) 49 29 1061: 18(fvec4) Load 1060 1062: 50(fvec3) VectorShuffle 1061 1061 0 1 2 1063: 50(fvec3) GroupNonUniformFMax 34 InclusiveScan 1062 1064: 40(ptr) AccessChain 27(data) 1059 29 1065: 18(fvec4) Load 1064 1066: 18(fvec4) VectorShuffle 1065 1063 4 5 6 3 Store 1064 1066 1067: 6(int) Load 8(invocation) 1068: 40(ptr) AccessChain 27(data) 59 29 1069: 18(fvec4) Load 1068 1070: 18(fvec4) GroupNonUniformFMax 34 InclusiveScan 1069 1071: 40(ptr) AccessChain 27(data) 1067 29 Store 1071 1070 1072: 6(int) Load 8(invocation) 1073: 65(ptr) AccessChain 27(data) 29 38 30 1074: 19(int) Load 1073 1075: 19(int) GroupNonUniformSMax 34 InclusiveScan 1074 1076: 65(ptr) AccessChain 27(data) 1072 38 30 Store 1076 1075 1077: 6(int) Load 8(invocation) 1078: 72(ptr) AccessChain 27(data) 38 38 1079: 20(ivec4) Load 1078 1080: 71(ivec2) VectorShuffle 1079 1079 0 1 1081: 71(ivec2) GroupNonUniformSMax 34 InclusiveScan 1080 1082: 72(ptr) AccessChain 27(data) 1077 38 1083: 20(ivec4) Load 1082 1084: 20(ivec4) VectorShuffle 1083 1081 4 5 2 3 Store 1082 1084 1085: 6(int) Load 8(invocation) 1086: 72(ptr) AccessChain 27(data) 49 38 1087: 20(ivec4) Load 1086 1088: 81(ivec3) VectorShuffle 1087 1087 0 1 2 1089: 81(ivec3) GroupNonUniformSMax 34 InclusiveScan 1088 1090: 72(ptr) AccessChain 27(data) 1085 38 1091: 20(ivec4) Load 1090 1092: 20(ivec4) VectorShuffle 1091 1089 4 5 6 3 Store 1090 1092 1093: 6(int) Load 8(invocation) 1094: 72(ptr) AccessChain 27(data) 59 38 1095: 20(ivec4) Load 1094 1096: 20(ivec4) GroupNonUniformSMax 34 InclusiveScan 1095 1097: 72(ptr) AccessChain 27(data) 1093 38 Store 1097 1096 1098: 6(int) Load 8(invocation) 1099: 95(ptr) AccessChain 27(data) 29 49 30 1100: 6(int) Load 1099 1101: 6(int) GroupNonUniformUMax 34 InclusiveScan 1100 1102: 95(ptr) AccessChain 27(data) 1098 49 30 Store 1102 1101 1103: 6(int) Load 8(invocation) 1104: 102(ptr) AccessChain 27(data) 38 49 1105: 21(ivec4) Load 1104 1106: 101(ivec2) VectorShuffle 1105 1105 0 1 1107: 101(ivec2) GroupNonUniformUMax 34 InclusiveScan 1106 1108: 102(ptr) AccessChain 27(data) 1103 49 1109: 21(ivec4) Load 1108 1110: 21(ivec4) VectorShuffle 1109 1107 4 5 2 3 Store 1108 1110 1111: 6(int) Load 8(invocation) 1112: 102(ptr) AccessChain 27(data) 49 49 1113: 21(ivec4) Load 1112 1114: 111(ivec3) VectorShuffle 1113 1113 0 1 2 1115: 111(ivec3) GroupNonUniformUMax 34 InclusiveScan 1114 1116: 102(ptr) AccessChain 27(data) 1111 49 1117: 21(ivec4) Load 1116 1118: 21(ivec4) VectorShuffle 1117 1115 4 5 6 3 Store 1116 1118 1119: 6(int) Load 8(invocation) 1120: 102(ptr) AccessChain 27(data) 59 49 1121: 21(ivec4) Load 1120 1122: 21(ivec4) GroupNonUniformUMax 34 InclusiveScan 1121 1123: 102(ptr) AccessChain 27(data) 1119 49 Store 1123 1122 1124: 6(int) Load 8(invocation) 1125: 125(ptr) AccessChain 27(data) 29 59 30 1126:22(float64_t) Load 1125 1127:22(float64_t) GroupNonUniformFMax 34 InclusiveScan 1126 1128: 125(ptr) AccessChain 27(data) 1124 59 30 Store 1128 1127 1129: 6(int) Load 8(invocation) 1130: 132(ptr) AccessChain 27(data) 38 59 1131: 23(f64vec4) Load 1130 1132:131(f64vec2) VectorShuffle 1131 1131 0 1 1133:131(f64vec2) GroupNonUniformFMax 34 InclusiveScan 1132 1134: 132(ptr) AccessChain 27(data) 1129 59 1135: 23(f64vec4) Load 1134 1136: 23(f64vec4) VectorShuffle 1135 1133 4 5 2 3 Store 1134 1136 1137: 6(int) Load 8(invocation) 1138: 132(ptr) AccessChain 27(data) 49 59 1139: 23(f64vec4) Load 1138 1140:141(f64vec3) VectorShuffle 1139 1139 0 1 2 1141:141(f64vec3) GroupNonUniformFMax 34 InclusiveScan 1140 1142: 132(ptr) AccessChain 27(data) 1137 59 1143: 23(f64vec4) Load 1142 1144: 23(f64vec4) VectorShuffle 1143 1141 4 5 6 3 Store 1142 1144 1145: 6(int) Load 8(invocation) 1146: 132(ptr) AccessChain 27(data) 59 59 1147: 23(f64vec4) Load 1146 1148: 23(f64vec4) GroupNonUniformFMax 34 InclusiveScan 1147 1149: 132(ptr) AccessChain 27(data) 1145 59 Store 1149 1148 1150: 6(int) Load 8(invocation) 1151: 65(ptr) AccessChain 27(data) 29 38 30 1152: 19(int) Load 1151 1153: 19(int) GroupNonUniformBitwiseAnd 34 InclusiveScan 1152 1154: 65(ptr) AccessChain 27(data) 1150 38 30 Store 1154 1153 1155: 6(int) Load 8(invocation) 1156: 72(ptr) AccessChain 27(data) 38 38 1157: 20(ivec4) Load 1156 1158: 71(ivec2) VectorShuffle 1157 1157 0 1 1159: 71(ivec2) GroupNonUniformBitwiseAnd 34 InclusiveScan 1158 1160: 72(ptr) AccessChain 27(data) 1155 38 1161: 20(ivec4) Load 1160 1162: 20(ivec4) VectorShuffle 1161 1159 4 5 2 3 Store 1160 1162 1163: 6(int) Load 8(invocation) 1164: 72(ptr) AccessChain 27(data) 49 38 1165: 20(ivec4) Load 1164 1166: 81(ivec3) VectorShuffle 1165 1165 0 1 2 1167: 81(ivec3) GroupNonUniformBitwiseAnd 34 InclusiveScan 1166 1168: 72(ptr) AccessChain 27(data) 1163 38 1169: 20(ivec4) Load 1168 1170: 20(ivec4) VectorShuffle 1169 1167 4 5 6 3 Store 1168 1170 1171: 6(int) Load 8(invocation) 1172: 72(ptr) AccessChain 27(data) 59 38 1173: 20(ivec4) Load 1172 1174: 20(ivec4) GroupNonUniformBitwiseAnd 34 InclusiveScan 1173 1175: 72(ptr) AccessChain 27(data) 1171 38 Store 1175 1174 1176: 6(int) Load 8(invocation) 1177: 95(ptr) AccessChain 27(data) 29 49 30 1178: 6(int) Load 1177 1179: 6(int) GroupNonUniformBitwiseAnd 34 InclusiveScan 1178 1180: 95(ptr) AccessChain 27(data) 1176 49 30 Store 1180 1179 1181: 6(int) Load 8(invocation) 1182: 102(ptr) AccessChain 27(data) 38 49 1183: 21(ivec4) Load 1182 1184: 101(ivec2) VectorShuffle 1183 1183 0 1 1185: 101(ivec2) GroupNonUniformBitwiseAnd 34 InclusiveScan 1184 1186: 102(ptr) AccessChain 27(data) 1181 49 1187: 21(ivec4) Load 1186 1188: 21(ivec4) VectorShuffle 1187 1185 4 5 2 3 Store 1186 1188 1189: 6(int) Load 8(invocation) 1190: 102(ptr) AccessChain 27(data) 49 49 1191: 21(ivec4) Load 1190 1192: 111(ivec3) VectorShuffle 1191 1191 0 1 2 1193: 111(ivec3) GroupNonUniformBitwiseAnd 34 InclusiveScan 1192 1194: 102(ptr) AccessChain 27(data) 1189 49 1195: 21(ivec4) Load 1194 1196: 21(ivec4) VectorShuffle 1195 1193 4 5 6 3 Store 1194 1196 1197: 6(int) Load 8(invocation) 1198: 102(ptr) AccessChain 27(data) 59 49 1199: 21(ivec4) Load 1198 1200: 21(ivec4) GroupNonUniformBitwiseAnd 34 InclusiveScan 1199 1201: 102(ptr) AccessChain 27(data) 1197 49 Store 1201 1200 1202: 6(int) Load 8(invocation) 1203: 65(ptr) AccessChain 27(data) 29 38 30 1204: 19(int) Load 1203 1205: 521(bool) SLessThan 1204 29 1206: 521(bool) GroupNonUniformLogicalAnd 34 InclusiveScan 1205 1207: 19(int) Select 1206 38 29 1208: 65(ptr) AccessChain 27(data) 1202 38 30 Store 1208 1207 1209: 6(int) Load 8(invocation) 1210: 72(ptr) AccessChain 27(data) 38 38 1211: 20(ivec4) Load 1210 1212: 71(ivec2) VectorShuffle 1211 1211 0 1 1213: 531(bvec2) SLessThan 1212 530 1214: 531(bvec2) GroupNonUniformLogicalAnd 34 InclusiveScan 1213 1215: 71(ivec2) Select 1214 534 530 1216: 72(ptr) AccessChain 27(data) 1209 38 1217: 20(ivec4) Load 1216 1218: 20(ivec4) VectorShuffle 1217 1215 4 5 2 3 Store 1216 1218 1219: 6(int) Load 8(invocation) 1220: 72(ptr) AccessChain 27(data) 38 38 1221: 20(ivec4) Load 1220 1222: 81(ivec3) VectorShuffle 1221 1221 0 1 2 1223: 544(bvec3) SLessThan 1222 543 1224: 544(bvec3) GroupNonUniformLogicalAnd 34 InclusiveScan 1223 1225: 81(ivec3) Select 1224 547 543 1226: 72(ptr) AccessChain 27(data) 1219 38 1227: 20(ivec4) Load 1226 1228: 20(ivec4) VectorShuffle 1227 1225 4 5 6 3 Store 1226 1228 1229: 6(int) Load 8(invocation) 1230: 72(ptr) AccessChain 27(data) 38 38 1231: 20(ivec4) Load 1230 1232: 556(bvec4) SLessThan 1231 555 1233: 556(bvec4) GroupNonUniformLogicalAnd 34 InclusiveScan 1232 1234: 20(ivec4) Select 1233 559 555 1235: 72(ptr) AccessChain 27(data) 1229 38 Store 1235 1234 1236: 6(int) Load 8(invocation) 1237: 65(ptr) AccessChain 27(data) 29 38 30 1238: 19(int) Load 1237 1239: 19(int) GroupNonUniformBitwiseOr 34 InclusiveScan 1238 1240: 65(ptr) AccessChain 27(data) 1236 38 30 Store 1240 1239 1241: 6(int) Load 8(invocation) 1242: 72(ptr) AccessChain 27(data) 38 38 1243: 20(ivec4) Load 1242 1244: 71(ivec2) VectorShuffle 1243 1243 0 1 1245: 71(ivec2) GroupNonUniformBitwiseOr 34 InclusiveScan 1244 1246: 72(ptr) AccessChain 27(data) 1241 38 1247: 20(ivec4) Load 1246 1248: 20(ivec4) VectorShuffle 1247 1245 4 5 2 3 Store 1246 1248 1249: 6(int) Load 8(invocation) 1250: 72(ptr) AccessChain 27(data) 49 38 1251: 20(ivec4) Load 1250 1252: 81(ivec3) VectorShuffle 1251 1251 0 1 2 1253: 81(ivec3) GroupNonUniformBitwiseOr 34 InclusiveScan 1252 1254: 72(ptr) AccessChain 27(data) 1249 38 1255: 20(ivec4) Load 1254 1256: 20(ivec4) VectorShuffle 1255 1253 4 5 6 3 Store 1254 1256 1257: 6(int) Load 8(invocation) 1258: 72(ptr) AccessChain 27(data) 59 38 1259: 20(ivec4) Load 1258 1260: 20(ivec4) GroupNonUniformBitwiseOr 34 InclusiveScan 1259 1261: 72(ptr) AccessChain 27(data) 1257 38 Store 1261 1260 1262: 6(int) Load 8(invocation) 1263: 95(ptr) AccessChain 27(data) 29 49 30 1264: 6(int) Load 1263 1265: 6(int) GroupNonUniformBitwiseOr 34 InclusiveScan 1264 1266: 95(ptr) AccessChain 27(data) 1262 49 30 Store 1266 1265 1267: 6(int) Load 8(invocation) 1268: 102(ptr) AccessChain 27(data) 38 49 1269: 21(ivec4) Load 1268 1270: 101(ivec2) VectorShuffle 1269 1269 0 1 1271: 101(ivec2) GroupNonUniformBitwiseOr 34 InclusiveScan 1270 1272: 102(ptr) AccessChain 27(data) 1267 49 1273: 21(ivec4) Load 1272 1274: 21(ivec4) VectorShuffle 1273 1271 4 5 2 3 Store 1272 1274 1275: 6(int) Load 8(invocation) 1276: 102(ptr) AccessChain 27(data) 49 49 1277: 21(ivec4) Load 1276 1278: 111(ivec3) VectorShuffle 1277 1277 0 1 2 1279: 111(ivec3) GroupNonUniformBitwiseOr 34 InclusiveScan 1278 1280: 102(ptr) AccessChain 27(data) 1275 49 1281: 21(ivec4) Load 1280 1282: 21(ivec4) VectorShuffle 1281 1279 4 5 6 3 Store 1280 1282 1283: 6(int) Load 8(invocation) 1284: 102(ptr) AccessChain 27(data) 59 49 1285: 21(ivec4) Load 1284 1286: 21(ivec4) GroupNonUniformBitwiseOr 34 InclusiveScan 1285 1287: 102(ptr) AccessChain 27(data) 1283 49 Store 1287 1286 1288: 6(int) Load 8(invocation) 1289: 65(ptr) AccessChain 27(data) 29 38 30 1290: 19(int) Load 1289 1291: 521(bool) SLessThan 1290 29 1292: 521(bool) GroupNonUniformLogicalOr 34 InclusiveScan 1291 1293: 19(int) Select 1292 38 29 1294: 65(ptr) AccessChain 27(data) 1288 38 30 Store 1294 1293 1295: 6(int) Load 8(invocation) 1296: 72(ptr) AccessChain 27(data) 38 38 1297: 20(ivec4) Load 1296 1298: 71(ivec2) VectorShuffle 1297 1297 0 1 1299: 531(bvec2) SLessThan 1298 530 1300: 531(bvec2) GroupNonUniformLogicalOr 34 InclusiveScan 1299 1301: 71(ivec2) Select 1300 534 530 1302: 72(ptr) AccessChain 27(data) 1295 38 1303: 20(ivec4) Load 1302 1304: 20(ivec4) VectorShuffle 1303 1301 4 5 2 3 Store 1302 1304 1305: 6(int) Load 8(invocation) 1306: 72(ptr) AccessChain 27(data) 38 38 1307: 20(ivec4) Load 1306 1308: 81(ivec3) VectorShuffle 1307 1307 0 1 2 1309: 544(bvec3) SLessThan 1308 543 1310: 544(bvec3) GroupNonUniformLogicalOr 34 InclusiveScan 1309 1311: 81(ivec3) Select 1310 547 543 1312: 72(ptr) AccessChain 27(data) 1305 38 1313: 20(ivec4) Load 1312 1314: 20(ivec4) VectorShuffle 1313 1311 4 5 6 3 Store 1312 1314 1315: 6(int) Load 8(invocation) 1316: 72(ptr) AccessChain 27(data) 38 38 1317: 20(ivec4) Load 1316 1318: 556(bvec4) SLessThan 1317 555 1319: 556(bvec4) GroupNonUniformLogicalOr 34 InclusiveScan 1318 1320: 20(ivec4) Select 1319 559 555 1321: 72(ptr) AccessChain 27(data) 1315 38 Store 1321 1320 1322: 6(int) Load 8(invocation) 1323: 65(ptr) AccessChain 27(data) 29 38 30 1324: 19(int) Load 1323 1325: 19(int) GroupNonUniformBitwiseXor 34 InclusiveScan 1324 1326: 65(ptr) AccessChain 27(data) 1322 38 30 Store 1326 1325 1327: 6(int) Load 8(invocation) 1328: 72(ptr) AccessChain 27(data) 38 38 1329: 20(ivec4) Load 1328 1330: 71(ivec2) VectorShuffle 1329 1329 0 1 1331: 71(ivec2) GroupNonUniformBitwiseXor 34 InclusiveScan 1330 1332: 72(ptr) AccessChain 27(data) 1327 38 1333: 20(ivec4) Load 1332 1334: 20(ivec4) VectorShuffle 1333 1331 4 5 2 3 Store 1332 1334 1335: 6(int) Load 8(invocation) 1336: 72(ptr) AccessChain 27(data) 49 38 1337: 20(ivec4) Load 1336 1338: 81(ivec3) VectorShuffle 1337 1337 0 1 2 1339: 81(ivec3) GroupNonUniformBitwiseXor 34 InclusiveScan 1338 1340: 72(ptr) AccessChain 27(data) 1335 38 1341: 20(ivec4) Load 1340 1342: 20(ivec4) VectorShuffle 1341 1339 4 5 6 3 Store 1340 1342 1343: 6(int) Load 8(invocation) 1344: 72(ptr) AccessChain 27(data) 59 38 1345: 20(ivec4) Load 1344 1346: 20(ivec4) GroupNonUniformBitwiseXor 34 InclusiveScan 1345 1347: 72(ptr) AccessChain 27(data) 1343 38 Store 1347 1346 1348: 6(int) Load 8(invocation) 1349: 95(ptr) AccessChain 27(data) 29 49 30 1350: 6(int) Load 1349 1351: 6(int) GroupNonUniformBitwiseXor 34 InclusiveScan 1350 1352: 95(ptr) AccessChain 27(data) 1348 49 30 Store 1352 1351 1353: 6(int) Load 8(invocation) 1354: 102(ptr) AccessChain 27(data) 38 49 1355: 21(ivec4) Load 1354 1356: 101(ivec2) VectorShuffle 1355 1355 0 1 1357: 101(ivec2) GroupNonUniformBitwiseXor 34 InclusiveScan 1356 1358: 102(ptr) AccessChain 27(data) 1353 49 1359: 21(ivec4) Load 1358 1360: 21(ivec4) VectorShuffle 1359 1357 4 5 2 3 Store 1358 1360 1361: 6(int) Load 8(invocation) 1362: 102(ptr) AccessChain 27(data) 49 49 1363: 21(ivec4) Load 1362 1364: 111(ivec3) VectorShuffle 1363 1363 0 1 2 1365: 111(ivec3) GroupNonUniformBitwiseXor 34 InclusiveScan 1364 1366: 102(ptr) AccessChain 27(data) 1361 49 1367: 21(ivec4) Load 1366 1368: 21(ivec4) VectorShuffle 1367 1365 4 5 6 3 Store 1366 1368 1369: 6(int) Load 8(invocation) 1370: 102(ptr) AccessChain 27(data) 59 49 1371: 21(ivec4) Load 1370 1372: 21(ivec4) GroupNonUniformBitwiseXor 34 InclusiveScan 1371 1373: 102(ptr) AccessChain 27(data) 1369 49 Store 1373 1372 1374: 6(int) Load 8(invocation) 1375: 65(ptr) AccessChain 27(data) 29 38 30 1376: 19(int) Load 1375 1377: 521(bool) SLessThan 1376 29 1378: 521(bool) GroupNonUniformLogicalXor 34 InclusiveScan 1377 1379: 19(int) Select 1378 38 29 1380: 65(ptr) AccessChain 27(data) 1374 38 30 Store 1380 1379 1381: 6(int) Load 8(invocation) 1382: 72(ptr) AccessChain 27(data) 38 38 1383: 20(ivec4) Load 1382 1384: 71(ivec2) VectorShuffle 1383 1383 0 1 1385: 531(bvec2) SLessThan 1384 530 1386: 531(bvec2) GroupNonUniformLogicalXor 34 InclusiveScan 1385 1387: 71(ivec2) Select 1386 534 530 1388: 72(ptr) AccessChain 27(data) 1381 38 1389: 20(ivec4) Load 1388 1390: 20(ivec4) VectorShuffle 1389 1387 4 5 2 3 Store 1388 1390 1391: 6(int) Load 8(invocation) 1392: 72(ptr) AccessChain 27(data) 38 38 1393: 20(ivec4) Load 1392 1394: 81(ivec3) VectorShuffle 1393 1393 0 1 2 1395: 544(bvec3) SLessThan 1394 543 1396: 544(bvec3) GroupNonUniformLogicalXor 34 InclusiveScan 1395 1397: 81(ivec3) Select 1396 547 543 1398: 72(ptr) AccessChain 27(data) 1391 38 1399: 20(ivec4) Load 1398 1400: 20(ivec4) VectorShuffle 1399 1397 4 5 6 3 Store 1398 1400 1401: 6(int) Load 8(invocation) 1402: 72(ptr) AccessChain 27(data) 38 38 1403: 20(ivec4) Load 1402 1404: 556(bvec4) SLessThan 1403 555 1405: 556(bvec4) GroupNonUniformLogicalXor 34 InclusiveScan 1404 1406: 20(ivec4) Select 1405 559 555 1407: 72(ptr) AccessChain 27(data) 1401 38 Store 1407 1406 1408: 6(int) Load 8(invocation) 1409: 31(ptr) AccessChain 27(data) 29 29 30 1410: 17(float) Load 1409 1411: 17(float) GroupNonUniformFAdd 34 ExclusiveScan 1410 1412: 31(ptr) AccessChain 27(data) 1408 29 30 Store 1412 1411 1413: 6(int) Load 8(invocation) 1414: 40(ptr) AccessChain 27(data) 38 29 1415: 18(fvec4) Load 1414 1416: 39(fvec2) VectorShuffle 1415 1415 0 1 1417: 39(fvec2) GroupNonUniformFAdd 34 ExclusiveScan 1416 1418: 40(ptr) AccessChain 27(data) 1413 29 1419: 18(fvec4) Load 1418 1420: 18(fvec4) VectorShuffle 1419 1417 4 5 2 3 Store 1418 1420 1421: 6(int) Load 8(invocation) 1422: 40(ptr) AccessChain 27(data) 49 29 1423: 18(fvec4) Load 1422 1424: 50(fvec3) VectorShuffle 1423 1423 0 1 2 1425: 50(fvec3) GroupNonUniformFAdd 34 ExclusiveScan 1424 1426: 40(ptr) AccessChain 27(data) 1421 29 1427: 18(fvec4) Load 1426 1428: 18(fvec4) VectorShuffle 1427 1425 4 5 6 3 Store 1426 1428 1429: 6(int) Load 8(invocation) 1430: 40(ptr) AccessChain 27(data) 59 29 1431: 18(fvec4) Load 1430 1432: 18(fvec4) GroupNonUniformFAdd 34 ExclusiveScan 1431 1433: 40(ptr) AccessChain 27(data) 1429 29 Store 1433 1432 1434: 6(int) Load 8(invocation) 1435: 65(ptr) AccessChain 27(data) 29 38 30 1436: 19(int) Load 1435 1437: 19(int) GroupNonUniformIAdd 34 ExclusiveScan 1436 1438: 65(ptr) AccessChain 27(data) 1434 38 30 Store 1438 1437 1439: 6(int) Load 8(invocation) 1440: 72(ptr) AccessChain 27(data) 38 38 1441: 20(ivec4) Load 1440 1442: 71(ivec2) VectorShuffle 1441 1441 0 1 1443: 71(ivec2) GroupNonUniformIAdd 34 ExclusiveScan 1442 1444: 72(ptr) AccessChain 27(data) 1439 38 1445: 20(ivec4) Load 1444 1446: 20(ivec4) VectorShuffle 1445 1443 4 5 2 3 Store 1444 1446 1447: 6(int) Load 8(invocation) 1448: 72(ptr) AccessChain 27(data) 49 38 1449: 20(ivec4) Load 1448 1450: 81(ivec3) VectorShuffle 1449 1449 0 1 2 1451: 81(ivec3) GroupNonUniformIAdd 34 ExclusiveScan 1450 1452: 72(ptr) AccessChain 27(data) 1447 38 1453: 20(ivec4) Load 1452 1454: 20(ivec4) VectorShuffle 1453 1451 4 5 6 3 Store 1452 1454 1455: 6(int) Load 8(invocation) 1456: 72(ptr) AccessChain 27(data) 59 38 1457: 20(ivec4) Load 1456 1458: 20(ivec4) GroupNonUniformIAdd 34 ExclusiveScan 1457 1459: 72(ptr) AccessChain 27(data) 1455 38 Store 1459 1458 1460: 6(int) Load 8(invocation) 1461: 95(ptr) AccessChain 27(data) 29 49 30 1462: 6(int) Load 1461 1463: 6(int) GroupNonUniformIAdd 34 ExclusiveScan 1462 1464: 95(ptr) AccessChain 27(data) 1460 49 30 Store 1464 1463 1465: 6(int) Load 8(invocation) 1466: 102(ptr) AccessChain 27(data) 38 49 1467: 21(ivec4) Load 1466 1468: 101(ivec2) VectorShuffle 1467 1467 0 1 1469: 101(ivec2) GroupNonUniformIAdd 34 ExclusiveScan 1468 1470: 102(ptr) AccessChain 27(data) 1465 49 1471: 21(ivec4) Load 1470 1472: 21(ivec4) VectorShuffle 1471 1469 4 5 2 3 Store 1470 1472 1473: 6(int) Load 8(invocation) 1474: 102(ptr) AccessChain 27(data) 49 49 1475: 21(ivec4) Load 1474 1476: 111(ivec3) VectorShuffle 1475 1475 0 1 2 1477: 111(ivec3) GroupNonUniformIAdd 34 ExclusiveScan 1476 1478: 102(ptr) AccessChain 27(data) 1473 49 1479: 21(ivec4) Load 1478 1480: 21(ivec4) VectorShuffle 1479 1477 4 5 6 3 Store 1478 1480 1481: 6(int) Load 8(invocation) 1482: 102(ptr) AccessChain 27(data) 59 49 1483: 21(ivec4) Load 1482 1484: 21(ivec4) GroupNonUniformIAdd 34 ExclusiveScan 1483 1485: 102(ptr) AccessChain 27(data) 1481 49 Store 1485 1484 1486: 6(int) Load 8(invocation) 1487: 125(ptr) AccessChain 27(data) 29 59 30 1488:22(float64_t) Load 1487 1489:22(float64_t) GroupNonUniformFAdd 34 ExclusiveScan 1488 1490: 125(ptr) AccessChain 27(data) 1486 59 30 Store 1490 1489 1491: 6(int) Load 8(invocation) 1492: 132(ptr) AccessChain 27(data) 38 59 1493: 23(f64vec4) Load 1492 1494:131(f64vec2) VectorShuffle 1493 1493 0 1 1495:131(f64vec2) GroupNonUniformFAdd 34 ExclusiveScan 1494 1496: 132(ptr) AccessChain 27(data) 1491 59 1497: 23(f64vec4) Load 1496 1498: 23(f64vec4) VectorShuffle 1497 1495 4 5 2 3 Store 1496 1498 1499: 6(int) Load 8(invocation) 1500: 132(ptr) AccessChain 27(data) 49 59 1501: 23(f64vec4) Load 1500 1502:141(f64vec3) VectorShuffle 1501 1501 0 1 2 1503:141(f64vec3) GroupNonUniformFAdd 34 ExclusiveScan 1502 1504: 132(ptr) AccessChain 27(data) 1499 59 1505: 23(f64vec4) Load 1504 1506: 23(f64vec4) VectorShuffle 1505 1503 4 5 6 3 Store 1504 1506 1507: 6(int) Load 8(invocation) 1508: 132(ptr) AccessChain 27(data) 59 59 1509: 23(f64vec4) Load 1508 1510: 23(f64vec4) GroupNonUniformFAdd 34 ExclusiveScan 1509 1511: 132(ptr) AccessChain 27(data) 1507 59 Store 1511 1510 1512: 6(int) Load 8(invocation) 1513: 31(ptr) AccessChain 27(data) 29 29 30 1514: 17(float) Load 1513 1515: 17(float) GroupNonUniformFMul 34 ExclusiveScan 1514 1516: 31(ptr) AccessChain 27(data) 1512 29 30 Store 1516 1515 1517: 6(int) Load 8(invocation) 1518: 40(ptr) AccessChain 27(data) 38 29 1519: 18(fvec4) Load 1518 1520: 39(fvec2) VectorShuffle 1519 1519 0 1 1521: 39(fvec2) GroupNonUniformFMul 34 ExclusiveScan 1520 1522: 40(ptr) AccessChain 27(data) 1517 29 1523: 18(fvec4) Load 1522 1524: 18(fvec4) VectorShuffle 1523 1521 4 5 2 3 Store 1522 1524 1525: 6(int) Load 8(invocation) 1526: 40(ptr) AccessChain 27(data) 49 29 1527: 18(fvec4) Load 1526 1528: 50(fvec3) VectorShuffle 1527 1527 0 1 2 1529: 50(fvec3) GroupNonUniformFMul 34 ExclusiveScan 1528 1530: 40(ptr) AccessChain 27(data) 1525 29 1531: 18(fvec4) Load 1530 1532: 18(fvec4) VectorShuffle 1531 1529 4 5 6 3 Store 1530 1532 1533: 6(int) Load 8(invocation) 1534: 40(ptr) AccessChain 27(data) 59 29 1535: 18(fvec4) Load 1534 1536: 18(fvec4) GroupNonUniformFMul 34 ExclusiveScan 1535 1537: 40(ptr) AccessChain 27(data) 1533 29 Store 1537 1536 1538: 6(int) Load 8(invocation) 1539: 65(ptr) AccessChain 27(data) 29 38 30 1540: 19(int) Load 1539 1541: 19(int) GroupNonUniformIMul 34 ExclusiveScan 1540 1542: 65(ptr) AccessChain 27(data) 1538 38 30 Store 1542 1541 1543: 6(int) Load 8(invocation) 1544: 72(ptr) AccessChain 27(data) 38 38 1545: 20(ivec4) Load 1544 1546: 71(ivec2) VectorShuffle 1545 1545 0 1 1547: 71(ivec2) GroupNonUniformIMul 34 ExclusiveScan 1546 1548: 72(ptr) AccessChain 27(data) 1543 38 1549: 20(ivec4) Load 1548 1550: 20(ivec4) VectorShuffle 1549 1547 4 5 2 3 Store 1548 1550 1551: 6(int) Load 8(invocation) 1552: 72(ptr) AccessChain 27(data) 49 38 1553: 20(ivec4) Load 1552 1554: 81(ivec3) VectorShuffle 1553 1553 0 1 2 1555: 81(ivec3) GroupNonUniformIMul 34 ExclusiveScan 1554 1556: 72(ptr) AccessChain 27(data) 1551 38 1557: 20(ivec4) Load 1556 1558: 20(ivec4) VectorShuffle 1557 1555 4 5 6 3 Store 1556 1558 1559: 6(int) Load 8(invocation) 1560: 72(ptr) AccessChain 27(data) 59 38 1561: 20(ivec4) Load 1560 1562: 20(ivec4) GroupNonUniformIMul 34 ExclusiveScan 1561 1563: 72(ptr) AccessChain 27(data) 1559 38 Store 1563 1562 1564: 6(int) Load 8(invocation) 1565: 95(ptr) AccessChain 27(data) 29 49 30 1566: 6(int) Load 1565 1567: 6(int) GroupNonUniformIMul 34 ExclusiveScan 1566 1568: 95(ptr) AccessChain 27(data) 1564 49 30 Store 1568 1567 1569: 6(int) Load 8(invocation) 1570: 102(ptr) AccessChain 27(data) 38 49 1571: 21(ivec4) Load 1570 1572: 101(ivec2) VectorShuffle 1571 1571 0 1 1573: 101(ivec2) GroupNonUniformIMul 34 ExclusiveScan 1572 1574: 102(ptr) AccessChain 27(data) 1569 49 1575: 21(ivec4) Load 1574 1576: 21(ivec4) VectorShuffle 1575 1573 4 5 2 3 Store 1574 1576 1577: 6(int) Load 8(invocation) 1578: 102(ptr) AccessChain 27(data) 49 49 1579: 21(ivec4) Load 1578 1580: 111(ivec3) VectorShuffle 1579 1579 0 1 2 1581: 111(ivec3) GroupNonUniformIMul 34 ExclusiveScan 1580 1582: 102(ptr) AccessChain 27(data) 1577 49 1583: 21(ivec4) Load 1582 1584: 21(ivec4) VectorShuffle 1583 1581 4 5 6 3 Store 1582 1584 1585: 6(int) Load 8(invocation) 1586: 102(ptr) AccessChain 27(data) 59 49 1587: 21(ivec4) Load 1586 1588: 21(ivec4) GroupNonUniformIMul 34 ExclusiveScan 1587 1589: 102(ptr) AccessChain 27(data) 1585 49 Store 1589 1588 1590: 6(int) Load 8(invocation) 1591: 125(ptr) AccessChain 27(data) 29 59 30 1592:22(float64_t) Load 1591 1593:22(float64_t) GroupNonUniformFMul 34 ExclusiveScan 1592 1594: 125(ptr) AccessChain 27(data) 1590 59 30 Store 1594 1593 1595: 6(int) Load 8(invocation) 1596: 132(ptr) AccessChain 27(data) 38 59 1597: 23(f64vec4) Load 1596 1598:131(f64vec2) VectorShuffle 1597 1597 0 1 1599:131(f64vec2) GroupNonUniformFMul 34 ExclusiveScan 1598 1600: 132(ptr) AccessChain 27(data) 1595 59 1601: 23(f64vec4) Load 1600 1602: 23(f64vec4) VectorShuffle 1601 1599 4 5 2 3 Store 1600 1602 1603: 6(int) Load 8(invocation) 1604: 132(ptr) AccessChain 27(data) 49 59 1605: 23(f64vec4) Load 1604 1606:141(f64vec3) VectorShuffle 1605 1605 0 1 2 1607:141(f64vec3) GroupNonUniformFMul 34 ExclusiveScan 1606 1608: 132(ptr) AccessChain 27(data) 1603 59 1609: 23(f64vec4) Load 1608 1610: 23(f64vec4) VectorShuffle 1609 1607 4 5 6 3 Store 1608 1610 1611: 6(int) Load 8(invocation) 1612: 132(ptr) AccessChain 27(data) 59 59 1613: 23(f64vec4) Load 1612 1614: 23(f64vec4) GroupNonUniformFMul 34 ExclusiveScan 1613 1615: 132(ptr) AccessChain 27(data) 1611 59 Store 1615 1614 1616: 6(int) Load 8(invocation) 1617: 31(ptr) AccessChain 27(data) 29 29 30 1618: 17(float) Load 1617 1619: 17(float) GroupNonUniformFMin 34 ExclusiveScan 1618 1620: 31(ptr) AccessChain 27(data) 1616 29 30 Store 1620 1619 1621: 6(int) Load 8(invocation) 1622: 40(ptr) AccessChain 27(data) 38 29 1623: 18(fvec4) Load 1622 1624: 39(fvec2) VectorShuffle 1623 1623 0 1 1625: 39(fvec2) GroupNonUniformFMin 34 ExclusiveScan 1624 1626: 40(ptr) AccessChain 27(data) 1621 29 1627: 18(fvec4) Load 1626 1628: 18(fvec4) VectorShuffle 1627 1625 4 5 2 3 Store 1626 1628 1629: 6(int) Load 8(invocation) 1630: 40(ptr) AccessChain 27(data) 49 29 1631: 18(fvec4) Load 1630 1632: 50(fvec3) VectorShuffle 1631 1631 0 1 2 1633: 50(fvec3) GroupNonUniformFMin 34 ExclusiveScan 1632 1634: 40(ptr) AccessChain 27(data) 1629 29 1635: 18(fvec4) Load 1634 1636: 18(fvec4) VectorShuffle 1635 1633 4 5 6 3 Store 1634 1636 1637: 6(int) Load 8(invocation) 1638: 40(ptr) AccessChain 27(data) 59 29 1639: 18(fvec4) Load 1638 1640: 18(fvec4) GroupNonUniformFMin 34 ExclusiveScan 1639 1641: 40(ptr) AccessChain 27(data) 1637 29 Store 1641 1640 1642: 6(int) Load 8(invocation) 1643: 65(ptr) AccessChain 27(data) 29 38 30 1644: 19(int) Load 1643 1645: 19(int) GroupNonUniformSMin 34 ExclusiveScan 1644 1646: 65(ptr) AccessChain 27(data) 1642 38 30 Store 1646 1645 1647: 6(int) Load 8(invocation) 1648: 72(ptr) AccessChain 27(data) 38 38 1649: 20(ivec4) Load 1648 1650: 71(ivec2) VectorShuffle 1649 1649 0 1 1651: 71(ivec2) GroupNonUniformSMin 34 ExclusiveScan 1650 1652: 72(ptr) AccessChain 27(data) 1647 38 1653: 20(ivec4) Load 1652 1654: 20(ivec4) VectorShuffle 1653 1651 4 5 2 3 Store 1652 1654 1655: 6(int) Load 8(invocation) 1656: 72(ptr) AccessChain 27(data) 49 38 1657: 20(ivec4) Load 1656 1658: 81(ivec3) VectorShuffle 1657 1657 0 1 2 1659: 81(ivec3) GroupNonUniformSMin 34 ExclusiveScan 1658 1660: 72(ptr) AccessChain 27(data) 1655 38 1661: 20(ivec4) Load 1660 1662: 20(ivec4) VectorShuffle 1661 1659 4 5 6 3 Store 1660 1662 1663: 6(int) Load 8(invocation) 1664: 72(ptr) AccessChain 27(data) 59 38 1665: 20(ivec4) Load 1664 1666: 20(ivec4) GroupNonUniformSMin 34 ExclusiveScan 1665 1667: 72(ptr) AccessChain 27(data) 1663 38 Store 1667 1666 1668: 6(int) Load 8(invocation) 1669: 95(ptr) AccessChain 27(data) 29 49 30 1670: 6(int) Load 1669 1671: 6(int) GroupNonUniformUMin 34 ExclusiveScan 1670 1672: 95(ptr) AccessChain 27(data) 1668 49 30 Store 1672 1671 1673: 6(int) Load 8(invocation) 1674: 102(ptr) AccessChain 27(data) 38 49 1675: 21(ivec4) Load 1674 1676: 101(ivec2) VectorShuffle 1675 1675 0 1 1677: 101(ivec2) GroupNonUniformUMin 34 ExclusiveScan 1676 1678: 102(ptr) AccessChain 27(data) 1673 49 1679: 21(ivec4) Load 1678 1680: 21(ivec4) VectorShuffle 1679 1677 4 5 2 3 Store 1678 1680 1681: 6(int) Load 8(invocation) 1682: 102(ptr) AccessChain 27(data) 49 49 1683: 21(ivec4) Load 1682 1684: 111(ivec3) VectorShuffle 1683 1683 0 1 2 1685: 111(ivec3) GroupNonUniformUMin 34 ExclusiveScan 1684 1686: 102(ptr) AccessChain 27(data) 1681 49 1687: 21(ivec4) Load 1686 1688: 21(ivec4) VectorShuffle 1687 1685 4 5 6 3 Store 1686 1688 1689: 6(int) Load 8(invocation) 1690: 102(ptr) AccessChain 27(data) 59 49 1691: 21(ivec4) Load 1690 1692: 21(ivec4) GroupNonUniformUMin 34 ExclusiveScan 1691 1693: 102(ptr) AccessChain 27(data) 1689 49 Store 1693 1692 1694: 6(int) Load 8(invocation) 1695: 125(ptr) AccessChain 27(data) 29 59 30 1696:22(float64_t) Load 1695 1697:22(float64_t) GroupNonUniformFMin 34 ExclusiveScan 1696 1698: 125(ptr) AccessChain 27(data) 1694 59 30 Store 1698 1697 1699: 6(int) Load 8(invocation) 1700: 132(ptr) AccessChain 27(data) 38 59 1701: 23(f64vec4) Load 1700 1702:131(f64vec2) VectorShuffle 1701 1701 0 1 1703:131(f64vec2) GroupNonUniformFMin 34 ExclusiveScan 1702 1704: 132(ptr) AccessChain 27(data) 1699 59 1705: 23(f64vec4) Load 1704 1706: 23(f64vec4) VectorShuffle 1705 1703 4 5 2 3 Store 1704 1706 1707: 6(int) Load 8(invocation) 1708: 132(ptr) AccessChain 27(data) 49 59 1709: 23(f64vec4) Load 1708 1710:141(f64vec3) VectorShuffle 1709 1709 0 1 2 1711:141(f64vec3) GroupNonUniformFMin 34 ExclusiveScan 1710 1712: 132(ptr) AccessChain 27(data) 1707 59 1713: 23(f64vec4) Load 1712 1714: 23(f64vec4) VectorShuffle 1713 1711 4 5 6 3 Store 1712 1714 1715: 6(int) Load 8(invocation) 1716: 132(ptr) AccessChain 27(data) 59 59 1717: 23(f64vec4) Load 1716 1718: 23(f64vec4) GroupNonUniformFMin 34 ExclusiveScan 1717 1719: 132(ptr) AccessChain 27(data) 1715 59 Store 1719 1718 1720: 6(int) Load 8(invocation) 1721: 31(ptr) AccessChain 27(data) 29 29 30 1722: 17(float) Load 1721 1723: 17(float) GroupNonUniformFMax 34 ExclusiveScan 1722 1724: 31(ptr) AccessChain 27(data) 1720 29 30 Store 1724 1723 1725: 6(int) Load 8(invocation) 1726: 40(ptr) AccessChain 27(data) 38 29 1727: 18(fvec4) Load 1726 1728: 39(fvec2) VectorShuffle 1727 1727 0 1 1729: 39(fvec2) GroupNonUniformFMax 34 ExclusiveScan 1728 1730: 40(ptr) AccessChain 27(data) 1725 29 1731: 18(fvec4) Load 1730 1732: 18(fvec4) VectorShuffle 1731 1729 4 5 2 3 Store 1730 1732 1733: 6(int) Load 8(invocation) 1734: 40(ptr) AccessChain 27(data) 49 29 1735: 18(fvec4) Load 1734 1736: 50(fvec3) VectorShuffle 1735 1735 0 1 2 1737: 50(fvec3) GroupNonUniformFMax 34 ExclusiveScan 1736 1738: 40(ptr) AccessChain 27(data) 1733 29 1739: 18(fvec4) Load 1738 1740: 18(fvec4) VectorShuffle 1739 1737 4 5 6 3 Store 1738 1740 1741: 6(int) Load 8(invocation) 1742: 40(ptr) AccessChain 27(data) 59 29 1743: 18(fvec4) Load 1742 1744: 18(fvec4) GroupNonUniformFMax 34 ExclusiveScan 1743 1745: 40(ptr) AccessChain 27(data) 1741 29 Store 1745 1744 1746: 6(int) Load 8(invocation) 1747: 65(ptr) AccessChain 27(data) 29 38 30 1748: 19(int) Load 1747 1749: 19(int) GroupNonUniformSMax 34 ExclusiveScan 1748 1750: 65(ptr) AccessChain 27(data) 1746 38 30 Store 1750 1749 1751: 6(int) Load 8(invocation) 1752: 72(ptr) AccessChain 27(data) 38 38 1753: 20(ivec4) Load 1752 1754: 71(ivec2) VectorShuffle 1753 1753 0 1 1755: 71(ivec2) GroupNonUniformSMax 34 ExclusiveScan 1754 1756: 72(ptr) AccessChain 27(data) 1751 38 1757: 20(ivec4) Load 1756 1758: 20(ivec4) VectorShuffle 1757 1755 4 5 2 3 Store 1756 1758 1759: 6(int) Load 8(invocation) 1760: 72(ptr) AccessChain 27(data) 49 38 1761: 20(ivec4) Load 1760 1762: 81(ivec3) VectorShuffle 1761 1761 0 1 2 1763: 81(ivec3) GroupNonUniformSMax 34 ExclusiveScan 1762 1764: 72(ptr) AccessChain 27(data) 1759 38 1765: 20(ivec4) Load 1764 1766: 20(ivec4) VectorShuffle 1765 1763 4 5 6 3 Store 1764 1766 1767: 6(int) Load 8(invocation) 1768: 72(ptr) AccessChain 27(data) 59 38 1769: 20(ivec4) Load 1768 1770: 20(ivec4) GroupNonUniformSMax 34 ExclusiveScan 1769 1771: 72(ptr) AccessChain 27(data) 1767 38 Store 1771 1770 1772: 6(int) Load 8(invocation) 1773: 95(ptr) AccessChain 27(data) 29 49 30 1774: 6(int) Load 1773 1775: 6(int) GroupNonUniformUMax 34 ExclusiveScan 1774 1776: 95(ptr) AccessChain 27(data) 1772 49 30 Store 1776 1775 1777: 6(int) Load 8(invocation) 1778: 102(ptr) AccessChain 27(data) 38 49 1779: 21(ivec4) Load 1778 1780: 101(ivec2) VectorShuffle 1779 1779 0 1 1781: 101(ivec2) GroupNonUniformUMax 34 ExclusiveScan 1780 1782: 102(ptr) AccessChain 27(data) 1777 49 1783: 21(ivec4) Load 1782 1784: 21(ivec4) VectorShuffle 1783 1781 4 5 2 3 Store 1782 1784 1785: 6(int) Load 8(invocation) 1786: 102(ptr) AccessChain 27(data) 49 49 1787: 21(ivec4) Load 1786 1788: 111(ivec3) VectorShuffle 1787 1787 0 1 2 1789: 111(ivec3) GroupNonUniformUMax 34 ExclusiveScan 1788 1790: 102(ptr) AccessChain 27(data) 1785 49 1791: 21(ivec4) Load 1790 1792: 21(ivec4) VectorShuffle 1791 1789 4 5 6 3 Store 1790 1792 1793: 6(int) Load 8(invocation) 1794: 102(ptr) AccessChain 27(data) 59 49 1795: 21(ivec4) Load 1794 1796: 21(ivec4) GroupNonUniformUMax 34 ExclusiveScan 1795 1797: 102(ptr) AccessChain 27(data) 1793 49 Store 1797 1796 1798: 6(int) Load 8(invocation) 1799: 125(ptr) AccessChain 27(data) 29 59 30 1800:22(float64_t) Load 1799 1801:22(float64_t) GroupNonUniformFMax 34 ExclusiveScan 1800 1802: 125(ptr) AccessChain 27(data) 1798 59 30 Store 1802 1801 1803: 6(int) Load 8(invocation) 1804: 132(ptr) AccessChain 27(data) 38 59 1805: 23(f64vec4) Load 1804 1806:131(f64vec2) VectorShuffle 1805 1805 0 1 1807:131(f64vec2) GroupNonUniformFMax 34 ExclusiveScan 1806 1808: 132(ptr) AccessChain 27(data) 1803 59 1809: 23(f64vec4) Load 1808 1810: 23(f64vec4) VectorShuffle 1809 1807 4 5 2 3 Store 1808 1810 1811: 6(int) Load 8(invocation) 1812: 132(ptr) AccessChain 27(data) 49 59 1813: 23(f64vec4) Load 1812 1814:141(f64vec3) VectorShuffle 1813 1813 0 1 2 1815:141(f64vec3) GroupNonUniformFMax 34 ExclusiveScan 1814 1816: 132(ptr) AccessChain 27(data) 1811 59 1817: 23(f64vec4) Load 1816 1818: 23(f64vec4) VectorShuffle 1817 1815 4 5 6 3 Store 1816 1818 1819: 6(int) Load 8(invocation) 1820: 132(ptr) AccessChain 27(data) 59 59 1821: 23(f64vec4) Load 1820 1822: 23(f64vec4) GroupNonUniformFMax 34 ExclusiveScan 1821 1823: 132(ptr) AccessChain 27(data) 1819 59 Store 1823 1822 1824: 6(int) Load 8(invocation) 1825: 65(ptr) AccessChain 27(data) 29 38 30 1826: 19(int) Load 1825 1827: 19(int) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1826 1828: 65(ptr) AccessChain 27(data) 1824 38 30 Store 1828 1827 1829: 6(int) Load 8(invocation) 1830: 72(ptr) AccessChain 27(data) 38 38 1831: 20(ivec4) Load 1830 1832: 71(ivec2) VectorShuffle 1831 1831 0 1 1833: 71(ivec2) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1832 1834: 72(ptr) AccessChain 27(data) 1829 38 1835: 20(ivec4) Load 1834 1836: 20(ivec4) VectorShuffle 1835 1833 4 5 2 3 Store 1834 1836 1837: 6(int) Load 8(invocation) 1838: 72(ptr) AccessChain 27(data) 49 38 1839: 20(ivec4) Load 1838 1840: 81(ivec3) VectorShuffle 1839 1839 0 1 2 1841: 81(ivec3) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1840 1842: 72(ptr) AccessChain 27(data) 1837 38 1843: 20(ivec4) Load 1842 1844: 20(ivec4) VectorShuffle 1843 1841 4 5 6 3 Store 1842 1844 1845: 6(int) Load 8(invocation) 1846: 72(ptr) AccessChain 27(data) 59 38 1847: 20(ivec4) Load 1846 1848: 20(ivec4) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1847 1849: 72(ptr) AccessChain 27(data) 1845 38 Store 1849 1848 1850: 6(int) Load 8(invocation) 1851: 95(ptr) AccessChain 27(data) 29 49 30 1852: 6(int) Load 1851 1853: 6(int) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1852 1854: 95(ptr) AccessChain 27(data) 1850 49 30 Store 1854 1853 1855: 6(int) Load 8(invocation) 1856: 102(ptr) AccessChain 27(data) 38 49 1857: 21(ivec4) Load 1856 1858: 101(ivec2) VectorShuffle 1857 1857 0 1 1859: 101(ivec2) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1858 1860: 102(ptr) AccessChain 27(data) 1855 49 1861: 21(ivec4) Load 1860 1862: 21(ivec4) VectorShuffle 1861 1859 4 5 2 3 Store 1860 1862 1863: 6(int) Load 8(invocation) 1864: 102(ptr) AccessChain 27(data) 49 49 1865: 21(ivec4) Load 1864 1866: 111(ivec3) VectorShuffle 1865 1865 0 1 2 1867: 111(ivec3) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1866 1868: 102(ptr) AccessChain 27(data) 1863 49 1869: 21(ivec4) Load 1868 1870: 21(ivec4) VectorShuffle 1869 1867 4 5 6 3 Store 1868 1870 1871: 6(int) Load 8(invocation) 1872: 102(ptr) AccessChain 27(data) 59 49 1873: 21(ivec4) Load 1872 1874: 21(ivec4) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1873 1875: 102(ptr) AccessChain 27(data) 1871 49 Store 1875 1874 1876: 6(int) Load 8(invocation) 1877: 65(ptr) AccessChain 27(data) 29 38 30 1878: 19(int) Load 1877 1879: 521(bool) SLessThan 1878 29 1880: 521(bool) GroupNonUniformLogicalAnd 34 ExclusiveScan 1879 1881: 19(int) Select 1880 38 29 1882: 65(ptr) AccessChain 27(data) 1876 38 30 Store 1882 1881 1883: 6(int) Load 8(invocation) 1884: 72(ptr) AccessChain 27(data) 38 38 1885: 20(ivec4) Load 1884 1886: 71(ivec2) VectorShuffle 1885 1885 0 1 1887: 531(bvec2) SLessThan 1886 530 1888: 531(bvec2) GroupNonUniformLogicalAnd 34 ExclusiveScan 1887 1889: 71(ivec2) Select 1888 534 530 1890: 72(ptr) AccessChain 27(data) 1883 38 1891: 20(ivec4) Load 1890 1892: 20(ivec4) VectorShuffle 1891 1889 4 5 2 3 Store 1890 1892 1893: 6(int) Load 8(invocation) 1894: 72(ptr) AccessChain 27(data) 38 38 1895: 20(ivec4) Load 1894 1896: 81(ivec3) VectorShuffle 1895 1895 0 1 2 1897: 544(bvec3) SLessThan 1896 543 1898: 544(bvec3) GroupNonUniformLogicalAnd 34 ExclusiveScan 1897 1899: 81(ivec3) Select 1898 547 543 1900: 72(ptr) AccessChain 27(data) 1893 38 1901: 20(ivec4) Load 1900 1902: 20(ivec4) VectorShuffle 1901 1899 4 5 6 3 Store 1900 1902 1903: 6(int) Load 8(invocation) 1904: 72(ptr) AccessChain 27(data) 38 38 1905: 20(ivec4) Load 1904 1906: 556(bvec4) SLessThan 1905 555 1907: 556(bvec4) GroupNonUniformLogicalAnd 34 ExclusiveScan 1906 1908: 20(ivec4) Select 1907 559 555 1909: 72(ptr) AccessChain 27(data) 1903 38 Store 1909 1908 1910: 6(int) Load 8(invocation) 1911: 65(ptr) AccessChain 27(data) 29 38 30 1912: 19(int) Load 1911 1913: 19(int) GroupNonUniformBitwiseOr 34 ExclusiveScan 1912 1914: 65(ptr) AccessChain 27(data) 1910 38 30 Store 1914 1913 1915: 6(int) Load 8(invocation) 1916: 72(ptr) AccessChain 27(data) 38 38 1917: 20(ivec4) Load 1916 1918: 71(ivec2) VectorShuffle 1917 1917 0 1 1919: 71(ivec2) GroupNonUniformBitwiseOr 34 ExclusiveScan 1918 1920: 72(ptr) AccessChain 27(data) 1915 38 1921: 20(ivec4) Load 1920 1922: 20(ivec4) VectorShuffle 1921 1919 4 5 2 3 Store 1920 1922 1923: 6(int) Load 8(invocation) 1924: 72(ptr) AccessChain 27(data) 49 38 1925: 20(ivec4) Load 1924 1926: 81(ivec3) VectorShuffle 1925 1925 0 1 2 1927: 81(ivec3) GroupNonUniformBitwiseOr 34 ExclusiveScan 1926 1928: 72(ptr) AccessChain 27(data) 1923 38 1929: 20(ivec4) Load 1928 1930: 20(ivec4) VectorShuffle 1929 1927 4 5 6 3 Store 1928 1930 1931: 6(int) Load 8(invocation) 1932: 72(ptr) AccessChain 27(data) 59 38 1933: 20(ivec4) Load 1932 1934: 20(ivec4) GroupNonUniformBitwiseOr 34 ExclusiveScan 1933 1935: 72(ptr) AccessChain 27(data) 1931 38 Store 1935 1934 1936: 6(int) Load 8(invocation) 1937: 95(ptr) AccessChain 27(data) 29 49 30 1938: 6(int) Load 1937 1939: 6(int) GroupNonUniformBitwiseOr 34 ExclusiveScan 1938 1940: 95(ptr) AccessChain 27(data) 1936 49 30 Store 1940 1939 1941: 6(int) Load 8(invocation) 1942: 102(ptr) AccessChain 27(data) 38 49 1943: 21(ivec4) Load 1942 1944: 101(ivec2) VectorShuffle 1943 1943 0 1 1945: 101(ivec2) GroupNonUniformBitwiseOr 34 ExclusiveScan 1944 1946: 102(ptr) AccessChain 27(data) 1941 49 1947: 21(ivec4) Load 1946 1948: 21(ivec4) VectorShuffle 1947 1945 4 5 2 3 Store 1946 1948 1949: 6(int) Load 8(invocation) 1950: 102(ptr) AccessChain 27(data) 49 49 1951: 21(ivec4) Load 1950 1952: 111(ivec3) VectorShuffle 1951 1951 0 1 2 1953: 111(ivec3) GroupNonUniformBitwiseOr 34 ExclusiveScan 1952 1954: 102(ptr) AccessChain 27(data) 1949 49 1955: 21(ivec4) Load 1954 1956: 21(ivec4) VectorShuffle 1955 1953 4 5 6 3 Store 1954 1956 1957: 6(int) Load 8(invocation) 1958: 102(ptr) AccessChain 27(data) 59 49 1959: 21(ivec4) Load 1958 1960: 21(ivec4) GroupNonUniformBitwiseOr 34 ExclusiveScan 1959 1961: 102(ptr) AccessChain 27(data) 1957 49 Store 1961 1960 1962: 6(int) Load 8(invocation) 1963: 65(ptr) AccessChain 27(data) 29 38 30 1964: 19(int) Load 1963 1965: 521(bool) SLessThan 1964 29 1966: 521(bool) GroupNonUniformLogicalOr 34 ExclusiveScan 1965 1967: 19(int) Select 1966 38 29 1968: 65(ptr) AccessChain 27(data) 1962 38 30 Store 1968 1967 1969: 6(int) Load 8(invocation) 1970: 72(ptr) AccessChain 27(data) 38 38 1971: 20(ivec4) Load 1970 1972: 71(ivec2) VectorShuffle 1971 1971 0 1 1973: 531(bvec2) SLessThan 1972 530 1974: 531(bvec2) GroupNonUniformLogicalOr 34 ExclusiveScan 1973 1975: 71(ivec2) Select 1974 534 530 1976: 72(ptr) AccessChain 27(data) 1969 38 1977: 20(ivec4) Load 1976 1978: 20(ivec4) VectorShuffle 1977 1975 4 5 2 3 Store 1976 1978 1979: 6(int) Load 8(invocation) 1980: 72(ptr) AccessChain 27(data) 38 38 1981: 20(ivec4) Load 1980 1982: 81(ivec3) VectorShuffle 1981 1981 0 1 2 1983: 544(bvec3) SLessThan 1982 543 1984: 544(bvec3) GroupNonUniformLogicalOr 34 ExclusiveScan 1983 1985: 81(ivec3) Select 1984 547 543 1986: 72(ptr) AccessChain 27(data) 1979 38 1987: 20(ivec4) Load 1986 1988: 20(ivec4) VectorShuffle 1987 1985 4 5 6 3 Store 1986 1988 1989: 6(int) Load 8(invocation) 1990: 72(ptr) AccessChain 27(data) 38 38 1991: 20(ivec4) Load 1990 1992: 556(bvec4) SLessThan 1991 555 1993: 556(bvec4) GroupNonUniformLogicalOr 34 ExclusiveScan 1992 1994: 20(ivec4) Select 1993 559 555 1995: 72(ptr) AccessChain 27(data) 1989 38 Store 1995 1994 1996: 6(int) Load 8(invocation) 1997: 65(ptr) AccessChain 27(data) 29 38 30 1998: 19(int) Load 1997 1999: 19(int) GroupNonUniformBitwiseXor 34 ExclusiveScan 1998 2000: 65(ptr) AccessChain 27(data) 1996 38 30 Store 2000 1999 2001: 6(int) Load 8(invocation) 2002: 72(ptr) AccessChain 27(data) 38 38 2003: 20(ivec4) Load 2002 2004: 71(ivec2) VectorShuffle 2003 2003 0 1 2005: 71(ivec2) GroupNonUniformBitwiseXor 34 ExclusiveScan 2004 2006: 72(ptr) AccessChain 27(data) 2001 38 2007: 20(ivec4) Load 2006 2008: 20(ivec4) VectorShuffle 2007 2005 4 5 2 3 Store 2006 2008 2009: 6(int) Load 8(invocation) 2010: 72(ptr) AccessChain 27(data) 49 38 2011: 20(ivec4) Load 2010 2012: 81(ivec3) VectorShuffle 2011 2011 0 1 2 2013: 81(ivec3) GroupNonUniformBitwiseXor 34 ExclusiveScan 2012 2014: 72(ptr) AccessChain 27(data) 2009 38 2015: 20(ivec4) Load 2014 2016: 20(ivec4) VectorShuffle 2015 2013 4 5 6 3 Store 2014 2016 2017: 6(int) Load 8(invocation) 2018: 72(ptr) AccessChain 27(data) 59 38 2019: 20(ivec4) Load 2018 2020: 20(ivec4) GroupNonUniformBitwiseXor 34 ExclusiveScan 2019 2021: 72(ptr) AccessChain 27(data) 2017 38 Store 2021 2020 2022: 6(int) Load 8(invocation) 2023: 95(ptr) AccessChain 27(data) 29 49 30 2024: 6(int) Load 2023 2025: 6(int) GroupNonUniformBitwiseXor 34 ExclusiveScan 2024 2026: 95(ptr) AccessChain 27(data) 2022 49 30 Store 2026 2025 2027: 6(int) Load 8(invocation) 2028: 102(ptr) AccessChain 27(data) 38 49 2029: 21(ivec4) Load 2028 2030: 101(ivec2) VectorShuffle 2029 2029 0 1 2031: 101(ivec2) GroupNonUniformBitwiseXor 34 ExclusiveScan 2030 2032: 102(ptr) AccessChain 27(data) 2027 49 2033: 21(ivec4) Load 2032 2034: 21(ivec4) VectorShuffle 2033 2031 4 5 2 3 Store 2032 2034 2035: 6(int) Load 8(invocation) 2036: 102(ptr) AccessChain 27(data) 49 49 2037: 21(ivec4) Load 2036 2038: 111(ivec3) VectorShuffle 2037 2037 0 1 2 2039: 111(ivec3) GroupNonUniformBitwiseXor 34 ExclusiveScan 2038 2040: 102(ptr) AccessChain 27(data) 2035 49 2041: 21(ivec4) Load 2040 2042: 21(ivec4) VectorShuffle 2041 2039 4 5 6 3 Store 2040 2042 2043: 6(int) Load 8(invocation) 2044: 102(ptr) AccessChain 27(data) 59 49 2045: 21(ivec4) Load 2044 2046: 21(ivec4) GroupNonUniformBitwiseXor 34 ExclusiveScan 2045 2047: 102(ptr) AccessChain 27(data) 2043 49 Store 2047 2046 2048: 6(int) Load 8(invocation) 2049: 65(ptr) AccessChain 27(data) 29 38 30 2050: 19(int) Load 2049 2051: 521(bool) SLessThan 2050 29 2052: 521(bool) GroupNonUniformLogicalXor 34 ExclusiveScan 2051 2053: 19(int) Select 2052 38 29 2054: 65(ptr) AccessChain 27(data) 2048 38 30 Store 2054 2053 2055: 6(int) Load 8(invocation) 2056: 72(ptr) AccessChain 27(data) 38 38 2057: 20(ivec4) Load 2056 2058: 71(ivec2) VectorShuffle 2057 2057 0 1 2059: 531(bvec2) SLessThan 2058 530 2060: 531(bvec2) GroupNonUniformLogicalXor 34 ExclusiveScan 2059 2061: 71(ivec2) Select 2060 534 530 2062: 72(ptr) AccessChain 27(data) 2055 38 2063: 20(ivec4) Load 2062 2064: 20(ivec4) VectorShuffle 2063 2061 4 5 2 3 Store 2062 2064 2065: 6(int) Load 8(invocation) 2066: 72(ptr) AccessChain 27(data) 38 38 2067: 20(ivec4) Load 2066 2068: 81(ivec3) VectorShuffle 2067 2067 0 1 2 2069: 544(bvec3) SLessThan 2068 543 2070: 544(bvec3) GroupNonUniformLogicalXor 34 ExclusiveScan 2069 2071: 81(ivec3) Select 2070 547 543 2072: 72(ptr) AccessChain 27(data) 2065 38 2073: 20(ivec4) Load 2072 2074: 20(ivec4) VectorShuffle 2073 2071 4 5 6 3 Store 2072 2074 2075: 6(int) Load 8(invocation) 2076: 72(ptr) AccessChain 27(data) 38 38 2077: 20(ivec4) Load 2076 2078: 556(bvec4) SLessThan 2077 555 2079: 556(bvec4) GroupNonUniformLogicalXor 34 ExclusiveScan 2078 2080: 20(ivec4) Select 2079 559 555 2081: 72(ptr) AccessChain 27(data) 2075 38 Store 2081 2080 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupBallot.comp.out000066400000000000000000000652051360464450000242260ustar00rootroot00000000000000spv.subgroupBallot.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 397 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 396 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) 112: TypeVector 40(float) 3 121: 42(int) Constant 3 127: TypePointer StorageBuffer 42(int) 133: TypeVector 42(int) 2 134: TypePointer StorageBuffer 43(ivec4) 143: TypeVector 42(int) 3 162: TypeVector 6(int) 2 171: TypeVector 6(int) 3 185: TypePointer StorageBuffer 44(float64_t) 191: TypeVector 44(float64_t) 2 192: TypePointer StorageBuffer 45(f64vec4) 201: TypeVector 44(float64_t) 3 225: 133(ivec2) ConstantComposite 61 61 226: TypeVector 36(bool) 2 229: 133(ivec2) ConstantComposite 60 60 238: 143(ivec3) ConstantComposite 61 61 61 239: TypeVector 36(bool) 3 242: 143(ivec3) ConstantComposite 60 60 60 250: 43(ivec4) ConstantComposite 61 61 61 61 253: 43(ivec4) ConstantComposite 60 60 60 60 395: 6(int) Constant 8 396: 171(ivec3) ConstantComposite 395 395 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 256 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: 103(ptr) AccessChain 49(data) 101 61 109: 41(fvec4) Load 108 110: 41(fvec4) VectorShuffle 109 107 4 5 2 3 Store 108 110 111: 6(int) Load 8(invocation) 113: 103(ptr) AccessChain 49(data) 51 61 114: 41(fvec4) Load 113 115: 112(fvec3) VectorShuffle 114 114 0 1 2 116: 112(fvec3) GroupNonUniformBroadcast 38 115 38 117: 103(ptr) AccessChain 49(data) 111 61 118: 41(fvec4) Load 117 119: 41(fvec4) VectorShuffle 118 116 4 5 6 3 Store 117 119 120: 6(int) Load 8(invocation) 122: 103(ptr) AccessChain 49(data) 121 61 123: 41(fvec4) Load 122 124: 41(fvec4) GroupNonUniformBroadcast 38 123 38 125: 103(ptr) AccessChain 49(data) 120 61 Store 125 124 126: 6(int) Load 8(invocation) 128: 127(ptr) AccessChain 49(data) 61 60 54 129: 42(int) Load 128 130: 42(int) GroupNonUniformBroadcast 38 129 72 131: 127(ptr) AccessChain 49(data) 126 60 54 Store 131 130 132: 6(int) Load 8(invocation) 135: 134(ptr) AccessChain 49(data) 60 60 136: 43(ivec4) Load 135 137: 133(ivec2) VectorShuffle 136 136 0 1 138: 133(ivec2) GroupNonUniformBroadcast 38 137 72 139: 134(ptr) AccessChain 49(data) 132 60 140: 43(ivec4) Load 139 141: 43(ivec4) VectorShuffle 140 138 4 5 2 3 Store 139 141 142: 6(int) Load 8(invocation) 144: 134(ptr) AccessChain 49(data) 51 60 145: 43(ivec4) Load 144 146: 143(ivec3) VectorShuffle 145 145 0 1 2 147: 143(ivec3) GroupNonUniformBroadcast 38 146 72 148: 134(ptr) AccessChain 49(data) 142 60 149: 43(ivec4) Load 148 150: 43(ivec4) VectorShuffle 149 147 4 5 6 3 Store 148 150 151: 6(int) Load 8(invocation) 152: 134(ptr) AccessChain 49(data) 121 60 153: 43(ivec4) Load 152 154: 43(ivec4) GroupNonUniformBroadcast 38 153 72 155: 134(ptr) AccessChain 49(data) 151 60 Store 155 154 156: 6(int) Load 8(invocation) 157: 55(ptr) AccessChain 49(data) 61 51 54 158: 6(int) Load 157 159: 6(int) GroupNonUniformBroadcast 38 158 64 160: 55(ptr) AccessChain 49(data) 156 51 54 Store 160 159 161: 6(int) Load 8(invocation) 163: 88(ptr) AccessChain 49(data) 60 51 164: 17(ivec4) Load 163 165: 162(ivec2) VectorShuffle 164 164 0 1 166: 162(ivec2) GroupNonUniformBroadcast 38 165 64 167: 88(ptr) AccessChain 49(data) 161 51 168: 17(ivec4) Load 167 169: 17(ivec4) VectorShuffle 168 166 4 5 2 3 Store 167 169 170: 6(int) Load 8(invocation) 172: 88(ptr) AccessChain 49(data) 51 51 173: 17(ivec4) Load 172 174: 171(ivec3) VectorShuffle 173 173 0 1 2 175: 171(ivec3) GroupNonUniformBroadcast 38 174 64 176: 88(ptr) AccessChain 49(data) 170 51 177: 17(ivec4) Load 176 178: 17(ivec4) VectorShuffle 177 175 4 5 6 3 Store 176 178 179: 6(int) Load 8(invocation) 180: 88(ptr) AccessChain 49(data) 121 51 181: 17(ivec4) Load 180 182: 17(ivec4) GroupNonUniformBroadcast 38 181 64 183: 88(ptr) AccessChain 49(data) 179 51 Store 183 182 184: 6(int) Load 8(invocation) 186: 185(ptr) AccessChain 49(data) 61 121 54 187:44(float64_t) Load 186 188:44(float64_t) GroupNonUniformBroadcast 38 187 54 189: 185(ptr) AccessChain 49(data) 184 121 54 Store 189 188 190: 6(int) Load 8(invocation) 193: 192(ptr) AccessChain 49(data) 60 121 194: 45(f64vec4) Load 193 195:191(f64vec2) VectorShuffle 194 194 0 1 196:191(f64vec2) GroupNonUniformBroadcast 38 195 54 197: 192(ptr) AccessChain 49(data) 190 121 198: 45(f64vec4) Load 197 199: 45(f64vec4) VectorShuffle 198 196 4 5 2 3 Store 197 199 200: 6(int) Load 8(invocation) 202: 192(ptr) AccessChain 49(data) 51 121 203: 45(f64vec4) Load 202 204:201(f64vec3) VectorShuffle 203 203 0 1 2 205:201(f64vec3) GroupNonUniformBroadcast 38 204 54 206: 192(ptr) AccessChain 49(data) 200 121 207: 45(f64vec4) Load 206 208: 45(f64vec4) VectorShuffle 207 205 4 5 6 3 Store 206 208 209: 6(int) Load 8(invocation) 210: 192(ptr) AccessChain 49(data) 121 121 211: 45(f64vec4) Load 210 212: 45(f64vec4) GroupNonUniformBroadcast 38 211 54 213: 192(ptr) AccessChain 49(data) 209 121 Store 213 212 214: 6(int) Load 8(invocation) 215: 127(ptr) AccessChain 49(data) 61 60 54 216: 42(int) Load 215 217: 36(bool) SLessThan 216 61 218: 36(bool) GroupNonUniformBroadcast 38 217 64 219: 42(int) Select 218 60 61 220: 127(ptr) AccessChain 49(data) 214 60 54 Store 220 219 221: 6(int) Load 8(invocation) 222: 134(ptr) AccessChain 49(data) 60 60 223: 43(ivec4) Load 222 224: 133(ivec2) VectorShuffle 223 223 0 1 227: 226(bvec2) SLessThan 224 225 228: 226(bvec2) GroupNonUniformBroadcast 38 227 64 230: 133(ivec2) Select 228 229 225 231: 134(ptr) AccessChain 49(data) 221 60 232: 43(ivec4) Load 231 233: 43(ivec4) VectorShuffle 232 230 4 5 2 3 Store 231 233 234: 6(int) Load 8(invocation) 235: 134(ptr) AccessChain 49(data) 60 60 236: 43(ivec4) Load 235 237: 143(ivec3) VectorShuffle 236 236 0 1 2 240: 239(bvec3) SLessThan 237 238 241: 239(bvec3) GroupNonUniformBroadcast 38 240 64 243: 143(ivec3) Select 241 242 238 244: 134(ptr) AccessChain 49(data) 234 60 245: 43(ivec4) Load 244 246: 43(ivec4) VectorShuffle 245 243 4 5 6 3 Store 244 246 247: 6(int) Load 8(invocation) 248: 134(ptr) AccessChain 49(data) 60 60 249: 43(ivec4) Load 248 251: 83(bvec4) SLessThan 249 250 252: 83(bvec4) GroupNonUniformBroadcast 38 251 64 254: 43(ivec4) Select 252 253 250 255: 134(ptr) AccessChain 49(data) 247 60 Store 255 254 Branch 94 256: Label 257: 6(int) Load 8(invocation) 258: 96(ptr) AccessChain 49(data) 61 61 54 259: 40(float) Load 258 260: 40(float) GroupNonUniformBroadcastFirst 38 259 261: 96(ptr) AccessChain 49(data) 257 61 54 Store 261 260 262: 6(int) Load 8(invocation) 263: 103(ptr) AccessChain 49(data) 60 61 264: 41(fvec4) Load 263 265: 102(fvec2) VectorShuffle 264 264 0 1 266: 102(fvec2) GroupNonUniformBroadcastFirst 38 265 267: 103(ptr) AccessChain 49(data) 262 61 268: 41(fvec4) Load 267 269: 41(fvec4) VectorShuffle 268 266 4 5 2 3 Store 267 269 270: 6(int) Load 8(invocation) 271: 103(ptr) AccessChain 49(data) 51 61 272: 41(fvec4) Load 271 273: 112(fvec3) VectorShuffle 272 272 0 1 2 274: 112(fvec3) GroupNonUniformBroadcastFirst 38 273 275: 103(ptr) AccessChain 49(data) 270 61 276: 41(fvec4) Load 275 277: 41(fvec4) VectorShuffle 276 274 4 5 6 3 Store 275 277 278: 6(int) Load 8(invocation) 279: 103(ptr) AccessChain 49(data) 121 61 280: 41(fvec4) Load 279 281: 41(fvec4) GroupNonUniformBroadcastFirst 38 280 282: 103(ptr) AccessChain 49(data) 278 61 Store 282 281 283: 6(int) Load 8(invocation) 284: 127(ptr) AccessChain 49(data) 61 60 54 285: 42(int) Load 284 286: 42(int) GroupNonUniformBroadcastFirst 38 285 287: 127(ptr) AccessChain 49(data) 283 60 54 Store 287 286 288: 6(int) Load 8(invocation) 289: 134(ptr) AccessChain 49(data) 60 60 290: 43(ivec4) Load 289 291: 133(ivec2) VectorShuffle 290 290 0 1 292: 133(ivec2) GroupNonUniformBroadcastFirst 38 291 293: 134(ptr) AccessChain 49(data) 288 60 294: 43(ivec4) Load 293 295: 43(ivec4) VectorShuffle 294 292 4 5 2 3 Store 293 295 296: 6(int) Load 8(invocation) 297: 134(ptr) AccessChain 49(data) 51 60 298: 43(ivec4) Load 297 299: 143(ivec3) VectorShuffle 298 298 0 1 2 300: 143(ivec3) GroupNonUniformBroadcastFirst 38 299 301: 134(ptr) AccessChain 49(data) 296 60 302: 43(ivec4) Load 301 303: 43(ivec4) VectorShuffle 302 300 4 5 6 3 Store 301 303 304: 6(int) Load 8(invocation) 305: 134(ptr) AccessChain 49(data) 121 60 306: 43(ivec4) Load 305 307: 43(ivec4) GroupNonUniformBroadcastFirst 38 306 308: 134(ptr) AccessChain 49(data) 304 60 Store 308 307 309: 6(int) Load 8(invocation) 310: 55(ptr) AccessChain 49(data) 61 51 54 311: 6(int) Load 310 312: 6(int) GroupNonUniformBroadcastFirst 38 311 313: 55(ptr) AccessChain 49(data) 309 51 54 Store 313 312 314: 6(int) Load 8(invocation) 315: 88(ptr) AccessChain 49(data) 60 51 316: 17(ivec4) Load 315 317: 162(ivec2) VectorShuffle 316 316 0 1 318: 162(ivec2) GroupNonUniformBroadcastFirst 38 317 319: 88(ptr) AccessChain 49(data) 314 51 320: 17(ivec4) Load 319 321: 17(ivec4) VectorShuffle 320 318 4 5 2 3 Store 319 321 322: 6(int) Load 8(invocation) 323: 88(ptr) AccessChain 49(data) 51 51 324: 17(ivec4) Load 323 325: 171(ivec3) VectorShuffle 324 324 0 1 2 326: 171(ivec3) GroupNonUniformBroadcastFirst 38 325 327: 88(ptr) AccessChain 49(data) 322 51 328: 17(ivec4) Load 327 329: 17(ivec4) VectorShuffle 328 326 4 5 6 3 Store 327 329 330: 6(int) Load 8(invocation) 331: 88(ptr) AccessChain 49(data) 121 51 332: 17(ivec4) Load 331 333: 17(ivec4) GroupNonUniformBroadcastFirst 38 332 334: 88(ptr) AccessChain 49(data) 330 51 Store 334 333 335: 6(int) Load 8(invocation) 336: 185(ptr) AccessChain 49(data) 61 121 54 337:44(float64_t) Load 336 338:44(float64_t) GroupNonUniformBroadcastFirst 38 337 339: 185(ptr) AccessChain 49(data) 335 121 54 Store 339 338 340: 6(int) Load 8(invocation) 341: 192(ptr) AccessChain 49(data) 60 121 342: 45(f64vec4) Load 341 343:191(f64vec2) VectorShuffle 342 342 0 1 344:191(f64vec2) GroupNonUniformBroadcastFirst 38 343 345: 192(ptr) AccessChain 49(data) 340 121 346: 45(f64vec4) Load 345 347: 45(f64vec4) VectorShuffle 346 344 4 5 2 3 Store 345 347 348: 6(int) Load 8(invocation) 349: 192(ptr) AccessChain 49(data) 51 121 350: 45(f64vec4) Load 349 351:201(f64vec3) VectorShuffle 350 350 0 1 2 352:201(f64vec3) GroupNonUniformBroadcastFirst 38 351 353: 192(ptr) AccessChain 49(data) 348 121 354: 45(f64vec4) Load 353 355: 45(f64vec4) VectorShuffle 354 352 4 5 6 3 Store 353 355 356: 6(int) Load 8(invocation) 357: 192(ptr) AccessChain 49(data) 121 121 358: 45(f64vec4) Load 357 359: 45(f64vec4) GroupNonUniformBroadcastFirst 38 358 360: 192(ptr) AccessChain 49(data) 356 121 Store 360 359 361: 6(int) Load 8(invocation) 362: 127(ptr) AccessChain 49(data) 61 60 54 363: 42(int) Load 362 364: 36(bool) SLessThan 363 61 365: 36(bool) GroupNonUniformBroadcastFirst 38 364 366: 42(int) Select 365 60 61 367: 127(ptr) AccessChain 49(data) 361 60 54 Store 367 366 368: 6(int) Load 8(invocation) 369: 134(ptr) AccessChain 49(data) 60 60 370: 43(ivec4) Load 369 371: 133(ivec2) VectorShuffle 370 370 0 1 372: 226(bvec2) SLessThan 371 225 373: 226(bvec2) GroupNonUniformBroadcastFirst 38 372 374: 133(ivec2) Select 373 229 225 375: 134(ptr) AccessChain 49(data) 368 60 376: 43(ivec4) Load 375 377: 43(ivec4) VectorShuffle 376 374 4 5 2 3 Store 375 377 378: 6(int) Load 8(invocation) 379: 134(ptr) AccessChain 49(data) 60 60 380: 43(ivec4) Load 379 381: 143(ivec3) VectorShuffle 380 380 0 1 2 382: 239(bvec3) SLessThan 381 238 383: 239(bvec3) GroupNonUniformBroadcastFirst 38 382 384: 143(ivec3) Select 383 242 238 385: 134(ptr) AccessChain 49(data) 378 60 386: 43(ivec4) Load 385 387: 43(ivec4) VectorShuffle 386 384 4 5 6 3 Store 385 387 388: 6(int) Load 8(invocation) 389: 134(ptr) AccessChain 49(data) 60 60 390: 43(ivec4) Load 389 391: 83(bvec4) SLessThan 390 250 392: 83(bvec4) GroupNonUniformBroadcastFirst 38 391 393: 43(ivec4) Select 392 253 250 394: 134(ptr) AccessChain 49(data) 388 60 Store 394 393 Branch 94 94: Label Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupBallotNeg.comp.out000066400000000000000000000002751360464450000246540ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupBasic.comp.out000066400000000000000000000104141360464450000240220ustar00rootroot00000000000000spv.subgroupBasic.comp // Module Version 10300 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.subgroupClustered.comp.out000066400000000000000000001343141360464450000247410ustar00rootroot00000000000000spv.subgroupClustered.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 737 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformClustered 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" 10 12 ExecutionMode 4 LocalSize 8 1 1 Source GLSL 450 SourceExtension "GL_KHR_shader_subgroup_basic" SourceExtension "GL_KHR_shader_subgroup_clustered" Name 4 "main" Name 8 "invocation" Name 10 "gl_SubgroupInvocationID" Name 12 "gl_SubgroupSize" Name 24 "Buffers" MemberName 24(Buffers) 0 "f4" MemberName 24(Buffers) 1 "i4" MemberName 24(Buffers) 2 "u4" MemberName 24(Buffers) 3 "d4" Name 27 "data" Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 11 RelaxedPrecision Decorate 12(gl_SubgroupSize) RelaxedPrecision Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize Decorate 13 RelaxedPrecision Decorate 14 RelaxedPrecision Decorate 16 RelaxedPrecision MemberDecorate 24(Buffers) 0 Offset 0 MemberDecorate 24(Buffers) 1 Offset 16 MemberDecorate 24(Buffers) 2 Offset 32 MemberDecorate 24(Buffers) 3 Offset 64 Decorate 24(Buffers) Block Decorate 27(data) DescriptorSet 0 Decorate 27(data) Binding 0 Decorate 736 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 9: TypePointer Input 6(int) 10(gl_SubgroupInvocationID): 9(ptr) Variable Input 12(gl_SubgroupSize): 9(ptr) Variable Input 15: 6(int) Constant 4 17: TypeFloat 32 18: TypeVector 17(float) 4 19: TypeInt 32 1 20: TypeVector 19(int) 4 21: TypeVector 6(int) 4 22: TypeFloat 64 23: TypeVector 22(float64_t) 4 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) 25: TypeArray 24(Buffers) 15 26: TypePointer 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) 50: 19(int) Constant 2 51: TypeVector 17(float) 3 60: 19(int) Constant 3 66: TypePointer StorageBuffer 19(int) 72: TypeVector 19(int) 2 73: TypePointer StorageBuffer 20(ivec4) 82: TypeVector 19(int) 3 96: TypePointer StorageBuffer 6(int) 102: TypeVector 6(int) 2 103: TypePointer StorageBuffer 21(ivec4) 112: TypeVector 6(int) 3 126: TypePointer StorageBuffer 22(float64_t) 132: TypeVector 22(float64_t) 2 133: TypePointer StorageBuffer 23(f64vec4) 142: TypeVector 22(float64_t) 3 522: TypeBool 531: 72(ivec2) ConstantComposite 29 29 532: TypeVector 522(bool) 2 535: 72(ivec2) ConstantComposite 39 39 544: 82(ivec3) ConstantComposite 29 29 29 545: TypeVector 522(bool) 3 548: 82(ivec3) ConstantComposite 39 39 39 556: 20(ivec4) ConstantComposite 29 29 29 29 557: TypeVector 522(bool) 4 560: 20(ivec4) ConstantComposite 39 39 39 39 735: 6(int) Constant 8 736: 112(ivec3) ConstantComposite 735 34 34 4(main): 2 Function None 3 5: Label 8(invocation): 7(ptr) Variable Function 11: 6(int) Load 10(gl_SubgroupInvocationID) 13: 6(int) Load 12(gl_SubgroupSize) 14: 6(int) IAdd 11 13 16: 6(int) UMod 14 15 Store 8(invocation) 16 28: 6(int) Load 8(invocation) 32: 31(ptr) AccessChain 27(data) 29 29 30 33: 17(float) Load 32 36: 17(float) GroupNonUniformFAdd 35 ClusteredReduce 33 34 37: 31(ptr) AccessChain 27(data) 28 29 30 Store 37 36 38: 6(int) Load 8(invocation) 42: 41(ptr) AccessChain 27(data) 39 29 43: 18(fvec4) Load 42 44: 40(fvec2) VectorShuffle 43 43 0 1 45: 40(fvec2) GroupNonUniformFAdd 35 ClusteredReduce 44 34 46: 41(ptr) AccessChain 27(data) 38 29 47: 18(fvec4) Load 46 48: 18(fvec4) VectorShuffle 47 45 4 5 2 3 Store 46 48 49: 6(int) Load 8(invocation) 52: 41(ptr) AccessChain 27(data) 50 29 53: 18(fvec4) Load 52 54: 51(fvec3) VectorShuffle 53 53 0 1 2 55: 51(fvec3) GroupNonUniformFAdd 35 ClusteredReduce 54 34 56: 41(ptr) AccessChain 27(data) 49 29 57: 18(fvec4) Load 56 58: 18(fvec4) VectorShuffle 57 55 4 5 6 3 Store 56 58 59: 6(int) Load 8(invocation) 61: 41(ptr) AccessChain 27(data) 60 29 62: 18(fvec4) Load 61 63: 18(fvec4) GroupNonUniformFAdd 35 ClusteredReduce 62 34 64: 41(ptr) AccessChain 27(data) 59 29 Store 64 63 65: 6(int) Load 8(invocation) 67: 66(ptr) AccessChain 27(data) 29 39 30 68: 19(int) Load 67 69: 19(int) GroupNonUniformIAdd 35 ClusteredReduce 68 34 70: 66(ptr) AccessChain 27(data) 65 39 30 Store 70 69 71: 6(int) Load 8(invocation) 74: 73(ptr) AccessChain 27(data) 39 39 75: 20(ivec4) Load 74 76: 72(ivec2) VectorShuffle 75 75 0 1 77: 72(ivec2) GroupNonUniformIAdd 35 ClusteredReduce 76 34 78: 73(ptr) AccessChain 27(data) 71 39 79: 20(ivec4) Load 78 80: 20(ivec4) VectorShuffle 79 77 4 5 2 3 Store 78 80 81: 6(int) Load 8(invocation) 83: 73(ptr) AccessChain 27(data) 50 39 84: 20(ivec4) Load 83 85: 82(ivec3) VectorShuffle 84 84 0 1 2 86: 82(ivec3) GroupNonUniformIAdd 35 ClusteredReduce 85 34 87: 73(ptr) AccessChain 27(data) 81 39 88: 20(ivec4) Load 87 89: 20(ivec4) VectorShuffle 88 86 4 5 6 3 Store 87 89 90: 6(int) Load 8(invocation) 91: 73(ptr) AccessChain 27(data) 60 39 92: 20(ivec4) Load 91 93: 20(ivec4) GroupNonUniformIAdd 35 ClusteredReduce 92 34 94: 73(ptr) AccessChain 27(data) 90 39 Store 94 93 95: 6(int) Load 8(invocation) 97: 96(ptr) AccessChain 27(data) 29 50 30 98: 6(int) Load 97 99: 6(int) GroupNonUniformIAdd 35 ClusteredReduce 98 34 100: 96(ptr) AccessChain 27(data) 95 50 30 Store 100 99 101: 6(int) Load 8(invocation) 104: 103(ptr) AccessChain 27(data) 39 50 105: 21(ivec4) Load 104 106: 102(ivec2) VectorShuffle 105 105 0 1 107: 102(ivec2) GroupNonUniformIAdd 35 ClusteredReduce 106 34 108: 103(ptr) AccessChain 27(data) 101 50 109: 21(ivec4) Load 108 110: 21(ivec4) VectorShuffle 109 107 4 5 2 3 Store 108 110 111: 6(int) Load 8(invocation) 113: 103(ptr) AccessChain 27(data) 50 50 114: 21(ivec4) Load 113 115: 112(ivec3) VectorShuffle 114 114 0 1 2 116: 112(ivec3) GroupNonUniformIAdd 35 ClusteredReduce 115 34 117: 103(ptr) AccessChain 27(data) 111 50 118: 21(ivec4) Load 117 119: 21(ivec4) VectorShuffle 118 116 4 5 6 3 Store 117 119 120: 6(int) Load 8(invocation) 121: 103(ptr) AccessChain 27(data) 60 50 122: 21(ivec4) Load 121 123: 21(ivec4) GroupNonUniformIAdd 35 ClusteredReduce 122 34 124: 103(ptr) AccessChain 27(data) 120 50 Store 124 123 125: 6(int) Load 8(invocation) 127: 126(ptr) AccessChain 27(data) 29 60 30 128:22(float64_t) Load 127 129:22(float64_t) GroupNonUniformFAdd 35 ClusteredReduce 128 34 130: 126(ptr) AccessChain 27(data) 125 60 30 Store 130 129 131: 6(int) Load 8(invocation) 134: 133(ptr) AccessChain 27(data) 39 60 135: 23(f64vec4) Load 134 136:132(f64vec2) VectorShuffle 135 135 0 1 137:132(f64vec2) GroupNonUniformFAdd 35 ClusteredReduce 136 34 138: 133(ptr) AccessChain 27(data) 131 60 139: 23(f64vec4) Load 138 140: 23(f64vec4) VectorShuffle 139 137 4 5 2 3 Store 138 140 141: 6(int) Load 8(invocation) 143: 133(ptr) AccessChain 27(data) 50 60 144: 23(f64vec4) Load 143 145:142(f64vec3) VectorShuffle 144 144 0 1 2 146:142(f64vec3) GroupNonUniformFAdd 35 ClusteredReduce 145 34 147: 133(ptr) AccessChain 27(data) 141 60 148: 23(f64vec4) Load 147 149: 23(f64vec4) VectorShuffle 148 146 4 5 6 3 Store 147 149 150: 6(int) Load 8(invocation) 151: 133(ptr) AccessChain 27(data) 60 60 152: 23(f64vec4) Load 151 153: 23(f64vec4) GroupNonUniformFAdd 35 ClusteredReduce 152 34 154: 133(ptr) AccessChain 27(data) 150 60 Store 154 153 155: 6(int) Load 8(invocation) 156: 31(ptr) AccessChain 27(data) 29 29 30 157: 17(float) Load 156 158: 17(float) GroupNonUniformFMul 35 ClusteredReduce 157 34 159: 31(ptr) AccessChain 27(data) 155 29 30 Store 159 158 160: 6(int) Load 8(invocation) 161: 41(ptr) AccessChain 27(data) 39 29 162: 18(fvec4) Load 161 163: 40(fvec2) VectorShuffle 162 162 0 1 164: 40(fvec2) GroupNonUniformFMul 35 ClusteredReduce 163 34 165: 41(ptr) AccessChain 27(data) 160 29 166: 18(fvec4) Load 165 167: 18(fvec4) VectorShuffle 166 164 4 5 2 3 Store 165 167 168: 6(int) Load 8(invocation) 169: 41(ptr) AccessChain 27(data) 50 29 170: 18(fvec4) Load 169 171: 51(fvec3) VectorShuffle 170 170 0 1 2 172: 51(fvec3) GroupNonUniformFMul 35 ClusteredReduce 171 34 173: 41(ptr) AccessChain 27(data) 168 29 174: 18(fvec4) Load 173 175: 18(fvec4) VectorShuffle 174 172 4 5 6 3 Store 173 175 176: 6(int) Load 8(invocation) 177: 41(ptr) AccessChain 27(data) 60 29 178: 18(fvec4) Load 177 179: 18(fvec4) GroupNonUniformFMul 35 ClusteredReduce 178 34 180: 41(ptr) AccessChain 27(data) 176 29 Store 180 179 181: 6(int) Load 8(invocation) 182: 66(ptr) AccessChain 27(data) 29 39 30 183: 19(int) Load 182 184: 19(int) GroupNonUniformIMul 35 ClusteredReduce 183 34 185: 66(ptr) AccessChain 27(data) 181 39 30 Store 185 184 186: 6(int) Load 8(invocation) 187: 73(ptr) AccessChain 27(data) 39 39 188: 20(ivec4) Load 187 189: 72(ivec2) VectorShuffle 188 188 0 1 190: 72(ivec2) GroupNonUniformIMul 35 ClusteredReduce 189 34 191: 73(ptr) AccessChain 27(data) 186 39 192: 20(ivec4) Load 191 193: 20(ivec4) VectorShuffle 192 190 4 5 2 3 Store 191 193 194: 6(int) Load 8(invocation) 195: 73(ptr) AccessChain 27(data) 50 39 196: 20(ivec4) Load 195 197: 82(ivec3) VectorShuffle 196 196 0 1 2 198: 82(ivec3) GroupNonUniformIMul 35 ClusteredReduce 197 34 199: 73(ptr) AccessChain 27(data) 194 39 200: 20(ivec4) Load 199 201: 20(ivec4) VectorShuffle 200 198 4 5 6 3 Store 199 201 202: 6(int) Load 8(invocation) 203: 73(ptr) AccessChain 27(data) 60 39 204: 20(ivec4) Load 203 205: 20(ivec4) GroupNonUniformIMul 35 ClusteredReduce 204 34 206: 73(ptr) AccessChain 27(data) 202 39 Store 206 205 207: 6(int) Load 8(invocation) 208: 96(ptr) AccessChain 27(data) 29 50 30 209: 6(int) Load 208 210: 6(int) GroupNonUniformIMul 35 ClusteredReduce 209 34 211: 96(ptr) AccessChain 27(data) 207 50 30 Store 211 210 212: 6(int) Load 8(invocation) 213: 103(ptr) AccessChain 27(data) 39 50 214: 21(ivec4) Load 213 215: 102(ivec2) VectorShuffle 214 214 0 1 216: 102(ivec2) GroupNonUniformIMul 35 ClusteredReduce 215 34 217: 103(ptr) AccessChain 27(data) 212 50 218: 21(ivec4) Load 217 219: 21(ivec4) VectorShuffle 218 216 4 5 2 3 Store 217 219 220: 6(int) Load 8(invocation) 221: 103(ptr) AccessChain 27(data) 50 50 222: 21(ivec4) Load 221 223: 112(ivec3) VectorShuffle 222 222 0 1 2 224: 112(ivec3) GroupNonUniformIMul 35 ClusteredReduce 223 34 225: 103(ptr) AccessChain 27(data) 220 50 226: 21(ivec4) Load 225 227: 21(ivec4) VectorShuffle 226 224 4 5 6 3 Store 225 227 228: 6(int) Load 8(invocation) 229: 103(ptr) AccessChain 27(data) 60 50 230: 21(ivec4) Load 229 231: 21(ivec4) GroupNonUniformIMul 35 ClusteredReduce 230 34 232: 103(ptr) AccessChain 27(data) 228 50 Store 232 231 233: 6(int) Load 8(invocation) 234: 126(ptr) AccessChain 27(data) 29 60 30 235:22(float64_t) Load 234 236:22(float64_t) GroupNonUniformFMul 35 ClusteredReduce 235 34 237: 126(ptr) AccessChain 27(data) 233 60 30 Store 237 236 238: 6(int) Load 8(invocation) 239: 133(ptr) AccessChain 27(data) 39 60 240: 23(f64vec4) Load 239 241:132(f64vec2) VectorShuffle 240 240 0 1 242:132(f64vec2) GroupNonUniformFMul 35 ClusteredReduce 241 34 243: 133(ptr) AccessChain 27(data) 238 60 244: 23(f64vec4) Load 243 245: 23(f64vec4) VectorShuffle 244 242 4 5 2 3 Store 243 245 246: 6(int) Load 8(invocation) 247: 133(ptr) AccessChain 27(data) 50 60 248: 23(f64vec4) Load 247 249:142(f64vec3) VectorShuffle 248 248 0 1 2 250:142(f64vec3) GroupNonUniformFMul 35 ClusteredReduce 249 34 251: 133(ptr) AccessChain 27(data) 246 60 252: 23(f64vec4) Load 251 253: 23(f64vec4) VectorShuffle 252 250 4 5 6 3 Store 251 253 254: 6(int) Load 8(invocation) 255: 133(ptr) AccessChain 27(data) 60 60 256: 23(f64vec4) Load 255 257: 23(f64vec4) GroupNonUniformFMul 35 ClusteredReduce 256 34 258: 133(ptr) AccessChain 27(data) 254 60 Store 258 257 259: 6(int) Load 8(invocation) 260: 31(ptr) AccessChain 27(data) 29 29 30 261: 17(float) Load 260 262: 17(float) GroupNonUniformFMin 35 ClusteredReduce 261 34 263: 31(ptr) AccessChain 27(data) 259 29 30 Store 263 262 264: 6(int) Load 8(invocation) 265: 41(ptr) AccessChain 27(data) 39 29 266: 18(fvec4) Load 265 267: 40(fvec2) VectorShuffle 266 266 0 1 268: 40(fvec2) GroupNonUniformFMin 35 ClusteredReduce 267 34 269: 41(ptr) AccessChain 27(data) 264 29 270: 18(fvec4) Load 269 271: 18(fvec4) VectorShuffle 270 268 4 5 2 3 Store 269 271 272: 6(int) Load 8(invocation) 273: 41(ptr) AccessChain 27(data) 50 29 274: 18(fvec4) Load 273 275: 51(fvec3) VectorShuffle 274 274 0 1 2 276: 51(fvec3) GroupNonUniformFMin 35 ClusteredReduce 275 34 277: 41(ptr) AccessChain 27(data) 272 29 278: 18(fvec4) Load 277 279: 18(fvec4) VectorShuffle 278 276 4 5 6 3 Store 277 279 280: 6(int) Load 8(invocation) 281: 41(ptr) AccessChain 27(data) 60 29 282: 18(fvec4) Load 281 283: 18(fvec4) GroupNonUniformFMin 35 ClusteredReduce 282 34 284: 41(ptr) AccessChain 27(data) 280 29 Store 284 283 285: 6(int) Load 8(invocation) 286: 66(ptr) AccessChain 27(data) 29 39 30 287: 19(int) Load 286 288: 19(int) GroupNonUniformSMin 35 ClusteredReduce 287 34 289: 66(ptr) AccessChain 27(data) 285 39 30 Store 289 288 290: 6(int) Load 8(invocation) 291: 73(ptr) AccessChain 27(data) 39 39 292: 20(ivec4) Load 291 293: 72(ivec2) VectorShuffle 292 292 0 1 294: 72(ivec2) GroupNonUniformSMin 35 ClusteredReduce 293 34 295: 73(ptr) AccessChain 27(data) 290 39 296: 20(ivec4) Load 295 297: 20(ivec4) VectorShuffle 296 294 4 5 2 3 Store 295 297 298: 6(int) Load 8(invocation) 299: 73(ptr) AccessChain 27(data) 50 39 300: 20(ivec4) Load 299 301: 82(ivec3) VectorShuffle 300 300 0 1 2 302: 82(ivec3) GroupNonUniformSMin 35 ClusteredReduce 301 34 303: 73(ptr) AccessChain 27(data) 298 39 304: 20(ivec4) Load 303 305: 20(ivec4) VectorShuffle 304 302 4 5 6 3 Store 303 305 306: 6(int) Load 8(invocation) 307: 73(ptr) AccessChain 27(data) 60 39 308: 20(ivec4) Load 307 309: 20(ivec4) GroupNonUniformSMin 35 ClusteredReduce 308 34 310: 73(ptr) AccessChain 27(data) 306 39 Store 310 309 311: 6(int) Load 8(invocation) 312: 96(ptr) AccessChain 27(data) 29 50 30 313: 6(int) Load 312 314: 6(int) GroupNonUniformUMin 35 ClusteredReduce 313 34 315: 96(ptr) AccessChain 27(data) 311 50 30 Store 315 314 316: 6(int) Load 8(invocation) 317: 103(ptr) AccessChain 27(data) 39 50 318: 21(ivec4) Load 317 319: 102(ivec2) VectorShuffle 318 318 0 1 320: 102(ivec2) GroupNonUniformUMin 35 ClusteredReduce 319 34 321: 103(ptr) AccessChain 27(data) 316 50 322: 21(ivec4) Load 321 323: 21(ivec4) VectorShuffle 322 320 4 5 2 3 Store 321 323 324: 6(int) Load 8(invocation) 325: 103(ptr) AccessChain 27(data) 50 50 326: 21(ivec4) Load 325 327: 112(ivec3) VectorShuffle 326 326 0 1 2 328: 112(ivec3) GroupNonUniformUMin 35 ClusteredReduce 327 34 329: 103(ptr) AccessChain 27(data) 324 50 330: 21(ivec4) Load 329 331: 21(ivec4) VectorShuffle 330 328 4 5 6 3 Store 329 331 332: 6(int) Load 8(invocation) 333: 103(ptr) AccessChain 27(data) 60 50 334: 21(ivec4) Load 333 335: 21(ivec4) GroupNonUniformUMin 35 ClusteredReduce 334 34 336: 103(ptr) AccessChain 27(data) 332 50 Store 336 335 337: 6(int) Load 8(invocation) 338: 126(ptr) AccessChain 27(data) 29 60 30 339:22(float64_t) Load 338 340:22(float64_t) GroupNonUniformFMin 35 ClusteredReduce 339 34 341: 126(ptr) AccessChain 27(data) 337 60 30 Store 341 340 342: 6(int) Load 8(invocation) 343: 133(ptr) AccessChain 27(data) 39 60 344: 23(f64vec4) Load 343 345:132(f64vec2) VectorShuffle 344 344 0 1 346:132(f64vec2) GroupNonUniformFMin 35 ClusteredReduce 345 34 347: 133(ptr) AccessChain 27(data) 342 60 348: 23(f64vec4) Load 347 349: 23(f64vec4) VectorShuffle 348 346 4 5 2 3 Store 347 349 350: 6(int) Load 8(invocation) 351: 133(ptr) AccessChain 27(data) 50 60 352: 23(f64vec4) Load 351 353:142(f64vec3) VectorShuffle 352 352 0 1 2 354:142(f64vec3) GroupNonUniformFMin 35 ClusteredReduce 353 34 355: 133(ptr) AccessChain 27(data) 350 60 356: 23(f64vec4) Load 355 357: 23(f64vec4) VectorShuffle 356 354 4 5 6 3 Store 355 357 358: 6(int) Load 8(invocation) 359: 133(ptr) AccessChain 27(data) 60 60 360: 23(f64vec4) Load 359 361: 23(f64vec4) GroupNonUniformFMin 35 ClusteredReduce 360 34 362: 133(ptr) AccessChain 27(data) 358 60 Store 362 361 363: 6(int) Load 8(invocation) 364: 31(ptr) AccessChain 27(data) 29 29 30 365: 17(float) Load 364 366: 17(float) GroupNonUniformFMax 35 ClusteredReduce 365 34 367: 31(ptr) AccessChain 27(data) 363 29 30 Store 367 366 368: 6(int) Load 8(invocation) 369: 41(ptr) AccessChain 27(data) 39 29 370: 18(fvec4) Load 369 371: 40(fvec2) VectorShuffle 370 370 0 1 372: 40(fvec2) GroupNonUniformFMax 35 ClusteredReduce 371 34 373: 41(ptr) AccessChain 27(data) 368 29 374: 18(fvec4) Load 373 375: 18(fvec4) VectorShuffle 374 372 4 5 2 3 Store 373 375 376: 6(int) Load 8(invocation) 377: 41(ptr) AccessChain 27(data) 50 29 378: 18(fvec4) Load 377 379: 51(fvec3) VectorShuffle 378 378 0 1 2 380: 51(fvec3) GroupNonUniformFMax 35 ClusteredReduce 379 34 381: 41(ptr) AccessChain 27(data) 376 29 382: 18(fvec4) Load 381 383: 18(fvec4) VectorShuffle 382 380 4 5 6 3 Store 381 383 384: 6(int) Load 8(invocation) 385: 41(ptr) AccessChain 27(data) 60 29 386: 18(fvec4) Load 385 387: 18(fvec4) GroupNonUniformFMax 35 ClusteredReduce 386 34 388: 41(ptr) AccessChain 27(data) 384 29 Store 388 387 389: 6(int) Load 8(invocation) 390: 66(ptr) AccessChain 27(data) 29 39 30 391: 19(int) Load 390 392: 19(int) GroupNonUniformSMax 35 ClusteredReduce 391 34 393: 66(ptr) AccessChain 27(data) 389 39 30 Store 393 392 394: 6(int) Load 8(invocation) 395: 73(ptr) AccessChain 27(data) 39 39 396: 20(ivec4) Load 395 397: 72(ivec2) VectorShuffle 396 396 0 1 398: 72(ivec2) GroupNonUniformSMax 35 ClusteredReduce 397 34 399: 73(ptr) AccessChain 27(data) 394 39 400: 20(ivec4) Load 399 401: 20(ivec4) VectorShuffle 400 398 4 5 2 3 Store 399 401 402: 6(int) Load 8(invocation) 403: 73(ptr) AccessChain 27(data) 50 39 404: 20(ivec4) Load 403 405: 82(ivec3) VectorShuffle 404 404 0 1 2 406: 82(ivec3) GroupNonUniformSMax 35 ClusteredReduce 405 34 407: 73(ptr) AccessChain 27(data) 402 39 408: 20(ivec4) Load 407 409: 20(ivec4) VectorShuffle 408 406 4 5 6 3 Store 407 409 410: 6(int) Load 8(invocation) 411: 73(ptr) AccessChain 27(data) 60 39 412: 20(ivec4) Load 411 413: 20(ivec4) GroupNonUniformSMax 35 ClusteredReduce 412 34 414: 73(ptr) AccessChain 27(data) 410 39 Store 414 413 415: 6(int) Load 8(invocation) 416: 96(ptr) AccessChain 27(data) 29 50 30 417: 6(int) Load 416 418: 6(int) GroupNonUniformUMax 35 ClusteredReduce 417 34 419: 96(ptr) AccessChain 27(data) 415 50 30 Store 419 418 420: 6(int) Load 8(invocation) 421: 103(ptr) AccessChain 27(data) 39 50 422: 21(ivec4) Load 421 423: 102(ivec2) VectorShuffle 422 422 0 1 424: 102(ivec2) GroupNonUniformUMax 35 ClusteredReduce 423 34 425: 103(ptr) AccessChain 27(data) 420 50 426: 21(ivec4) Load 425 427: 21(ivec4) VectorShuffle 426 424 4 5 2 3 Store 425 427 428: 6(int) Load 8(invocation) 429: 103(ptr) AccessChain 27(data) 50 50 430: 21(ivec4) Load 429 431: 112(ivec3) VectorShuffle 430 430 0 1 2 432: 112(ivec3) GroupNonUniformUMax 35 ClusteredReduce 431 34 433: 103(ptr) AccessChain 27(data) 428 50 434: 21(ivec4) Load 433 435: 21(ivec4) VectorShuffle 434 432 4 5 6 3 Store 433 435 436: 6(int) Load 8(invocation) 437: 103(ptr) AccessChain 27(data) 60 50 438: 21(ivec4) Load 437 439: 21(ivec4) GroupNonUniformUMax 35 ClusteredReduce 438 34 440: 103(ptr) AccessChain 27(data) 436 50 Store 440 439 441: 6(int) Load 8(invocation) 442: 126(ptr) AccessChain 27(data) 29 60 30 443:22(float64_t) Load 442 444:22(float64_t) GroupNonUniformFMax 35 ClusteredReduce 443 34 445: 126(ptr) AccessChain 27(data) 441 60 30 Store 445 444 446: 6(int) Load 8(invocation) 447: 133(ptr) AccessChain 27(data) 39 60 448: 23(f64vec4) Load 447 449:132(f64vec2) VectorShuffle 448 448 0 1 450:132(f64vec2) GroupNonUniformFMax 35 ClusteredReduce 449 34 451: 133(ptr) AccessChain 27(data) 446 60 452: 23(f64vec4) Load 451 453: 23(f64vec4) VectorShuffle 452 450 4 5 2 3 Store 451 453 454: 6(int) Load 8(invocation) 455: 133(ptr) AccessChain 27(data) 50 60 456: 23(f64vec4) Load 455 457:142(f64vec3) VectorShuffle 456 456 0 1 2 458:142(f64vec3) GroupNonUniformFMax 35 ClusteredReduce 457 34 459: 133(ptr) AccessChain 27(data) 454 60 460: 23(f64vec4) Load 459 461: 23(f64vec4) VectorShuffle 460 458 4 5 6 3 Store 459 461 462: 6(int) Load 8(invocation) 463: 133(ptr) AccessChain 27(data) 60 60 464: 23(f64vec4) Load 463 465: 23(f64vec4) GroupNonUniformFMax 35 ClusteredReduce 464 34 466: 133(ptr) AccessChain 27(data) 462 60 Store 466 465 467: 6(int) Load 8(invocation) 468: 66(ptr) AccessChain 27(data) 29 39 30 469: 19(int) Load 468 470: 19(int) GroupNonUniformBitwiseAnd 35 ClusteredReduce 469 34 471: 66(ptr) AccessChain 27(data) 467 39 30 Store 471 470 472: 6(int) Load 8(invocation) 473: 73(ptr) AccessChain 27(data) 39 39 474: 20(ivec4) Load 473 475: 72(ivec2) VectorShuffle 474 474 0 1 476: 72(ivec2) GroupNonUniformBitwiseAnd 35 ClusteredReduce 475 34 477: 73(ptr) AccessChain 27(data) 472 39 478: 20(ivec4) Load 477 479: 20(ivec4) VectorShuffle 478 476 4 5 2 3 Store 477 479 480: 6(int) Load 8(invocation) 481: 73(ptr) AccessChain 27(data) 50 39 482: 20(ivec4) Load 481 483: 82(ivec3) VectorShuffle 482 482 0 1 2 484: 82(ivec3) GroupNonUniformBitwiseAnd 35 ClusteredReduce 483 34 485: 73(ptr) AccessChain 27(data) 480 39 486: 20(ivec4) Load 485 487: 20(ivec4) VectorShuffle 486 484 4 5 6 3 Store 485 487 488: 6(int) Load 8(invocation) 489: 73(ptr) AccessChain 27(data) 60 39 490: 20(ivec4) Load 489 491: 20(ivec4) GroupNonUniformBitwiseAnd 35 ClusteredReduce 490 34 492: 73(ptr) AccessChain 27(data) 488 39 Store 492 491 493: 6(int) Load 8(invocation) 494: 96(ptr) AccessChain 27(data) 29 50 30 495: 6(int) Load 494 496: 6(int) GroupNonUniformBitwiseAnd 35 ClusteredReduce 495 34 497: 96(ptr) AccessChain 27(data) 493 50 30 Store 497 496 498: 6(int) Load 8(invocation) 499: 103(ptr) AccessChain 27(data) 39 50 500: 21(ivec4) Load 499 501: 102(ivec2) VectorShuffle 500 500 0 1 502: 102(ivec2) GroupNonUniformBitwiseAnd 35 ClusteredReduce 501 34 503: 103(ptr) AccessChain 27(data) 498 50 504: 21(ivec4) Load 503 505: 21(ivec4) VectorShuffle 504 502 4 5 2 3 Store 503 505 506: 6(int) Load 8(invocation) 507: 103(ptr) AccessChain 27(data) 50 50 508: 21(ivec4) Load 507 509: 112(ivec3) VectorShuffle 508 508 0 1 2 510: 112(ivec3) GroupNonUniformBitwiseAnd 35 ClusteredReduce 509 34 511: 103(ptr) AccessChain 27(data) 506 50 512: 21(ivec4) Load 511 513: 21(ivec4) VectorShuffle 512 510 4 5 6 3 Store 511 513 514: 6(int) Load 8(invocation) 515: 103(ptr) AccessChain 27(data) 60 50 516: 21(ivec4) Load 515 517: 21(ivec4) GroupNonUniformBitwiseAnd 35 ClusteredReduce 516 34 518: 103(ptr) AccessChain 27(data) 514 50 Store 518 517 519: 6(int) Load 8(invocation) 520: 66(ptr) AccessChain 27(data) 29 39 30 521: 19(int) Load 520 523: 522(bool) SLessThan 521 29 524: 522(bool) GroupNonUniformLogicalAnd 35 ClusteredReduce 523 34 525: 19(int) Select 524 39 29 526: 66(ptr) AccessChain 27(data) 519 39 30 Store 526 525 527: 6(int) Load 8(invocation) 528: 73(ptr) AccessChain 27(data) 39 39 529: 20(ivec4) Load 528 530: 72(ivec2) VectorShuffle 529 529 0 1 533: 532(bvec2) SLessThan 530 531 534: 532(bvec2) GroupNonUniformLogicalAnd 35 ClusteredReduce 533 34 536: 72(ivec2) Select 534 535 531 537: 73(ptr) AccessChain 27(data) 527 39 538: 20(ivec4) Load 537 539: 20(ivec4) VectorShuffle 538 536 4 5 2 3 Store 537 539 540: 6(int) Load 8(invocation) 541: 73(ptr) AccessChain 27(data) 39 39 542: 20(ivec4) Load 541 543: 82(ivec3) VectorShuffle 542 542 0 1 2 546: 545(bvec3) SLessThan 543 544 547: 545(bvec3) GroupNonUniformLogicalAnd 35 ClusteredReduce 546 34 549: 82(ivec3) Select 547 548 544 550: 73(ptr) AccessChain 27(data) 540 39 551: 20(ivec4) Load 550 552: 20(ivec4) VectorShuffle 551 549 4 5 6 3 Store 550 552 553: 6(int) Load 8(invocation) 554: 73(ptr) AccessChain 27(data) 39 39 555: 20(ivec4) Load 554 558: 557(bvec4) SLessThan 555 556 559: 557(bvec4) GroupNonUniformLogicalAnd 35 ClusteredReduce 558 34 561: 20(ivec4) Select 559 560 556 562: 73(ptr) AccessChain 27(data) 553 39 Store 562 561 563: 6(int) Load 8(invocation) 564: 66(ptr) AccessChain 27(data) 29 39 30 565: 19(int) Load 564 566: 19(int) GroupNonUniformBitwiseOr 35 ClusteredReduce 565 34 567: 66(ptr) AccessChain 27(data) 563 39 30 Store 567 566 568: 6(int) Load 8(invocation) 569: 73(ptr) AccessChain 27(data) 39 39 570: 20(ivec4) Load 569 571: 72(ivec2) VectorShuffle 570 570 0 1 572: 72(ivec2) GroupNonUniformBitwiseOr 35 ClusteredReduce 571 34 573: 73(ptr) AccessChain 27(data) 568 39 574: 20(ivec4) Load 573 575: 20(ivec4) VectorShuffle 574 572 4 5 2 3 Store 573 575 576: 6(int) Load 8(invocation) 577: 73(ptr) AccessChain 27(data) 50 39 578: 20(ivec4) Load 577 579: 82(ivec3) VectorShuffle 578 578 0 1 2 580: 82(ivec3) GroupNonUniformBitwiseOr 35 ClusteredReduce 579 34 581: 73(ptr) AccessChain 27(data) 576 39 582: 20(ivec4) Load 581 583: 20(ivec4) VectorShuffle 582 580 4 5 6 3 Store 581 583 584: 6(int) Load 8(invocation) 585: 73(ptr) AccessChain 27(data) 60 39 586: 20(ivec4) Load 585 587: 20(ivec4) GroupNonUniformBitwiseOr 35 ClusteredReduce 586 34 588: 73(ptr) AccessChain 27(data) 584 39 Store 588 587 589: 6(int) Load 8(invocation) 590: 96(ptr) AccessChain 27(data) 29 50 30 591: 6(int) Load 590 592: 6(int) GroupNonUniformBitwiseOr 35 ClusteredReduce 591 34 593: 96(ptr) AccessChain 27(data) 589 50 30 Store 593 592 594: 6(int) Load 8(invocation) 595: 103(ptr) AccessChain 27(data) 39 50 596: 21(ivec4) Load 595 597: 102(ivec2) VectorShuffle 596 596 0 1 598: 102(ivec2) GroupNonUniformBitwiseOr 35 ClusteredReduce 597 34 599: 103(ptr) AccessChain 27(data) 594 50 600: 21(ivec4) Load 599 601: 21(ivec4) VectorShuffle 600 598 4 5 2 3 Store 599 601 602: 6(int) Load 8(invocation) 603: 103(ptr) AccessChain 27(data) 50 50 604: 21(ivec4) Load 603 605: 112(ivec3) VectorShuffle 604 604 0 1 2 606: 112(ivec3) GroupNonUniformBitwiseOr 35 ClusteredReduce 605 34 607: 103(ptr) AccessChain 27(data) 602 50 608: 21(ivec4) Load 607 609: 21(ivec4) VectorShuffle 608 606 4 5 6 3 Store 607 609 610: 6(int) Load 8(invocation) 611: 103(ptr) AccessChain 27(data) 60 50 612: 21(ivec4) Load 611 613: 21(ivec4) GroupNonUniformBitwiseOr 35 ClusteredReduce 612 34 614: 103(ptr) AccessChain 27(data) 610 50 Store 614 613 615: 6(int) Load 8(invocation) 616: 66(ptr) AccessChain 27(data) 29 39 30 617: 19(int) Load 616 618: 522(bool) SLessThan 617 29 619: 522(bool) GroupNonUniformLogicalOr 35 ClusteredReduce 618 34 620: 19(int) Select 619 39 29 621: 66(ptr) AccessChain 27(data) 615 39 30 Store 621 620 622: 6(int) Load 8(invocation) 623: 73(ptr) AccessChain 27(data) 39 39 624: 20(ivec4) Load 623 625: 72(ivec2) VectorShuffle 624 624 0 1 626: 532(bvec2) SLessThan 625 531 627: 532(bvec2) GroupNonUniformLogicalOr 35 ClusteredReduce 626 34 628: 72(ivec2) Select 627 535 531 629: 73(ptr) AccessChain 27(data) 622 39 630: 20(ivec4) Load 629 631: 20(ivec4) VectorShuffle 630 628 4 5 2 3 Store 629 631 632: 6(int) Load 8(invocation) 633: 73(ptr) AccessChain 27(data) 39 39 634: 20(ivec4) Load 633 635: 82(ivec3) VectorShuffle 634 634 0 1 2 636: 545(bvec3) SLessThan 635 544 637: 545(bvec3) GroupNonUniformLogicalOr 35 ClusteredReduce 636 34 638: 82(ivec3) Select 637 548 544 639: 73(ptr) AccessChain 27(data) 632 39 640: 20(ivec4) Load 639 641: 20(ivec4) VectorShuffle 640 638 4 5 6 3 Store 639 641 642: 6(int) Load 8(invocation) 643: 73(ptr) AccessChain 27(data) 39 39 644: 20(ivec4) Load 643 645: 557(bvec4) SLessThan 644 556 646: 557(bvec4) GroupNonUniformLogicalOr 35 ClusteredReduce 645 34 647: 20(ivec4) Select 646 560 556 648: 73(ptr) AccessChain 27(data) 642 39 Store 648 647 649: 6(int) Load 8(invocation) 650: 66(ptr) AccessChain 27(data) 29 39 30 651: 19(int) Load 650 652: 19(int) GroupNonUniformBitwiseXor 35 ClusteredReduce 651 34 653: 66(ptr) AccessChain 27(data) 649 39 30 Store 653 652 654: 6(int) Load 8(invocation) 655: 73(ptr) AccessChain 27(data) 39 39 656: 20(ivec4) Load 655 657: 72(ivec2) VectorShuffle 656 656 0 1 658: 72(ivec2) GroupNonUniformBitwiseXor 35 ClusteredReduce 657 34 659: 73(ptr) AccessChain 27(data) 654 39 660: 20(ivec4) Load 659 661: 20(ivec4) VectorShuffle 660 658 4 5 2 3 Store 659 661 662: 6(int) Load 8(invocation) 663: 73(ptr) AccessChain 27(data) 50 39 664: 20(ivec4) Load 663 665: 82(ivec3) VectorShuffle 664 664 0 1 2 666: 82(ivec3) GroupNonUniformBitwiseXor 35 ClusteredReduce 665 34 667: 73(ptr) AccessChain 27(data) 662 39 668: 20(ivec4) Load 667 669: 20(ivec4) VectorShuffle 668 666 4 5 6 3 Store 667 669 670: 6(int) Load 8(invocation) 671: 73(ptr) AccessChain 27(data) 60 39 672: 20(ivec4) Load 671 673: 20(ivec4) GroupNonUniformBitwiseXor 35 ClusteredReduce 672 34 674: 73(ptr) AccessChain 27(data) 670 39 Store 674 673 675: 6(int) Load 8(invocation) 676: 96(ptr) AccessChain 27(data) 29 50 30 677: 6(int) Load 676 678: 6(int) GroupNonUniformBitwiseXor 35 ClusteredReduce 677 34 679: 96(ptr) AccessChain 27(data) 675 50 30 Store 679 678 680: 6(int) Load 8(invocation) 681: 103(ptr) AccessChain 27(data) 39 50 682: 21(ivec4) Load 681 683: 102(ivec2) VectorShuffle 682 682 0 1 684: 102(ivec2) GroupNonUniformBitwiseXor 35 ClusteredReduce 683 34 685: 103(ptr) AccessChain 27(data) 680 50 686: 21(ivec4) Load 685 687: 21(ivec4) VectorShuffle 686 684 4 5 2 3 Store 685 687 688: 6(int) Load 8(invocation) 689: 103(ptr) AccessChain 27(data) 50 50 690: 21(ivec4) Load 689 691: 112(ivec3) VectorShuffle 690 690 0 1 2 692: 112(ivec3) GroupNonUniformBitwiseXor 35 ClusteredReduce 691 34 693: 103(ptr) AccessChain 27(data) 688 50 694: 21(ivec4) Load 693 695: 21(ivec4) VectorShuffle 694 692 4 5 6 3 Store 693 695 696: 6(int) Load 8(invocation) 697: 103(ptr) AccessChain 27(data) 60 50 698: 21(ivec4) Load 697 699: 21(ivec4) GroupNonUniformBitwiseXor 35 ClusteredReduce 698 34 700: 103(ptr) AccessChain 27(data) 696 50 Store 700 699 701: 6(int) Load 8(invocation) 702: 66(ptr) AccessChain 27(data) 29 39 30 703: 19(int) Load 702 704: 522(bool) SLessThan 703 29 705: 522(bool) GroupNonUniformLogicalXor 35 ClusteredReduce 704 34 706: 19(int) Select 705 39 29 707: 66(ptr) AccessChain 27(data) 701 39 30 Store 707 706 708: 6(int) Load 8(invocation) 709: 73(ptr) AccessChain 27(data) 39 39 710: 20(ivec4) Load 709 711: 72(ivec2) VectorShuffle 710 710 0 1 712: 532(bvec2) SLessThan 711 531 713: 532(bvec2) GroupNonUniformLogicalXor 35 ClusteredReduce 712 34 714: 72(ivec2) Select 713 535 531 715: 73(ptr) AccessChain 27(data) 708 39 716: 20(ivec4) Load 715 717: 20(ivec4) VectorShuffle 716 714 4 5 2 3 Store 715 717 718: 6(int) Load 8(invocation) 719: 73(ptr) AccessChain 27(data) 39 39 720: 20(ivec4) Load 719 721: 82(ivec3) VectorShuffle 720 720 0 1 2 722: 545(bvec3) SLessThan 721 544 723: 545(bvec3) GroupNonUniformLogicalXor 35 ClusteredReduce 722 34 724: 82(ivec3) Select 723 548 544 725: 73(ptr) AccessChain 27(data) 718 39 726: 20(ivec4) Load 725 727: 20(ivec4) VectorShuffle 726 724 4 5 6 3 Store 725 727 728: 6(int) Load 8(invocation) 729: 73(ptr) AccessChain 27(data) 39 39 730: 20(ivec4) Load 729 731: 557(bvec4) SLessThan 730 556 732: 557(bvec4) GroupNonUniformLogicalXor 35 ClusteredReduce 731 34 733: 20(ivec4) Select 732 560 556 734: 73(ptr) AccessChain 27(data) 728 39 Store 734 733 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupClusteredNeg.comp.out000066400000000000000000000012011360464450000253570ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out000066400000000000000000007044261360464450000276150ustar00rootroot00000000000000spv.subgroupExtendedTypesArithmetic.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 3665 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 3664 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) 57: 36(int) Constant 2 58: TypeVector 17(int8_t) 3 67: 36(int) Constant 3 593: TypePointer StorageBuffer 19(int8_t) 599: TypeVector 19(int8_t) 2 600: TypePointer StorageBuffer 20(i8vec4) 609: TypeVector 19(int8_t) 3 1143: TypePointer StorageBuffer 21(int16_t) 1149: TypeVector 21(int16_t) 2 1150: TypePointer StorageBuffer 22(i16vec4) 1159: TypeVector 21(int16_t) 3 1693: TypePointer StorageBuffer 23(int16_t) 1699: TypeVector 23(int16_t) 2 1700: TypePointer StorageBuffer 24(i16vec4) 1709: TypeVector 23(int16_t) 3 2243: 36(int) Constant 4 2244: TypePointer StorageBuffer 25(int64_t) 2250: TypeVector 25(int64_t) 2 2251: TypePointer StorageBuffer 26(i64vec4) 2260: TypeVector 25(int64_t) 3 2794: 36(int) Constant 5 2795: TypePointer StorageBuffer 27(int64_t) 2801: TypeVector 27(int64_t) 2 2802: TypePointer StorageBuffer 28(i64vec4) 2811: TypeVector 27(int64_t) 3 3345: 36(int) Constant 6 3346: TypePointer StorageBuffer 29(float16_t) 3352: TypeVector 29(float16_t) 2 3353: TypePointer StorageBuffer 30(f16vec4) 3362: TypeVector 29(float16_t) 3 3661: TypeVector 6(int) 3 3662: 6(int) Constant 8 3663: 6(int) Constant 1 3664: 3661(ivec3) ConstantComposite 3662 3663 3663 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: 48(ptr) AccessChain 34(data) 45 37 54: 18(i8vec4) Load 53 55: 18(i8vec4) VectorShuffle 54 52 4 5 2 3 Store 53 55 56: 6(int) Load 8(invocation) 59: 48(ptr) AccessChain 34(data) 57 37 60: 18(i8vec4) Load 59 61: 58(i8vec3) VectorShuffle 60 60 0 1 2 62: 58(i8vec3) GroupNonUniformIAdd 42 Reduce 61 63: 48(ptr) AccessChain 34(data) 56 37 64: 18(i8vec4) Load 63 65: 18(i8vec4) VectorShuffle 64 62 4 5 6 3 Store 63 65 66: 6(int) Load 8(invocation) 68: 48(ptr) AccessChain 34(data) 67 37 69: 18(i8vec4) Load 68 70: 18(i8vec4) GroupNonUniformIAdd 42 Reduce 69 71: 48(ptr) AccessChain 34(data) 66 37 Store 71 70 72: 6(int) Load 8(invocation) 73: 39(ptr) AccessChain 34(data) 37 37 38 74: 17(int8_t) Load 73 75: 17(int8_t) GroupNonUniformIMul 42 Reduce 74 76: 39(ptr) AccessChain 34(data) 72 37 38 Store 76 75 77: 6(int) Load 8(invocation) 78: 48(ptr) AccessChain 34(data) 46 37 79: 18(i8vec4) Load 78 80: 47(i8vec2) VectorShuffle 79 79 0 1 81: 47(i8vec2) GroupNonUniformIMul 42 Reduce 80 82: 48(ptr) AccessChain 34(data) 77 37 83: 18(i8vec4) Load 82 84: 18(i8vec4) VectorShuffle 83 81 4 5 2 3 Store 82 84 85: 6(int) Load 8(invocation) 86: 48(ptr) AccessChain 34(data) 57 37 87: 18(i8vec4) Load 86 88: 58(i8vec3) VectorShuffle 87 87 0 1 2 89: 58(i8vec3) GroupNonUniformIMul 42 Reduce 88 90: 48(ptr) AccessChain 34(data) 85 37 91: 18(i8vec4) Load 90 92: 18(i8vec4) VectorShuffle 91 89 4 5 6 3 Store 90 92 93: 6(int) Load 8(invocation) 94: 48(ptr) AccessChain 34(data) 67 37 95: 18(i8vec4) Load 94 96: 18(i8vec4) GroupNonUniformIMul 42 Reduce 95 97: 48(ptr) AccessChain 34(data) 93 37 Store 97 96 98: 6(int) Load 8(invocation) 99: 39(ptr) AccessChain 34(data) 37 37 38 100: 17(int8_t) Load 99 101: 17(int8_t) GroupNonUniformSMin 42 Reduce 100 102: 39(ptr) AccessChain 34(data) 98 37 38 Store 102 101 103: 6(int) Load 8(invocation) 104: 48(ptr) AccessChain 34(data) 46 37 105: 18(i8vec4) Load 104 106: 47(i8vec2) VectorShuffle 105 105 0 1 107: 47(i8vec2) GroupNonUniformSMin 42 Reduce 106 108: 48(ptr) AccessChain 34(data) 103 37 109: 18(i8vec4) Load 108 110: 18(i8vec4) VectorShuffle 109 107 4 5 2 3 Store 108 110 111: 6(int) Load 8(invocation) 112: 48(ptr) AccessChain 34(data) 57 37 113: 18(i8vec4) Load 112 114: 58(i8vec3) VectorShuffle 113 113 0 1 2 115: 58(i8vec3) GroupNonUniformSMin 42 Reduce 114 116: 48(ptr) AccessChain 34(data) 111 37 117: 18(i8vec4) Load 116 118: 18(i8vec4) VectorShuffle 117 115 4 5 6 3 Store 116 118 119: 6(int) Load 8(invocation) 120: 48(ptr) AccessChain 34(data) 67 37 121: 18(i8vec4) Load 120 122: 18(i8vec4) GroupNonUniformSMin 42 Reduce 121 123: 48(ptr) AccessChain 34(data) 119 37 Store 123 122 124: 6(int) Load 8(invocation) 125: 39(ptr) AccessChain 34(data) 37 37 38 126: 17(int8_t) Load 125 127: 17(int8_t) GroupNonUniformSMax 42 Reduce 126 128: 39(ptr) AccessChain 34(data) 124 37 38 Store 128 127 129: 6(int) Load 8(invocation) 130: 48(ptr) AccessChain 34(data) 46 37 131: 18(i8vec4) Load 130 132: 47(i8vec2) VectorShuffle 131 131 0 1 133: 47(i8vec2) GroupNonUniformSMax 42 Reduce 132 134: 48(ptr) AccessChain 34(data) 129 37 135: 18(i8vec4) Load 134 136: 18(i8vec4) VectorShuffle 135 133 4 5 2 3 Store 134 136 137: 6(int) Load 8(invocation) 138: 48(ptr) AccessChain 34(data) 57 37 139: 18(i8vec4) Load 138 140: 58(i8vec3) VectorShuffle 139 139 0 1 2 141: 58(i8vec3) GroupNonUniformSMax 42 Reduce 140 142: 48(ptr) AccessChain 34(data) 137 37 143: 18(i8vec4) Load 142 144: 18(i8vec4) VectorShuffle 143 141 4 5 6 3 Store 142 144 145: 6(int) Load 8(invocation) 146: 48(ptr) AccessChain 34(data) 67 37 147: 18(i8vec4) Load 146 148: 18(i8vec4) GroupNonUniformSMax 42 Reduce 147 149: 48(ptr) AccessChain 34(data) 145 37 Store 149 148 150: 6(int) Load 8(invocation) 151: 39(ptr) AccessChain 34(data) 37 37 38 152: 17(int8_t) Load 151 153: 17(int8_t) GroupNonUniformBitwiseAnd 42 Reduce 152 154: 39(ptr) AccessChain 34(data) 150 37 38 Store 154 153 155: 6(int) Load 8(invocation) 156: 48(ptr) AccessChain 34(data) 46 37 157: 18(i8vec4) Load 156 158: 47(i8vec2) VectorShuffle 157 157 0 1 159: 47(i8vec2) GroupNonUniformBitwiseAnd 42 Reduce 158 160: 48(ptr) AccessChain 34(data) 155 37 161: 18(i8vec4) Load 160 162: 18(i8vec4) VectorShuffle 161 159 4 5 2 3 Store 160 162 163: 6(int) Load 8(invocation) 164: 48(ptr) AccessChain 34(data) 57 37 165: 18(i8vec4) Load 164 166: 58(i8vec3) VectorShuffle 165 165 0 1 2 167: 58(i8vec3) GroupNonUniformBitwiseAnd 42 Reduce 166 168: 48(ptr) AccessChain 34(data) 163 37 169: 18(i8vec4) Load 168 170: 18(i8vec4) VectorShuffle 169 167 4 5 6 3 Store 168 170 171: 6(int) Load 8(invocation) 172: 48(ptr) AccessChain 34(data) 67 37 173: 18(i8vec4) Load 172 174: 18(i8vec4) GroupNonUniformBitwiseAnd 42 Reduce 173 175: 48(ptr) AccessChain 34(data) 171 37 Store 175 174 176: 6(int) Load 8(invocation) 177: 39(ptr) AccessChain 34(data) 37 37 38 178: 17(int8_t) Load 177 179: 17(int8_t) GroupNonUniformBitwiseOr 42 Reduce 178 180: 39(ptr) AccessChain 34(data) 176 37 38 Store 180 179 181: 6(int) Load 8(invocation) 182: 48(ptr) AccessChain 34(data) 46 37 183: 18(i8vec4) Load 182 184: 47(i8vec2) VectorShuffle 183 183 0 1 185: 47(i8vec2) GroupNonUniformBitwiseOr 42 Reduce 184 186: 48(ptr) AccessChain 34(data) 181 37 187: 18(i8vec4) Load 186 188: 18(i8vec4) VectorShuffle 187 185 4 5 2 3 Store 186 188 189: 6(int) Load 8(invocation) 190: 48(ptr) AccessChain 34(data) 57 37 191: 18(i8vec4) Load 190 192: 58(i8vec3) VectorShuffle 191 191 0 1 2 193: 58(i8vec3) GroupNonUniformBitwiseOr 42 Reduce 192 194: 48(ptr) AccessChain 34(data) 189 37 195: 18(i8vec4) Load 194 196: 18(i8vec4) VectorShuffle 195 193 4 5 6 3 Store 194 196 197: 6(int) Load 8(invocation) 198: 48(ptr) AccessChain 34(data) 67 37 199: 18(i8vec4) Load 198 200: 18(i8vec4) GroupNonUniformBitwiseOr 42 Reduce 199 201: 48(ptr) AccessChain 34(data) 197 37 Store 201 200 202: 6(int) Load 8(invocation) 203: 39(ptr) AccessChain 34(data) 37 37 38 204: 17(int8_t) Load 203 205: 17(int8_t) GroupNonUniformBitwiseXor 42 Reduce 204 206: 39(ptr) AccessChain 34(data) 202 37 38 Store 206 205 207: 6(int) Load 8(invocation) 208: 48(ptr) AccessChain 34(data) 46 37 209: 18(i8vec4) Load 208 210: 47(i8vec2) VectorShuffle 209 209 0 1 211: 47(i8vec2) GroupNonUniformBitwiseXor 42 Reduce 210 212: 48(ptr) AccessChain 34(data) 207 37 213: 18(i8vec4) Load 212 214: 18(i8vec4) VectorShuffle 213 211 4 5 2 3 Store 212 214 215: 6(int) Load 8(invocation) 216: 48(ptr) AccessChain 34(data) 57 37 217: 18(i8vec4) Load 216 218: 58(i8vec3) VectorShuffle 217 217 0 1 2 219: 58(i8vec3) GroupNonUniformBitwiseXor 42 Reduce 218 220: 48(ptr) AccessChain 34(data) 215 37 221: 18(i8vec4) Load 220 222: 18(i8vec4) VectorShuffle 221 219 4 5 6 3 Store 220 222 223: 6(int) Load 8(invocation) 224: 48(ptr) AccessChain 34(data) 67 37 225: 18(i8vec4) Load 224 226: 18(i8vec4) GroupNonUniformBitwiseXor 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) GroupNonUniformIAdd 42 InclusiveScan 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) GroupNonUniformIAdd 42 InclusiveScan 236 238: 48(ptr) AccessChain 34(data) 233 37 239: 18(i8vec4) Load 238 240: 18(i8vec4) VectorShuffle 239 237 4 5 2 3 Store 238 240 241: 6(int) Load 8(invocation) 242: 48(ptr) AccessChain 34(data) 57 37 243: 18(i8vec4) Load 242 244: 58(i8vec3) VectorShuffle 243 243 0 1 2 245: 58(i8vec3) GroupNonUniformIAdd 42 InclusiveScan 244 246: 48(ptr) AccessChain 34(data) 241 37 247: 18(i8vec4) Load 246 248: 18(i8vec4) VectorShuffle 247 245 4 5 6 3 Store 246 248 249: 6(int) Load 8(invocation) 250: 48(ptr) AccessChain 34(data) 67 37 251: 18(i8vec4) Load 250 252: 18(i8vec4) GroupNonUniformIAdd 42 InclusiveScan 251 253: 48(ptr) AccessChain 34(data) 249 37 Store 253 252 254: 6(int) Load 8(invocation) 255: 39(ptr) AccessChain 34(data) 37 37 38 256: 17(int8_t) Load 255 257: 17(int8_t) GroupNonUniformIMul 42 InclusiveScan 256 258: 39(ptr) AccessChain 34(data) 254 37 38 Store 258 257 259: 6(int) Load 8(invocation) 260: 48(ptr) AccessChain 34(data) 46 37 261: 18(i8vec4) Load 260 262: 47(i8vec2) VectorShuffle 261 261 0 1 263: 47(i8vec2) GroupNonUniformIMul 42 InclusiveScan 262 264: 48(ptr) AccessChain 34(data) 259 37 265: 18(i8vec4) Load 264 266: 18(i8vec4) VectorShuffle 265 263 4 5 2 3 Store 264 266 267: 6(int) Load 8(invocation) 268: 48(ptr) AccessChain 34(data) 57 37 269: 18(i8vec4) Load 268 270: 58(i8vec3) VectorShuffle 269 269 0 1 2 271: 58(i8vec3) GroupNonUniformIMul 42 InclusiveScan 270 272: 48(ptr) AccessChain 34(data) 267 37 273: 18(i8vec4) Load 272 274: 18(i8vec4) VectorShuffle 273 271 4 5 6 3 Store 272 274 275: 6(int) Load 8(invocation) 276: 48(ptr) AccessChain 34(data) 67 37 277: 18(i8vec4) Load 276 278: 18(i8vec4) GroupNonUniformIMul 42 InclusiveScan 277 279: 48(ptr) AccessChain 34(data) 275 37 Store 279 278 280: 6(int) Load 8(invocation) 281: 39(ptr) AccessChain 34(data) 37 37 38 282: 17(int8_t) Load 281 283: 17(int8_t) GroupNonUniformSMin 42 InclusiveScan 282 284: 39(ptr) AccessChain 34(data) 280 37 38 Store 284 283 285: 6(int) Load 8(invocation) 286: 48(ptr) AccessChain 34(data) 46 37 287: 18(i8vec4) Load 286 288: 47(i8vec2) VectorShuffle 287 287 0 1 289: 47(i8vec2) GroupNonUniformSMin 42 InclusiveScan 288 290: 48(ptr) AccessChain 34(data) 285 37 291: 18(i8vec4) Load 290 292: 18(i8vec4) VectorShuffle 291 289 4 5 2 3 Store 290 292 293: 6(int) Load 8(invocation) 294: 48(ptr) AccessChain 34(data) 57 37 295: 18(i8vec4) Load 294 296: 58(i8vec3) VectorShuffle 295 295 0 1 2 297: 58(i8vec3) GroupNonUniformSMin 42 InclusiveScan 296 298: 48(ptr) AccessChain 34(data) 293 37 299: 18(i8vec4) Load 298 300: 18(i8vec4) VectorShuffle 299 297 4 5 6 3 Store 298 300 301: 6(int) Load 8(invocation) 302: 48(ptr) AccessChain 34(data) 67 37 303: 18(i8vec4) Load 302 304: 18(i8vec4) GroupNonUniformSMin 42 InclusiveScan 303 305: 48(ptr) AccessChain 34(data) 301 37 Store 305 304 306: 6(int) Load 8(invocation) 307: 39(ptr) AccessChain 34(data) 37 37 38 308: 17(int8_t) Load 307 309: 17(int8_t) GroupNonUniformSMax 42 InclusiveScan 308 310: 39(ptr) AccessChain 34(data) 306 37 38 Store 310 309 311: 6(int) Load 8(invocation) 312: 48(ptr) AccessChain 34(data) 46 37 313: 18(i8vec4) Load 312 314: 47(i8vec2) VectorShuffle 313 313 0 1 315: 47(i8vec2) GroupNonUniformSMax 42 InclusiveScan 314 316: 48(ptr) AccessChain 34(data) 311 37 317: 18(i8vec4) Load 316 318: 18(i8vec4) VectorShuffle 317 315 4 5 2 3 Store 316 318 319: 6(int) Load 8(invocation) 320: 48(ptr) AccessChain 34(data) 57 37 321: 18(i8vec4) Load 320 322: 58(i8vec3) VectorShuffle 321 321 0 1 2 323: 58(i8vec3) GroupNonUniformSMax 42 InclusiveScan 322 324: 48(ptr) AccessChain 34(data) 319 37 325: 18(i8vec4) Load 324 326: 18(i8vec4) VectorShuffle 325 323 4 5 6 3 Store 324 326 327: 6(int) Load 8(invocation) 328: 48(ptr) AccessChain 34(data) 67 37 329: 18(i8vec4) Load 328 330: 18(i8vec4) GroupNonUniformSMax 42 InclusiveScan 329 331: 48(ptr) AccessChain 34(data) 327 37 Store 331 330 332: 6(int) Load 8(invocation) 333: 39(ptr) AccessChain 34(data) 37 37 38 334: 17(int8_t) Load 333 335: 17(int8_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 334 336: 39(ptr) AccessChain 34(data) 332 37 38 Store 336 335 337: 6(int) Load 8(invocation) 338: 48(ptr) AccessChain 34(data) 46 37 339: 18(i8vec4) Load 338 340: 47(i8vec2) VectorShuffle 339 339 0 1 341: 47(i8vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 340 342: 48(ptr) AccessChain 34(data) 337 37 343: 18(i8vec4) Load 342 344: 18(i8vec4) VectorShuffle 343 341 4 5 2 3 Store 342 344 345: 6(int) Load 8(invocation) 346: 48(ptr) AccessChain 34(data) 57 37 347: 18(i8vec4) Load 346 348: 58(i8vec3) VectorShuffle 347 347 0 1 2 349: 58(i8vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 348 350: 48(ptr) AccessChain 34(data) 345 37 351: 18(i8vec4) Load 350 352: 18(i8vec4) VectorShuffle 351 349 4 5 6 3 Store 350 352 353: 6(int) Load 8(invocation) 354: 48(ptr) AccessChain 34(data) 67 37 355: 18(i8vec4) Load 354 356: 18(i8vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 355 357: 48(ptr) AccessChain 34(data) 353 37 Store 357 356 358: 6(int) Load 8(invocation) 359: 39(ptr) AccessChain 34(data) 37 37 38 360: 17(int8_t) Load 359 361: 17(int8_t) GroupNonUniformBitwiseOr 42 InclusiveScan 360 362: 39(ptr) AccessChain 34(data) 358 37 38 Store 362 361 363: 6(int) Load 8(invocation) 364: 48(ptr) AccessChain 34(data) 46 37 365: 18(i8vec4) Load 364 366: 47(i8vec2) VectorShuffle 365 365 0 1 367: 47(i8vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 366 368: 48(ptr) AccessChain 34(data) 363 37 369: 18(i8vec4) Load 368 370: 18(i8vec4) VectorShuffle 369 367 4 5 2 3 Store 368 370 371: 6(int) Load 8(invocation) 372: 48(ptr) AccessChain 34(data) 57 37 373: 18(i8vec4) Load 372 374: 58(i8vec3) VectorShuffle 373 373 0 1 2 375: 58(i8vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 374 376: 48(ptr) AccessChain 34(data) 371 37 377: 18(i8vec4) Load 376 378: 18(i8vec4) VectorShuffle 377 375 4 5 6 3 Store 376 378 379: 6(int) Load 8(invocation) 380: 48(ptr) AccessChain 34(data) 67 37 381: 18(i8vec4) Load 380 382: 18(i8vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 381 383: 48(ptr) AccessChain 34(data) 379 37 Store 383 382 384: 6(int) Load 8(invocation) 385: 39(ptr) AccessChain 34(data) 37 37 38 386: 17(int8_t) Load 385 387: 17(int8_t) GroupNonUniformBitwiseXor 42 InclusiveScan 386 388: 39(ptr) AccessChain 34(data) 384 37 38 Store 388 387 389: 6(int) Load 8(invocation) 390: 48(ptr) AccessChain 34(data) 46 37 391: 18(i8vec4) Load 390 392: 47(i8vec2) VectorShuffle 391 391 0 1 393: 47(i8vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 392 394: 48(ptr) AccessChain 34(data) 389 37 395: 18(i8vec4) Load 394 396: 18(i8vec4) VectorShuffle 395 393 4 5 2 3 Store 394 396 397: 6(int) Load 8(invocation) 398: 48(ptr) AccessChain 34(data) 57 37 399: 18(i8vec4) Load 398 400: 58(i8vec3) VectorShuffle 399 399 0 1 2 401: 58(i8vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 400 402: 48(ptr) AccessChain 34(data) 397 37 403: 18(i8vec4) Load 402 404: 18(i8vec4) VectorShuffle 403 401 4 5 6 3 Store 402 404 405: 6(int) Load 8(invocation) 406: 48(ptr) AccessChain 34(data) 67 37 407: 18(i8vec4) Load 406 408: 18(i8vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 407 409: 48(ptr) AccessChain 34(data) 405 37 Store 409 408 410: 6(int) Load 8(invocation) 411: 39(ptr) AccessChain 34(data) 37 37 38 412: 17(int8_t) Load 411 413: 17(int8_t) GroupNonUniformIAdd 42 ExclusiveScan 412 414: 39(ptr) AccessChain 34(data) 410 37 38 Store 414 413 415: 6(int) Load 8(invocation) 416: 48(ptr) AccessChain 34(data) 46 37 417: 18(i8vec4) Load 416 418: 47(i8vec2) VectorShuffle 417 417 0 1 419: 47(i8vec2) GroupNonUniformIAdd 42 ExclusiveScan 418 420: 48(ptr) AccessChain 34(data) 415 37 421: 18(i8vec4) Load 420 422: 18(i8vec4) VectorShuffle 421 419 4 5 2 3 Store 420 422 423: 6(int) Load 8(invocation) 424: 48(ptr) AccessChain 34(data) 57 37 425: 18(i8vec4) Load 424 426: 58(i8vec3) VectorShuffle 425 425 0 1 2 427: 58(i8vec3) GroupNonUniformIAdd 42 ExclusiveScan 426 428: 48(ptr) AccessChain 34(data) 423 37 429: 18(i8vec4) Load 428 430: 18(i8vec4) VectorShuffle 429 427 4 5 6 3 Store 428 430 431: 6(int) Load 8(invocation) 432: 48(ptr) AccessChain 34(data) 67 37 433: 18(i8vec4) Load 432 434: 18(i8vec4) GroupNonUniformIAdd 42 ExclusiveScan 433 435: 48(ptr) AccessChain 34(data) 431 37 Store 435 434 436: 6(int) Load 8(invocation) 437: 39(ptr) AccessChain 34(data) 37 37 38 438: 17(int8_t) Load 437 439: 17(int8_t) GroupNonUniformIMul 42 ExclusiveScan 438 440: 39(ptr) AccessChain 34(data) 436 37 38 Store 440 439 441: 6(int) Load 8(invocation) 442: 48(ptr) AccessChain 34(data) 46 37 443: 18(i8vec4) Load 442 444: 47(i8vec2) VectorShuffle 443 443 0 1 445: 47(i8vec2) GroupNonUniformIMul 42 ExclusiveScan 444 446: 48(ptr) AccessChain 34(data) 441 37 447: 18(i8vec4) Load 446 448: 18(i8vec4) VectorShuffle 447 445 4 5 2 3 Store 446 448 449: 6(int) Load 8(invocation) 450: 48(ptr) AccessChain 34(data) 57 37 451: 18(i8vec4) Load 450 452: 58(i8vec3) VectorShuffle 451 451 0 1 2 453: 58(i8vec3) GroupNonUniformIMul 42 ExclusiveScan 452 454: 48(ptr) AccessChain 34(data) 449 37 455: 18(i8vec4) Load 454 456: 18(i8vec4) VectorShuffle 455 453 4 5 6 3 Store 454 456 457: 6(int) Load 8(invocation) 458: 48(ptr) AccessChain 34(data) 67 37 459: 18(i8vec4) Load 458 460: 18(i8vec4) GroupNonUniformIMul 42 ExclusiveScan 459 461: 48(ptr) AccessChain 34(data) 457 37 Store 461 460 462: 6(int) Load 8(invocation) 463: 39(ptr) AccessChain 34(data) 37 37 38 464: 17(int8_t) Load 463 465: 17(int8_t) GroupNonUniformSMin 42 ExclusiveScan 464 466: 39(ptr) AccessChain 34(data) 462 37 38 Store 466 465 467: 6(int) Load 8(invocation) 468: 48(ptr) AccessChain 34(data) 46 37 469: 18(i8vec4) Load 468 470: 47(i8vec2) VectorShuffle 469 469 0 1 471: 47(i8vec2) GroupNonUniformSMin 42 ExclusiveScan 470 472: 48(ptr) AccessChain 34(data) 467 37 473: 18(i8vec4) Load 472 474: 18(i8vec4) VectorShuffle 473 471 4 5 2 3 Store 472 474 475: 6(int) Load 8(invocation) 476: 48(ptr) AccessChain 34(data) 57 37 477: 18(i8vec4) Load 476 478: 58(i8vec3) VectorShuffle 477 477 0 1 2 479: 58(i8vec3) GroupNonUniformSMin 42 ExclusiveScan 478 480: 48(ptr) AccessChain 34(data) 475 37 481: 18(i8vec4) Load 480 482: 18(i8vec4) VectorShuffle 481 479 4 5 6 3 Store 480 482 483: 6(int) Load 8(invocation) 484: 48(ptr) AccessChain 34(data) 67 37 485: 18(i8vec4) Load 484 486: 18(i8vec4) GroupNonUniformSMin 42 ExclusiveScan 485 487: 48(ptr) AccessChain 34(data) 483 37 Store 487 486 488: 6(int) Load 8(invocation) 489: 39(ptr) AccessChain 34(data) 37 37 38 490: 17(int8_t) Load 489 491: 17(int8_t) GroupNonUniformSMax 42 ExclusiveScan 490 492: 39(ptr) AccessChain 34(data) 488 37 38 Store 492 491 493: 6(int) Load 8(invocation) 494: 48(ptr) AccessChain 34(data) 46 37 495: 18(i8vec4) Load 494 496: 47(i8vec2) VectorShuffle 495 495 0 1 497: 47(i8vec2) GroupNonUniformSMax 42 ExclusiveScan 496 498: 48(ptr) AccessChain 34(data) 493 37 499: 18(i8vec4) Load 498 500: 18(i8vec4) VectorShuffle 499 497 4 5 2 3 Store 498 500 501: 6(int) Load 8(invocation) 502: 48(ptr) AccessChain 34(data) 57 37 503: 18(i8vec4) Load 502 504: 58(i8vec3) VectorShuffle 503 503 0 1 2 505: 58(i8vec3) GroupNonUniformSMax 42 ExclusiveScan 504 506: 48(ptr) AccessChain 34(data) 501 37 507: 18(i8vec4) Load 506 508: 18(i8vec4) VectorShuffle 507 505 4 5 6 3 Store 506 508 509: 6(int) Load 8(invocation) 510: 48(ptr) AccessChain 34(data) 67 37 511: 18(i8vec4) Load 510 512: 18(i8vec4) GroupNonUniformSMax 42 ExclusiveScan 511 513: 48(ptr) AccessChain 34(data) 509 37 Store 513 512 514: 6(int) Load 8(invocation) 515: 39(ptr) AccessChain 34(data) 37 37 38 516: 17(int8_t) Load 515 517: 17(int8_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 516 518: 39(ptr) AccessChain 34(data) 514 37 38 Store 518 517 519: 6(int) Load 8(invocation) 520: 48(ptr) AccessChain 34(data) 46 37 521: 18(i8vec4) Load 520 522: 47(i8vec2) VectorShuffle 521 521 0 1 523: 47(i8vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 522 524: 48(ptr) AccessChain 34(data) 519 37 525: 18(i8vec4) Load 524 526: 18(i8vec4) VectorShuffle 525 523 4 5 2 3 Store 524 526 527: 6(int) Load 8(invocation) 528: 48(ptr) AccessChain 34(data) 57 37 529: 18(i8vec4) Load 528 530: 58(i8vec3) VectorShuffle 529 529 0 1 2 531: 58(i8vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 530 532: 48(ptr) AccessChain 34(data) 527 37 533: 18(i8vec4) Load 532 534: 18(i8vec4) VectorShuffle 533 531 4 5 6 3 Store 532 534 535: 6(int) Load 8(invocation) 536: 48(ptr) AccessChain 34(data) 67 37 537: 18(i8vec4) Load 536 538: 18(i8vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 537 539: 48(ptr) AccessChain 34(data) 535 37 Store 539 538 540: 6(int) Load 8(invocation) 541: 39(ptr) AccessChain 34(data) 37 37 38 542: 17(int8_t) Load 541 543: 17(int8_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 542 544: 39(ptr) AccessChain 34(data) 540 37 38 Store 544 543 545: 6(int) Load 8(invocation) 546: 48(ptr) AccessChain 34(data) 46 37 547: 18(i8vec4) Load 546 548: 47(i8vec2) VectorShuffle 547 547 0 1 549: 47(i8vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 548 550: 48(ptr) AccessChain 34(data) 545 37 551: 18(i8vec4) Load 550 552: 18(i8vec4) VectorShuffle 551 549 4 5 2 3 Store 550 552 553: 6(int) Load 8(invocation) 554: 48(ptr) AccessChain 34(data) 57 37 555: 18(i8vec4) Load 554 556: 58(i8vec3) VectorShuffle 555 555 0 1 2 557: 58(i8vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 556 558: 48(ptr) AccessChain 34(data) 553 37 559: 18(i8vec4) Load 558 560: 18(i8vec4) VectorShuffle 559 557 4 5 6 3 Store 558 560 561: 6(int) Load 8(invocation) 562: 48(ptr) AccessChain 34(data) 67 37 563: 18(i8vec4) Load 562 564: 18(i8vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 563 565: 48(ptr) AccessChain 34(data) 561 37 Store 565 564 566: 6(int) Load 8(invocation) 567: 39(ptr) AccessChain 34(data) 37 37 38 568: 17(int8_t) Load 567 569: 17(int8_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 568 570: 39(ptr) AccessChain 34(data) 566 37 38 Store 570 569 571: 6(int) Load 8(invocation) 572: 48(ptr) AccessChain 34(data) 46 37 573: 18(i8vec4) Load 572 574: 47(i8vec2) VectorShuffle 573 573 0 1 575: 47(i8vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 574 576: 48(ptr) AccessChain 34(data) 571 37 577: 18(i8vec4) Load 576 578: 18(i8vec4) VectorShuffle 577 575 4 5 2 3 Store 576 578 579: 6(int) Load 8(invocation) 580: 48(ptr) AccessChain 34(data) 57 37 581: 18(i8vec4) Load 580 582: 58(i8vec3) VectorShuffle 581 581 0 1 2 583: 58(i8vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 582 584: 48(ptr) AccessChain 34(data) 579 37 585: 18(i8vec4) Load 584 586: 18(i8vec4) VectorShuffle 585 583 4 5 6 3 Store 584 586 587: 6(int) Load 8(invocation) 588: 48(ptr) AccessChain 34(data) 67 37 589: 18(i8vec4) Load 588 590: 18(i8vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 589 591: 48(ptr) AccessChain 34(data) 587 37 Store 591 590 592: 6(int) Load 8(invocation) 594: 593(ptr) AccessChain 34(data) 37 46 38 595: 19(int8_t) Load 594 596: 19(int8_t) GroupNonUniformIAdd 42 Reduce 595 597: 593(ptr) AccessChain 34(data) 592 46 38 Store 597 596 598: 6(int) Load 8(invocation) 601: 600(ptr) AccessChain 34(data) 46 46 602: 20(i8vec4) Load 601 603: 599(i8vec2) VectorShuffle 602 602 0 1 604: 599(i8vec2) GroupNonUniformIAdd 42 Reduce 603 605: 600(ptr) AccessChain 34(data) 598 46 606: 20(i8vec4) Load 605 607: 20(i8vec4) VectorShuffle 606 604 4 5 2 3 Store 605 607 608: 6(int) Load 8(invocation) 610: 600(ptr) AccessChain 34(data) 57 46 611: 20(i8vec4) Load 610 612: 609(i8vec3) VectorShuffle 611 611 0 1 2 613: 609(i8vec3) GroupNonUniformIAdd 42 Reduce 612 614: 600(ptr) AccessChain 34(data) 608 46 615: 20(i8vec4) Load 614 616: 20(i8vec4) VectorShuffle 615 613 4 5 6 3 Store 614 616 617: 6(int) Load 8(invocation) 618: 600(ptr) AccessChain 34(data) 67 46 619: 20(i8vec4) Load 618 620: 20(i8vec4) GroupNonUniformIAdd 42 Reduce 619 621: 600(ptr) AccessChain 34(data) 617 46 Store 621 620 622: 6(int) Load 8(invocation) 623: 593(ptr) AccessChain 34(data) 37 46 38 624: 19(int8_t) Load 623 625: 19(int8_t) GroupNonUniformIMul 42 Reduce 624 626: 593(ptr) AccessChain 34(data) 622 46 38 Store 626 625 627: 6(int) Load 8(invocation) 628: 600(ptr) AccessChain 34(data) 46 46 629: 20(i8vec4) Load 628 630: 599(i8vec2) VectorShuffle 629 629 0 1 631: 599(i8vec2) GroupNonUniformIMul 42 Reduce 630 632: 600(ptr) AccessChain 34(data) 627 46 633: 20(i8vec4) Load 632 634: 20(i8vec4) VectorShuffle 633 631 4 5 2 3 Store 632 634 635: 6(int) Load 8(invocation) 636: 600(ptr) AccessChain 34(data) 57 46 637: 20(i8vec4) Load 636 638: 609(i8vec3) VectorShuffle 637 637 0 1 2 639: 609(i8vec3) GroupNonUniformIMul 42 Reduce 638 640: 600(ptr) AccessChain 34(data) 635 46 641: 20(i8vec4) Load 640 642: 20(i8vec4) VectorShuffle 641 639 4 5 6 3 Store 640 642 643: 6(int) Load 8(invocation) 644: 600(ptr) AccessChain 34(data) 67 46 645: 20(i8vec4) Load 644 646: 20(i8vec4) GroupNonUniformIMul 42 Reduce 645 647: 600(ptr) AccessChain 34(data) 643 46 Store 647 646 648: 6(int) Load 8(invocation) 649: 593(ptr) AccessChain 34(data) 37 46 38 650: 19(int8_t) Load 649 651: 19(int8_t) GroupNonUniformUMin 42 Reduce 650 652: 593(ptr) AccessChain 34(data) 648 46 38 Store 652 651 653: 6(int) Load 8(invocation) 654: 600(ptr) AccessChain 34(data) 46 46 655: 20(i8vec4) Load 654 656: 599(i8vec2) VectorShuffle 655 655 0 1 657: 599(i8vec2) GroupNonUniformUMin 42 Reduce 656 658: 600(ptr) AccessChain 34(data) 653 46 659: 20(i8vec4) Load 658 660: 20(i8vec4) VectorShuffle 659 657 4 5 2 3 Store 658 660 661: 6(int) Load 8(invocation) 662: 600(ptr) AccessChain 34(data) 57 46 663: 20(i8vec4) Load 662 664: 609(i8vec3) VectorShuffle 663 663 0 1 2 665: 609(i8vec3) GroupNonUniformUMin 42 Reduce 664 666: 600(ptr) AccessChain 34(data) 661 46 667: 20(i8vec4) Load 666 668: 20(i8vec4) VectorShuffle 667 665 4 5 6 3 Store 666 668 669: 6(int) Load 8(invocation) 670: 600(ptr) AccessChain 34(data) 67 46 671: 20(i8vec4) Load 670 672: 20(i8vec4) GroupNonUniformUMin 42 Reduce 671 673: 600(ptr) AccessChain 34(data) 669 46 Store 673 672 674: 6(int) Load 8(invocation) 675: 593(ptr) AccessChain 34(data) 37 46 38 676: 19(int8_t) Load 675 677: 19(int8_t) GroupNonUniformUMax 42 Reduce 676 678: 593(ptr) AccessChain 34(data) 674 46 38 Store 678 677 679: 6(int) Load 8(invocation) 680: 600(ptr) AccessChain 34(data) 46 46 681: 20(i8vec4) Load 680 682: 599(i8vec2) VectorShuffle 681 681 0 1 683: 599(i8vec2) GroupNonUniformUMax 42 Reduce 682 684: 600(ptr) AccessChain 34(data) 679 46 685: 20(i8vec4) Load 684 686: 20(i8vec4) VectorShuffle 685 683 4 5 2 3 Store 684 686 687: 6(int) Load 8(invocation) 688: 600(ptr) AccessChain 34(data) 57 46 689: 20(i8vec4) Load 688 690: 609(i8vec3) VectorShuffle 689 689 0 1 2 691: 609(i8vec3) GroupNonUniformUMax 42 Reduce 690 692: 600(ptr) AccessChain 34(data) 687 46 693: 20(i8vec4) Load 692 694: 20(i8vec4) VectorShuffle 693 691 4 5 6 3 Store 692 694 695: 6(int) Load 8(invocation) 696: 600(ptr) AccessChain 34(data) 67 46 697: 20(i8vec4) Load 696 698: 20(i8vec4) GroupNonUniformUMax 42 Reduce 697 699: 600(ptr) AccessChain 34(data) 695 46 Store 699 698 700: 6(int) Load 8(invocation) 701: 593(ptr) AccessChain 34(data) 37 46 38 702: 19(int8_t) Load 701 703: 19(int8_t) GroupNonUniformBitwiseAnd 42 Reduce 702 704: 593(ptr) AccessChain 34(data) 700 46 38 Store 704 703 705: 6(int) Load 8(invocation) 706: 600(ptr) AccessChain 34(data) 46 46 707: 20(i8vec4) Load 706 708: 599(i8vec2) VectorShuffle 707 707 0 1 709: 599(i8vec2) GroupNonUniformBitwiseAnd 42 Reduce 708 710: 600(ptr) AccessChain 34(data) 705 46 711: 20(i8vec4) Load 710 712: 20(i8vec4) VectorShuffle 711 709 4 5 2 3 Store 710 712 713: 6(int) Load 8(invocation) 714: 600(ptr) AccessChain 34(data) 57 46 715: 20(i8vec4) Load 714 716: 609(i8vec3) VectorShuffle 715 715 0 1 2 717: 609(i8vec3) GroupNonUniformBitwiseAnd 42 Reduce 716 718: 600(ptr) AccessChain 34(data) 713 46 719: 20(i8vec4) Load 718 720: 20(i8vec4) VectorShuffle 719 717 4 5 6 3 Store 718 720 721: 6(int) Load 8(invocation) 722: 600(ptr) AccessChain 34(data) 67 46 723: 20(i8vec4) Load 722 724: 20(i8vec4) GroupNonUniformBitwiseAnd 42 Reduce 723 725: 600(ptr) AccessChain 34(data) 721 46 Store 725 724 726: 6(int) Load 8(invocation) 727: 593(ptr) AccessChain 34(data) 37 46 38 728: 19(int8_t) Load 727 729: 19(int8_t) GroupNonUniformBitwiseOr 42 Reduce 728 730: 593(ptr) AccessChain 34(data) 726 46 38 Store 730 729 731: 6(int) Load 8(invocation) 732: 600(ptr) AccessChain 34(data) 46 46 733: 20(i8vec4) Load 732 734: 599(i8vec2) VectorShuffle 733 733 0 1 735: 599(i8vec2) GroupNonUniformBitwiseOr 42 Reduce 734 736: 600(ptr) AccessChain 34(data) 731 46 737: 20(i8vec4) Load 736 738: 20(i8vec4) VectorShuffle 737 735 4 5 2 3 Store 736 738 739: 6(int) Load 8(invocation) 740: 600(ptr) AccessChain 34(data) 57 46 741: 20(i8vec4) Load 740 742: 609(i8vec3) VectorShuffle 741 741 0 1 2 743: 609(i8vec3) GroupNonUniformBitwiseOr 42 Reduce 742 744: 600(ptr) AccessChain 34(data) 739 46 745: 20(i8vec4) Load 744 746: 20(i8vec4) VectorShuffle 745 743 4 5 6 3 Store 744 746 747: 6(int) Load 8(invocation) 748: 600(ptr) AccessChain 34(data) 67 46 749: 20(i8vec4) Load 748 750: 20(i8vec4) GroupNonUniformBitwiseOr 42 Reduce 749 751: 600(ptr) AccessChain 34(data) 747 46 Store 751 750 752: 6(int) Load 8(invocation) 753: 593(ptr) AccessChain 34(data) 37 46 38 754: 19(int8_t) Load 753 755: 19(int8_t) GroupNonUniformBitwiseXor 42 Reduce 754 756: 593(ptr) AccessChain 34(data) 752 46 38 Store 756 755 757: 6(int) Load 8(invocation) 758: 600(ptr) AccessChain 34(data) 46 46 759: 20(i8vec4) Load 758 760: 599(i8vec2) VectorShuffle 759 759 0 1 761: 599(i8vec2) GroupNonUniformBitwiseXor 42 Reduce 760 762: 600(ptr) AccessChain 34(data) 757 46 763: 20(i8vec4) Load 762 764: 20(i8vec4) VectorShuffle 763 761 4 5 2 3 Store 762 764 765: 6(int) Load 8(invocation) 766: 600(ptr) AccessChain 34(data) 57 46 767: 20(i8vec4) Load 766 768: 609(i8vec3) VectorShuffle 767 767 0 1 2 769: 609(i8vec3) GroupNonUniformBitwiseXor 42 Reduce 768 770: 600(ptr) AccessChain 34(data) 765 46 771: 20(i8vec4) Load 770 772: 20(i8vec4) VectorShuffle 771 769 4 5 6 3 Store 770 772 773: 6(int) Load 8(invocation) 774: 600(ptr) AccessChain 34(data) 67 46 775: 20(i8vec4) Load 774 776: 20(i8vec4) GroupNonUniformBitwiseXor 42 Reduce 775 777: 600(ptr) AccessChain 34(data) 773 46 Store 777 776 778: 6(int) Load 8(invocation) 779: 593(ptr) AccessChain 34(data) 37 46 38 780: 19(int8_t) Load 779 781: 19(int8_t) GroupNonUniformIAdd 42 InclusiveScan 780 782: 593(ptr) AccessChain 34(data) 778 46 38 Store 782 781 783: 6(int) Load 8(invocation) 784: 600(ptr) AccessChain 34(data) 46 46 785: 20(i8vec4) Load 784 786: 599(i8vec2) VectorShuffle 785 785 0 1 787: 599(i8vec2) GroupNonUniformIAdd 42 InclusiveScan 786 788: 600(ptr) AccessChain 34(data) 783 46 789: 20(i8vec4) Load 788 790: 20(i8vec4) VectorShuffle 789 787 4 5 2 3 Store 788 790 791: 6(int) Load 8(invocation) 792: 600(ptr) AccessChain 34(data) 57 46 793: 20(i8vec4) Load 792 794: 609(i8vec3) VectorShuffle 793 793 0 1 2 795: 609(i8vec3) GroupNonUniformIAdd 42 InclusiveScan 794 796: 600(ptr) AccessChain 34(data) 791 46 797: 20(i8vec4) Load 796 798: 20(i8vec4) VectorShuffle 797 795 4 5 6 3 Store 796 798 799: 6(int) Load 8(invocation) 800: 600(ptr) AccessChain 34(data) 67 46 801: 20(i8vec4) Load 800 802: 20(i8vec4) GroupNonUniformIAdd 42 InclusiveScan 801 803: 600(ptr) AccessChain 34(data) 799 46 Store 803 802 804: 6(int) Load 8(invocation) 805: 593(ptr) AccessChain 34(data) 37 46 38 806: 19(int8_t) Load 805 807: 19(int8_t) GroupNonUniformIMul 42 InclusiveScan 806 808: 593(ptr) AccessChain 34(data) 804 46 38 Store 808 807 809: 6(int) Load 8(invocation) 810: 600(ptr) AccessChain 34(data) 46 46 811: 20(i8vec4) Load 810 812: 599(i8vec2) VectorShuffle 811 811 0 1 813: 599(i8vec2) GroupNonUniformIMul 42 InclusiveScan 812 814: 600(ptr) AccessChain 34(data) 809 46 815: 20(i8vec4) Load 814 816: 20(i8vec4) VectorShuffle 815 813 4 5 2 3 Store 814 816 817: 6(int) Load 8(invocation) 818: 600(ptr) AccessChain 34(data) 57 46 819: 20(i8vec4) Load 818 820: 609(i8vec3) VectorShuffle 819 819 0 1 2 821: 609(i8vec3) GroupNonUniformIMul 42 InclusiveScan 820 822: 600(ptr) AccessChain 34(data) 817 46 823: 20(i8vec4) Load 822 824: 20(i8vec4) VectorShuffle 823 821 4 5 6 3 Store 822 824 825: 6(int) Load 8(invocation) 826: 600(ptr) AccessChain 34(data) 67 46 827: 20(i8vec4) Load 826 828: 20(i8vec4) GroupNonUniformIMul 42 InclusiveScan 827 829: 600(ptr) AccessChain 34(data) 825 46 Store 829 828 830: 6(int) Load 8(invocation) 831: 593(ptr) AccessChain 34(data) 37 46 38 832: 19(int8_t) Load 831 833: 19(int8_t) GroupNonUniformUMin 42 InclusiveScan 832 834: 593(ptr) AccessChain 34(data) 830 46 38 Store 834 833 835: 6(int) Load 8(invocation) 836: 600(ptr) AccessChain 34(data) 46 46 837: 20(i8vec4) Load 836 838: 599(i8vec2) VectorShuffle 837 837 0 1 839: 599(i8vec2) GroupNonUniformUMin 42 InclusiveScan 838 840: 600(ptr) AccessChain 34(data) 835 46 841: 20(i8vec4) Load 840 842: 20(i8vec4) VectorShuffle 841 839 4 5 2 3 Store 840 842 843: 6(int) Load 8(invocation) 844: 600(ptr) AccessChain 34(data) 57 46 845: 20(i8vec4) Load 844 846: 609(i8vec3) VectorShuffle 845 845 0 1 2 847: 609(i8vec3) GroupNonUniformUMin 42 InclusiveScan 846 848: 600(ptr) AccessChain 34(data) 843 46 849: 20(i8vec4) Load 848 850: 20(i8vec4) VectorShuffle 849 847 4 5 6 3 Store 848 850 851: 6(int) Load 8(invocation) 852: 600(ptr) AccessChain 34(data) 67 46 853: 20(i8vec4) Load 852 854: 20(i8vec4) GroupNonUniformUMin 42 InclusiveScan 853 855: 600(ptr) AccessChain 34(data) 851 46 Store 855 854 856: 6(int) Load 8(invocation) 857: 593(ptr) AccessChain 34(data) 37 46 38 858: 19(int8_t) Load 857 859: 19(int8_t) GroupNonUniformUMax 42 InclusiveScan 858 860: 593(ptr) AccessChain 34(data) 856 46 38 Store 860 859 861: 6(int) Load 8(invocation) 862: 600(ptr) AccessChain 34(data) 46 46 863: 20(i8vec4) Load 862 864: 599(i8vec2) VectorShuffle 863 863 0 1 865: 599(i8vec2) GroupNonUniformUMax 42 InclusiveScan 864 866: 600(ptr) AccessChain 34(data) 861 46 867: 20(i8vec4) Load 866 868: 20(i8vec4) VectorShuffle 867 865 4 5 2 3 Store 866 868 869: 6(int) Load 8(invocation) 870: 600(ptr) AccessChain 34(data) 57 46 871: 20(i8vec4) Load 870 872: 609(i8vec3) VectorShuffle 871 871 0 1 2 873: 609(i8vec3) GroupNonUniformUMax 42 InclusiveScan 872 874: 600(ptr) AccessChain 34(data) 869 46 875: 20(i8vec4) Load 874 876: 20(i8vec4) VectorShuffle 875 873 4 5 6 3 Store 874 876 877: 6(int) Load 8(invocation) 878: 600(ptr) AccessChain 34(data) 67 46 879: 20(i8vec4) Load 878 880: 20(i8vec4) GroupNonUniformUMax 42 InclusiveScan 879 881: 600(ptr) AccessChain 34(data) 877 46 Store 881 880 882: 6(int) Load 8(invocation) 883: 593(ptr) AccessChain 34(data) 37 46 38 884: 19(int8_t) Load 883 885: 19(int8_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 884 886: 593(ptr) AccessChain 34(data) 882 46 38 Store 886 885 887: 6(int) Load 8(invocation) 888: 600(ptr) AccessChain 34(data) 46 46 889: 20(i8vec4) Load 888 890: 599(i8vec2) VectorShuffle 889 889 0 1 891: 599(i8vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 890 892: 600(ptr) AccessChain 34(data) 887 46 893: 20(i8vec4) Load 892 894: 20(i8vec4) VectorShuffle 893 891 4 5 2 3 Store 892 894 895: 6(int) Load 8(invocation) 896: 600(ptr) AccessChain 34(data) 57 46 897: 20(i8vec4) Load 896 898: 609(i8vec3) VectorShuffle 897 897 0 1 2 899: 609(i8vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 898 900: 600(ptr) AccessChain 34(data) 895 46 901: 20(i8vec4) Load 900 902: 20(i8vec4) VectorShuffle 901 899 4 5 6 3 Store 900 902 903: 6(int) Load 8(invocation) 904: 600(ptr) AccessChain 34(data) 67 46 905: 20(i8vec4) Load 904 906: 20(i8vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 905 907: 600(ptr) AccessChain 34(data) 903 46 Store 907 906 908: 6(int) Load 8(invocation) 909: 593(ptr) AccessChain 34(data) 37 46 38 910: 19(int8_t) Load 909 911: 19(int8_t) GroupNonUniformBitwiseOr 42 InclusiveScan 910 912: 593(ptr) AccessChain 34(data) 908 46 38 Store 912 911 913: 6(int) Load 8(invocation) 914: 600(ptr) AccessChain 34(data) 46 46 915: 20(i8vec4) Load 914 916: 599(i8vec2) VectorShuffle 915 915 0 1 917: 599(i8vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 916 918: 600(ptr) AccessChain 34(data) 913 46 919: 20(i8vec4) Load 918 920: 20(i8vec4) VectorShuffle 919 917 4 5 2 3 Store 918 920 921: 6(int) Load 8(invocation) 922: 600(ptr) AccessChain 34(data) 57 46 923: 20(i8vec4) Load 922 924: 609(i8vec3) VectorShuffle 923 923 0 1 2 925: 609(i8vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 924 926: 600(ptr) AccessChain 34(data) 921 46 927: 20(i8vec4) Load 926 928: 20(i8vec4) VectorShuffle 927 925 4 5 6 3 Store 926 928 929: 6(int) Load 8(invocation) 930: 600(ptr) AccessChain 34(data) 67 46 931: 20(i8vec4) Load 930 932: 20(i8vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 931 933: 600(ptr) AccessChain 34(data) 929 46 Store 933 932 934: 6(int) Load 8(invocation) 935: 593(ptr) AccessChain 34(data) 37 46 38 936: 19(int8_t) Load 935 937: 19(int8_t) GroupNonUniformBitwiseXor 42 InclusiveScan 936 938: 593(ptr) AccessChain 34(data) 934 46 38 Store 938 937 939: 6(int) Load 8(invocation) 940: 600(ptr) AccessChain 34(data) 46 46 941: 20(i8vec4) Load 940 942: 599(i8vec2) VectorShuffle 941 941 0 1 943: 599(i8vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 942 944: 600(ptr) AccessChain 34(data) 939 46 945: 20(i8vec4) Load 944 946: 20(i8vec4) VectorShuffle 945 943 4 5 2 3 Store 944 946 947: 6(int) Load 8(invocation) 948: 600(ptr) AccessChain 34(data) 57 46 949: 20(i8vec4) Load 948 950: 609(i8vec3) VectorShuffle 949 949 0 1 2 951: 609(i8vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 950 952: 600(ptr) AccessChain 34(data) 947 46 953: 20(i8vec4) Load 952 954: 20(i8vec4) VectorShuffle 953 951 4 5 6 3 Store 952 954 955: 6(int) Load 8(invocation) 956: 600(ptr) AccessChain 34(data) 67 46 957: 20(i8vec4) Load 956 958: 20(i8vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 957 959: 600(ptr) AccessChain 34(data) 955 46 Store 959 958 960: 6(int) Load 8(invocation) 961: 593(ptr) AccessChain 34(data) 37 46 38 962: 19(int8_t) Load 961 963: 19(int8_t) GroupNonUniformIAdd 42 ExclusiveScan 962 964: 593(ptr) AccessChain 34(data) 960 46 38 Store 964 963 965: 6(int) Load 8(invocation) 966: 600(ptr) AccessChain 34(data) 46 46 967: 20(i8vec4) Load 966 968: 599(i8vec2) VectorShuffle 967 967 0 1 969: 599(i8vec2) GroupNonUniformIAdd 42 ExclusiveScan 968 970: 600(ptr) AccessChain 34(data) 965 46 971: 20(i8vec4) Load 970 972: 20(i8vec4) VectorShuffle 971 969 4 5 2 3 Store 970 972 973: 6(int) Load 8(invocation) 974: 600(ptr) AccessChain 34(data) 57 46 975: 20(i8vec4) Load 974 976: 609(i8vec3) VectorShuffle 975 975 0 1 2 977: 609(i8vec3) GroupNonUniformIAdd 42 ExclusiveScan 976 978: 600(ptr) AccessChain 34(data) 973 46 979: 20(i8vec4) Load 978 980: 20(i8vec4) VectorShuffle 979 977 4 5 6 3 Store 978 980 981: 6(int) Load 8(invocation) 982: 600(ptr) AccessChain 34(data) 67 46 983: 20(i8vec4) Load 982 984: 20(i8vec4) GroupNonUniformIAdd 42 ExclusiveScan 983 985: 600(ptr) AccessChain 34(data) 981 46 Store 985 984 986: 6(int) Load 8(invocation) 987: 593(ptr) AccessChain 34(data) 37 46 38 988: 19(int8_t) Load 987 989: 19(int8_t) GroupNonUniformIMul 42 ExclusiveScan 988 990: 593(ptr) AccessChain 34(data) 986 46 38 Store 990 989 991: 6(int) Load 8(invocation) 992: 600(ptr) AccessChain 34(data) 46 46 993: 20(i8vec4) Load 992 994: 599(i8vec2) VectorShuffle 993 993 0 1 995: 599(i8vec2) GroupNonUniformIMul 42 ExclusiveScan 994 996: 600(ptr) AccessChain 34(data) 991 46 997: 20(i8vec4) Load 996 998: 20(i8vec4) VectorShuffle 997 995 4 5 2 3 Store 996 998 999: 6(int) Load 8(invocation) 1000: 600(ptr) AccessChain 34(data) 57 46 1001: 20(i8vec4) Load 1000 1002: 609(i8vec3) VectorShuffle 1001 1001 0 1 2 1003: 609(i8vec3) GroupNonUniformIMul 42 ExclusiveScan 1002 1004: 600(ptr) AccessChain 34(data) 999 46 1005: 20(i8vec4) Load 1004 1006: 20(i8vec4) VectorShuffle 1005 1003 4 5 6 3 Store 1004 1006 1007: 6(int) Load 8(invocation) 1008: 600(ptr) AccessChain 34(data) 67 46 1009: 20(i8vec4) Load 1008 1010: 20(i8vec4) GroupNonUniformIMul 42 ExclusiveScan 1009 1011: 600(ptr) AccessChain 34(data) 1007 46 Store 1011 1010 1012: 6(int) Load 8(invocation) 1013: 593(ptr) AccessChain 34(data) 37 46 38 1014: 19(int8_t) Load 1013 1015: 19(int8_t) GroupNonUniformUMin 42 ExclusiveScan 1014 1016: 593(ptr) AccessChain 34(data) 1012 46 38 Store 1016 1015 1017: 6(int) Load 8(invocation) 1018: 600(ptr) AccessChain 34(data) 46 46 1019: 20(i8vec4) Load 1018 1020: 599(i8vec2) VectorShuffle 1019 1019 0 1 1021: 599(i8vec2) GroupNonUniformUMin 42 ExclusiveScan 1020 1022: 600(ptr) AccessChain 34(data) 1017 46 1023: 20(i8vec4) Load 1022 1024: 20(i8vec4) VectorShuffle 1023 1021 4 5 2 3 Store 1022 1024 1025: 6(int) Load 8(invocation) 1026: 600(ptr) AccessChain 34(data) 57 46 1027: 20(i8vec4) Load 1026 1028: 609(i8vec3) VectorShuffle 1027 1027 0 1 2 1029: 609(i8vec3) GroupNonUniformUMin 42 ExclusiveScan 1028 1030: 600(ptr) AccessChain 34(data) 1025 46 1031: 20(i8vec4) Load 1030 1032: 20(i8vec4) VectorShuffle 1031 1029 4 5 6 3 Store 1030 1032 1033: 6(int) Load 8(invocation) 1034: 600(ptr) AccessChain 34(data) 67 46 1035: 20(i8vec4) Load 1034 1036: 20(i8vec4) GroupNonUniformUMin 42 ExclusiveScan 1035 1037: 600(ptr) AccessChain 34(data) 1033 46 Store 1037 1036 1038: 6(int) Load 8(invocation) 1039: 593(ptr) AccessChain 34(data) 37 46 38 1040: 19(int8_t) Load 1039 1041: 19(int8_t) GroupNonUniformUMax 42 ExclusiveScan 1040 1042: 593(ptr) AccessChain 34(data) 1038 46 38 Store 1042 1041 1043: 6(int) Load 8(invocation) 1044: 600(ptr) AccessChain 34(data) 46 46 1045: 20(i8vec4) Load 1044 1046: 599(i8vec2) VectorShuffle 1045 1045 0 1 1047: 599(i8vec2) GroupNonUniformUMax 42 ExclusiveScan 1046 1048: 600(ptr) AccessChain 34(data) 1043 46 1049: 20(i8vec4) Load 1048 1050: 20(i8vec4) VectorShuffle 1049 1047 4 5 2 3 Store 1048 1050 1051: 6(int) Load 8(invocation) 1052: 600(ptr) AccessChain 34(data) 57 46 1053: 20(i8vec4) Load 1052 1054: 609(i8vec3) VectorShuffle 1053 1053 0 1 2 1055: 609(i8vec3) GroupNonUniformUMax 42 ExclusiveScan 1054 1056: 600(ptr) AccessChain 34(data) 1051 46 1057: 20(i8vec4) Load 1056 1058: 20(i8vec4) VectorShuffle 1057 1055 4 5 6 3 Store 1056 1058 1059: 6(int) Load 8(invocation) 1060: 600(ptr) AccessChain 34(data) 67 46 1061: 20(i8vec4) Load 1060 1062: 20(i8vec4) GroupNonUniformUMax 42 ExclusiveScan 1061 1063: 600(ptr) AccessChain 34(data) 1059 46 Store 1063 1062 1064: 6(int) Load 8(invocation) 1065: 593(ptr) AccessChain 34(data) 37 46 38 1066: 19(int8_t) Load 1065 1067: 19(int8_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1066 1068: 593(ptr) AccessChain 34(data) 1064 46 38 Store 1068 1067 1069: 6(int) Load 8(invocation) 1070: 600(ptr) AccessChain 34(data) 46 46 1071: 20(i8vec4) Load 1070 1072: 599(i8vec2) VectorShuffle 1071 1071 0 1 1073: 599(i8vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1072 1074: 600(ptr) AccessChain 34(data) 1069 46 1075: 20(i8vec4) Load 1074 1076: 20(i8vec4) VectorShuffle 1075 1073 4 5 2 3 Store 1074 1076 1077: 6(int) Load 8(invocation) 1078: 600(ptr) AccessChain 34(data) 57 46 1079: 20(i8vec4) Load 1078 1080: 609(i8vec3) VectorShuffle 1079 1079 0 1 2 1081: 609(i8vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1080 1082: 600(ptr) AccessChain 34(data) 1077 46 1083: 20(i8vec4) Load 1082 1084: 20(i8vec4) VectorShuffle 1083 1081 4 5 6 3 Store 1082 1084 1085: 6(int) Load 8(invocation) 1086: 600(ptr) AccessChain 34(data) 67 46 1087: 20(i8vec4) Load 1086 1088: 20(i8vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1087 1089: 600(ptr) AccessChain 34(data) 1085 46 Store 1089 1088 1090: 6(int) Load 8(invocation) 1091: 593(ptr) AccessChain 34(data) 37 46 38 1092: 19(int8_t) Load 1091 1093: 19(int8_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 1092 1094: 593(ptr) AccessChain 34(data) 1090 46 38 Store 1094 1093 1095: 6(int) Load 8(invocation) 1096: 600(ptr) AccessChain 34(data) 46 46 1097: 20(i8vec4) Load 1096 1098: 599(i8vec2) VectorShuffle 1097 1097 0 1 1099: 599(i8vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 1098 1100: 600(ptr) AccessChain 34(data) 1095 46 1101: 20(i8vec4) Load 1100 1102: 20(i8vec4) VectorShuffle 1101 1099 4 5 2 3 Store 1100 1102 1103: 6(int) Load 8(invocation) 1104: 600(ptr) AccessChain 34(data) 57 46 1105: 20(i8vec4) Load 1104 1106: 609(i8vec3) VectorShuffle 1105 1105 0 1 2 1107: 609(i8vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 1106 1108: 600(ptr) AccessChain 34(data) 1103 46 1109: 20(i8vec4) Load 1108 1110: 20(i8vec4) VectorShuffle 1109 1107 4 5 6 3 Store 1108 1110 1111: 6(int) Load 8(invocation) 1112: 600(ptr) AccessChain 34(data) 67 46 1113: 20(i8vec4) Load 1112 1114: 20(i8vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 1113 1115: 600(ptr) AccessChain 34(data) 1111 46 Store 1115 1114 1116: 6(int) Load 8(invocation) 1117: 593(ptr) AccessChain 34(data) 37 46 38 1118: 19(int8_t) Load 1117 1119: 19(int8_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 1118 1120: 593(ptr) AccessChain 34(data) 1116 46 38 Store 1120 1119 1121: 6(int) Load 8(invocation) 1122: 600(ptr) AccessChain 34(data) 46 46 1123: 20(i8vec4) Load 1122 1124: 599(i8vec2) VectorShuffle 1123 1123 0 1 1125: 599(i8vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 1124 1126: 600(ptr) AccessChain 34(data) 1121 46 1127: 20(i8vec4) Load 1126 1128: 20(i8vec4) VectorShuffle 1127 1125 4 5 2 3 Store 1126 1128 1129: 6(int) Load 8(invocation) 1130: 600(ptr) AccessChain 34(data) 57 46 1131: 20(i8vec4) Load 1130 1132: 609(i8vec3) VectorShuffle 1131 1131 0 1 2 1133: 609(i8vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 1132 1134: 600(ptr) AccessChain 34(data) 1129 46 1135: 20(i8vec4) Load 1134 1136: 20(i8vec4) VectorShuffle 1135 1133 4 5 6 3 Store 1134 1136 1137: 6(int) Load 8(invocation) 1138: 600(ptr) AccessChain 34(data) 67 46 1139: 20(i8vec4) Load 1138 1140: 20(i8vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 1139 1141: 600(ptr) AccessChain 34(data) 1137 46 Store 1141 1140 1142: 6(int) Load 8(invocation) 1144: 1143(ptr) AccessChain 34(data) 37 57 38 1145: 21(int16_t) Load 1144 1146: 21(int16_t) GroupNonUniformIAdd 42 Reduce 1145 1147: 1143(ptr) AccessChain 34(data) 1142 57 38 Store 1147 1146 1148: 6(int) Load 8(invocation) 1151: 1150(ptr) AccessChain 34(data) 46 57 1152: 22(i16vec4) Load 1151 1153:1149(i16vec2) VectorShuffle 1152 1152 0 1 1154:1149(i16vec2) GroupNonUniformIAdd 42 Reduce 1153 1155: 1150(ptr) AccessChain 34(data) 1148 57 1156: 22(i16vec4) Load 1155 1157: 22(i16vec4) VectorShuffle 1156 1154 4 5 2 3 Store 1155 1157 1158: 6(int) Load 8(invocation) 1160: 1150(ptr) AccessChain 34(data) 57 57 1161: 22(i16vec4) Load 1160 1162:1159(i16vec3) VectorShuffle 1161 1161 0 1 2 1163:1159(i16vec3) GroupNonUniformIAdd 42 Reduce 1162 1164: 1150(ptr) AccessChain 34(data) 1158 57 1165: 22(i16vec4) Load 1164 1166: 22(i16vec4) VectorShuffle 1165 1163 4 5 6 3 Store 1164 1166 1167: 6(int) Load 8(invocation) 1168: 1150(ptr) AccessChain 34(data) 67 57 1169: 22(i16vec4) Load 1168 1170: 22(i16vec4) GroupNonUniformIAdd 42 Reduce 1169 1171: 1150(ptr) AccessChain 34(data) 1167 57 Store 1171 1170 1172: 6(int) Load 8(invocation) 1173: 1143(ptr) AccessChain 34(data) 37 57 38 1174: 21(int16_t) Load 1173 1175: 21(int16_t) GroupNonUniformIMul 42 Reduce 1174 1176: 1143(ptr) AccessChain 34(data) 1172 57 38 Store 1176 1175 1177: 6(int) Load 8(invocation) 1178: 1150(ptr) AccessChain 34(data) 46 57 1179: 22(i16vec4) Load 1178 1180:1149(i16vec2) VectorShuffle 1179 1179 0 1 1181:1149(i16vec2) GroupNonUniformIMul 42 Reduce 1180 1182: 1150(ptr) AccessChain 34(data) 1177 57 1183: 22(i16vec4) Load 1182 1184: 22(i16vec4) VectorShuffle 1183 1181 4 5 2 3 Store 1182 1184 1185: 6(int) Load 8(invocation) 1186: 1150(ptr) AccessChain 34(data) 57 57 1187: 22(i16vec4) Load 1186 1188:1159(i16vec3) VectorShuffle 1187 1187 0 1 2 1189:1159(i16vec3) GroupNonUniformIMul 42 Reduce 1188 1190: 1150(ptr) AccessChain 34(data) 1185 57 1191: 22(i16vec4) Load 1190 1192: 22(i16vec4) VectorShuffle 1191 1189 4 5 6 3 Store 1190 1192 1193: 6(int) Load 8(invocation) 1194: 1150(ptr) AccessChain 34(data) 67 57 1195: 22(i16vec4) Load 1194 1196: 22(i16vec4) GroupNonUniformIMul 42 Reduce 1195 1197: 1150(ptr) AccessChain 34(data) 1193 57 Store 1197 1196 1198: 6(int) Load 8(invocation) 1199: 1143(ptr) AccessChain 34(data) 37 57 38 1200: 21(int16_t) Load 1199 1201: 21(int16_t) GroupNonUniformSMin 42 Reduce 1200 1202: 1143(ptr) AccessChain 34(data) 1198 57 38 Store 1202 1201 1203: 6(int) Load 8(invocation) 1204: 1150(ptr) AccessChain 34(data) 46 57 1205: 22(i16vec4) Load 1204 1206:1149(i16vec2) VectorShuffle 1205 1205 0 1 1207:1149(i16vec2) GroupNonUniformSMin 42 Reduce 1206 1208: 1150(ptr) AccessChain 34(data) 1203 57 1209: 22(i16vec4) Load 1208 1210: 22(i16vec4) VectorShuffle 1209 1207 4 5 2 3 Store 1208 1210 1211: 6(int) Load 8(invocation) 1212: 1150(ptr) AccessChain 34(data) 57 57 1213: 22(i16vec4) Load 1212 1214:1159(i16vec3) VectorShuffle 1213 1213 0 1 2 1215:1159(i16vec3) GroupNonUniformSMin 42 Reduce 1214 1216: 1150(ptr) AccessChain 34(data) 1211 57 1217: 22(i16vec4) Load 1216 1218: 22(i16vec4) VectorShuffle 1217 1215 4 5 6 3 Store 1216 1218 1219: 6(int) Load 8(invocation) 1220: 1150(ptr) AccessChain 34(data) 67 57 1221: 22(i16vec4) Load 1220 1222: 22(i16vec4) GroupNonUniformSMin 42 Reduce 1221 1223: 1150(ptr) AccessChain 34(data) 1219 57 Store 1223 1222 1224: 6(int) Load 8(invocation) 1225: 1143(ptr) AccessChain 34(data) 37 57 38 1226: 21(int16_t) Load 1225 1227: 21(int16_t) GroupNonUniformSMax 42 Reduce 1226 1228: 1143(ptr) AccessChain 34(data) 1224 57 38 Store 1228 1227 1229: 6(int) Load 8(invocation) 1230: 1150(ptr) AccessChain 34(data) 46 57 1231: 22(i16vec4) Load 1230 1232:1149(i16vec2) VectorShuffle 1231 1231 0 1 1233:1149(i16vec2) GroupNonUniformSMax 42 Reduce 1232 1234: 1150(ptr) AccessChain 34(data) 1229 57 1235: 22(i16vec4) Load 1234 1236: 22(i16vec4) VectorShuffle 1235 1233 4 5 2 3 Store 1234 1236 1237: 6(int) Load 8(invocation) 1238: 1150(ptr) AccessChain 34(data) 57 57 1239: 22(i16vec4) Load 1238 1240:1159(i16vec3) VectorShuffle 1239 1239 0 1 2 1241:1159(i16vec3) GroupNonUniformSMax 42 Reduce 1240 1242: 1150(ptr) AccessChain 34(data) 1237 57 1243: 22(i16vec4) Load 1242 1244: 22(i16vec4) VectorShuffle 1243 1241 4 5 6 3 Store 1242 1244 1245: 6(int) Load 8(invocation) 1246: 1150(ptr) AccessChain 34(data) 67 57 1247: 22(i16vec4) Load 1246 1248: 22(i16vec4) GroupNonUniformSMax 42 Reduce 1247 1249: 1150(ptr) AccessChain 34(data) 1245 57 Store 1249 1248 1250: 6(int) Load 8(invocation) 1251: 1143(ptr) AccessChain 34(data) 37 57 38 1252: 21(int16_t) Load 1251 1253: 21(int16_t) GroupNonUniformBitwiseAnd 42 Reduce 1252 1254: 1143(ptr) AccessChain 34(data) 1250 57 38 Store 1254 1253 1255: 6(int) Load 8(invocation) 1256: 1150(ptr) AccessChain 34(data) 46 57 1257: 22(i16vec4) Load 1256 1258:1149(i16vec2) VectorShuffle 1257 1257 0 1 1259:1149(i16vec2) GroupNonUniformBitwiseAnd 42 Reduce 1258 1260: 1150(ptr) AccessChain 34(data) 1255 57 1261: 22(i16vec4) Load 1260 1262: 22(i16vec4) VectorShuffle 1261 1259 4 5 2 3 Store 1260 1262 1263: 6(int) Load 8(invocation) 1264: 1150(ptr) AccessChain 34(data) 57 57 1265: 22(i16vec4) Load 1264 1266:1159(i16vec3) VectorShuffle 1265 1265 0 1 2 1267:1159(i16vec3) GroupNonUniformBitwiseAnd 42 Reduce 1266 1268: 1150(ptr) AccessChain 34(data) 1263 57 1269: 22(i16vec4) Load 1268 1270: 22(i16vec4) VectorShuffle 1269 1267 4 5 6 3 Store 1268 1270 1271: 6(int) Load 8(invocation) 1272: 1150(ptr) AccessChain 34(data) 67 57 1273: 22(i16vec4) Load 1272 1274: 22(i16vec4) GroupNonUniformBitwiseAnd 42 Reduce 1273 1275: 1150(ptr) AccessChain 34(data) 1271 57 Store 1275 1274 1276: 6(int) Load 8(invocation) 1277: 1143(ptr) AccessChain 34(data) 37 57 38 1278: 21(int16_t) Load 1277 1279: 21(int16_t) GroupNonUniformBitwiseOr 42 Reduce 1278 1280: 1143(ptr) AccessChain 34(data) 1276 57 38 Store 1280 1279 1281: 6(int) Load 8(invocation) 1282: 1150(ptr) AccessChain 34(data) 46 57 1283: 22(i16vec4) Load 1282 1284:1149(i16vec2) VectorShuffle 1283 1283 0 1 1285:1149(i16vec2) GroupNonUniformBitwiseOr 42 Reduce 1284 1286: 1150(ptr) AccessChain 34(data) 1281 57 1287: 22(i16vec4) Load 1286 1288: 22(i16vec4) VectorShuffle 1287 1285 4 5 2 3 Store 1286 1288 1289: 6(int) Load 8(invocation) 1290: 1150(ptr) AccessChain 34(data) 57 57 1291: 22(i16vec4) Load 1290 1292:1159(i16vec3) VectorShuffle 1291 1291 0 1 2 1293:1159(i16vec3) GroupNonUniformBitwiseOr 42 Reduce 1292 1294: 1150(ptr) AccessChain 34(data) 1289 57 1295: 22(i16vec4) Load 1294 1296: 22(i16vec4) VectorShuffle 1295 1293 4 5 6 3 Store 1294 1296 1297: 6(int) Load 8(invocation) 1298: 1150(ptr) AccessChain 34(data) 67 57 1299: 22(i16vec4) Load 1298 1300: 22(i16vec4) GroupNonUniformBitwiseOr 42 Reduce 1299 1301: 1150(ptr) AccessChain 34(data) 1297 57 Store 1301 1300 1302: 6(int) Load 8(invocation) 1303: 1143(ptr) AccessChain 34(data) 37 57 38 1304: 21(int16_t) Load 1303 1305: 21(int16_t) GroupNonUniformBitwiseXor 42 Reduce 1304 1306: 1143(ptr) AccessChain 34(data) 1302 57 38 Store 1306 1305 1307: 6(int) Load 8(invocation) 1308: 1150(ptr) AccessChain 34(data) 46 57 1309: 22(i16vec4) Load 1308 1310:1149(i16vec2) VectorShuffle 1309 1309 0 1 1311:1149(i16vec2) GroupNonUniformBitwiseXor 42 Reduce 1310 1312: 1150(ptr) AccessChain 34(data) 1307 57 1313: 22(i16vec4) Load 1312 1314: 22(i16vec4) VectorShuffle 1313 1311 4 5 2 3 Store 1312 1314 1315: 6(int) Load 8(invocation) 1316: 1150(ptr) AccessChain 34(data) 57 57 1317: 22(i16vec4) Load 1316 1318:1159(i16vec3) VectorShuffle 1317 1317 0 1 2 1319:1159(i16vec3) GroupNonUniformBitwiseXor 42 Reduce 1318 1320: 1150(ptr) AccessChain 34(data) 1315 57 1321: 22(i16vec4) Load 1320 1322: 22(i16vec4) VectorShuffle 1321 1319 4 5 6 3 Store 1320 1322 1323: 6(int) Load 8(invocation) 1324: 1150(ptr) AccessChain 34(data) 67 57 1325: 22(i16vec4) Load 1324 1326: 22(i16vec4) GroupNonUniformBitwiseXor 42 Reduce 1325 1327: 1150(ptr) AccessChain 34(data) 1323 57 Store 1327 1326 1328: 6(int) Load 8(invocation) 1329: 1143(ptr) AccessChain 34(data) 37 57 38 1330: 21(int16_t) Load 1329 1331: 21(int16_t) GroupNonUniformIAdd 42 InclusiveScan 1330 1332: 1143(ptr) AccessChain 34(data) 1328 57 38 Store 1332 1331 1333: 6(int) Load 8(invocation) 1334: 1150(ptr) AccessChain 34(data) 46 57 1335: 22(i16vec4) Load 1334 1336:1149(i16vec2) VectorShuffle 1335 1335 0 1 1337:1149(i16vec2) GroupNonUniformIAdd 42 InclusiveScan 1336 1338: 1150(ptr) AccessChain 34(data) 1333 57 1339: 22(i16vec4) Load 1338 1340: 22(i16vec4) VectorShuffle 1339 1337 4 5 2 3 Store 1338 1340 1341: 6(int) Load 8(invocation) 1342: 1150(ptr) AccessChain 34(data) 57 57 1343: 22(i16vec4) Load 1342 1344:1159(i16vec3) VectorShuffle 1343 1343 0 1 2 1345:1159(i16vec3) GroupNonUniformIAdd 42 InclusiveScan 1344 1346: 1150(ptr) AccessChain 34(data) 1341 57 1347: 22(i16vec4) Load 1346 1348: 22(i16vec4) VectorShuffle 1347 1345 4 5 6 3 Store 1346 1348 1349: 6(int) Load 8(invocation) 1350: 1150(ptr) AccessChain 34(data) 67 57 1351: 22(i16vec4) Load 1350 1352: 22(i16vec4) GroupNonUniformIAdd 42 InclusiveScan 1351 1353: 1150(ptr) AccessChain 34(data) 1349 57 Store 1353 1352 1354: 6(int) Load 8(invocation) 1355: 1143(ptr) AccessChain 34(data) 37 57 38 1356: 21(int16_t) Load 1355 1357: 21(int16_t) GroupNonUniformIMul 42 InclusiveScan 1356 1358: 1143(ptr) AccessChain 34(data) 1354 57 38 Store 1358 1357 1359: 6(int) Load 8(invocation) 1360: 1150(ptr) AccessChain 34(data) 46 57 1361: 22(i16vec4) Load 1360 1362:1149(i16vec2) VectorShuffle 1361 1361 0 1 1363:1149(i16vec2) GroupNonUniformIMul 42 InclusiveScan 1362 1364: 1150(ptr) AccessChain 34(data) 1359 57 1365: 22(i16vec4) Load 1364 1366: 22(i16vec4) VectorShuffle 1365 1363 4 5 2 3 Store 1364 1366 1367: 6(int) Load 8(invocation) 1368: 1150(ptr) AccessChain 34(data) 57 57 1369: 22(i16vec4) Load 1368 1370:1159(i16vec3) VectorShuffle 1369 1369 0 1 2 1371:1159(i16vec3) GroupNonUniformIMul 42 InclusiveScan 1370 1372: 1150(ptr) AccessChain 34(data) 1367 57 1373: 22(i16vec4) Load 1372 1374: 22(i16vec4) VectorShuffle 1373 1371 4 5 6 3 Store 1372 1374 1375: 6(int) Load 8(invocation) 1376: 1150(ptr) AccessChain 34(data) 67 57 1377: 22(i16vec4) Load 1376 1378: 22(i16vec4) GroupNonUniformIMul 42 InclusiveScan 1377 1379: 1150(ptr) AccessChain 34(data) 1375 57 Store 1379 1378 1380: 6(int) Load 8(invocation) 1381: 1143(ptr) AccessChain 34(data) 37 57 38 1382: 21(int16_t) Load 1381 1383: 21(int16_t) GroupNonUniformSMin 42 InclusiveScan 1382 1384: 1143(ptr) AccessChain 34(data) 1380 57 38 Store 1384 1383 1385: 6(int) Load 8(invocation) 1386: 1150(ptr) AccessChain 34(data) 46 57 1387: 22(i16vec4) Load 1386 1388:1149(i16vec2) VectorShuffle 1387 1387 0 1 1389:1149(i16vec2) GroupNonUniformSMin 42 InclusiveScan 1388 1390: 1150(ptr) AccessChain 34(data) 1385 57 1391: 22(i16vec4) Load 1390 1392: 22(i16vec4) VectorShuffle 1391 1389 4 5 2 3 Store 1390 1392 1393: 6(int) Load 8(invocation) 1394: 1150(ptr) AccessChain 34(data) 57 57 1395: 22(i16vec4) Load 1394 1396:1159(i16vec3) VectorShuffle 1395 1395 0 1 2 1397:1159(i16vec3) GroupNonUniformSMin 42 InclusiveScan 1396 1398: 1150(ptr) AccessChain 34(data) 1393 57 1399: 22(i16vec4) Load 1398 1400: 22(i16vec4) VectorShuffle 1399 1397 4 5 6 3 Store 1398 1400 1401: 6(int) Load 8(invocation) 1402: 1150(ptr) AccessChain 34(data) 67 57 1403: 22(i16vec4) Load 1402 1404: 22(i16vec4) GroupNonUniformSMin 42 InclusiveScan 1403 1405: 1150(ptr) AccessChain 34(data) 1401 57 Store 1405 1404 1406: 6(int) Load 8(invocation) 1407: 1143(ptr) AccessChain 34(data) 37 57 38 1408: 21(int16_t) Load 1407 1409: 21(int16_t) GroupNonUniformSMax 42 InclusiveScan 1408 1410: 1143(ptr) AccessChain 34(data) 1406 57 38 Store 1410 1409 1411: 6(int) Load 8(invocation) 1412: 1150(ptr) AccessChain 34(data) 46 57 1413: 22(i16vec4) Load 1412 1414:1149(i16vec2) VectorShuffle 1413 1413 0 1 1415:1149(i16vec2) GroupNonUniformSMax 42 InclusiveScan 1414 1416: 1150(ptr) AccessChain 34(data) 1411 57 1417: 22(i16vec4) Load 1416 1418: 22(i16vec4) VectorShuffle 1417 1415 4 5 2 3 Store 1416 1418 1419: 6(int) Load 8(invocation) 1420: 1150(ptr) AccessChain 34(data) 57 57 1421: 22(i16vec4) Load 1420 1422:1159(i16vec3) VectorShuffle 1421 1421 0 1 2 1423:1159(i16vec3) GroupNonUniformSMax 42 InclusiveScan 1422 1424: 1150(ptr) AccessChain 34(data) 1419 57 1425: 22(i16vec4) Load 1424 1426: 22(i16vec4) VectorShuffle 1425 1423 4 5 6 3 Store 1424 1426 1427: 6(int) Load 8(invocation) 1428: 1150(ptr) AccessChain 34(data) 67 57 1429: 22(i16vec4) Load 1428 1430: 22(i16vec4) GroupNonUniformSMax 42 InclusiveScan 1429 1431: 1150(ptr) AccessChain 34(data) 1427 57 Store 1431 1430 1432: 6(int) Load 8(invocation) 1433: 1143(ptr) AccessChain 34(data) 37 57 38 1434: 21(int16_t) Load 1433 1435: 21(int16_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 1434 1436: 1143(ptr) AccessChain 34(data) 1432 57 38 Store 1436 1435 1437: 6(int) Load 8(invocation) 1438: 1150(ptr) AccessChain 34(data) 46 57 1439: 22(i16vec4) Load 1438 1440:1149(i16vec2) VectorShuffle 1439 1439 0 1 1441:1149(i16vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 1440 1442: 1150(ptr) AccessChain 34(data) 1437 57 1443: 22(i16vec4) Load 1442 1444: 22(i16vec4) VectorShuffle 1443 1441 4 5 2 3 Store 1442 1444 1445: 6(int) Load 8(invocation) 1446: 1150(ptr) AccessChain 34(data) 57 57 1447: 22(i16vec4) Load 1446 1448:1159(i16vec3) VectorShuffle 1447 1447 0 1 2 1449:1159(i16vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 1448 1450: 1150(ptr) AccessChain 34(data) 1445 57 1451: 22(i16vec4) Load 1450 1452: 22(i16vec4) VectorShuffle 1451 1449 4 5 6 3 Store 1450 1452 1453: 6(int) Load 8(invocation) 1454: 1150(ptr) AccessChain 34(data) 67 57 1455: 22(i16vec4) Load 1454 1456: 22(i16vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 1455 1457: 1150(ptr) AccessChain 34(data) 1453 57 Store 1457 1456 1458: 6(int) Load 8(invocation) 1459: 1143(ptr) AccessChain 34(data) 37 57 38 1460: 21(int16_t) Load 1459 1461: 21(int16_t) GroupNonUniformBitwiseOr 42 InclusiveScan 1460 1462: 1143(ptr) AccessChain 34(data) 1458 57 38 Store 1462 1461 1463: 6(int) Load 8(invocation) 1464: 1150(ptr) AccessChain 34(data) 46 57 1465: 22(i16vec4) Load 1464 1466:1149(i16vec2) VectorShuffle 1465 1465 0 1 1467:1149(i16vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 1466 1468: 1150(ptr) AccessChain 34(data) 1463 57 1469: 22(i16vec4) Load 1468 1470: 22(i16vec4) VectorShuffle 1469 1467 4 5 2 3 Store 1468 1470 1471: 6(int) Load 8(invocation) 1472: 1150(ptr) AccessChain 34(data) 57 57 1473: 22(i16vec4) Load 1472 1474:1159(i16vec3) VectorShuffle 1473 1473 0 1 2 1475:1159(i16vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 1474 1476: 1150(ptr) AccessChain 34(data) 1471 57 1477: 22(i16vec4) Load 1476 1478: 22(i16vec4) VectorShuffle 1477 1475 4 5 6 3 Store 1476 1478 1479: 6(int) Load 8(invocation) 1480: 1150(ptr) AccessChain 34(data) 67 57 1481: 22(i16vec4) Load 1480 1482: 22(i16vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 1481 1483: 1150(ptr) AccessChain 34(data) 1479 57 Store 1483 1482 1484: 6(int) Load 8(invocation) 1485: 1143(ptr) AccessChain 34(data) 37 57 38 1486: 21(int16_t) Load 1485 1487: 21(int16_t) GroupNonUniformBitwiseXor 42 InclusiveScan 1486 1488: 1143(ptr) AccessChain 34(data) 1484 57 38 Store 1488 1487 1489: 6(int) Load 8(invocation) 1490: 1150(ptr) AccessChain 34(data) 46 57 1491: 22(i16vec4) Load 1490 1492:1149(i16vec2) VectorShuffle 1491 1491 0 1 1493:1149(i16vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 1492 1494: 1150(ptr) AccessChain 34(data) 1489 57 1495: 22(i16vec4) Load 1494 1496: 22(i16vec4) VectorShuffle 1495 1493 4 5 2 3 Store 1494 1496 1497: 6(int) Load 8(invocation) 1498: 1150(ptr) AccessChain 34(data) 57 57 1499: 22(i16vec4) Load 1498 1500:1159(i16vec3) VectorShuffle 1499 1499 0 1 2 1501:1159(i16vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 1500 1502: 1150(ptr) AccessChain 34(data) 1497 57 1503: 22(i16vec4) Load 1502 1504: 22(i16vec4) VectorShuffle 1503 1501 4 5 6 3 Store 1502 1504 1505: 6(int) Load 8(invocation) 1506: 1150(ptr) AccessChain 34(data) 67 57 1507: 22(i16vec4) Load 1506 1508: 22(i16vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 1507 1509: 1150(ptr) AccessChain 34(data) 1505 57 Store 1509 1508 1510: 6(int) Load 8(invocation) 1511: 1143(ptr) AccessChain 34(data) 37 57 38 1512: 21(int16_t) Load 1511 1513: 21(int16_t) GroupNonUniformIAdd 42 ExclusiveScan 1512 1514: 1143(ptr) AccessChain 34(data) 1510 57 38 Store 1514 1513 1515: 6(int) Load 8(invocation) 1516: 1150(ptr) AccessChain 34(data) 46 57 1517: 22(i16vec4) Load 1516 1518:1149(i16vec2) VectorShuffle 1517 1517 0 1 1519:1149(i16vec2) GroupNonUniformIAdd 42 ExclusiveScan 1518 1520: 1150(ptr) AccessChain 34(data) 1515 57 1521: 22(i16vec4) Load 1520 1522: 22(i16vec4) VectorShuffle 1521 1519 4 5 2 3 Store 1520 1522 1523: 6(int) Load 8(invocation) 1524: 1150(ptr) AccessChain 34(data) 57 57 1525: 22(i16vec4) Load 1524 1526:1159(i16vec3) VectorShuffle 1525 1525 0 1 2 1527:1159(i16vec3) GroupNonUniformIAdd 42 ExclusiveScan 1526 1528: 1150(ptr) AccessChain 34(data) 1523 57 1529: 22(i16vec4) Load 1528 1530: 22(i16vec4) VectorShuffle 1529 1527 4 5 6 3 Store 1528 1530 1531: 6(int) Load 8(invocation) 1532: 1150(ptr) AccessChain 34(data) 67 57 1533: 22(i16vec4) Load 1532 1534: 22(i16vec4) GroupNonUniformIAdd 42 ExclusiveScan 1533 1535: 1150(ptr) AccessChain 34(data) 1531 57 Store 1535 1534 1536: 6(int) Load 8(invocation) 1537: 1143(ptr) AccessChain 34(data) 37 57 38 1538: 21(int16_t) Load 1537 1539: 21(int16_t) GroupNonUniformIMul 42 ExclusiveScan 1538 1540: 1143(ptr) AccessChain 34(data) 1536 57 38 Store 1540 1539 1541: 6(int) Load 8(invocation) 1542: 1150(ptr) AccessChain 34(data) 46 57 1543: 22(i16vec4) Load 1542 1544:1149(i16vec2) VectorShuffle 1543 1543 0 1 1545:1149(i16vec2) GroupNonUniformIMul 42 ExclusiveScan 1544 1546: 1150(ptr) AccessChain 34(data) 1541 57 1547: 22(i16vec4) Load 1546 1548: 22(i16vec4) VectorShuffle 1547 1545 4 5 2 3 Store 1546 1548 1549: 6(int) Load 8(invocation) 1550: 1150(ptr) AccessChain 34(data) 57 57 1551: 22(i16vec4) Load 1550 1552:1159(i16vec3) VectorShuffle 1551 1551 0 1 2 1553:1159(i16vec3) GroupNonUniformIMul 42 ExclusiveScan 1552 1554: 1150(ptr) AccessChain 34(data) 1549 57 1555: 22(i16vec4) Load 1554 1556: 22(i16vec4) VectorShuffle 1555 1553 4 5 6 3 Store 1554 1556 1557: 6(int) Load 8(invocation) 1558: 1150(ptr) AccessChain 34(data) 67 57 1559: 22(i16vec4) Load 1558 1560: 22(i16vec4) GroupNonUniformIMul 42 ExclusiveScan 1559 1561: 1150(ptr) AccessChain 34(data) 1557 57 Store 1561 1560 1562: 6(int) Load 8(invocation) 1563: 1143(ptr) AccessChain 34(data) 37 57 38 1564: 21(int16_t) Load 1563 1565: 21(int16_t) GroupNonUniformSMin 42 ExclusiveScan 1564 1566: 1143(ptr) AccessChain 34(data) 1562 57 38 Store 1566 1565 1567: 6(int) Load 8(invocation) 1568: 1150(ptr) AccessChain 34(data) 46 57 1569: 22(i16vec4) Load 1568 1570:1149(i16vec2) VectorShuffle 1569 1569 0 1 1571:1149(i16vec2) GroupNonUniformSMin 42 ExclusiveScan 1570 1572: 1150(ptr) AccessChain 34(data) 1567 57 1573: 22(i16vec4) Load 1572 1574: 22(i16vec4) VectorShuffle 1573 1571 4 5 2 3 Store 1572 1574 1575: 6(int) Load 8(invocation) 1576: 1150(ptr) AccessChain 34(data) 57 57 1577: 22(i16vec4) Load 1576 1578:1159(i16vec3) VectorShuffle 1577 1577 0 1 2 1579:1159(i16vec3) GroupNonUniformSMin 42 ExclusiveScan 1578 1580: 1150(ptr) AccessChain 34(data) 1575 57 1581: 22(i16vec4) Load 1580 1582: 22(i16vec4) VectorShuffle 1581 1579 4 5 6 3 Store 1580 1582 1583: 6(int) Load 8(invocation) 1584: 1150(ptr) AccessChain 34(data) 67 57 1585: 22(i16vec4) Load 1584 1586: 22(i16vec4) GroupNonUniformSMin 42 ExclusiveScan 1585 1587: 1150(ptr) AccessChain 34(data) 1583 57 Store 1587 1586 1588: 6(int) Load 8(invocation) 1589: 1143(ptr) AccessChain 34(data) 37 57 38 1590: 21(int16_t) Load 1589 1591: 21(int16_t) GroupNonUniformSMax 42 ExclusiveScan 1590 1592: 1143(ptr) AccessChain 34(data) 1588 57 38 Store 1592 1591 1593: 6(int) Load 8(invocation) 1594: 1150(ptr) AccessChain 34(data) 46 57 1595: 22(i16vec4) Load 1594 1596:1149(i16vec2) VectorShuffle 1595 1595 0 1 1597:1149(i16vec2) GroupNonUniformSMax 42 ExclusiveScan 1596 1598: 1150(ptr) AccessChain 34(data) 1593 57 1599: 22(i16vec4) Load 1598 1600: 22(i16vec4) VectorShuffle 1599 1597 4 5 2 3 Store 1598 1600 1601: 6(int) Load 8(invocation) 1602: 1150(ptr) AccessChain 34(data) 57 57 1603: 22(i16vec4) Load 1602 1604:1159(i16vec3) VectorShuffle 1603 1603 0 1 2 1605:1159(i16vec3) GroupNonUniformSMax 42 ExclusiveScan 1604 1606: 1150(ptr) AccessChain 34(data) 1601 57 1607: 22(i16vec4) Load 1606 1608: 22(i16vec4) VectorShuffle 1607 1605 4 5 6 3 Store 1606 1608 1609: 6(int) Load 8(invocation) 1610: 1150(ptr) AccessChain 34(data) 67 57 1611: 22(i16vec4) Load 1610 1612: 22(i16vec4) GroupNonUniformSMax 42 ExclusiveScan 1611 1613: 1150(ptr) AccessChain 34(data) 1609 57 Store 1613 1612 1614: 6(int) Load 8(invocation) 1615: 1143(ptr) AccessChain 34(data) 37 57 38 1616: 21(int16_t) Load 1615 1617: 21(int16_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1616 1618: 1143(ptr) AccessChain 34(data) 1614 57 38 Store 1618 1617 1619: 6(int) Load 8(invocation) 1620: 1150(ptr) AccessChain 34(data) 46 57 1621: 22(i16vec4) Load 1620 1622:1149(i16vec2) VectorShuffle 1621 1621 0 1 1623:1149(i16vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1622 1624: 1150(ptr) AccessChain 34(data) 1619 57 1625: 22(i16vec4) Load 1624 1626: 22(i16vec4) VectorShuffle 1625 1623 4 5 2 3 Store 1624 1626 1627: 6(int) Load 8(invocation) 1628: 1150(ptr) AccessChain 34(data) 57 57 1629: 22(i16vec4) Load 1628 1630:1159(i16vec3) VectorShuffle 1629 1629 0 1 2 1631:1159(i16vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1630 1632: 1150(ptr) AccessChain 34(data) 1627 57 1633: 22(i16vec4) Load 1632 1634: 22(i16vec4) VectorShuffle 1633 1631 4 5 6 3 Store 1632 1634 1635: 6(int) Load 8(invocation) 1636: 1150(ptr) AccessChain 34(data) 67 57 1637: 22(i16vec4) Load 1636 1638: 22(i16vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1637 1639: 1150(ptr) AccessChain 34(data) 1635 57 Store 1639 1638 1640: 6(int) Load 8(invocation) 1641: 1143(ptr) AccessChain 34(data) 37 57 38 1642: 21(int16_t) Load 1641 1643: 21(int16_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 1642 1644: 1143(ptr) AccessChain 34(data) 1640 57 38 Store 1644 1643 1645: 6(int) Load 8(invocation) 1646: 1150(ptr) AccessChain 34(data) 46 57 1647: 22(i16vec4) Load 1646 1648:1149(i16vec2) VectorShuffle 1647 1647 0 1 1649:1149(i16vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 1648 1650: 1150(ptr) AccessChain 34(data) 1645 57 1651: 22(i16vec4) Load 1650 1652: 22(i16vec4) VectorShuffle 1651 1649 4 5 2 3 Store 1650 1652 1653: 6(int) Load 8(invocation) 1654: 1150(ptr) AccessChain 34(data) 57 57 1655: 22(i16vec4) Load 1654 1656:1159(i16vec3) VectorShuffle 1655 1655 0 1 2 1657:1159(i16vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 1656 1658: 1150(ptr) AccessChain 34(data) 1653 57 1659: 22(i16vec4) Load 1658 1660: 22(i16vec4) VectorShuffle 1659 1657 4 5 6 3 Store 1658 1660 1661: 6(int) Load 8(invocation) 1662: 1150(ptr) AccessChain 34(data) 67 57 1663: 22(i16vec4) Load 1662 1664: 22(i16vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 1663 1665: 1150(ptr) AccessChain 34(data) 1661 57 Store 1665 1664 1666: 6(int) Load 8(invocation) 1667: 1143(ptr) AccessChain 34(data) 37 57 38 1668: 21(int16_t) Load 1667 1669: 21(int16_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 1668 1670: 1143(ptr) AccessChain 34(data) 1666 57 38 Store 1670 1669 1671: 6(int) Load 8(invocation) 1672: 1150(ptr) AccessChain 34(data) 46 57 1673: 22(i16vec4) Load 1672 1674:1149(i16vec2) VectorShuffle 1673 1673 0 1 1675:1149(i16vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 1674 1676: 1150(ptr) AccessChain 34(data) 1671 57 1677: 22(i16vec4) Load 1676 1678: 22(i16vec4) VectorShuffle 1677 1675 4 5 2 3 Store 1676 1678 1679: 6(int) Load 8(invocation) 1680: 1150(ptr) AccessChain 34(data) 57 57 1681: 22(i16vec4) Load 1680 1682:1159(i16vec3) VectorShuffle 1681 1681 0 1 2 1683:1159(i16vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 1682 1684: 1150(ptr) AccessChain 34(data) 1679 57 1685: 22(i16vec4) Load 1684 1686: 22(i16vec4) VectorShuffle 1685 1683 4 5 6 3 Store 1684 1686 1687: 6(int) Load 8(invocation) 1688: 1150(ptr) AccessChain 34(data) 67 57 1689: 22(i16vec4) Load 1688 1690: 22(i16vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 1689 1691: 1150(ptr) AccessChain 34(data) 1687 57 Store 1691 1690 1692: 6(int) Load 8(invocation) 1694: 1693(ptr) AccessChain 34(data) 37 67 38 1695: 23(int16_t) Load 1694 1696: 23(int16_t) GroupNonUniformIAdd 42 Reduce 1695 1697: 1693(ptr) AccessChain 34(data) 1692 67 38 Store 1697 1696 1698: 6(int) Load 8(invocation) 1701: 1700(ptr) AccessChain 34(data) 46 67 1702: 24(i16vec4) Load 1701 1703:1699(i16vec2) VectorShuffle 1702 1702 0 1 1704:1699(i16vec2) GroupNonUniformIAdd 42 Reduce 1703 1705: 1700(ptr) AccessChain 34(data) 1698 67 1706: 24(i16vec4) Load 1705 1707: 24(i16vec4) VectorShuffle 1706 1704 4 5 2 3 Store 1705 1707 1708: 6(int) Load 8(invocation) 1710: 1700(ptr) AccessChain 34(data) 57 67 1711: 24(i16vec4) Load 1710 1712:1709(i16vec3) VectorShuffle 1711 1711 0 1 2 1713:1709(i16vec3) GroupNonUniformIAdd 42 Reduce 1712 1714: 1700(ptr) AccessChain 34(data) 1708 67 1715: 24(i16vec4) Load 1714 1716: 24(i16vec4) VectorShuffle 1715 1713 4 5 6 3 Store 1714 1716 1717: 6(int) Load 8(invocation) 1718: 1700(ptr) AccessChain 34(data) 67 67 1719: 24(i16vec4) Load 1718 1720: 24(i16vec4) GroupNonUniformIAdd 42 Reduce 1719 1721: 1700(ptr) AccessChain 34(data) 1717 67 Store 1721 1720 1722: 6(int) Load 8(invocation) 1723: 1693(ptr) AccessChain 34(data) 37 67 38 1724: 23(int16_t) Load 1723 1725: 23(int16_t) GroupNonUniformIMul 42 Reduce 1724 1726: 1693(ptr) AccessChain 34(data) 1722 67 38 Store 1726 1725 1727: 6(int) Load 8(invocation) 1728: 1700(ptr) AccessChain 34(data) 46 67 1729: 24(i16vec4) Load 1728 1730:1699(i16vec2) VectorShuffle 1729 1729 0 1 1731:1699(i16vec2) GroupNonUniformIMul 42 Reduce 1730 1732: 1700(ptr) AccessChain 34(data) 1727 67 1733: 24(i16vec4) Load 1732 1734: 24(i16vec4) VectorShuffle 1733 1731 4 5 2 3 Store 1732 1734 1735: 6(int) Load 8(invocation) 1736: 1700(ptr) AccessChain 34(data) 57 67 1737: 24(i16vec4) Load 1736 1738:1709(i16vec3) VectorShuffle 1737 1737 0 1 2 1739:1709(i16vec3) GroupNonUniformIMul 42 Reduce 1738 1740: 1700(ptr) AccessChain 34(data) 1735 67 1741: 24(i16vec4) Load 1740 1742: 24(i16vec4) VectorShuffle 1741 1739 4 5 6 3 Store 1740 1742 1743: 6(int) Load 8(invocation) 1744: 1700(ptr) AccessChain 34(data) 67 67 1745: 24(i16vec4) Load 1744 1746: 24(i16vec4) GroupNonUniformIMul 42 Reduce 1745 1747: 1700(ptr) AccessChain 34(data) 1743 67 Store 1747 1746 1748: 6(int) Load 8(invocation) 1749: 1693(ptr) AccessChain 34(data) 37 67 38 1750: 23(int16_t) Load 1749 1751: 23(int16_t) GroupNonUniformUMin 42 Reduce 1750 1752: 1693(ptr) AccessChain 34(data) 1748 67 38 Store 1752 1751 1753: 6(int) Load 8(invocation) 1754: 1700(ptr) AccessChain 34(data) 46 67 1755: 24(i16vec4) Load 1754 1756:1699(i16vec2) VectorShuffle 1755 1755 0 1 1757:1699(i16vec2) GroupNonUniformUMin 42 Reduce 1756 1758: 1700(ptr) AccessChain 34(data) 1753 67 1759: 24(i16vec4) Load 1758 1760: 24(i16vec4) VectorShuffle 1759 1757 4 5 2 3 Store 1758 1760 1761: 6(int) Load 8(invocation) 1762: 1700(ptr) AccessChain 34(data) 57 67 1763: 24(i16vec4) Load 1762 1764:1709(i16vec3) VectorShuffle 1763 1763 0 1 2 1765:1709(i16vec3) GroupNonUniformUMin 42 Reduce 1764 1766: 1700(ptr) AccessChain 34(data) 1761 67 1767: 24(i16vec4) Load 1766 1768: 24(i16vec4) VectorShuffle 1767 1765 4 5 6 3 Store 1766 1768 1769: 6(int) Load 8(invocation) 1770: 1700(ptr) AccessChain 34(data) 67 67 1771: 24(i16vec4) Load 1770 1772: 24(i16vec4) GroupNonUniformUMin 42 Reduce 1771 1773: 1700(ptr) AccessChain 34(data) 1769 67 Store 1773 1772 1774: 6(int) Load 8(invocation) 1775: 1693(ptr) AccessChain 34(data) 37 67 38 1776: 23(int16_t) Load 1775 1777: 23(int16_t) GroupNonUniformUMax 42 Reduce 1776 1778: 1693(ptr) AccessChain 34(data) 1774 67 38 Store 1778 1777 1779: 6(int) Load 8(invocation) 1780: 1700(ptr) AccessChain 34(data) 46 67 1781: 24(i16vec4) Load 1780 1782:1699(i16vec2) VectorShuffle 1781 1781 0 1 1783:1699(i16vec2) GroupNonUniformUMax 42 Reduce 1782 1784: 1700(ptr) AccessChain 34(data) 1779 67 1785: 24(i16vec4) Load 1784 1786: 24(i16vec4) VectorShuffle 1785 1783 4 5 2 3 Store 1784 1786 1787: 6(int) Load 8(invocation) 1788: 1700(ptr) AccessChain 34(data) 57 67 1789: 24(i16vec4) Load 1788 1790:1709(i16vec3) VectorShuffle 1789 1789 0 1 2 1791:1709(i16vec3) GroupNonUniformUMax 42 Reduce 1790 1792: 1700(ptr) AccessChain 34(data) 1787 67 1793: 24(i16vec4) Load 1792 1794: 24(i16vec4) VectorShuffle 1793 1791 4 5 6 3 Store 1792 1794 1795: 6(int) Load 8(invocation) 1796: 1700(ptr) AccessChain 34(data) 67 67 1797: 24(i16vec4) Load 1796 1798: 24(i16vec4) GroupNonUniformUMax 42 Reduce 1797 1799: 1700(ptr) AccessChain 34(data) 1795 67 Store 1799 1798 1800: 6(int) Load 8(invocation) 1801: 1693(ptr) AccessChain 34(data) 37 67 38 1802: 23(int16_t) Load 1801 1803: 23(int16_t) GroupNonUniformBitwiseAnd 42 Reduce 1802 1804: 1693(ptr) AccessChain 34(data) 1800 67 38 Store 1804 1803 1805: 6(int) Load 8(invocation) 1806: 1700(ptr) AccessChain 34(data) 46 67 1807: 24(i16vec4) Load 1806 1808:1699(i16vec2) VectorShuffle 1807 1807 0 1 1809:1699(i16vec2) GroupNonUniformBitwiseAnd 42 Reduce 1808 1810: 1700(ptr) AccessChain 34(data) 1805 67 1811: 24(i16vec4) Load 1810 1812: 24(i16vec4) VectorShuffle 1811 1809 4 5 2 3 Store 1810 1812 1813: 6(int) Load 8(invocation) 1814: 1700(ptr) AccessChain 34(data) 57 67 1815: 24(i16vec4) Load 1814 1816:1709(i16vec3) VectorShuffle 1815 1815 0 1 2 1817:1709(i16vec3) GroupNonUniformBitwiseAnd 42 Reduce 1816 1818: 1700(ptr) AccessChain 34(data) 1813 67 1819: 24(i16vec4) Load 1818 1820: 24(i16vec4) VectorShuffle 1819 1817 4 5 6 3 Store 1818 1820 1821: 6(int) Load 8(invocation) 1822: 1700(ptr) AccessChain 34(data) 67 67 1823: 24(i16vec4) Load 1822 1824: 24(i16vec4) GroupNonUniformBitwiseAnd 42 Reduce 1823 1825: 1700(ptr) AccessChain 34(data) 1821 67 Store 1825 1824 1826: 6(int) Load 8(invocation) 1827: 1693(ptr) AccessChain 34(data) 37 67 38 1828: 23(int16_t) Load 1827 1829: 23(int16_t) GroupNonUniformBitwiseOr 42 Reduce 1828 1830: 1693(ptr) AccessChain 34(data) 1826 67 38 Store 1830 1829 1831: 6(int) Load 8(invocation) 1832: 1700(ptr) AccessChain 34(data) 46 67 1833: 24(i16vec4) Load 1832 1834:1699(i16vec2) VectorShuffle 1833 1833 0 1 1835:1699(i16vec2) GroupNonUniformBitwiseOr 42 Reduce 1834 1836: 1700(ptr) AccessChain 34(data) 1831 67 1837: 24(i16vec4) Load 1836 1838: 24(i16vec4) VectorShuffle 1837 1835 4 5 2 3 Store 1836 1838 1839: 6(int) Load 8(invocation) 1840: 1700(ptr) AccessChain 34(data) 57 67 1841: 24(i16vec4) Load 1840 1842:1709(i16vec3) VectorShuffle 1841 1841 0 1 2 1843:1709(i16vec3) GroupNonUniformBitwiseOr 42 Reduce 1842 1844: 1700(ptr) AccessChain 34(data) 1839 67 1845: 24(i16vec4) Load 1844 1846: 24(i16vec4) VectorShuffle 1845 1843 4 5 6 3 Store 1844 1846 1847: 6(int) Load 8(invocation) 1848: 1700(ptr) AccessChain 34(data) 67 67 1849: 24(i16vec4) Load 1848 1850: 24(i16vec4) GroupNonUniformBitwiseOr 42 Reduce 1849 1851: 1700(ptr) AccessChain 34(data) 1847 67 Store 1851 1850 1852: 6(int) Load 8(invocation) 1853: 1693(ptr) AccessChain 34(data) 37 67 38 1854: 23(int16_t) Load 1853 1855: 23(int16_t) GroupNonUniformBitwiseXor 42 Reduce 1854 1856: 1693(ptr) AccessChain 34(data) 1852 67 38 Store 1856 1855 1857: 6(int) Load 8(invocation) 1858: 1700(ptr) AccessChain 34(data) 46 67 1859: 24(i16vec4) Load 1858 1860:1699(i16vec2) VectorShuffle 1859 1859 0 1 1861:1699(i16vec2) GroupNonUniformBitwiseXor 42 Reduce 1860 1862: 1700(ptr) AccessChain 34(data) 1857 67 1863: 24(i16vec4) Load 1862 1864: 24(i16vec4) VectorShuffle 1863 1861 4 5 2 3 Store 1862 1864 1865: 6(int) Load 8(invocation) 1866: 1700(ptr) AccessChain 34(data) 57 67 1867: 24(i16vec4) Load 1866 1868:1709(i16vec3) VectorShuffle 1867 1867 0 1 2 1869:1709(i16vec3) GroupNonUniformBitwiseXor 42 Reduce 1868 1870: 1700(ptr) AccessChain 34(data) 1865 67 1871: 24(i16vec4) Load 1870 1872: 24(i16vec4) VectorShuffle 1871 1869 4 5 6 3 Store 1870 1872 1873: 6(int) Load 8(invocation) 1874: 1700(ptr) AccessChain 34(data) 67 67 1875: 24(i16vec4) Load 1874 1876: 24(i16vec4) GroupNonUniformBitwiseXor 42 Reduce 1875 1877: 1700(ptr) AccessChain 34(data) 1873 67 Store 1877 1876 1878: 6(int) Load 8(invocation) 1879: 1693(ptr) AccessChain 34(data) 37 67 38 1880: 23(int16_t) Load 1879 1881: 23(int16_t) GroupNonUniformIAdd 42 InclusiveScan 1880 1882: 1693(ptr) AccessChain 34(data) 1878 67 38 Store 1882 1881 1883: 6(int) Load 8(invocation) 1884: 1700(ptr) AccessChain 34(data) 46 67 1885: 24(i16vec4) Load 1884 1886:1699(i16vec2) VectorShuffle 1885 1885 0 1 1887:1699(i16vec2) GroupNonUniformIAdd 42 InclusiveScan 1886 1888: 1700(ptr) AccessChain 34(data) 1883 67 1889: 24(i16vec4) Load 1888 1890: 24(i16vec4) VectorShuffle 1889 1887 4 5 2 3 Store 1888 1890 1891: 6(int) Load 8(invocation) 1892: 1700(ptr) AccessChain 34(data) 57 67 1893: 24(i16vec4) Load 1892 1894:1709(i16vec3) VectorShuffle 1893 1893 0 1 2 1895:1709(i16vec3) GroupNonUniformIAdd 42 InclusiveScan 1894 1896: 1700(ptr) AccessChain 34(data) 1891 67 1897: 24(i16vec4) Load 1896 1898: 24(i16vec4) VectorShuffle 1897 1895 4 5 6 3 Store 1896 1898 1899: 6(int) Load 8(invocation) 1900: 1700(ptr) AccessChain 34(data) 67 67 1901: 24(i16vec4) Load 1900 1902: 24(i16vec4) GroupNonUniformIAdd 42 InclusiveScan 1901 1903: 1700(ptr) AccessChain 34(data) 1899 67 Store 1903 1902 1904: 6(int) Load 8(invocation) 1905: 1693(ptr) AccessChain 34(data) 37 67 38 1906: 23(int16_t) Load 1905 1907: 23(int16_t) GroupNonUniformIMul 42 InclusiveScan 1906 1908: 1693(ptr) AccessChain 34(data) 1904 67 38 Store 1908 1907 1909: 6(int) Load 8(invocation) 1910: 1700(ptr) AccessChain 34(data) 46 67 1911: 24(i16vec4) Load 1910 1912:1699(i16vec2) VectorShuffle 1911 1911 0 1 1913:1699(i16vec2) GroupNonUniformIMul 42 InclusiveScan 1912 1914: 1700(ptr) AccessChain 34(data) 1909 67 1915: 24(i16vec4) Load 1914 1916: 24(i16vec4) VectorShuffle 1915 1913 4 5 2 3 Store 1914 1916 1917: 6(int) Load 8(invocation) 1918: 1700(ptr) AccessChain 34(data) 57 67 1919: 24(i16vec4) Load 1918 1920:1709(i16vec3) VectorShuffle 1919 1919 0 1 2 1921:1709(i16vec3) GroupNonUniformIMul 42 InclusiveScan 1920 1922: 1700(ptr) AccessChain 34(data) 1917 67 1923: 24(i16vec4) Load 1922 1924: 24(i16vec4) VectorShuffle 1923 1921 4 5 6 3 Store 1922 1924 1925: 6(int) Load 8(invocation) 1926: 1700(ptr) AccessChain 34(data) 67 67 1927: 24(i16vec4) Load 1926 1928: 24(i16vec4) GroupNonUniformIMul 42 InclusiveScan 1927 1929: 1700(ptr) AccessChain 34(data) 1925 67 Store 1929 1928 1930: 6(int) Load 8(invocation) 1931: 1693(ptr) AccessChain 34(data) 37 67 38 1932: 23(int16_t) Load 1931 1933: 23(int16_t) GroupNonUniformUMin 42 InclusiveScan 1932 1934: 1693(ptr) AccessChain 34(data) 1930 67 38 Store 1934 1933 1935: 6(int) Load 8(invocation) 1936: 1700(ptr) AccessChain 34(data) 46 67 1937: 24(i16vec4) Load 1936 1938:1699(i16vec2) VectorShuffle 1937 1937 0 1 1939:1699(i16vec2) GroupNonUniformUMin 42 InclusiveScan 1938 1940: 1700(ptr) AccessChain 34(data) 1935 67 1941: 24(i16vec4) Load 1940 1942: 24(i16vec4) VectorShuffle 1941 1939 4 5 2 3 Store 1940 1942 1943: 6(int) Load 8(invocation) 1944: 1700(ptr) AccessChain 34(data) 57 67 1945: 24(i16vec4) Load 1944 1946:1709(i16vec3) VectorShuffle 1945 1945 0 1 2 1947:1709(i16vec3) GroupNonUniformUMin 42 InclusiveScan 1946 1948: 1700(ptr) AccessChain 34(data) 1943 67 1949: 24(i16vec4) Load 1948 1950: 24(i16vec4) VectorShuffle 1949 1947 4 5 6 3 Store 1948 1950 1951: 6(int) Load 8(invocation) 1952: 1700(ptr) AccessChain 34(data) 67 67 1953: 24(i16vec4) Load 1952 1954: 24(i16vec4) GroupNonUniformUMin 42 InclusiveScan 1953 1955: 1700(ptr) AccessChain 34(data) 1951 67 Store 1955 1954 1956: 6(int) Load 8(invocation) 1957: 1693(ptr) AccessChain 34(data) 37 67 38 1958: 23(int16_t) Load 1957 1959: 23(int16_t) GroupNonUniformUMax 42 InclusiveScan 1958 1960: 1693(ptr) AccessChain 34(data) 1956 67 38 Store 1960 1959 1961: 6(int) Load 8(invocation) 1962: 1700(ptr) AccessChain 34(data) 46 67 1963: 24(i16vec4) Load 1962 1964:1699(i16vec2) VectorShuffle 1963 1963 0 1 1965:1699(i16vec2) GroupNonUniformUMax 42 InclusiveScan 1964 1966: 1700(ptr) AccessChain 34(data) 1961 67 1967: 24(i16vec4) Load 1966 1968: 24(i16vec4) VectorShuffle 1967 1965 4 5 2 3 Store 1966 1968 1969: 6(int) Load 8(invocation) 1970: 1700(ptr) AccessChain 34(data) 57 67 1971: 24(i16vec4) Load 1970 1972:1709(i16vec3) VectorShuffle 1971 1971 0 1 2 1973:1709(i16vec3) GroupNonUniformUMax 42 InclusiveScan 1972 1974: 1700(ptr) AccessChain 34(data) 1969 67 1975: 24(i16vec4) Load 1974 1976: 24(i16vec4) VectorShuffle 1975 1973 4 5 6 3 Store 1974 1976 1977: 6(int) Load 8(invocation) 1978: 1700(ptr) AccessChain 34(data) 67 67 1979: 24(i16vec4) Load 1978 1980: 24(i16vec4) GroupNonUniformUMax 42 InclusiveScan 1979 1981: 1700(ptr) AccessChain 34(data) 1977 67 Store 1981 1980 1982: 6(int) Load 8(invocation) 1983: 1693(ptr) AccessChain 34(data) 37 67 38 1984: 23(int16_t) Load 1983 1985: 23(int16_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 1984 1986: 1693(ptr) AccessChain 34(data) 1982 67 38 Store 1986 1985 1987: 6(int) Load 8(invocation) 1988: 1700(ptr) AccessChain 34(data) 46 67 1989: 24(i16vec4) Load 1988 1990:1699(i16vec2) VectorShuffle 1989 1989 0 1 1991:1699(i16vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 1990 1992: 1700(ptr) AccessChain 34(data) 1987 67 1993: 24(i16vec4) Load 1992 1994: 24(i16vec4) VectorShuffle 1993 1991 4 5 2 3 Store 1992 1994 1995: 6(int) Load 8(invocation) 1996: 1700(ptr) AccessChain 34(data) 57 67 1997: 24(i16vec4) Load 1996 1998:1709(i16vec3) VectorShuffle 1997 1997 0 1 2 1999:1709(i16vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 1998 2000: 1700(ptr) AccessChain 34(data) 1995 67 2001: 24(i16vec4) Load 2000 2002: 24(i16vec4) VectorShuffle 2001 1999 4 5 6 3 Store 2000 2002 2003: 6(int) Load 8(invocation) 2004: 1700(ptr) AccessChain 34(data) 67 67 2005: 24(i16vec4) Load 2004 2006: 24(i16vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 2005 2007: 1700(ptr) AccessChain 34(data) 2003 67 Store 2007 2006 2008: 6(int) Load 8(invocation) 2009: 1693(ptr) AccessChain 34(data) 37 67 38 2010: 23(int16_t) Load 2009 2011: 23(int16_t) GroupNonUniformBitwiseOr 42 InclusiveScan 2010 2012: 1693(ptr) AccessChain 34(data) 2008 67 38 Store 2012 2011 2013: 6(int) Load 8(invocation) 2014: 1700(ptr) AccessChain 34(data) 46 67 2015: 24(i16vec4) Load 2014 2016:1699(i16vec2) VectorShuffle 2015 2015 0 1 2017:1699(i16vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 2016 2018: 1700(ptr) AccessChain 34(data) 2013 67 2019: 24(i16vec4) Load 2018 2020: 24(i16vec4) VectorShuffle 2019 2017 4 5 2 3 Store 2018 2020 2021: 6(int) Load 8(invocation) 2022: 1700(ptr) AccessChain 34(data) 57 67 2023: 24(i16vec4) Load 2022 2024:1709(i16vec3) VectorShuffle 2023 2023 0 1 2 2025:1709(i16vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 2024 2026: 1700(ptr) AccessChain 34(data) 2021 67 2027: 24(i16vec4) Load 2026 2028: 24(i16vec4) VectorShuffle 2027 2025 4 5 6 3 Store 2026 2028 2029: 6(int) Load 8(invocation) 2030: 1700(ptr) AccessChain 34(data) 67 67 2031: 24(i16vec4) Load 2030 2032: 24(i16vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 2031 2033: 1700(ptr) AccessChain 34(data) 2029 67 Store 2033 2032 2034: 6(int) Load 8(invocation) 2035: 1693(ptr) AccessChain 34(data) 37 67 38 2036: 23(int16_t) Load 2035 2037: 23(int16_t) GroupNonUniformBitwiseXor 42 InclusiveScan 2036 2038: 1693(ptr) AccessChain 34(data) 2034 67 38 Store 2038 2037 2039: 6(int) Load 8(invocation) 2040: 1700(ptr) AccessChain 34(data) 46 67 2041: 24(i16vec4) Load 2040 2042:1699(i16vec2) VectorShuffle 2041 2041 0 1 2043:1699(i16vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 2042 2044: 1700(ptr) AccessChain 34(data) 2039 67 2045: 24(i16vec4) Load 2044 2046: 24(i16vec4) VectorShuffle 2045 2043 4 5 2 3 Store 2044 2046 2047: 6(int) Load 8(invocation) 2048: 1700(ptr) AccessChain 34(data) 57 67 2049: 24(i16vec4) Load 2048 2050:1709(i16vec3) VectorShuffle 2049 2049 0 1 2 2051:1709(i16vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 2050 2052: 1700(ptr) AccessChain 34(data) 2047 67 2053: 24(i16vec4) Load 2052 2054: 24(i16vec4) VectorShuffle 2053 2051 4 5 6 3 Store 2052 2054 2055: 6(int) Load 8(invocation) 2056: 1700(ptr) AccessChain 34(data) 67 67 2057: 24(i16vec4) Load 2056 2058: 24(i16vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 2057 2059: 1700(ptr) AccessChain 34(data) 2055 67 Store 2059 2058 2060: 6(int) Load 8(invocation) 2061: 1693(ptr) AccessChain 34(data) 37 67 38 2062: 23(int16_t) Load 2061 2063: 23(int16_t) GroupNonUniformIAdd 42 ExclusiveScan 2062 2064: 1693(ptr) AccessChain 34(data) 2060 67 38 Store 2064 2063 2065: 6(int) Load 8(invocation) 2066: 1700(ptr) AccessChain 34(data) 46 67 2067: 24(i16vec4) Load 2066 2068:1699(i16vec2) VectorShuffle 2067 2067 0 1 2069:1699(i16vec2) GroupNonUniformIAdd 42 ExclusiveScan 2068 2070: 1700(ptr) AccessChain 34(data) 2065 67 2071: 24(i16vec4) Load 2070 2072: 24(i16vec4) VectorShuffle 2071 2069 4 5 2 3 Store 2070 2072 2073: 6(int) Load 8(invocation) 2074: 1700(ptr) AccessChain 34(data) 57 67 2075: 24(i16vec4) Load 2074 2076:1709(i16vec3) VectorShuffle 2075 2075 0 1 2 2077:1709(i16vec3) GroupNonUniformIAdd 42 ExclusiveScan 2076 2078: 1700(ptr) AccessChain 34(data) 2073 67 2079: 24(i16vec4) Load 2078 2080: 24(i16vec4) VectorShuffle 2079 2077 4 5 6 3 Store 2078 2080 2081: 6(int) Load 8(invocation) 2082: 1700(ptr) AccessChain 34(data) 67 67 2083: 24(i16vec4) Load 2082 2084: 24(i16vec4) GroupNonUniformIAdd 42 ExclusiveScan 2083 2085: 1700(ptr) AccessChain 34(data) 2081 67 Store 2085 2084 2086: 6(int) Load 8(invocation) 2087: 1693(ptr) AccessChain 34(data) 37 67 38 2088: 23(int16_t) Load 2087 2089: 23(int16_t) GroupNonUniformIMul 42 ExclusiveScan 2088 2090: 1693(ptr) AccessChain 34(data) 2086 67 38 Store 2090 2089 2091: 6(int) Load 8(invocation) 2092: 1700(ptr) AccessChain 34(data) 46 67 2093: 24(i16vec4) Load 2092 2094:1699(i16vec2) VectorShuffle 2093 2093 0 1 2095:1699(i16vec2) GroupNonUniformIMul 42 ExclusiveScan 2094 2096: 1700(ptr) AccessChain 34(data) 2091 67 2097: 24(i16vec4) Load 2096 2098: 24(i16vec4) VectorShuffle 2097 2095 4 5 2 3 Store 2096 2098 2099: 6(int) Load 8(invocation) 2100: 1700(ptr) AccessChain 34(data) 57 67 2101: 24(i16vec4) Load 2100 2102:1709(i16vec3) VectorShuffle 2101 2101 0 1 2 2103:1709(i16vec3) GroupNonUniformIMul 42 ExclusiveScan 2102 2104: 1700(ptr) AccessChain 34(data) 2099 67 2105: 24(i16vec4) Load 2104 2106: 24(i16vec4) VectorShuffle 2105 2103 4 5 6 3 Store 2104 2106 2107: 6(int) Load 8(invocation) 2108: 1700(ptr) AccessChain 34(data) 67 67 2109: 24(i16vec4) Load 2108 2110: 24(i16vec4) GroupNonUniformIMul 42 ExclusiveScan 2109 2111: 1700(ptr) AccessChain 34(data) 2107 67 Store 2111 2110 2112: 6(int) Load 8(invocation) 2113: 1693(ptr) AccessChain 34(data) 37 67 38 2114: 23(int16_t) Load 2113 2115: 23(int16_t) GroupNonUniformUMin 42 ExclusiveScan 2114 2116: 1693(ptr) AccessChain 34(data) 2112 67 38 Store 2116 2115 2117: 6(int) Load 8(invocation) 2118: 1700(ptr) AccessChain 34(data) 46 67 2119: 24(i16vec4) Load 2118 2120:1699(i16vec2) VectorShuffle 2119 2119 0 1 2121:1699(i16vec2) GroupNonUniformUMin 42 ExclusiveScan 2120 2122: 1700(ptr) AccessChain 34(data) 2117 67 2123: 24(i16vec4) Load 2122 2124: 24(i16vec4) VectorShuffle 2123 2121 4 5 2 3 Store 2122 2124 2125: 6(int) Load 8(invocation) 2126: 1700(ptr) AccessChain 34(data) 57 67 2127: 24(i16vec4) Load 2126 2128:1709(i16vec3) VectorShuffle 2127 2127 0 1 2 2129:1709(i16vec3) GroupNonUniformUMin 42 ExclusiveScan 2128 2130: 1700(ptr) AccessChain 34(data) 2125 67 2131: 24(i16vec4) Load 2130 2132: 24(i16vec4) VectorShuffle 2131 2129 4 5 6 3 Store 2130 2132 2133: 6(int) Load 8(invocation) 2134: 1700(ptr) AccessChain 34(data) 67 67 2135: 24(i16vec4) Load 2134 2136: 24(i16vec4) GroupNonUniformUMin 42 ExclusiveScan 2135 2137: 1700(ptr) AccessChain 34(data) 2133 67 Store 2137 2136 2138: 6(int) Load 8(invocation) 2139: 1693(ptr) AccessChain 34(data) 37 67 38 2140: 23(int16_t) Load 2139 2141: 23(int16_t) GroupNonUniformUMax 42 ExclusiveScan 2140 2142: 1693(ptr) AccessChain 34(data) 2138 67 38 Store 2142 2141 2143: 6(int) Load 8(invocation) 2144: 1700(ptr) AccessChain 34(data) 46 67 2145: 24(i16vec4) Load 2144 2146:1699(i16vec2) VectorShuffle 2145 2145 0 1 2147:1699(i16vec2) GroupNonUniformUMax 42 ExclusiveScan 2146 2148: 1700(ptr) AccessChain 34(data) 2143 67 2149: 24(i16vec4) Load 2148 2150: 24(i16vec4) VectorShuffle 2149 2147 4 5 2 3 Store 2148 2150 2151: 6(int) Load 8(invocation) 2152: 1700(ptr) AccessChain 34(data) 57 67 2153: 24(i16vec4) Load 2152 2154:1709(i16vec3) VectorShuffle 2153 2153 0 1 2 2155:1709(i16vec3) GroupNonUniformUMax 42 ExclusiveScan 2154 2156: 1700(ptr) AccessChain 34(data) 2151 67 2157: 24(i16vec4) Load 2156 2158: 24(i16vec4) VectorShuffle 2157 2155 4 5 6 3 Store 2156 2158 2159: 6(int) Load 8(invocation) 2160: 1700(ptr) AccessChain 34(data) 67 67 2161: 24(i16vec4) Load 2160 2162: 24(i16vec4) GroupNonUniformUMax 42 ExclusiveScan 2161 2163: 1700(ptr) AccessChain 34(data) 2159 67 Store 2163 2162 2164: 6(int) Load 8(invocation) 2165: 1693(ptr) AccessChain 34(data) 37 67 38 2166: 23(int16_t) Load 2165 2167: 23(int16_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2166 2168: 1693(ptr) AccessChain 34(data) 2164 67 38 Store 2168 2167 2169: 6(int) Load 8(invocation) 2170: 1700(ptr) AccessChain 34(data) 46 67 2171: 24(i16vec4) Load 2170 2172:1699(i16vec2) VectorShuffle 2171 2171 0 1 2173:1699(i16vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2172 2174: 1700(ptr) AccessChain 34(data) 2169 67 2175: 24(i16vec4) Load 2174 2176: 24(i16vec4) VectorShuffle 2175 2173 4 5 2 3 Store 2174 2176 2177: 6(int) Load 8(invocation) 2178: 1700(ptr) AccessChain 34(data) 57 67 2179: 24(i16vec4) Load 2178 2180:1709(i16vec3) VectorShuffle 2179 2179 0 1 2 2181:1709(i16vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2180 2182: 1700(ptr) AccessChain 34(data) 2177 67 2183: 24(i16vec4) Load 2182 2184: 24(i16vec4) VectorShuffle 2183 2181 4 5 6 3 Store 2182 2184 2185: 6(int) Load 8(invocation) 2186: 1700(ptr) AccessChain 34(data) 67 67 2187: 24(i16vec4) Load 2186 2188: 24(i16vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2187 2189: 1700(ptr) AccessChain 34(data) 2185 67 Store 2189 2188 2190: 6(int) Load 8(invocation) 2191: 1693(ptr) AccessChain 34(data) 37 67 38 2192: 23(int16_t) Load 2191 2193: 23(int16_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 2192 2194: 1693(ptr) AccessChain 34(data) 2190 67 38 Store 2194 2193 2195: 6(int) Load 8(invocation) 2196: 1700(ptr) AccessChain 34(data) 46 67 2197: 24(i16vec4) Load 2196 2198:1699(i16vec2) VectorShuffle 2197 2197 0 1 2199:1699(i16vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 2198 2200: 1700(ptr) AccessChain 34(data) 2195 67 2201: 24(i16vec4) Load 2200 2202: 24(i16vec4) VectorShuffle 2201 2199 4 5 2 3 Store 2200 2202 2203: 6(int) Load 8(invocation) 2204: 1700(ptr) AccessChain 34(data) 57 67 2205: 24(i16vec4) Load 2204 2206:1709(i16vec3) VectorShuffle 2205 2205 0 1 2 2207:1709(i16vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 2206 2208: 1700(ptr) AccessChain 34(data) 2203 67 2209: 24(i16vec4) Load 2208 2210: 24(i16vec4) VectorShuffle 2209 2207 4 5 6 3 Store 2208 2210 2211: 6(int) Load 8(invocation) 2212: 1700(ptr) AccessChain 34(data) 67 67 2213: 24(i16vec4) Load 2212 2214: 24(i16vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 2213 2215: 1700(ptr) AccessChain 34(data) 2211 67 Store 2215 2214 2216: 6(int) Load 8(invocation) 2217: 1693(ptr) AccessChain 34(data) 37 67 38 2218: 23(int16_t) Load 2217 2219: 23(int16_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 2218 2220: 1693(ptr) AccessChain 34(data) 2216 67 38 Store 2220 2219 2221: 6(int) Load 8(invocation) 2222: 1700(ptr) AccessChain 34(data) 46 67 2223: 24(i16vec4) Load 2222 2224:1699(i16vec2) VectorShuffle 2223 2223 0 1 2225:1699(i16vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 2224 2226: 1700(ptr) AccessChain 34(data) 2221 67 2227: 24(i16vec4) Load 2226 2228: 24(i16vec4) VectorShuffle 2227 2225 4 5 2 3 Store 2226 2228 2229: 6(int) Load 8(invocation) 2230: 1700(ptr) AccessChain 34(data) 57 67 2231: 24(i16vec4) Load 2230 2232:1709(i16vec3) VectorShuffle 2231 2231 0 1 2 2233:1709(i16vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 2232 2234: 1700(ptr) AccessChain 34(data) 2229 67 2235: 24(i16vec4) Load 2234 2236: 24(i16vec4) VectorShuffle 2235 2233 4 5 6 3 Store 2234 2236 2237: 6(int) Load 8(invocation) 2238: 1700(ptr) AccessChain 34(data) 67 67 2239: 24(i16vec4) Load 2238 2240: 24(i16vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 2239 2241: 1700(ptr) AccessChain 34(data) 2237 67 Store 2241 2240 2242: 6(int) Load 8(invocation) 2245: 2244(ptr) AccessChain 34(data) 37 2243 38 2246: 25(int64_t) Load 2245 2247: 25(int64_t) GroupNonUniformIAdd 42 Reduce 2246 2248: 2244(ptr) AccessChain 34(data) 2242 2243 38 Store 2248 2247 2249: 6(int) Load 8(invocation) 2252: 2251(ptr) AccessChain 34(data) 46 2243 2253: 26(i64vec4) Load 2252 2254:2250(i64vec2) VectorShuffle 2253 2253 0 1 2255:2250(i64vec2) GroupNonUniformIAdd 42 Reduce 2254 2256: 2251(ptr) AccessChain 34(data) 2249 2243 2257: 26(i64vec4) Load 2256 2258: 26(i64vec4) VectorShuffle 2257 2255 4 5 2 3 Store 2256 2258 2259: 6(int) Load 8(invocation) 2261: 2251(ptr) AccessChain 34(data) 57 2243 2262: 26(i64vec4) Load 2261 2263:2260(i64vec3) VectorShuffle 2262 2262 0 1 2 2264:2260(i64vec3) GroupNonUniformIAdd 42 Reduce 2263 2265: 2251(ptr) AccessChain 34(data) 2259 2243 2266: 26(i64vec4) Load 2265 2267: 26(i64vec4) VectorShuffle 2266 2264 4 5 6 3 Store 2265 2267 2268: 6(int) Load 8(invocation) 2269: 2251(ptr) AccessChain 34(data) 67 2243 2270: 26(i64vec4) Load 2269 2271: 26(i64vec4) GroupNonUniformIAdd 42 Reduce 2270 2272: 2251(ptr) AccessChain 34(data) 2268 2243 Store 2272 2271 2273: 6(int) Load 8(invocation) 2274: 2244(ptr) AccessChain 34(data) 37 2243 38 2275: 25(int64_t) Load 2274 2276: 25(int64_t) GroupNonUniformIMul 42 Reduce 2275 2277: 2244(ptr) AccessChain 34(data) 2273 2243 38 Store 2277 2276 2278: 6(int) Load 8(invocation) 2279: 2251(ptr) AccessChain 34(data) 46 2243 2280: 26(i64vec4) Load 2279 2281:2250(i64vec2) VectorShuffle 2280 2280 0 1 2282:2250(i64vec2) GroupNonUniformIMul 42 Reduce 2281 2283: 2251(ptr) AccessChain 34(data) 2278 2243 2284: 26(i64vec4) Load 2283 2285: 26(i64vec4) VectorShuffle 2284 2282 4 5 2 3 Store 2283 2285 2286: 6(int) Load 8(invocation) 2287: 2251(ptr) AccessChain 34(data) 57 2243 2288: 26(i64vec4) Load 2287 2289:2260(i64vec3) VectorShuffle 2288 2288 0 1 2 2290:2260(i64vec3) GroupNonUniformIMul 42 Reduce 2289 2291: 2251(ptr) AccessChain 34(data) 2286 2243 2292: 26(i64vec4) Load 2291 2293: 26(i64vec4) VectorShuffle 2292 2290 4 5 6 3 Store 2291 2293 2294: 6(int) Load 8(invocation) 2295: 2251(ptr) AccessChain 34(data) 67 2243 2296: 26(i64vec4) Load 2295 2297: 26(i64vec4) GroupNonUniformIMul 42 Reduce 2296 2298: 2251(ptr) AccessChain 34(data) 2294 2243 Store 2298 2297 2299: 6(int) Load 8(invocation) 2300: 2244(ptr) AccessChain 34(data) 37 2243 38 2301: 25(int64_t) Load 2300 2302: 25(int64_t) GroupNonUniformSMin 42 Reduce 2301 2303: 2244(ptr) AccessChain 34(data) 2299 2243 38 Store 2303 2302 2304: 6(int) Load 8(invocation) 2305: 2251(ptr) AccessChain 34(data) 46 2243 2306: 26(i64vec4) Load 2305 2307:2250(i64vec2) VectorShuffle 2306 2306 0 1 2308:2250(i64vec2) GroupNonUniformSMin 42 Reduce 2307 2309: 2251(ptr) AccessChain 34(data) 2304 2243 2310: 26(i64vec4) Load 2309 2311: 26(i64vec4) VectorShuffle 2310 2308 4 5 2 3 Store 2309 2311 2312: 6(int) Load 8(invocation) 2313: 2251(ptr) AccessChain 34(data) 57 2243 2314: 26(i64vec4) Load 2313 2315:2260(i64vec3) VectorShuffle 2314 2314 0 1 2 2316:2260(i64vec3) GroupNonUniformSMin 42 Reduce 2315 2317: 2251(ptr) AccessChain 34(data) 2312 2243 2318: 26(i64vec4) Load 2317 2319: 26(i64vec4) VectorShuffle 2318 2316 4 5 6 3 Store 2317 2319 2320: 6(int) Load 8(invocation) 2321: 2251(ptr) AccessChain 34(data) 67 2243 2322: 26(i64vec4) Load 2321 2323: 26(i64vec4) GroupNonUniformSMin 42 Reduce 2322 2324: 2251(ptr) AccessChain 34(data) 2320 2243 Store 2324 2323 2325: 6(int) Load 8(invocation) 2326: 2244(ptr) AccessChain 34(data) 37 2243 38 2327: 25(int64_t) Load 2326 2328: 25(int64_t) GroupNonUniformSMax 42 Reduce 2327 2329: 2244(ptr) AccessChain 34(data) 2325 2243 38 Store 2329 2328 2330: 6(int) Load 8(invocation) 2331: 2251(ptr) AccessChain 34(data) 46 2243 2332: 26(i64vec4) Load 2331 2333:2250(i64vec2) VectorShuffle 2332 2332 0 1 2334:2250(i64vec2) GroupNonUniformSMax 42 Reduce 2333 2335: 2251(ptr) AccessChain 34(data) 2330 2243 2336: 26(i64vec4) Load 2335 2337: 26(i64vec4) VectorShuffle 2336 2334 4 5 2 3 Store 2335 2337 2338: 6(int) Load 8(invocation) 2339: 2251(ptr) AccessChain 34(data) 57 2243 2340: 26(i64vec4) Load 2339 2341:2260(i64vec3) VectorShuffle 2340 2340 0 1 2 2342:2260(i64vec3) GroupNonUniformSMax 42 Reduce 2341 2343: 2251(ptr) AccessChain 34(data) 2338 2243 2344: 26(i64vec4) Load 2343 2345: 26(i64vec4) VectorShuffle 2344 2342 4 5 6 3 Store 2343 2345 2346: 6(int) Load 8(invocation) 2347: 2251(ptr) AccessChain 34(data) 67 2243 2348: 26(i64vec4) Load 2347 2349: 26(i64vec4) GroupNonUniformSMax 42 Reduce 2348 2350: 2251(ptr) AccessChain 34(data) 2346 2243 Store 2350 2349 2351: 6(int) Load 8(invocation) 2352: 2244(ptr) AccessChain 34(data) 37 2243 38 2353: 25(int64_t) Load 2352 2354: 25(int64_t) GroupNonUniformBitwiseAnd 42 Reduce 2353 2355: 2244(ptr) AccessChain 34(data) 2351 2243 38 Store 2355 2354 2356: 6(int) Load 8(invocation) 2357: 2251(ptr) AccessChain 34(data) 46 2243 2358: 26(i64vec4) Load 2357 2359:2250(i64vec2) VectorShuffle 2358 2358 0 1 2360:2250(i64vec2) GroupNonUniformBitwiseAnd 42 Reduce 2359 2361: 2251(ptr) AccessChain 34(data) 2356 2243 2362: 26(i64vec4) Load 2361 2363: 26(i64vec4) VectorShuffle 2362 2360 4 5 2 3 Store 2361 2363 2364: 6(int) Load 8(invocation) 2365: 2251(ptr) AccessChain 34(data) 57 2243 2366: 26(i64vec4) Load 2365 2367:2260(i64vec3) VectorShuffle 2366 2366 0 1 2 2368:2260(i64vec3) GroupNonUniformBitwiseAnd 42 Reduce 2367 2369: 2251(ptr) AccessChain 34(data) 2364 2243 2370: 26(i64vec4) Load 2369 2371: 26(i64vec4) VectorShuffle 2370 2368 4 5 6 3 Store 2369 2371 2372: 6(int) Load 8(invocation) 2373: 2251(ptr) AccessChain 34(data) 67 2243 2374: 26(i64vec4) Load 2373 2375: 26(i64vec4) GroupNonUniformBitwiseAnd 42 Reduce 2374 2376: 2251(ptr) AccessChain 34(data) 2372 2243 Store 2376 2375 2377: 6(int) Load 8(invocation) 2378: 2244(ptr) AccessChain 34(data) 37 2243 38 2379: 25(int64_t) Load 2378 2380: 25(int64_t) GroupNonUniformBitwiseOr 42 Reduce 2379 2381: 2244(ptr) AccessChain 34(data) 2377 2243 38 Store 2381 2380 2382: 6(int) Load 8(invocation) 2383: 2251(ptr) AccessChain 34(data) 46 2243 2384: 26(i64vec4) Load 2383 2385:2250(i64vec2) VectorShuffle 2384 2384 0 1 2386:2250(i64vec2) GroupNonUniformBitwiseOr 42 Reduce 2385 2387: 2251(ptr) AccessChain 34(data) 2382 2243 2388: 26(i64vec4) Load 2387 2389: 26(i64vec4) VectorShuffle 2388 2386 4 5 2 3 Store 2387 2389 2390: 6(int) Load 8(invocation) 2391: 2251(ptr) AccessChain 34(data) 57 2243 2392: 26(i64vec4) Load 2391 2393:2260(i64vec3) VectorShuffle 2392 2392 0 1 2 2394:2260(i64vec3) GroupNonUniformBitwiseOr 42 Reduce 2393 2395: 2251(ptr) AccessChain 34(data) 2390 2243 2396: 26(i64vec4) Load 2395 2397: 26(i64vec4) VectorShuffle 2396 2394 4 5 6 3 Store 2395 2397 2398: 6(int) Load 8(invocation) 2399: 2251(ptr) AccessChain 34(data) 67 2243 2400: 26(i64vec4) Load 2399 2401: 26(i64vec4) GroupNonUniformBitwiseOr 42 Reduce 2400 2402: 2251(ptr) AccessChain 34(data) 2398 2243 Store 2402 2401 2403: 6(int) Load 8(invocation) 2404: 2244(ptr) AccessChain 34(data) 37 2243 38 2405: 25(int64_t) Load 2404 2406: 25(int64_t) GroupNonUniformBitwiseXor 42 Reduce 2405 2407: 2244(ptr) AccessChain 34(data) 2403 2243 38 Store 2407 2406 2408: 6(int) Load 8(invocation) 2409: 2251(ptr) AccessChain 34(data) 46 2243 2410: 26(i64vec4) Load 2409 2411:2250(i64vec2) VectorShuffle 2410 2410 0 1 2412:2250(i64vec2) GroupNonUniformBitwiseXor 42 Reduce 2411 2413: 2251(ptr) AccessChain 34(data) 2408 2243 2414: 26(i64vec4) Load 2413 2415: 26(i64vec4) VectorShuffle 2414 2412 4 5 2 3 Store 2413 2415 2416: 6(int) Load 8(invocation) 2417: 2251(ptr) AccessChain 34(data) 57 2243 2418: 26(i64vec4) Load 2417 2419:2260(i64vec3) VectorShuffle 2418 2418 0 1 2 2420:2260(i64vec3) GroupNonUniformBitwiseXor 42 Reduce 2419 2421: 2251(ptr) AccessChain 34(data) 2416 2243 2422: 26(i64vec4) Load 2421 2423: 26(i64vec4) VectorShuffle 2422 2420 4 5 6 3 Store 2421 2423 2424: 6(int) Load 8(invocation) 2425: 2251(ptr) AccessChain 34(data) 67 2243 2426: 26(i64vec4) Load 2425 2427: 26(i64vec4) GroupNonUniformBitwiseXor 42 Reduce 2426 2428: 2251(ptr) AccessChain 34(data) 2424 2243 Store 2428 2427 2429: 6(int) Load 8(invocation) 2430: 2244(ptr) AccessChain 34(data) 37 2243 38 2431: 25(int64_t) Load 2430 2432: 25(int64_t) GroupNonUniformIAdd 42 InclusiveScan 2431 2433: 2244(ptr) AccessChain 34(data) 2429 2243 38 Store 2433 2432 2434: 6(int) Load 8(invocation) 2435: 2251(ptr) AccessChain 34(data) 46 2243 2436: 26(i64vec4) Load 2435 2437:2250(i64vec2) VectorShuffle 2436 2436 0 1 2438:2250(i64vec2) GroupNonUniformIAdd 42 InclusiveScan 2437 2439: 2251(ptr) AccessChain 34(data) 2434 2243 2440: 26(i64vec4) Load 2439 2441: 26(i64vec4) VectorShuffle 2440 2438 4 5 2 3 Store 2439 2441 2442: 6(int) Load 8(invocation) 2443: 2251(ptr) AccessChain 34(data) 57 2243 2444: 26(i64vec4) Load 2443 2445:2260(i64vec3) VectorShuffle 2444 2444 0 1 2 2446:2260(i64vec3) GroupNonUniformIAdd 42 InclusiveScan 2445 2447: 2251(ptr) AccessChain 34(data) 2442 2243 2448: 26(i64vec4) Load 2447 2449: 26(i64vec4) VectorShuffle 2448 2446 4 5 6 3 Store 2447 2449 2450: 6(int) Load 8(invocation) 2451: 2251(ptr) AccessChain 34(data) 67 2243 2452: 26(i64vec4) Load 2451 2453: 26(i64vec4) GroupNonUniformIAdd 42 InclusiveScan 2452 2454: 2251(ptr) AccessChain 34(data) 2450 2243 Store 2454 2453 2455: 6(int) Load 8(invocation) 2456: 2244(ptr) AccessChain 34(data) 37 2243 38 2457: 25(int64_t) Load 2456 2458: 25(int64_t) GroupNonUniformIMul 42 InclusiveScan 2457 2459: 2244(ptr) AccessChain 34(data) 2455 2243 38 Store 2459 2458 2460: 6(int) Load 8(invocation) 2461: 2251(ptr) AccessChain 34(data) 46 2243 2462: 26(i64vec4) Load 2461 2463:2250(i64vec2) VectorShuffle 2462 2462 0 1 2464:2250(i64vec2) GroupNonUniformIMul 42 InclusiveScan 2463 2465: 2251(ptr) AccessChain 34(data) 2460 2243 2466: 26(i64vec4) Load 2465 2467: 26(i64vec4) VectorShuffle 2466 2464 4 5 2 3 Store 2465 2467 2468: 6(int) Load 8(invocation) 2469: 2251(ptr) AccessChain 34(data) 57 2243 2470: 26(i64vec4) Load 2469 2471:2260(i64vec3) VectorShuffle 2470 2470 0 1 2 2472:2260(i64vec3) GroupNonUniformIMul 42 InclusiveScan 2471 2473: 2251(ptr) AccessChain 34(data) 2468 2243 2474: 26(i64vec4) Load 2473 2475: 26(i64vec4) VectorShuffle 2474 2472 4 5 6 3 Store 2473 2475 2476: 6(int) Load 8(invocation) 2477: 2251(ptr) AccessChain 34(data) 67 2243 2478: 26(i64vec4) Load 2477 2479: 26(i64vec4) GroupNonUniformIMul 42 InclusiveScan 2478 2480: 2251(ptr) AccessChain 34(data) 2476 2243 Store 2480 2479 2481: 6(int) Load 8(invocation) 2482: 2244(ptr) AccessChain 34(data) 37 2243 38 2483: 25(int64_t) Load 2482 2484: 25(int64_t) GroupNonUniformSMin 42 InclusiveScan 2483 2485: 2244(ptr) AccessChain 34(data) 2481 2243 38 Store 2485 2484 2486: 6(int) Load 8(invocation) 2487: 2251(ptr) AccessChain 34(data) 46 2243 2488: 26(i64vec4) Load 2487 2489:2250(i64vec2) VectorShuffle 2488 2488 0 1 2490:2250(i64vec2) GroupNonUniformSMin 42 InclusiveScan 2489 2491: 2251(ptr) AccessChain 34(data) 2486 2243 2492: 26(i64vec4) Load 2491 2493: 26(i64vec4) VectorShuffle 2492 2490 4 5 2 3 Store 2491 2493 2494: 6(int) Load 8(invocation) 2495: 2251(ptr) AccessChain 34(data) 57 2243 2496: 26(i64vec4) Load 2495 2497:2260(i64vec3) VectorShuffle 2496 2496 0 1 2 2498:2260(i64vec3) GroupNonUniformSMin 42 InclusiveScan 2497 2499: 2251(ptr) AccessChain 34(data) 2494 2243 2500: 26(i64vec4) Load 2499 2501: 26(i64vec4) VectorShuffle 2500 2498 4 5 6 3 Store 2499 2501 2502: 6(int) Load 8(invocation) 2503: 2251(ptr) AccessChain 34(data) 67 2243 2504: 26(i64vec4) Load 2503 2505: 26(i64vec4) GroupNonUniformSMin 42 InclusiveScan 2504 2506: 2251(ptr) AccessChain 34(data) 2502 2243 Store 2506 2505 2507: 6(int) Load 8(invocation) 2508: 2244(ptr) AccessChain 34(data) 37 2243 38 2509: 25(int64_t) Load 2508 2510: 25(int64_t) GroupNonUniformSMax 42 InclusiveScan 2509 2511: 2244(ptr) AccessChain 34(data) 2507 2243 38 Store 2511 2510 2512: 6(int) Load 8(invocation) 2513: 2251(ptr) AccessChain 34(data) 46 2243 2514: 26(i64vec4) Load 2513 2515:2250(i64vec2) VectorShuffle 2514 2514 0 1 2516:2250(i64vec2) GroupNonUniformSMax 42 InclusiveScan 2515 2517: 2251(ptr) AccessChain 34(data) 2512 2243 2518: 26(i64vec4) Load 2517 2519: 26(i64vec4) VectorShuffle 2518 2516 4 5 2 3 Store 2517 2519 2520: 6(int) Load 8(invocation) 2521: 2251(ptr) AccessChain 34(data) 57 2243 2522: 26(i64vec4) Load 2521 2523:2260(i64vec3) VectorShuffle 2522 2522 0 1 2 2524:2260(i64vec3) GroupNonUniformSMax 42 InclusiveScan 2523 2525: 2251(ptr) AccessChain 34(data) 2520 2243 2526: 26(i64vec4) Load 2525 2527: 26(i64vec4) VectorShuffle 2526 2524 4 5 6 3 Store 2525 2527 2528: 6(int) Load 8(invocation) 2529: 2251(ptr) AccessChain 34(data) 67 2243 2530: 26(i64vec4) Load 2529 2531: 26(i64vec4) GroupNonUniformSMax 42 InclusiveScan 2530 2532: 2251(ptr) AccessChain 34(data) 2528 2243 Store 2532 2531 2533: 6(int) Load 8(invocation) 2534: 2244(ptr) AccessChain 34(data) 37 2243 38 2535: 25(int64_t) Load 2534 2536: 25(int64_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 2535 2537: 2244(ptr) AccessChain 34(data) 2533 2243 38 Store 2537 2536 2538: 6(int) Load 8(invocation) 2539: 2251(ptr) AccessChain 34(data) 46 2243 2540: 26(i64vec4) Load 2539 2541:2250(i64vec2) VectorShuffle 2540 2540 0 1 2542:2250(i64vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 2541 2543: 2251(ptr) AccessChain 34(data) 2538 2243 2544: 26(i64vec4) Load 2543 2545: 26(i64vec4) VectorShuffle 2544 2542 4 5 2 3 Store 2543 2545 2546: 6(int) Load 8(invocation) 2547: 2251(ptr) AccessChain 34(data) 57 2243 2548: 26(i64vec4) Load 2547 2549:2260(i64vec3) VectorShuffle 2548 2548 0 1 2 2550:2260(i64vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 2549 2551: 2251(ptr) AccessChain 34(data) 2546 2243 2552: 26(i64vec4) Load 2551 2553: 26(i64vec4) VectorShuffle 2552 2550 4 5 6 3 Store 2551 2553 2554: 6(int) Load 8(invocation) 2555: 2251(ptr) AccessChain 34(data) 67 2243 2556: 26(i64vec4) Load 2555 2557: 26(i64vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 2556 2558: 2251(ptr) AccessChain 34(data) 2554 2243 Store 2558 2557 2559: 6(int) Load 8(invocation) 2560: 2244(ptr) AccessChain 34(data) 37 2243 38 2561: 25(int64_t) Load 2560 2562: 25(int64_t) GroupNonUniformBitwiseOr 42 InclusiveScan 2561 2563: 2244(ptr) AccessChain 34(data) 2559 2243 38 Store 2563 2562 2564: 6(int) Load 8(invocation) 2565: 2251(ptr) AccessChain 34(data) 46 2243 2566: 26(i64vec4) Load 2565 2567:2250(i64vec2) VectorShuffle 2566 2566 0 1 2568:2250(i64vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 2567 2569: 2251(ptr) AccessChain 34(data) 2564 2243 2570: 26(i64vec4) Load 2569 2571: 26(i64vec4) VectorShuffle 2570 2568 4 5 2 3 Store 2569 2571 2572: 6(int) Load 8(invocation) 2573: 2251(ptr) AccessChain 34(data) 57 2243 2574: 26(i64vec4) Load 2573 2575:2260(i64vec3) VectorShuffle 2574 2574 0 1 2 2576:2260(i64vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 2575 2577: 2251(ptr) AccessChain 34(data) 2572 2243 2578: 26(i64vec4) Load 2577 2579: 26(i64vec4) VectorShuffle 2578 2576 4 5 6 3 Store 2577 2579 2580: 6(int) Load 8(invocation) 2581: 2251(ptr) AccessChain 34(data) 67 2243 2582: 26(i64vec4) Load 2581 2583: 26(i64vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 2582 2584: 2251(ptr) AccessChain 34(data) 2580 2243 Store 2584 2583 2585: 6(int) Load 8(invocation) 2586: 2244(ptr) AccessChain 34(data) 37 2243 38 2587: 25(int64_t) Load 2586 2588: 25(int64_t) GroupNonUniformBitwiseXor 42 InclusiveScan 2587 2589: 2244(ptr) AccessChain 34(data) 2585 2243 38 Store 2589 2588 2590: 6(int) Load 8(invocation) 2591: 2251(ptr) AccessChain 34(data) 46 2243 2592: 26(i64vec4) Load 2591 2593:2250(i64vec2) VectorShuffle 2592 2592 0 1 2594:2250(i64vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 2593 2595: 2251(ptr) AccessChain 34(data) 2590 2243 2596: 26(i64vec4) Load 2595 2597: 26(i64vec4) VectorShuffle 2596 2594 4 5 2 3 Store 2595 2597 2598: 6(int) Load 8(invocation) 2599: 2251(ptr) AccessChain 34(data) 57 2243 2600: 26(i64vec4) Load 2599 2601:2260(i64vec3) VectorShuffle 2600 2600 0 1 2 2602:2260(i64vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 2601 2603: 2251(ptr) AccessChain 34(data) 2598 2243 2604: 26(i64vec4) Load 2603 2605: 26(i64vec4) VectorShuffle 2604 2602 4 5 6 3 Store 2603 2605 2606: 6(int) Load 8(invocation) 2607: 2251(ptr) AccessChain 34(data) 67 2243 2608: 26(i64vec4) Load 2607 2609: 26(i64vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 2608 2610: 2251(ptr) AccessChain 34(data) 2606 2243 Store 2610 2609 2611: 6(int) Load 8(invocation) 2612: 2244(ptr) AccessChain 34(data) 37 2243 38 2613: 25(int64_t) Load 2612 2614: 25(int64_t) GroupNonUniformIAdd 42 ExclusiveScan 2613 2615: 2244(ptr) AccessChain 34(data) 2611 2243 38 Store 2615 2614 2616: 6(int) Load 8(invocation) 2617: 2251(ptr) AccessChain 34(data) 46 2243 2618: 26(i64vec4) Load 2617 2619:2250(i64vec2) VectorShuffle 2618 2618 0 1 2620:2250(i64vec2) GroupNonUniformIAdd 42 ExclusiveScan 2619 2621: 2251(ptr) AccessChain 34(data) 2616 2243 2622: 26(i64vec4) Load 2621 2623: 26(i64vec4) VectorShuffle 2622 2620 4 5 2 3 Store 2621 2623 2624: 6(int) Load 8(invocation) 2625: 2251(ptr) AccessChain 34(data) 57 2243 2626: 26(i64vec4) Load 2625 2627:2260(i64vec3) VectorShuffle 2626 2626 0 1 2 2628:2260(i64vec3) GroupNonUniformIAdd 42 ExclusiveScan 2627 2629: 2251(ptr) AccessChain 34(data) 2624 2243 2630: 26(i64vec4) Load 2629 2631: 26(i64vec4) VectorShuffle 2630 2628 4 5 6 3 Store 2629 2631 2632: 6(int) Load 8(invocation) 2633: 2251(ptr) AccessChain 34(data) 67 2243 2634: 26(i64vec4) Load 2633 2635: 26(i64vec4) GroupNonUniformIAdd 42 ExclusiveScan 2634 2636: 2251(ptr) AccessChain 34(data) 2632 2243 Store 2636 2635 2637: 6(int) Load 8(invocation) 2638: 2244(ptr) AccessChain 34(data) 37 2243 38 2639: 25(int64_t) Load 2638 2640: 25(int64_t) GroupNonUniformIMul 42 ExclusiveScan 2639 2641: 2244(ptr) AccessChain 34(data) 2637 2243 38 Store 2641 2640 2642: 6(int) Load 8(invocation) 2643: 2251(ptr) AccessChain 34(data) 46 2243 2644: 26(i64vec4) Load 2643 2645:2250(i64vec2) VectorShuffle 2644 2644 0 1 2646:2250(i64vec2) GroupNonUniformIMul 42 ExclusiveScan 2645 2647: 2251(ptr) AccessChain 34(data) 2642 2243 2648: 26(i64vec4) Load 2647 2649: 26(i64vec4) VectorShuffle 2648 2646 4 5 2 3 Store 2647 2649 2650: 6(int) Load 8(invocation) 2651: 2251(ptr) AccessChain 34(data) 57 2243 2652: 26(i64vec4) Load 2651 2653:2260(i64vec3) VectorShuffle 2652 2652 0 1 2 2654:2260(i64vec3) GroupNonUniformIMul 42 ExclusiveScan 2653 2655: 2251(ptr) AccessChain 34(data) 2650 2243 2656: 26(i64vec4) Load 2655 2657: 26(i64vec4) VectorShuffle 2656 2654 4 5 6 3 Store 2655 2657 2658: 6(int) Load 8(invocation) 2659: 2251(ptr) AccessChain 34(data) 67 2243 2660: 26(i64vec4) Load 2659 2661: 26(i64vec4) GroupNonUniformIMul 42 ExclusiveScan 2660 2662: 2251(ptr) AccessChain 34(data) 2658 2243 Store 2662 2661 2663: 6(int) Load 8(invocation) 2664: 2244(ptr) AccessChain 34(data) 37 2243 38 2665: 25(int64_t) Load 2664 2666: 25(int64_t) GroupNonUniformSMin 42 ExclusiveScan 2665 2667: 2244(ptr) AccessChain 34(data) 2663 2243 38 Store 2667 2666 2668: 6(int) Load 8(invocation) 2669: 2251(ptr) AccessChain 34(data) 46 2243 2670: 26(i64vec4) Load 2669 2671:2250(i64vec2) VectorShuffle 2670 2670 0 1 2672:2250(i64vec2) GroupNonUniformSMin 42 ExclusiveScan 2671 2673: 2251(ptr) AccessChain 34(data) 2668 2243 2674: 26(i64vec4) Load 2673 2675: 26(i64vec4) VectorShuffle 2674 2672 4 5 2 3 Store 2673 2675 2676: 6(int) Load 8(invocation) 2677: 2251(ptr) AccessChain 34(data) 57 2243 2678: 26(i64vec4) Load 2677 2679:2260(i64vec3) VectorShuffle 2678 2678 0 1 2 2680:2260(i64vec3) GroupNonUniformSMin 42 ExclusiveScan 2679 2681: 2251(ptr) AccessChain 34(data) 2676 2243 2682: 26(i64vec4) Load 2681 2683: 26(i64vec4) VectorShuffle 2682 2680 4 5 6 3 Store 2681 2683 2684: 6(int) Load 8(invocation) 2685: 2251(ptr) AccessChain 34(data) 67 2243 2686: 26(i64vec4) Load 2685 2687: 26(i64vec4) GroupNonUniformSMin 42 ExclusiveScan 2686 2688: 2251(ptr) AccessChain 34(data) 2684 2243 Store 2688 2687 2689: 6(int) Load 8(invocation) 2690: 2244(ptr) AccessChain 34(data) 37 2243 38 2691: 25(int64_t) Load 2690 2692: 25(int64_t) GroupNonUniformSMax 42 ExclusiveScan 2691 2693: 2244(ptr) AccessChain 34(data) 2689 2243 38 Store 2693 2692 2694: 6(int) Load 8(invocation) 2695: 2251(ptr) AccessChain 34(data) 46 2243 2696: 26(i64vec4) Load 2695 2697:2250(i64vec2) VectorShuffle 2696 2696 0 1 2698:2250(i64vec2) GroupNonUniformSMax 42 ExclusiveScan 2697 2699: 2251(ptr) AccessChain 34(data) 2694 2243 2700: 26(i64vec4) Load 2699 2701: 26(i64vec4) VectorShuffle 2700 2698 4 5 2 3 Store 2699 2701 2702: 6(int) Load 8(invocation) 2703: 2251(ptr) AccessChain 34(data) 57 2243 2704: 26(i64vec4) Load 2703 2705:2260(i64vec3) VectorShuffle 2704 2704 0 1 2 2706:2260(i64vec3) GroupNonUniformSMax 42 ExclusiveScan 2705 2707: 2251(ptr) AccessChain 34(data) 2702 2243 2708: 26(i64vec4) Load 2707 2709: 26(i64vec4) VectorShuffle 2708 2706 4 5 6 3 Store 2707 2709 2710: 6(int) Load 8(invocation) 2711: 2251(ptr) AccessChain 34(data) 67 2243 2712: 26(i64vec4) Load 2711 2713: 26(i64vec4) GroupNonUniformSMax 42 ExclusiveScan 2712 2714: 2251(ptr) AccessChain 34(data) 2710 2243 Store 2714 2713 2715: 6(int) Load 8(invocation) 2716: 2244(ptr) AccessChain 34(data) 37 2243 38 2717: 25(int64_t) Load 2716 2718: 25(int64_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2717 2719: 2244(ptr) AccessChain 34(data) 2715 2243 38 Store 2719 2718 2720: 6(int) Load 8(invocation) 2721: 2251(ptr) AccessChain 34(data) 46 2243 2722: 26(i64vec4) Load 2721 2723:2250(i64vec2) VectorShuffle 2722 2722 0 1 2724:2250(i64vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2723 2725: 2251(ptr) AccessChain 34(data) 2720 2243 2726: 26(i64vec4) Load 2725 2727: 26(i64vec4) VectorShuffle 2726 2724 4 5 2 3 Store 2725 2727 2728: 6(int) Load 8(invocation) 2729: 2251(ptr) AccessChain 34(data) 57 2243 2730: 26(i64vec4) Load 2729 2731:2260(i64vec3) VectorShuffle 2730 2730 0 1 2 2732:2260(i64vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2731 2733: 2251(ptr) AccessChain 34(data) 2728 2243 2734: 26(i64vec4) Load 2733 2735: 26(i64vec4) VectorShuffle 2734 2732 4 5 6 3 Store 2733 2735 2736: 6(int) Load 8(invocation) 2737: 2251(ptr) AccessChain 34(data) 67 2243 2738: 26(i64vec4) Load 2737 2739: 26(i64vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2738 2740: 2251(ptr) AccessChain 34(data) 2736 2243 Store 2740 2739 2741: 6(int) Load 8(invocation) 2742: 2244(ptr) AccessChain 34(data) 37 2243 38 2743: 25(int64_t) Load 2742 2744: 25(int64_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 2743 2745: 2244(ptr) AccessChain 34(data) 2741 2243 38 Store 2745 2744 2746: 6(int) Load 8(invocation) 2747: 2251(ptr) AccessChain 34(data) 46 2243 2748: 26(i64vec4) Load 2747 2749:2250(i64vec2) VectorShuffle 2748 2748 0 1 2750:2250(i64vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 2749 2751: 2251(ptr) AccessChain 34(data) 2746 2243 2752: 26(i64vec4) Load 2751 2753: 26(i64vec4) VectorShuffle 2752 2750 4 5 2 3 Store 2751 2753 2754: 6(int) Load 8(invocation) 2755: 2251(ptr) AccessChain 34(data) 57 2243 2756: 26(i64vec4) Load 2755 2757:2260(i64vec3) VectorShuffle 2756 2756 0 1 2 2758:2260(i64vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 2757 2759: 2251(ptr) AccessChain 34(data) 2754 2243 2760: 26(i64vec4) Load 2759 2761: 26(i64vec4) VectorShuffle 2760 2758 4 5 6 3 Store 2759 2761 2762: 6(int) Load 8(invocation) 2763: 2251(ptr) AccessChain 34(data) 67 2243 2764: 26(i64vec4) Load 2763 2765: 26(i64vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 2764 2766: 2251(ptr) AccessChain 34(data) 2762 2243 Store 2766 2765 2767: 6(int) Load 8(invocation) 2768: 2244(ptr) AccessChain 34(data) 37 2243 38 2769: 25(int64_t) Load 2768 2770: 25(int64_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 2769 2771: 2244(ptr) AccessChain 34(data) 2767 2243 38 Store 2771 2770 2772: 6(int) Load 8(invocation) 2773: 2251(ptr) AccessChain 34(data) 46 2243 2774: 26(i64vec4) Load 2773 2775:2250(i64vec2) VectorShuffle 2774 2774 0 1 2776:2250(i64vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 2775 2777: 2251(ptr) AccessChain 34(data) 2772 2243 2778: 26(i64vec4) Load 2777 2779: 26(i64vec4) VectorShuffle 2778 2776 4 5 2 3 Store 2777 2779 2780: 6(int) Load 8(invocation) 2781: 2251(ptr) AccessChain 34(data) 57 2243 2782: 26(i64vec4) Load 2781 2783:2260(i64vec3) VectorShuffle 2782 2782 0 1 2 2784:2260(i64vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 2783 2785: 2251(ptr) AccessChain 34(data) 2780 2243 2786: 26(i64vec4) Load 2785 2787: 26(i64vec4) VectorShuffle 2786 2784 4 5 6 3 Store 2785 2787 2788: 6(int) Load 8(invocation) 2789: 2251(ptr) AccessChain 34(data) 67 2243 2790: 26(i64vec4) Load 2789 2791: 26(i64vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 2790 2792: 2251(ptr) AccessChain 34(data) 2788 2243 Store 2792 2791 2793: 6(int) Load 8(invocation) 2796: 2795(ptr) AccessChain 34(data) 37 2794 38 2797: 27(int64_t) Load 2796 2798: 27(int64_t) GroupNonUniformIAdd 42 Reduce 2797 2799: 2795(ptr) AccessChain 34(data) 2793 2794 38 Store 2799 2798 2800: 6(int) Load 8(invocation) 2803: 2802(ptr) AccessChain 34(data) 46 2794 2804: 28(i64vec4) Load 2803 2805:2801(i64vec2) VectorShuffle 2804 2804 0 1 2806:2801(i64vec2) GroupNonUniformIAdd 42 Reduce 2805 2807: 2802(ptr) AccessChain 34(data) 2800 2794 2808: 28(i64vec4) Load 2807 2809: 28(i64vec4) VectorShuffle 2808 2806 4 5 2 3 Store 2807 2809 2810: 6(int) Load 8(invocation) 2812: 2802(ptr) AccessChain 34(data) 57 2794 2813: 28(i64vec4) Load 2812 2814:2811(i64vec3) VectorShuffle 2813 2813 0 1 2 2815:2811(i64vec3) GroupNonUniformIAdd 42 Reduce 2814 2816: 2802(ptr) AccessChain 34(data) 2810 2794 2817: 28(i64vec4) Load 2816 2818: 28(i64vec4) VectorShuffle 2817 2815 4 5 6 3 Store 2816 2818 2819: 6(int) Load 8(invocation) 2820: 2802(ptr) AccessChain 34(data) 67 2794 2821: 28(i64vec4) Load 2820 2822: 28(i64vec4) GroupNonUniformIAdd 42 Reduce 2821 2823: 2802(ptr) AccessChain 34(data) 2819 2794 Store 2823 2822 2824: 6(int) Load 8(invocation) 2825: 2795(ptr) AccessChain 34(data) 37 2794 38 2826: 27(int64_t) Load 2825 2827: 27(int64_t) GroupNonUniformIMul 42 Reduce 2826 2828: 2795(ptr) AccessChain 34(data) 2824 2794 38 Store 2828 2827 2829: 6(int) Load 8(invocation) 2830: 2802(ptr) AccessChain 34(data) 46 2794 2831: 28(i64vec4) Load 2830 2832:2801(i64vec2) VectorShuffle 2831 2831 0 1 2833:2801(i64vec2) GroupNonUniformIMul 42 Reduce 2832 2834: 2802(ptr) AccessChain 34(data) 2829 2794 2835: 28(i64vec4) Load 2834 2836: 28(i64vec4) VectorShuffle 2835 2833 4 5 2 3 Store 2834 2836 2837: 6(int) Load 8(invocation) 2838: 2802(ptr) AccessChain 34(data) 57 2794 2839: 28(i64vec4) Load 2838 2840:2811(i64vec3) VectorShuffle 2839 2839 0 1 2 2841:2811(i64vec3) GroupNonUniformIMul 42 Reduce 2840 2842: 2802(ptr) AccessChain 34(data) 2837 2794 2843: 28(i64vec4) Load 2842 2844: 28(i64vec4) VectorShuffle 2843 2841 4 5 6 3 Store 2842 2844 2845: 6(int) Load 8(invocation) 2846: 2802(ptr) AccessChain 34(data) 67 2794 2847: 28(i64vec4) Load 2846 2848: 28(i64vec4) GroupNonUniformIMul 42 Reduce 2847 2849: 2802(ptr) AccessChain 34(data) 2845 2794 Store 2849 2848 2850: 6(int) Load 8(invocation) 2851: 2795(ptr) AccessChain 34(data) 37 2794 38 2852: 27(int64_t) Load 2851 2853: 27(int64_t) GroupNonUniformUMin 42 Reduce 2852 2854: 2795(ptr) AccessChain 34(data) 2850 2794 38 Store 2854 2853 2855: 6(int) Load 8(invocation) 2856: 2802(ptr) AccessChain 34(data) 46 2794 2857: 28(i64vec4) Load 2856 2858:2801(i64vec2) VectorShuffle 2857 2857 0 1 2859:2801(i64vec2) GroupNonUniformUMin 42 Reduce 2858 2860: 2802(ptr) AccessChain 34(data) 2855 2794 2861: 28(i64vec4) Load 2860 2862: 28(i64vec4) VectorShuffle 2861 2859 4 5 2 3 Store 2860 2862 2863: 6(int) Load 8(invocation) 2864: 2802(ptr) AccessChain 34(data) 57 2794 2865: 28(i64vec4) Load 2864 2866:2811(i64vec3) VectorShuffle 2865 2865 0 1 2 2867:2811(i64vec3) GroupNonUniformUMin 42 Reduce 2866 2868: 2802(ptr) AccessChain 34(data) 2863 2794 2869: 28(i64vec4) Load 2868 2870: 28(i64vec4) VectorShuffle 2869 2867 4 5 6 3 Store 2868 2870 2871: 6(int) Load 8(invocation) 2872: 2802(ptr) AccessChain 34(data) 67 2794 2873: 28(i64vec4) Load 2872 2874: 28(i64vec4) GroupNonUniformUMin 42 Reduce 2873 2875: 2802(ptr) AccessChain 34(data) 2871 2794 Store 2875 2874 2876: 6(int) Load 8(invocation) 2877: 2795(ptr) AccessChain 34(data) 37 2794 38 2878: 27(int64_t) Load 2877 2879: 27(int64_t) GroupNonUniformUMax 42 Reduce 2878 2880: 2795(ptr) AccessChain 34(data) 2876 2794 38 Store 2880 2879 2881: 6(int) Load 8(invocation) 2882: 2802(ptr) AccessChain 34(data) 46 2794 2883: 28(i64vec4) Load 2882 2884:2801(i64vec2) VectorShuffle 2883 2883 0 1 2885:2801(i64vec2) GroupNonUniformUMax 42 Reduce 2884 2886: 2802(ptr) AccessChain 34(data) 2881 2794 2887: 28(i64vec4) Load 2886 2888: 28(i64vec4) VectorShuffle 2887 2885 4 5 2 3 Store 2886 2888 2889: 6(int) Load 8(invocation) 2890: 2802(ptr) AccessChain 34(data) 57 2794 2891: 28(i64vec4) Load 2890 2892:2811(i64vec3) VectorShuffle 2891 2891 0 1 2 2893:2811(i64vec3) GroupNonUniformUMax 42 Reduce 2892 2894: 2802(ptr) AccessChain 34(data) 2889 2794 2895: 28(i64vec4) Load 2894 2896: 28(i64vec4) VectorShuffle 2895 2893 4 5 6 3 Store 2894 2896 2897: 6(int) Load 8(invocation) 2898: 2802(ptr) AccessChain 34(data) 67 2794 2899: 28(i64vec4) Load 2898 2900: 28(i64vec4) GroupNonUniformUMax 42 Reduce 2899 2901: 2802(ptr) AccessChain 34(data) 2897 2794 Store 2901 2900 2902: 6(int) Load 8(invocation) 2903: 2795(ptr) AccessChain 34(data) 37 2794 38 2904: 27(int64_t) Load 2903 2905: 27(int64_t) GroupNonUniformBitwiseAnd 42 Reduce 2904 2906: 2795(ptr) AccessChain 34(data) 2902 2794 38 Store 2906 2905 2907: 6(int) Load 8(invocation) 2908: 2802(ptr) AccessChain 34(data) 46 2794 2909: 28(i64vec4) Load 2908 2910:2801(i64vec2) VectorShuffle 2909 2909 0 1 2911:2801(i64vec2) GroupNonUniformBitwiseAnd 42 Reduce 2910 2912: 2802(ptr) AccessChain 34(data) 2907 2794 2913: 28(i64vec4) Load 2912 2914: 28(i64vec4) VectorShuffle 2913 2911 4 5 2 3 Store 2912 2914 2915: 6(int) Load 8(invocation) 2916: 2802(ptr) AccessChain 34(data) 57 2794 2917: 28(i64vec4) Load 2916 2918:2811(i64vec3) VectorShuffle 2917 2917 0 1 2 2919:2811(i64vec3) GroupNonUniformBitwiseAnd 42 Reduce 2918 2920: 2802(ptr) AccessChain 34(data) 2915 2794 2921: 28(i64vec4) Load 2920 2922: 28(i64vec4) VectorShuffle 2921 2919 4 5 6 3 Store 2920 2922 2923: 6(int) Load 8(invocation) 2924: 2802(ptr) AccessChain 34(data) 67 2794 2925: 28(i64vec4) Load 2924 2926: 28(i64vec4) GroupNonUniformBitwiseAnd 42 Reduce 2925 2927: 2802(ptr) AccessChain 34(data) 2923 2794 Store 2927 2926 2928: 6(int) Load 8(invocation) 2929: 2795(ptr) AccessChain 34(data) 37 2794 38 2930: 27(int64_t) Load 2929 2931: 27(int64_t) GroupNonUniformBitwiseOr 42 Reduce 2930 2932: 2795(ptr) AccessChain 34(data) 2928 2794 38 Store 2932 2931 2933: 6(int) Load 8(invocation) 2934: 2802(ptr) AccessChain 34(data) 46 2794 2935: 28(i64vec4) Load 2934 2936:2801(i64vec2) VectorShuffle 2935 2935 0 1 2937:2801(i64vec2) GroupNonUniformBitwiseOr 42 Reduce 2936 2938: 2802(ptr) AccessChain 34(data) 2933 2794 2939: 28(i64vec4) Load 2938 2940: 28(i64vec4) VectorShuffle 2939 2937 4 5 2 3 Store 2938 2940 2941: 6(int) Load 8(invocation) 2942: 2802(ptr) AccessChain 34(data) 57 2794 2943: 28(i64vec4) Load 2942 2944:2811(i64vec3) VectorShuffle 2943 2943 0 1 2 2945:2811(i64vec3) GroupNonUniformBitwiseOr 42 Reduce 2944 2946: 2802(ptr) AccessChain 34(data) 2941 2794 2947: 28(i64vec4) Load 2946 2948: 28(i64vec4) VectorShuffle 2947 2945 4 5 6 3 Store 2946 2948 2949: 6(int) Load 8(invocation) 2950: 2802(ptr) AccessChain 34(data) 67 2794 2951: 28(i64vec4) Load 2950 2952: 28(i64vec4) GroupNonUniformBitwiseOr 42 Reduce 2951 2953: 2802(ptr) AccessChain 34(data) 2949 2794 Store 2953 2952 2954: 6(int) Load 8(invocation) 2955: 2795(ptr) AccessChain 34(data) 37 2794 38 2956: 27(int64_t) Load 2955 2957: 27(int64_t) GroupNonUniformBitwiseXor 42 Reduce 2956 2958: 2795(ptr) AccessChain 34(data) 2954 2794 38 Store 2958 2957 2959: 6(int) Load 8(invocation) 2960: 2802(ptr) AccessChain 34(data) 46 2794 2961: 28(i64vec4) Load 2960 2962:2801(i64vec2) VectorShuffle 2961 2961 0 1 2963:2801(i64vec2) GroupNonUniformBitwiseXor 42 Reduce 2962 2964: 2802(ptr) AccessChain 34(data) 2959 2794 2965: 28(i64vec4) Load 2964 2966: 28(i64vec4) VectorShuffle 2965 2963 4 5 2 3 Store 2964 2966 2967: 6(int) Load 8(invocation) 2968: 2802(ptr) AccessChain 34(data) 57 2794 2969: 28(i64vec4) Load 2968 2970:2811(i64vec3) VectorShuffle 2969 2969 0 1 2 2971:2811(i64vec3) GroupNonUniformBitwiseXor 42 Reduce 2970 2972: 2802(ptr) AccessChain 34(data) 2967 2794 2973: 28(i64vec4) Load 2972 2974: 28(i64vec4) VectorShuffle 2973 2971 4 5 6 3 Store 2972 2974 2975: 6(int) Load 8(invocation) 2976: 2802(ptr) AccessChain 34(data) 67 2794 2977: 28(i64vec4) Load 2976 2978: 28(i64vec4) GroupNonUniformBitwiseXor 42 Reduce 2977 2979: 2802(ptr) AccessChain 34(data) 2975 2794 Store 2979 2978 2980: 6(int) Load 8(invocation) 2981: 2795(ptr) AccessChain 34(data) 37 2794 38 2982: 27(int64_t) Load 2981 2983: 27(int64_t) GroupNonUniformIAdd 42 InclusiveScan 2982 2984: 2795(ptr) AccessChain 34(data) 2980 2794 38 Store 2984 2983 2985: 6(int) Load 8(invocation) 2986: 2802(ptr) AccessChain 34(data) 46 2794 2987: 28(i64vec4) Load 2986 2988:2801(i64vec2) VectorShuffle 2987 2987 0 1 2989:2801(i64vec2) GroupNonUniformIAdd 42 InclusiveScan 2988 2990: 2802(ptr) AccessChain 34(data) 2985 2794 2991: 28(i64vec4) Load 2990 2992: 28(i64vec4) VectorShuffle 2991 2989 4 5 2 3 Store 2990 2992 2993: 6(int) Load 8(invocation) 2994: 2802(ptr) AccessChain 34(data) 57 2794 2995: 28(i64vec4) Load 2994 2996:2811(i64vec3) VectorShuffle 2995 2995 0 1 2 2997:2811(i64vec3) GroupNonUniformIAdd 42 InclusiveScan 2996 2998: 2802(ptr) AccessChain 34(data) 2993 2794 2999: 28(i64vec4) Load 2998 3000: 28(i64vec4) VectorShuffle 2999 2997 4 5 6 3 Store 2998 3000 3001: 6(int) Load 8(invocation) 3002: 2802(ptr) AccessChain 34(data) 67 2794 3003: 28(i64vec4) Load 3002 3004: 28(i64vec4) GroupNonUniformIAdd 42 InclusiveScan 3003 3005: 2802(ptr) AccessChain 34(data) 3001 2794 Store 3005 3004 3006: 6(int) Load 8(invocation) 3007: 2795(ptr) AccessChain 34(data) 37 2794 38 3008: 27(int64_t) Load 3007 3009: 27(int64_t) GroupNonUniformIMul 42 InclusiveScan 3008 3010: 2795(ptr) AccessChain 34(data) 3006 2794 38 Store 3010 3009 3011: 6(int) Load 8(invocation) 3012: 2802(ptr) AccessChain 34(data) 46 2794 3013: 28(i64vec4) Load 3012 3014:2801(i64vec2) VectorShuffle 3013 3013 0 1 3015:2801(i64vec2) GroupNonUniformIMul 42 InclusiveScan 3014 3016: 2802(ptr) AccessChain 34(data) 3011 2794 3017: 28(i64vec4) Load 3016 3018: 28(i64vec4) VectorShuffle 3017 3015 4 5 2 3 Store 3016 3018 3019: 6(int) Load 8(invocation) 3020: 2802(ptr) AccessChain 34(data) 57 2794 3021: 28(i64vec4) Load 3020 3022:2811(i64vec3) VectorShuffle 3021 3021 0 1 2 3023:2811(i64vec3) GroupNonUniformIMul 42 InclusiveScan 3022 3024: 2802(ptr) AccessChain 34(data) 3019 2794 3025: 28(i64vec4) Load 3024 3026: 28(i64vec4) VectorShuffle 3025 3023 4 5 6 3 Store 3024 3026 3027: 6(int) Load 8(invocation) 3028: 2802(ptr) AccessChain 34(data) 67 2794 3029: 28(i64vec4) Load 3028 3030: 28(i64vec4) GroupNonUniformIMul 42 InclusiveScan 3029 3031: 2802(ptr) AccessChain 34(data) 3027 2794 Store 3031 3030 3032: 6(int) Load 8(invocation) 3033: 2795(ptr) AccessChain 34(data) 37 2794 38 3034: 27(int64_t) Load 3033 3035: 27(int64_t) GroupNonUniformUMin 42 InclusiveScan 3034 3036: 2795(ptr) AccessChain 34(data) 3032 2794 38 Store 3036 3035 3037: 6(int) Load 8(invocation) 3038: 2802(ptr) AccessChain 34(data) 46 2794 3039: 28(i64vec4) Load 3038 3040:2801(i64vec2) VectorShuffle 3039 3039 0 1 3041:2801(i64vec2) GroupNonUniformUMin 42 InclusiveScan 3040 3042: 2802(ptr) AccessChain 34(data) 3037 2794 3043: 28(i64vec4) Load 3042 3044: 28(i64vec4) VectorShuffle 3043 3041 4 5 2 3 Store 3042 3044 3045: 6(int) Load 8(invocation) 3046: 2802(ptr) AccessChain 34(data) 57 2794 3047: 28(i64vec4) Load 3046 3048:2811(i64vec3) VectorShuffle 3047 3047 0 1 2 3049:2811(i64vec3) GroupNonUniformUMin 42 InclusiveScan 3048 3050: 2802(ptr) AccessChain 34(data) 3045 2794 3051: 28(i64vec4) Load 3050 3052: 28(i64vec4) VectorShuffle 3051 3049 4 5 6 3 Store 3050 3052 3053: 6(int) Load 8(invocation) 3054: 2802(ptr) AccessChain 34(data) 67 2794 3055: 28(i64vec4) Load 3054 3056: 28(i64vec4) GroupNonUniformUMin 42 InclusiveScan 3055 3057: 2802(ptr) AccessChain 34(data) 3053 2794 Store 3057 3056 3058: 6(int) Load 8(invocation) 3059: 2795(ptr) AccessChain 34(data) 37 2794 38 3060: 27(int64_t) Load 3059 3061: 27(int64_t) GroupNonUniformUMax 42 InclusiveScan 3060 3062: 2795(ptr) AccessChain 34(data) 3058 2794 38 Store 3062 3061 3063: 6(int) Load 8(invocation) 3064: 2802(ptr) AccessChain 34(data) 46 2794 3065: 28(i64vec4) Load 3064 3066:2801(i64vec2) VectorShuffle 3065 3065 0 1 3067:2801(i64vec2) GroupNonUniformUMax 42 InclusiveScan 3066 3068: 2802(ptr) AccessChain 34(data) 3063 2794 3069: 28(i64vec4) Load 3068 3070: 28(i64vec4) VectorShuffle 3069 3067 4 5 2 3 Store 3068 3070 3071: 6(int) Load 8(invocation) 3072: 2802(ptr) AccessChain 34(data) 57 2794 3073: 28(i64vec4) Load 3072 3074:2811(i64vec3) VectorShuffle 3073 3073 0 1 2 3075:2811(i64vec3) GroupNonUniformUMax 42 InclusiveScan 3074 3076: 2802(ptr) AccessChain 34(data) 3071 2794 3077: 28(i64vec4) Load 3076 3078: 28(i64vec4) VectorShuffle 3077 3075 4 5 6 3 Store 3076 3078 3079: 6(int) Load 8(invocation) 3080: 2802(ptr) AccessChain 34(data) 67 2794 3081: 28(i64vec4) Load 3080 3082: 28(i64vec4) GroupNonUniformUMax 42 InclusiveScan 3081 3083: 2802(ptr) AccessChain 34(data) 3079 2794 Store 3083 3082 3084: 6(int) Load 8(invocation) 3085: 2795(ptr) AccessChain 34(data) 37 2794 38 3086: 27(int64_t) Load 3085 3087: 27(int64_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 3086 3088: 2795(ptr) AccessChain 34(data) 3084 2794 38 Store 3088 3087 3089: 6(int) Load 8(invocation) 3090: 2802(ptr) AccessChain 34(data) 46 2794 3091: 28(i64vec4) Load 3090 3092:2801(i64vec2) VectorShuffle 3091 3091 0 1 3093:2801(i64vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 3092 3094: 2802(ptr) AccessChain 34(data) 3089 2794 3095: 28(i64vec4) Load 3094 3096: 28(i64vec4) VectorShuffle 3095 3093 4 5 2 3 Store 3094 3096 3097: 6(int) Load 8(invocation) 3098: 2802(ptr) AccessChain 34(data) 57 2794 3099: 28(i64vec4) Load 3098 3100:2811(i64vec3) VectorShuffle 3099 3099 0 1 2 3101:2811(i64vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 3100 3102: 2802(ptr) AccessChain 34(data) 3097 2794 3103: 28(i64vec4) Load 3102 3104: 28(i64vec4) VectorShuffle 3103 3101 4 5 6 3 Store 3102 3104 3105: 6(int) Load 8(invocation) 3106: 2802(ptr) AccessChain 34(data) 67 2794 3107: 28(i64vec4) Load 3106 3108: 28(i64vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 3107 3109: 2802(ptr) AccessChain 34(data) 3105 2794 Store 3109 3108 3110: 6(int) Load 8(invocation) 3111: 2795(ptr) AccessChain 34(data) 37 2794 38 3112: 27(int64_t) Load 3111 3113: 27(int64_t) GroupNonUniformBitwiseOr 42 InclusiveScan 3112 3114: 2795(ptr) AccessChain 34(data) 3110 2794 38 Store 3114 3113 3115: 6(int) Load 8(invocation) 3116: 2802(ptr) AccessChain 34(data) 46 2794 3117: 28(i64vec4) Load 3116 3118:2801(i64vec2) VectorShuffle 3117 3117 0 1 3119:2801(i64vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 3118 3120: 2802(ptr) AccessChain 34(data) 3115 2794 3121: 28(i64vec4) Load 3120 3122: 28(i64vec4) VectorShuffle 3121 3119 4 5 2 3 Store 3120 3122 3123: 6(int) Load 8(invocation) 3124: 2802(ptr) AccessChain 34(data) 57 2794 3125: 28(i64vec4) Load 3124 3126:2811(i64vec3) VectorShuffle 3125 3125 0 1 2 3127:2811(i64vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 3126 3128: 2802(ptr) AccessChain 34(data) 3123 2794 3129: 28(i64vec4) Load 3128 3130: 28(i64vec4) VectorShuffle 3129 3127 4 5 6 3 Store 3128 3130 3131: 6(int) Load 8(invocation) 3132: 2802(ptr) AccessChain 34(data) 67 2794 3133: 28(i64vec4) Load 3132 3134: 28(i64vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 3133 3135: 2802(ptr) AccessChain 34(data) 3131 2794 Store 3135 3134 3136: 6(int) Load 8(invocation) 3137: 2795(ptr) AccessChain 34(data) 37 2794 38 3138: 27(int64_t) Load 3137 3139: 27(int64_t) GroupNonUniformBitwiseXor 42 InclusiveScan 3138 3140: 2795(ptr) AccessChain 34(data) 3136 2794 38 Store 3140 3139 3141: 6(int) Load 8(invocation) 3142: 2802(ptr) AccessChain 34(data) 46 2794 3143: 28(i64vec4) Load 3142 3144:2801(i64vec2) VectorShuffle 3143 3143 0 1 3145:2801(i64vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 3144 3146: 2802(ptr) AccessChain 34(data) 3141 2794 3147: 28(i64vec4) Load 3146 3148: 28(i64vec4) VectorShuffle 3147 3145 4 5 2 3 Store 3146 3148 3149: 6(int) Load 8(invocation) 3150: 2802(ptr) AccessChain 34(data) 57 2794 3151: 28(i64vec4) Load 3150 3152:2811(i64vec3) VectorShuffle 3151 3151 0 1 2 3153:2811(i64vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 3152 3154: 2802(ptr) AccessChain 34(data) 3149 2794 3155: 28(i64vec4) Load 3154 3156: 28(i64vec4) VectorShuffle 3155 3153 4 5 6 3 Store 3154 3156 3157: 6(int) Load 8(invocation) 3158: 2802(ptr) AccessChain 34(data) 67 2794 3159: 28(i64vec4) Load 3158 3160: 28(i64vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 3159 3161: 2802(ptr) AccessChain 34(data) 3157 2794 Store 3161 3160 3162: 6(int) Load 8(invocation) 3163: 2795(ptr) AccessChain 34(data) 37 2794 38 3164: 27(int64_t) Load 3163 3165: 27(int64_t) GroupNonUniformIAdd 42 ExclusiveScan 3164 3166: 2795(ptr) AccessChain 34(data) 3162 2794 38 Store 3166 3165 3167: 6(int) Load 8(invocation) 3168: 2802(ptr) AccessChain 34(data) 46 2794 3169: 28(i64vec4) Load 3168 3170:2801(i64vec2) VectorShuffle 3169 3169 0 1 3171:2801(i64vec2) GroupNonUniformIAdd 42 ExclusiveScan 3170 3172: 2802(ptr) AccessChain 34(data) 3167 2794 3173: 28(i64vec4) Load 3172 3174: 28(i64vec4) VectorShuffle 3173 3171 4 5 2 3 Store 3172 3174 3175: 6(int) Load 8(invocation) 3176: 2802(ptr) AccessChain 34(data) 57 2794 3177: 28(i64vec4) Load 3176 3178:2811(i64vec3) VectorShuffle 3177 3177 0 1 2 3179:2811(i64vec3) GroupNonUniformIAdd 42 ExclusiveScan 3178 3180: 2802(ptr) AccessChain 34(data) 3175 2794 3181: 28(i64vec4) Load 3180 3182: 28(i64vec4) VectorShuffle 3181 3179 4 5 6 3 Store 3180 3182 3183: 6(int) Load 8(invocation) 3184: 2802(ptr) AccessChain 34(data) 67 2794 3185: 28(i64vec4) Load 3184 3186: 28(i64vec4) GroupNonUniformIAdd 42 ExclusiveScan 3185 3187: 2802(ptr) AccessChain 34(data) 3183 2794 Store 3187 3186 3188: 6(int) Load 8(invocation) 3189: 2795(ptr) AccessChain 34(data) 37 2794 38 3190: 27(int64_t) Load 3189 3191: 27(int64_t) GroupNonUniformIMul 42 ExclusiveScan 3190 3192: 2795(ptr) AccessChain 34(data) 3188 2794 38 Store 3192 3191 3193: 6(int) Load 8(invocation) 3194: 2802(ptr) AccessChain 34(data) 46 2794 3195: 28(i64vec4) Load 3194 3196:2801(i64vec2) VectorShuffle 3195 3195 0 1 3197:2801(i64vec2) GroupNonUniformIMul 42 ExclusiveScan 3196 3198: 2802(ptr) AccessChain 34(data) 3193 2794 3199: 28(i64vec4) Load 3198 3200: 28(i64vec4) VectorShuffle 3199 3197 4 5 2 3 Store 3198 3200 3201: 6(int) Load 8(invocation) 3202: 2802(ptr) AccessChain 34(data) 57 2794 3203: 28(i64vec4) Load 3202 3204:2811(i64vec3) VectorShuffle 3203 3203 0 1 2 3205:2811(i64vec3) GroupNonUniformIMul 42 ExclusiveScan 3204 3206: 2802(ptr) AccessChain 34(data) 3201 2794 3207: 28(i64vec4) Load 3206 3208: 28(i64vec4) VectorShuffle 3207 3205 4 5 6 3 Store 3206 3208 3209: 6(int) Load 8(invocation) 3210: 2802(ptr) AccessChain 34(data) 67 2794 3211: 28(i64vec4) Load 3210 3212: 28(i64vec4) GroupNonUniformIMul 42 ExclusiveScan 3211 3213: 2802(ptr) AccessChain 34(data) 3209 2794 Store 3213 3212 3214: 6(int) Load 8(invocation) 3215: 2795(ptr) AccessChain 34(data) 37 2794 38 3216: 27(int64_t) Load 3215 3217: 27(int64_t) GroupNonUniformUMin 42 ExclusiveScan 3216 3218: 2795(ptr) AccessChain 34(data) 3214 2794 38 Store 3218 3217 3219: 6(int) Load 8(invocation) 3220: 2802(ptr) AccessChain 34(data) 46 2794 3221: 28(i64vec4) Load 3220 3222:2801(i64vec2) VectorShuffle 3221 3221 0 1 3223:2801(i64vec2) GroupNonUniformUMin 42 ExclusiveScan 3222 3224: 2802(ptr) AccessChain 34(data) 3219 2794 3225: 28(i64vec4) Load 3224 3226: 28(i64vec4) VectorShuffle 3225 3223 4 5 2 3 Store 3224 3226 3227: 6(int) Load 8(invocation) 3228: 2802(ptr) AccessChain 34(data) 57 2794 3229: 28(i64vec4) Load 3228 3230:2811(i64vec3) VectorShuffle 3229 3229 0 1 2 3231:2811(i64vec3) GroupNonUniformUMin 42 ExclusiveScan 3230 3232: 2802(ptr) AccessChain 34(data) 3227 2794 3233: 28(i64vec4) Load 3232 3234: 28(i64vec4) VectorShuffle 3233 3231 4 5 6 3 Store 3232 3234 3235: 6(int) Load 8(invocation) 3236: 2802(ptr) AccessChain 34(data) 67 2794 3237: 28(i64vec4) Load 3236 3238: 28(i64vec4) GroupNonUniformUMin 42 ExclusiveScan 3237 3239: 2802(ptr) AccessChain 34(data) 3235 2794 Store 3239 3238 3240: 6(int) Load 8(invocation) 3241: 2795(ptr) AccessChain 34(data) 37 2794 38 3242: 27(int64_t) Load 3241 3243: 27(int64_t) GroupNonUniformUMax 42 ExclusiveScan 3242 3244: 2795(ptr) AccessChain 34(data) 3240 2794 38 Store 3244 3243 3245: 6(int) Load 8(invocation) 3246: 2802(ptr) AccessChain 34(data) 46 2794 3247: 28(i64vec4) Load 3246 3248:2801(i64vec2) VectorShuffle 3247 3247 0 1 3249:2801(i64vec2) GroupNonUniformUMax 42 ExclusiveScan 3248 3250: 2802(ptr) AccessChain 34(data) 3245 2794 3251: 28(i64vec4) Load 3250 3252: 28(i64vec4) VectorShuffle 3251 3249 4 5 2 3 Store 3250 3252 3253: 6(int) Load 8(invocation) 3254: 2802(ptr) AccessChain 34(data) 57 2794 3255: 28(i64vec4) Load 3254 3256:2811(i64vec3) VectorShuffle 3255 3255 0 1 2 3257:2811(i64vec3) GroupNonUniformUMax 42 ExclusiveScan 3256 3258: 2802(ptr) AccessChain 34(data) 3253 2794 3259: 28(i64vec4) Load 3258 3260: 28(i64vec4) VectorShuffle 3259 3257 4 5 6 3 Store 3258 3260 3261: 6(int) Load 8(invocation) 3262: 2802(ptr) AccessChain 34(data) 67 2794 3263: 28(i64vec4) Load 3262 3264: 28(i64vec4) GroupNonUniformUMax 42 ExclusiveScan 3263 3265: 2802(ptr) AccessChain 34(data) 3261 2794 Store 3265 3264 3266: 6(int) Load 8(invocation) 3267: 2795(ptr) AccessChain 34(data) 37 2794 38 3268: 27(int64_t) Load 3267 3269: 27(int64_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3268 3270: 2795(ptr) AccessChain 34(data) 3266 2794 38 Store 3270 3269 3271: 6(int) Load 8(invocation) 3272: 2802(ptr) AccessChain 34(data) 46 2794 3273: 28(i64vec4) Load 3272 3274:2801(i64vec2) VectorShuffle 3273 3273 0 1 3275:2801(i64vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3274 3276: 2802(ptr) AccessChain 34(data) 3271 2794 3277: 28(i64vec4) Load 3276 3278: 28(i64vec4) VectorShuffle 3277 3275 4 5 2 3 Store 3276 3278 3279: 6(int) Load 8(invocation) 3280: 2802(ptr) AccessChain 34(data) 57 2794 3281: 28(i64vec4) Load 3280 3282:2811(i64vec3) VectorShuffle 3281 3281 0 1 2 3283:2811(i64vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3282 3284: 2802(ptr) AccessChain 34(data) 3279 2794 3285: 28(i64vec4) Load 3284 3286: 28(i64vec4) VectorShuffle 3285 3283 4 5 6 3 Store 3284 3286 3287: 6(int) Load 8(invocation) 3288: 2802(ptr) AccessChain 34(data) 67 2794 3289: 28(i64vec4) Load 3288 3290: 28(i64vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3289 3291: 2802(ptr) AccessChain 34(data) 3287 2794 Store 3291 3290 3292: 6(int) Load 8(invocation) 3293: 2795(ptr) AccessChain 34(data) 37 2794 38 3294: 27(int64_t) Load 3293 3295: 27(int64_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 3294 3296: 2795(ptr) AccessChain 34(data) 3292 2794 38 Store 3296 3295 3297: 6(int) Load 8(invocation) 3298: 2802(ptr) AccessChain 34(data) 46 2794 3299: 28(i64vec4) Load 3298 3300:2801(i64vec2) VectorShuffle 3299 3299 0 1 3301:2801(i64vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 3300 3302: 2802(ptr) AccessChain 34(data) 3297 2794 3303: 28(i64vec4) Load 3302 3304: 28(i64vec4) VectorShuffle 3303 3301 4 5 2 3 Store 3302 3304 3305: 6(int) Load 8(invocation) 3306: 2802(ptr) AccessChain 34(data) 57 2794 3307: 28(i64vec4) Load 3306 3308:2811(i64vec3) VectorShuffle 3307 3307 0 1 2 3309:2811(i64vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 3308 3310: 2802(ptr) AccessChain 34(data) 3305 2794 3311: 28(i64vec4) Load 3310 3312: 28(i64vec4) VectorShuffle 3311 3309 4 5 6 3 Store 3310 3312 3313: 6(int) Load 8(invocation) 3314: 2802(ptr) AccessChain 34(data) 67 2794 3315: 28(i64vec4) Load 3314 3316: 28(i64vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 3315 3317: 2802(ptr) AccessChain 34(data) 3313 2794 Store 3317 3316 3318: 6(int) Load 8(invocation) 3319: 2795(ptr) AccessChain 34(data) 37 2794 38 3320: 27(int64_t) Load 3319 3321: 27(int64_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 3320 3322: 2795(ptr) AccessChain 34(data) 3318 2794 38 Store 3322 3321 3323: 6(int) Load 8(invocation) 3324: 2802(ptr) AccessChain 34(data) 46 2794 3325: 28(i64vec4) Load 3324 3326:2801(i64vec2) VectorShuffle 3325 3325 0 1 3327:2801(i64vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 3326 3328: 2802(ptr) AccessChain 34(data) 3323 2794 3329: 28(i64vec4) Load 3328 3330: 28(i64vec4) VectorShuffle 3329 3327 4 5 2 3 Store 3328 3330 3331: 6(int) Load 8(invocation) 3332: 2802(ptr) AccessChain 34(data) 57 2794 3333: 28(i64vec4) Load 3332 3334:2811(i64vec3) VectorShuffle 3333 3333 0 1 2 3335:2811(i64vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 3334 3336: 2802(ptr) AccessChain 34(data) 3331 2794 3337: 28(i64vec4) Load 3336 3338: 28(i64vec4) VectorShuffle 3337 3335 4 5 6 3 Store 3336 3338 3339: 6(int) Load 8(invocation) 3340: 2802(ptr) AccessChain 34(data) 67 2794 3341: 28(i64vec4) Load 3340 3342: 28(i64vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 3341 3343: 2802(ptr) AccessChain 34(data) 3339 2794 Store 3343 3342 3344: 6(int) Load 8(invocation) 3347: 3346(ptr) AccessChain 34(data) 37 3345 38 3348:29(float16_t) Load 3347 3349:29(float16_t) GroupNonUniformFAdd 42 Reduce 3348 3350: 3346(ptr) AccessChain 34(data) 3344 3345 38 Store 3350 3349 3351: 6(int) Load 8(invocation) 3354: 3353(ptr) AccessChain 34(data) 46 3345 3355: 30(f16vec4) Load 3354 3356:3352(f16vec2) VectorShuffle 3355 3355 0 1 3357:3352(f16vec2) GroupNonUniformFAdd 42 Reduce 3356 3358: 3353(ptr) AccessChain 34(data) 3351 3345 3359: 30(f16vec4) Load 3358 3360: 30(f16vec4) VectorShuffle 3359 3357 4 5 2 3 Store 3358 3360 3361: 6(int) Load 8(invocation) 3363: 3353(ptr) AccessChain 34(data) 57 3345 3364: 30(f16vec4) Load 3363 3365:3362(f16vec3) VectorShuffle 3364 3364 0 1 2 3366:3362(f16vec3) GroupNonUniformFAdd 42 Reduce 3365 3367: 3353(ptr) AccessChain 34(data) 3361 3345 3368: 30(f16vec4) Load 3367 3369: 30(f16vec4) VectorShuffle 3368 3366 4 5 6 3 Store 3367 3369 3370: 6(int) Load 8(invocation) 3371: 3353(ptr) AccessChain 34(data) 67 3345 3372: 30(f16vec4) Load 3371 3373: 30(f16vec4) GroupNonUniformFAdd 42 Reduce 3372 3374: 3353(ptr) AccessChain 34(data) 3370 3345 Store 3374 3373 3375: 6(int) Load 8(invocation) 3376: 3346(ptr) AccessChain 34(data) 37 3345 38 3377:29(float16_t) Load 3376 3378:29(float16_t) GroupNonUniformFMul 42 Reduce 3377 3379: 3346(ptr) AccessChain 34(data) 3375 3345 38 Store 3379 3378 3380: 6(int) Load 8(invocation) 3381: 3353(ptr) AccessChain 34(data) 46 3345 3382: 30(f16vec4) Load 3381 3383:3352(f16vec2) VectorShuffle 3382 3382 0 1 3384:3352(f16vec2) GroupNonUniformFMul 42 Reduce 3383 3385: 3353(ptr) AccessChain 34(data) 3380 3345 3386: 30(f16vec4) Load 3385 3387: 30(f16vec4) VectorShuffle 3386 3384 4 5 2 3 Store 3385 3387 3388: 6(int) Load 8(invocation) 3389: 3353(ptr) AccessChain 34(data) 57 3345 3390: 30(f16vec4) Load 3389 3391:3362(f16vec3) VectorShuffle 3390 3390 0 1 2 3392:3362(f16vec3) GroupNonUniformFMul 42 Reduce 3391 3393: 3353(ptr) AccessChain 34(data) 3388 3345 3394: 30(f16vec4) Load 3393 3395: 30(f16vec4) VectorShuffle 3394 3392 4 5 6 3 Store 3393 3395 3396: 6(int) Load 8(invocation) 3397: 3353(ptr) AccessChain 34(data) 67 3345 3398: 30(f16vec4) Load 3397 3399: 30(f16vec4) GroupNonUniformFMul 42 Reduce 3398 3400: 3353(ptr) AccessChain 34(data) 3396 3345 Store 3400 3399 3401: 6(int) Load 8(invocation) 3402: 3346(ptr) AccessChain 34(data) 37 3345 38 3403:29(float16_t) Load 3402 3404:29(float16_t) GroupNonUniformFMin 42 Reduce 3403 3405: 3346(ptr) AccessChain 34(data) 3401 3345 38 Store 3405 3404 3406: 6(int) Load 8(invocation) 3407: 3353(ptr) AccessChain 34(data) 46 3345 3408: 30(f16vec4) Load 3407 3409:3352(f16vec2) VectorShuffle 3408 3408 0 1 3410:3352(f16vec2) GroupNonUniformFMin 42 Reduce 3409 3411: 3353(ptr) AccessChain 34(data) 3406 3345 3412: 30(f16vec4) Load 3411 3413: 30(f16vec4) VectorShuffle 3412 3410 4 5 2 3 Store 3411 3413 3414: 6(int) Load 8(invocation) 3415: 3353(ptr) AccessChain 34(data) 57 3345 3416: 30(f16vec4) Load 3415 3417:3362(f16vec3) VectorShuffle 3416 3416 0 1 2 3418:3362(f16vec3) GroupNonUniformFMin 42 Reduce 3417 3419: 3353(ptr) AccessChain 34(data) 3414 3345 3420: 30(f16vec4) Load 3419 3421: 30(f16vec4) VectorShuffle 3420 3418 4 5 6 3 Store 3419 3421 3422: 6(int) Load 8(invocation) 3423: 3353(ptr) AccessChain 34(data) 67 3345 3424: 30(f16vec4) Load 3423 3425: 30(f16vec4) GroupNonUniformFMin 42 Reduce 3424 3426: 3353(ptr) AccessChain 34(data) 3422 3345 Store 3426 3425 3427: 6(int) Load 8(invocation) 3428: 3346(ptr) AccessChain 34(data) 37 3345 38 3429:29(float16_t) Load 3428 3430:29(float16_t) GroupNonUniformFMax 42 Reduce 3429 3431: 3346(ptr) AccessChain 34(data) 3427 3345 38 Store 3431 3430 3432: 6(int) Load 8(invocation) 3433: 3353(ptr) AccessChain 34(data) 46 3345 3434: 30(f16vec4) Load 3433 3435:3352(f16vec2) VectorShuffle 3434 3434 0 1 3436:3352(f16vec2) GroupNonUniformFMax 42 Reduce 3435 3437: 3353(ptr) AccessChain 34(data) 3432 3345 3438: 30(f16vec4) Load 3437 3439: 30(f16vec4) VectorShuffle 3438 3436 4 5 2 3 Store 3437 3439 3440: 6(int) Load 8(invocation) 3441: 3353(ptr) AccessChain 34(data) 57 3345 3442: 30(f16vec4) Load 3441 3443:3362(f16vec3) VectorShuffle 3442 3442 0 1 2 3444:3362(f16vec3) GroupNonUniformFMax 42 Reduce 3443 3445: 3353(ptr) AccessChain 34(data) 3440 3345 3446: 30(f16vec4) Load 3445 3447: 30(f16vec4) VectorShuffle 3446 3444 4 5 6 3 Store 3445 3447 3448: 6(int) Load 8(invocation) 3449: 3353(ptr) AccessChain 34(data) 67 3345 3450: 30(f16vec4) Load 3449 3451: 30(f16vec4) GroupNonUniformFMax 42 Reduce 3450 3452: 3353(ptr) AccessChain 34(data) 3448 3345 Store 3452 3451 3453: 6(int) Load 8(invocation) 3454: 3346(ptr) AccessChain 34(data) 37 3345 38 3455:29(float16_t) Load 3454 3456:29(float16_t) GroupNonUniformFAdd 42 InclusiveScan 3455 3457: 3346(ptr) AccessChain 34(data) 3453 3345 38 Store 3457 3456 3458: 6(int) Load 8(invocation) 3459: 3353(ptr) AccessChain 34(data) 46 3345 3460: 30(f16vec4) Load 3459 3461:3352(f16vec2) VectorShuffle 3460 3460 0 1 3462:3352(f16vec2) GroupNonUniformFAdd 42 InclusiveScan 3461 3463: 3353(ptr) AccessChain 34(data) 3458 3345 3464: 30(f16vec4) Load 3463 3465: 30(f16vec4) VectorShuffle 3464 3462 4 5 2 3 Store 3463 3465 3466: 6(int) Load 8(invocation) 3467: 3353(ptr) AccessChain 34(data) 57 3345 3468: 30(f16vec4) Load 3467 3469:3362(f16vec3) VectorShuffle 3468 3468 0 1 2 3470:3362(f16vec3) GroupNonUniformFAdd 42 InclusiveScan 3469 3471: 3353(ptr) AccessChain 34(data) 3466 3345 3472: 30(f16vec4) Load 3471 3473: 30(f16vec4) VectorShuffle 3472 3470 4 5 6 3 Store 3471 3473 3474: 6(int) Load 8(invocation) 3475: 3353(ptr) AccessChain 34(data) 67 3345 3476: 30(f16vec4) Load 3475 3477: 30(f16vec4) GroupNonUniformFAdd 42 InclusiveScan 3476 3478: 3353(ptr) AccessChain 34(data) 3474 3345 Store 3478 3477 3479: 6(int) Load 8(invocation) 3480: 3346(ptr) AccessChain 34(data) 37 3345 38 3481:29(float16_t) Load 3480 3482:29(float16_t) GroupNonUniformFMul 42 InclusiveScan 3481 3483: 3346(ptr) AccessChain 34(data) 3479 3345 38 Store 3483 3482 3484: 6(int) Load 8(invocation) 3485: 3353(ptr) AccessChain 34(data) 46 3345 3486: 30(f16vec4) Load 3485 3487:3352(f16vec2) VectorShuffle 3486 3486 0 1 3488:3352(f16vec2) GroupNonUniformFMul 42 InclusiveScan 3487 3489: 3353(ptr) AccessChain 34(data) 3484 3345 3490: 30(f16vec4) Load 3489 3491: 30(f16vec4) VectorShuffle 3490 3488 4 5 2 3 Store 3489 3491 3492: 6(int) Load 8(invocation) 3493: 3353(ptr) AccessChain 34(data) 57 3345 3494: 30(f16vec4) Load 3493 3495:3362(f16vec3) VectorShuffle 3494 3494 0 1 2 3496:3362(f16vec3) GroupNonUniformFMul 42 InclusiveScan 3495 3497: 3353(ptr) AccessChain 34(data) 3492 3345 3498: 30(f16vec4) Load 3497 3499: 30(f16vec4) VectorShuffle 3498 3496 4 5 6 3 Store 3497 3499 3500: 6(int) Load 8(invocation) 3501: 3353(ptr) AccessChain 34(data) 67 3345 3502: 30(f16vec4) Load 3501 3503: 30(f16vec4) GroupNonUniformFMul 42 InclusiveScan 3502 3504: 3353(ptr) AccessChain 34(data) 3500 3345 Store 3504 3503 3505: 6(int) Load 8(invocation) 3506: 3346(ptr) AccessChain 34(data) 37 3345 38 3507:29(float16_t) Load 3506 3508:29(float16_t) GroupNonUniformFMin 42 InclusiveScan 3507 3509: 3346(ptr) AccessChain 34(data) 3505 3345 38 Store 3509 3508 3510: 6(int) Load 8(invocation) 3511: 3353(ptr) AccessChain 34(data) 46 3345 3512: 30(f16vec4) Load 3511 3513:3352(f16vec2) VectorShuffle 3512 3512 0 1 3514:3352(f16vec2) GroupNonUniformFMin 42 InclusiveScan 3513 3515: 3353(ptr) AccessChain 34(data) 3510 3345 3516: 30(f16vec4) Load 3515 3517: 30(f16vec4) VectorShuffle 3516 3514 4 5 2 3 Store 3515 3517 3518: 6(int) Load 8(invocation) 3519: 3353(ptr) AccessChain 34(data) 57 3345 3520: 30(f16vec4) Load 3519 3521:3362(f16vec3) VectorShuffle 3520 3520 0 1 2 3522:3362(f16vec3) GroupNonUniformFMin 42 InclusiveScan 3521 3523: 3353(ptr) AccessChain 34(data) 3518 3345 3524: 30(f16vec4) Load 3523 3525: 30(f16vec4) VectorShuffle 3524 3522 4 5 6 3 Store 3523 3525 3526: 6(int) Load 8(invocation) 3527: 3353(ptr) AccessChain 34(data) 67 3345 3528: 30(f16vec4) Load 3527 3529: 30(f16vec4) GroupNonUniformFMin 42 InclusiveScan 3528 3530: 3353(ptr) AccessChain 34(data) 3526 3345 Store 3530 3529 3531: 6(int) Load 8(invocation) 3532: 3346(ptr) AccessChain 34(data) 37 3345 38 3533:29(float16_t) Load 3532 3534:29(float16_t) GroupNonUniformFMax 42 InclusiveScan 3533 3535: 3346(ptr) AccessChain 34(data) 3531 3345 38 Store 3535 3534 3536: 6(int) Load 8(invocation) 3537: 3353(ptr) AccessChain 34(data) 46 3345 3538: 30(f16vec4) Load 3537 3539:3352(f16vec2) VectorShuffle 3538 3538 0 1 3540:3352(f16vec2) GroupNonUniformFMax 42 InclusiveScan 3539 3541: 3353(ptr) AccessChain 34(data) 3536 3345 3542: 30(f16vec4) Load 3541 3543: 30(f16vec4) VectorShuffle 3542 3540 4 5 2 3 Store 3541 3543 3544: 6(int) Load 8(invocation) 3545: 3353(ptr) AccessChain 34(data) 57 3345 3546: 30(f16vec4) Load 3545 3547:3362(f16vec3) VectorShuffle 3546 3546 0 1 2 3548:3362(f16vec3) GroupNonUniformFMax 42 InclusiveScan 3547 3549: 3353(ptr) AccessChain 34(data) 3544 3345 3550: 30(f16vec4) Load 3549 3551: 30(f16vec4) VectorShuffle 3550 3548 4 5 6 3 Store 3549 3551 3552: 6(int) Load 8(invocation) 3553: 3353(ptr) AccessChain 34(data) 67 3345 3554: 30(f16vec4) Load 3553 3555: 30(f16vec4) GroupNonUniformFMax 42 InclusiveScan 3554 3556: 3353(ptr) AccessChain 34(data) 3552 3345 Store 3556 3555 3557: 6(int) Load 8(invocation) 3558: 3346(ptr) AccessChain 34(data) 37 3345 38 3559:29(float16_t) Load 3558 3560:29(float16_t) GroupNonUniformFAdd 42 ExclusiveScan 3559 3561: 3346(ptr) AccessChain 34(data) 3557 3345 38 Store 3561 3560 3562: 6(int) Load 8(invocation) 3563: 3353(ptr) AccessChain 34(data) 46 3345 3564: 30(f16vec4) Load 3563 3565:3352(f16vec2) VectorShuffle 3564 3564 0 1 3566:3352(f16vec2) GroupNonUniformFAdd 42 ExclusiveScan 3565 3567: 3353(ptr) AccessChain 34(data) 3562 3345 3568: 30(f16vec4) Load 3567 3569: 30(f16vec4) VectorShuffle 3568 3566 4 5 2 3 Store 3567 3569 3570: 6(int) Load 8(invocation) 3571: 3353(ptr) AccessChain 34(data) 57 3345 3572: 30(f16vec4) Load 3571 3573:3362(f16vec3) VectorShuffle 3572 3572 0 1 2 3574:3362(f16vec3) GroupNonUniformFAdd 42 ExclusiveScan 3573 3575: 3353(ptr) AccessChain 34(data) 3570 3345 3576: 30(f16vec4) Load 3575 3577: 30(f16vec4) VectorShuffle 3576 3574 4 5 6 3 Store 3575 3577 3578: 6(int) Load 8(invocation) 3579: 3353(ptr) AccessChain 34(data) 67 3345 3580: 30(f16vec4) Load 3579 3581: 30(f16vec4) GroupNonUniformFAdd 42 ExclusiveScan 3580 3582: 3353(ptr) AccessChain 34(data) 3578 3345 Store 3582 3581 3583: 6(int) Load 8(invocation) 3584: 3346(ptr) AccessChain 34(data) 37 3345 38 3585:29(float16_t) Load 3584 3586:29(float16_t) GroupNonUniformFMul 42 ExclusiveScan 3585 3587: 3346(ptr) AccessChain 34(data) 3583 3345 38 Store 3587 3586 3588: 6(int) Load 8(invocation) 3589: 3353(ptr) AccessChain 34(data) 46 3345 3590: 30(f16vec4) Load 3589 3591:3352(f16vec2) VectorShuffle 3590 3590 0 1 3592:3352(f16vec2) GroupNonUniformFMul 42 ExclusiveScan 3591 3593: 3353(ptr) AccessChain 34(data) 3588 3345 3594: 30(f16vec4) Load 3593 3595: 30(f16vec4) VectorShuffle 3594 3592 4 5 2 3 Store 3593 3595 3596: 6(int) Load 8(invocation) 3597: 3353(ptr) AccessChain 34(data) 57 3345 3598: 30(f16vec4) Load 3597 3599:3362(f16vec3) VectorShuffle 3598 3598 0 1 2 3600:3362(f16vec3) GroupNonUniformFMul 42 ExclusiveScan 3599 3601: 3353(ptr) AccessChain 34(data) 3596 3345 3602: 30(f16vec4) Load 3601 3603: 30(f16vec4) VectorShuffle 3602 3600 4 5 6 3 Store 3601 3603 3604: 6(int) Load 8(invocation) 3605: 3353(ptr) AccessChain 34(data) 67 3345 3606: 30(f16vec4) Load 3605 3607: 30(f16vec4) GroupNonUniformFMul 42 ExclusiveScan 3606 3608: 3353(ptr) AccessChain 34(data) 3604 3345 Store 3608 3607 3609: 6(int) Load 8(invocation) 3610: 3346(ptr) AccessChain 34(data) 37 3345 38 3611:29(float16_t) Load 3610 3612:29(float16_t) GroupNonUniformFMin 42 ExclusiveScan 3611 3613: 3346(ptr) AccessChain 34(data) 3609 3345 38 Store 3613 3612 3614: 6(int) Load 8(invocation) 3615: 3353(ptr) AccessChain 34(data) 46 3345 3616: 30(f16vec4) Load 3615 3617:3352(f16vec2) VectorShuffle 3616 3616 0 1 3618:3352(f16vec2) GroupNonUniformFMin 42 ExclusiveScan 3617 3619: 3353(ptr) AccessChain 34(data) 3614 3345 3620: 30(f16vec4) Load 3619 3621: 30(f16vec4) VectorShuffle 3620 3618 4 5 2 3 Store 3619 3621 3622: 6(int) Load 8(invocation) 3623: 3353(ptr) AccessChain 34(data) 57 3345 3624: 30(f16vec4) Load 3623 3625:3362(f16vec3) VectorShuffle 3624 3624 0 1 2 3626:3362(f16vec3) GroupNonUniformFMin 42 ExclusiveScan 3625 3627: 3353(ptr) AccessChain 34(data) 3622 3345 3628: 30(f16vec4) Load 3627 3629: 30(f16vec4) VectorShuffle 3628 3626 4 5 6 3 Store 3627 3629 3630: 6(int) Load 8(invocation) 3631: 3353(ptr) AccessChain 34(data) 67 3345 3632: 30(f16vec4) Load 3631 3633: 30(f16vec4) GroupNonUniformFMin 42 ExclusiveScan 3632 3634: 3353(ptr) AccessChain 34(data) 3630 3345 Store 3634 3633 3635: 6(int) Load 8(invocation) 3636: 3346(ptr) AccessChain 34(data) 37 3345 38 3637:29(float16_t) Load 3636 3638:29(float16_t) GroupNonUniformFMax 42 ExclusiveScan 3637 3639: 3346(ptr) AccessChain 34(data) 3635 3345 38 Store 3639 3638 3640: 6(int) Load 8(invocation) 3641: 3353(ptr) AccessChain 34(data) 46 3345 3642: 30(f16vec4) Load 3641 3643:3352(f16vec2) VectorShuffle 3642 3642 0 1 3644:3352(f16vec2) GroupNonUniformFMax 42 ExclusiveScan 3643 3645: 3353(ptr) AccessChain 34(data) 3640 3345 3646: 30(f16vec4) Load 3645 3647: 30(f16vec4) VectorShuffle 3646 3644 4 5 2 3 Store 3645 3647 3648: 6(int) Load 8(invocation) 3649: 3353(ptr) AccessChain 34(data) 57 3345 3650: 30(f16vec4) Load 3649 3651:3362(f16vec3) VectorShuffle 3650 3650 0 1 2 3652:3362(f16vec3) GroupNonUniformFMax 42 ExclusiveScan 3651 3653: 3353(ptr) AccessChain 34(data) 3648 3345 3654: 30(f16vec4) Load 3653 3655: 30(f16vec4) VectorShuffle 3654 3652 4 5 6 3 Store 3653 3655 3656: 6(int) Load 8(invocation) 3657: 3353(ptr) AccessChain 34(data) 67 3345 3658: 30(f16vec4) Load 3657 3659: 30(f16vec4) GroupNonUniformFMax 42 ExclusiveScan 3658 3660: 3353(ptr) AccessChain 34(data) 3656 3345 Store 3660 3659 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesArithmeticNeg.comp.out000066400000000000000000002206641360464450000302440ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out000066400000000000000000000725361360464450000267410ustar00rootroot00000000000000spv.subgroupExtendedTypesBallot.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 441 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 440 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) 57: 36(int) Constant 2 58: TypeVector 17(int8_t) 3 67: 36(int) Constant 3 99: TypePointer StorageBuffer 19(int8_t) 105: TypeVector 19(int8_t) 2 106: TypePointer StorageBuffer 20(i8vec4) 115: TypeVector 19(int8_t) 3 155: TypePointer StorageBuffer 21(int16_t) 161: TypeVector 21(int16_t) 2 162: TypePointer StorageBuffer 22(i16vec4) 171: TypeVector 21(int16_t) 3 211: TypePointer StorageBuffer 23(int16_t) 217: TypeVector 23(int16_t) 2 218: TypePointer StorageBuffer 24(i16vec4) 227: TypeVector 23(int16_t) 3 267: 36(int) Constant 4 268: TypePointer StorageBuffer 25(int64_t) 274: TypeVector 25(int64_t) 2 275: TypePointer StorageBuffer 26(i64vec4) 284: TypeVector 25(int64_t) 3 324: 36(int) Constant 5 325: TypePointer StorageBuffer 27(int64_t) 331: TypeVector 27(int64_t) 2 332: TypePointer StorageBuffer 28(i64vec4) 341: TypeVector 27(int64_t) 3 381: 36(int) Constant 6 382: TypePointer StorageBuffer 29(float16_t) 388: TypeVector 29(float16_t) 2 389: TypePointer StorageBuffer 30(f16vec4) 398: TypeVector 29(float16_t) 3 437: TypeVector 6(int) 3 438: 6(int) Constant 8 439: 6(int) Constant 1 440: 437(ivec3) ConstantComposite 438 439 439 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: 48(ptr) AccessChain 34(data) 45 37 54: 18(i8vec4) Load 53 55: 18(i8vec4) VectorShuffle 54 52 4 5 2 3 Store 53 55 56: 6(int) Load 8(invocation) 59: 48(ptr) AccessChain 34(data) 57 37 60: 18(i8vec4) Load 59 61: 58(i8vec3) VectorShuffle 60 60 0 1 2 62: 58(i8vec3) GroupNonUniformBroadcast 42 61 42 63: 48(ptr) AccessChain 34(data) 56 37 64: 18(i8vec4) Load 63 65: 18(i8vec4) VectorShuffle 64 62 4 5 6 3 Store 63 65 66: 6(int) Load 8(invocation) 68: 48(ptr) AccessChain 34(data) 67 37 69: 18(i8vec4) Load 68 70: 18(i8vec4) GroupNonUniformBroadcast 42 69 42 71: 48(ptr) AccessChain 34(data) 66 37 Store 71 70 72: 6(int) Load 8(invocation) 73: 39(ptr) AccessChain 34(data) 37 37 38 74: 17(int8_t) Load 73 75: 17(int8_t) GroupNonUniformBroadcastFirst 42 74 76: 39(ptr) AccessChain 34(data) 72 37 38 Store 76 75 77: 6(int) Load 8(invocation) 78: 48(ptr) AccessChain 34(data) 46 37 79: 18(i8vec4) Load 78 80: 47(i8vec2) VectorShuffle 79 79 0 1 81: 47(i8vec2) GroupNonUniformBroadcastFirst 42 80 82: 48(ptr) AccessChain 34(data) 77 37 83: 18(i8vec4) Load 82 84: 18(i8vec4) VectorShuffle 83 81 4 5 2 3 Store 82 84 85: 6(int) Load 8(invocation) 86: 48(ptr) AccessChain 34(data) 57 37 87: 18(i8vec4) Load 86 88: 58(i8vec3) VectorShuffle 87 87 0 1 2 89: 58(i8vec3) GroupNonUniformBroadcastFirst 42 88 90: 48(ptr) AccessChain 34(data) 85 37 91: 18(i8vec4) Load 90 92: 18(i8vec4) VectorShuffle 91 89 4 5 6 3 Store 90 92 93: 6(int) Load 8(invocation) 94: 48(ptr) AccessChain 34(data) 67 37 95: 18(i8vec4) Load 94 96: 18(i8vec4) GroupNonUniformBroadcastFirst 42 95 97: 48(ptr) AccessChain 34(data) 93 37 Store 97 96 98: 6(int) Load 8(invocation) 100: 99(ptr) AccessChain 34(data) 37 46 38 101: 19(int8_t) Load 100 102: 19(int8_t) GroupNonUniformBroadcast 42 101 42 103: 99(ptr) AccessChain 34(data) 98 46 38 Store 103 102 104: 6(int) Load 8(invocation) 107: 106(ptr) AccessChain 34(data) 46 46 108: 20(i8vec4) Load 107 109: 105(i8vec2) VectorShuffle 108 108 0 1 110: 105(i8vec2) GroupNonUniformBroadcast 42 109 42 111: 106(ptr) AccessChain 34(data) 104 46 112: 20(i8vec4) Load 111 113: 20(i8vec4) VectorShuffle 112 110 4 5 2 3 Store 111 113 114: 6(int) Load 8(invocation) 116: 106(ptr) AccessChain 34(data) 57 46 117: 20(i8vec4) Load 116 118: 115(i8vec3) VectorShuffle 117 117 0 1 2 119: 115(i8vec3) GroupNonUniformBroadcast 42 118 42 120: 106(ptr) AccessChain 34(data) 114 46 121: 20(i8vec4) Load 120 122: 20(i8vec4) VectorShuffle 121 119 4 5 6 3 Store 120 122 123: 6(int) Load 8(invocation) 124: 106(ptr) AccessChain 34(data) 67 46 125: 20(i8vec4) Load 124 126: 20(i8vec4) GroupNonUniformBroadcast 42 125 42 127: 106(ptr) AccessChain 34(data) 123 46 Store 127 126 128: 6(int) Load 8(invocation) 129: 99(ptr) AccessChain 34(data) 37 46 38 130: 19(int8_t) Load 129 131: 19(int8_t) GroupNonUniformBroadcastFirst 42 130 132: 99(ptr) AccessChain 34(data) 128 46 38 Store 132 131 133: 6(int) Load 8(invocation) 134: 106(ptr) AccessChain 34(data) 46 46 135: 20(i8vec4) Load 134 136: 105(i8vec2) VectorShuffle 135 135 0 1 137: 105(i8vec2) GroupNonUniformBroadcastFirst 42 136 138: 106(ptr) AccessChain 34(data) 133 46 139: 20(i8vec4) Load 138 140: 20(i8vec4) VectorShuffle 139 137 4 5 2 3 Store 138 140 141: 6(int) Load 8(invocation) 142: 106(ptr) AccessChain 34(data) 57 46 143: 20(i8vec4) Load 142 144: 115(i8vec3) VectorShuffle 143 143 0 1 2 145: 115(i8vec3) GroupNonUniformBroadcastFirst 42 144 146: 106(ptr) AccessChain 34(data) 141 46 147: 20(i8vec4) Load 146 148: 20(i8vec4) VectorShuffle 147 145 4 5 6 3 Store 146 148 149: 6(int) Load 8(invocation) 150: 106(ptr) AccessChain 34(data) 67 46 151: 20(i8vec4) Load 150 152: 20(i8vec4) GroupNonUniformBroadcastFirst 42 151 153: 106(ptr) AccessChain 34(data) 149 46 Store 153 152 154: 6(int) Load 8(invocation) 156: 155(ptr) AccessChain 34(data) 37 57 38 157: 21(int16_t) Load 156 158: 21(int16_t) GroupNonUniformBroadcast 42 157 42 159: 155(ptr) AccessChain 34(data) 154 57 38 Store 159 158 160: 6(int) Load 8(invocation) 163: 162(ptr) AccessChain 34(data) 46 57 164: 22(i16vec4) Load 163 165:161(i16vec2) VectorShuffle 164 164 0 1 166:161(i16vec2) GroupNonUniformBroadcast 42 165 42 167: 162(ptr) AccessChain 34(data) 160 57 168: 22(i16vec4) Load 167 169: 22(i16vec4) VectorShuffle 168 166 4 5 2 3 Store 167 169 170: 6(int) Load 8(invocation) 172: 162(ptr) AccessChain 34(data) 57 57 173: 22(i16vec4) Load 172 174:171(i16vec3) VectorShuffle 173 173 0 1 2 175:171(i16vec3) GroupNonUniformBroadcast 42 174 42 176: 162(ptr) AccessChain 34(data) 170 57 177: 22(i16vec4) Load 176 178: 22(i16vec4) VectorShuffle 177 175 4 5 6 3 Store 176 178 179: 6(int) Load 8(invocation) 180: 162(ptr) AccessChain 34(data) 67 57 181: 22(i16vec4) Load 180 182: 22(i16vec4) GroupNonUniformBroadcast 42 181 42 183: 162(ptr) AccessChain 34(data) 179 57 Store 183 182 184: 6(int) Load 8(invocation) 185: 155(ptr) AccessChain 34(data) 37 57 38 186: 21(int16_t) Load 185 187: 21(int16_t) GroupNonUniformBroadcastFirst 42 186 188: 155(ptr) AccessChain 34(data) 184 57 38 Store 188 187 189: 6(int) Load 8(invocation) 190: 162(ptr) AccessChain 34(data) 46 57 191: 22(i16vec4) Load 190 192:161(i16vec2) VectorShuffle 191 191 0 1 193:161(i16vec2) GroupNonUniformBroadcastFirst 42 192 194: 162(ptr) AccessChain 34(data) 189 57 195: 22(i16vec4) Load 194 196: 22(i16vec4) VectorShuffle 195 193 4 5 2 3 Store 194 196 197: 6(int) Load 8(invocation) 198: 162(ptr) AccessChain 34(data) 57 57 199: 22(i16vec4) Load 198 200:171(i16vec3) VectorShuffle 199 199 0 1 2 201:171(i16vec3) GroupNonUniformBroadcastFirst 42 200 202: 162(ptr) AccessChain 34(data) 197 57 203: 22(i16vec4) Load 202 204: 22(i16vec4) VectorShuffle 203 201 4 5 6 3 Store 202 204 205: 6(int) Load 8(invocation) 206: 162(ptr) AccessChain 34(data) 67 57 207: 22(i16vec4) Load 206 208: 22(i16vec4) GroupNonUniformBroadcastFirst 42 207 209: 162(ptr) AccessChain 34(data) 205 57 Store 209 208 210: 6(int) Load 8(invocation) 212: 211(ptr) AccessChain 34(data) 37 67 38 213: 23(int16_t) Load 212 214: 23(int16_t) GroupNonUniformBroadcast 42 213 42 215: 211(ptr) AccessChain 34(data) 210 67 38 Store 215 214 216: 6(int) Load 8(invocation) 219: 218(ptr) AccessChain 34(data) 46 67 220: 24(i16vec4) Load 219 221:217(i16vec2) VectorShuffle 220 220 0 1 222:217(i16vec2) GroupNonUniformBroadcast 42 221 42 223: 218(ptr) AccessChain 34(data) 216 67 224: 24(i16vec4) Load 223 225: 24(i16vec4) VectorShuffle 224 222 4 5 2 3 Store 223 225 226: 6(int) Load 8(invocation) 228: 218(ptr) AccessChain 34(data) 57 67 229: 24(i16vec4) Load 228 230:227(i16vec3) VectorShuffle 229 229 0 1 2 231:227(i16vec3) GroupNonUniformBroadcast 42 230 42 232: 218(ptr) AccessChain 34(data) 226 67 233: 24(i16vec4) Load 232 234: 24(i16vec4) VectorShuffle 233 231 4 5 6 3 Store 232 234 235: 6(int) Load 8(invocation) 236: 218(ptr) AccessChain 34(data) 67 67 237: 24(i16vec4) Load 236 238: 24(i16vec4) GroupNonUniformBroadcast 42 237 42 239: 218(ptr) AccessChain 34(data) 235 67 Store 239 238 240: 6(int) Load 8(invocation) 241: 211(ptr) AccessChain 34(data) 37 67 38 242: 23(int16_t) Load 241 243: 23(int16_t) GroupNonUniformBroadcastFirst 42 242 244: 211(ptr) AccessChain 34(data) 240 67 38 Store 244 243 245: 6(int) Load 8(invocation) 246: 218(ptr) AccessChain 34(data) 46 67 247: 24(i16vec4) Load 246 248:217(i16vec2) VectorShuffle 247 247 0 1 249:217(i16vec2) GroupNonUniformBroadcastFirst 42 248 250: 218(ptr) AccessChain 34(data) 245 67 251: 24(i16vec4) Load 250 252: 24(i16vec4) VectorShuffle 251 249 4 5 2 3 Store 250 252 253: 6(int) Load 8(invocation) 254: 218(ptr) AccessChain 34(data) 57 67 255: 24(i16vec4) Load 254 256:227(i16vec3) VectorShuffle 255 255 0 1 2 257:227(i16vec3) GroupNonUniformBroadcastFirst 42 256 258: 218(ptr) AccessChain 34(data) 253 67 259: 24(i16vec4) Load 258 260: 24(i16vec4) VectorShuffle 259 257 4 5 6 3 Store 258 260 261: 6(int) Load 8(invocation) 262: 218(ptr) AccessChain 34(data) 67 67 263: 24(i16vec4) Load 262 264: 24(i16vec4) GroupNonUniformBroadcastFirst 42 263 265: 218(ptr) AccessChain 34(data) 261 67 Store 265 264 266: 6(int) Load 8(invocation) 269: 268(ptr) AccessChain 34(data) 37 267 38 270: 25(int64_t) Load 269 271: 25(int64_t) GroupNonUniformBroadcast 42 270 42 272: 268(ptr) AccessChain 34(data) 266 267 38 Store 272 271 273: 6(int) Load 8(invocation) 276: 275(ptr) AccessChain 34(data) 46 267 277: 26(i64vec4) Load 276 278:274(i64vec2) VectorShuffle 277 277 0 1 279:274(i64vec2) GroupNonUniformBroadcast 42 278 42 280: 275(ptr) AccessChain 34(data) 273 267 281: 26(i64vec4) Load 280 282: 26(i64vec4) VectorShuffle 281 279 4 5 2 3 Store 280 282 283: 6(int) Load 8(invocation) 285: 275(ptr) AccessChain 34(data) 57 267 286: 26(i64vec4) Load 285 287:284(i64vec3) VectorShuffle 286 286 0 1 2 288:284(i64vec3) GroupNonUniformBroadcast 42 287 42 289: 275(ptr) AccessChain 34(data) 283 267 290: 26(i64vec4) Load 289 291: 26(i64vec4) VectorShuffle 290 288 4 5 6 3 Store 289 291 292: 6(int) Load 8(invocation) 293: 275(ptr) AccessChain 34(data) 67 267 294: 26(i64vec4) Load 293 295: 26(i64vec4) GroupNonUniformBroadcast 42 294 42 296: 275(ptr) AccessChain 34(data) 292 267 Store 296 295 297: 6(int) Load 8(invocation) 298: 268(ptr) AccessChain 34(data) 37 267 38 299: 25(int64_t) Load 298 300: 25(int64_t) GroupNonUniformBroadcastFirst 42 299 301: 268(ptr) AccessChain 34(data) 297 267 38 Store 301 300 302: 6(int) Load 8(invocation) 303: 275(ptr) AccessChain 34(data) 46 267 304: 26(i64vec4) Load 303 305:274(i64vec2) VectorShuffle 304 304 0 1 306:274(i64vec2) GroupNonUniformBroadcastFirst 42 305 307: 275(ptr) AccessChain 34(data) 302 267 308: 26(i64vec4) Load 307 309: 26(i64vec4) VectorShuffle 308 306 4 5 2 3 Store 307 309 310: 6(int) Load 8(invocation) 311: 275(ptr) AccessChain 34(data) 57 267 312: 26(i64vec4) Load 311 313:284(i64vec3) VectorShuffle 312 312 0 1 2 314:284(i64vec3) GroupNonUniformBroadcastFirst 42 313 315: 275(ptr) AccessChain 34(data) 310 267 316: 26(i64vec4) Load 315 317: 26(i64vec4) VectorShuffle 316 314 4 5 6 3 Store 315 317 318: 6(int) Load 8(invocation) 319: 275(ptr) AccessChain 34(data) 67 267 320: 26(i64vec4) Load 319 321: 26(i64vec4) GroupNonUniformBroadcastFirst 42 320 322: 275(ptr) AccessChain 34(data) 318 267 Store 322 321 323: 6(int) Load 8(invocation) 326: 325(ptr) AccessChain 34(data) 37 324 38 327: 27(int64_t) Load 326 328: 27(int64_t) GroupNonUniformBroadcast 42 327 42 329: 325(ptr) AccessChain 34(data) 323 324 38 Store 329 328 330: 6(int) Load 8(invocation) 333: 332(ptr) AccessChain 34(data) 46 324 334: 28(i64vec4) Load 333 335:331(i64vec2) VectorShuffle 334 334 0 1 336:331(i64vec2) GroupNonUniformBroadcast 42 335 42 337: 332(ptr) AccessChain 34(data) 330 324 338: 28(i64vec4) Load 337 339: 28(i64vec4) VectorShuffle 338 336 4 5 2 3 Store 337 339 340: 6(int) Load 8(invocation) 342: 332(ptr) AccessChain 34(data) 57 324 343: 28(i64vec4) Load 342 344:341(i64vec3) VectorShuffle 343 343 0 1 2 345:341(i64vec3) GroupNonUniformBroadcast 42 344 42 346: 332(ptr) AccessChain 34(data) 340 324 347: 28(i64vec4) Load 346 348: 28(i64vec4) VectorShuffle 347 345 4 5 6 3 Store 346 348 349: 6(int) Load 8(invocation) 350: 332(ptr) AccessChain 34(data) 67 324 351: 28(i64vec4) Load 350 352: 28(i64vec4) GroupNonUniformBroadcast 42 351 42 353: 332(ptr) AccessChain 34(data) 349 324 Store 353 352 354: 6(int) Load 8(invocation) 355: 325(ptr) AccessChain 34(data) 37 324 38 356: 27(int64_t) Load 355 357: 27(int64_t) GroupNonUniformBroadcastFirst 42 356 358: 325(ptr) AccessChain 34(data) 354 324 38 Store 358 357 359: 6(int) Load 8(invocation) 360: 332(ptr) AccessChain 34(data) 46 324 361: 28(i64vec4) Load 360 362:331(i64vec2) VectorShuffle 361 361 0 1 363:331(i64vec2) GroupNonUniformBroadcastFirst 42 362 364: 332(ptr) AccessChain 34(data) 359 324 365: 28(i64vec4) Load 364 366: 28(i64vec4) VectorShuffle 365 363 4 5 2 3 Store 364 366 367: 6(int) Load 8(invocation) 368: 332(ptr) AccessChain 34(data) 57 324 369: 28(i64vec4) Load 368 370:341(i64vec3) VectorShuffle 369 369 0 1 2 371:341(i64vec3) GroupNonUniformBroadcastFirst 42 370 372: 332(ptr) AccessChain 34(data) 367 324 373: 28(i64vec4) Load 372 374: 28(i64vec4) VectorShuffle 373 371 4 5 6 3 Store 372 374 375: 6(int) Load 8(invocation) 376: 332(ptr) AccessChain 34(data) 67 324 377: 28(i64vec4) Load 376 378: 28(i64vec4) GroupNonUniformBroadcastFirst 42 377 379: 332(ptr) AccessChain 34(data) 375 324 Store 379 378 380: 6(int) Load 8(invocation) 383: 382(ptr) AccessChain 34(data) 37 381 38 384:29(float16_t) Load 383 385:29(float16_t) GroupNonUniformBroadcast 42 384 42 386: 382(ptr) AccessChain 34(data) 380 381 38 Store 386 385 387: 6(int) Load 8(invocation) 390: 389(ptr) AccessChain 34(data) 46 381 391: 30(f16vec4) Load 390 392:388(f16vec2) VectorShuffle 391 391 0 1 393:388(f16vec2) GroupNonUniformBroadcast 42 392 42 394: 389(ptr) AccessChain 34(data) 387 381 395: 30(f16vec4) Load 394 396: 30(f16vec4) VectorShuffle 395 393 4 5 2 3 Store 394 396 397: 6(int) Load 8(invocation) 399: 389(ptr) AccessChain 34(data) 57 381 400: 30(f16vec4) Load 399 401:398(f16vec3) VectorShuffle 400 400 0 1 2 402:398(f16vec3) GroupNonUniformBroadcast 42 401 42 403: 389(ptr) AccessChain 34(data) 397 381 404: 30(f16vec4) Load 403 405: 30(f16vec4) VectorShuffle 404 402 4 5 6 3 Store 403 405 406: 6(int) Load 8(invocation) 407: 389(ptr) AccessChain 34(data) 67 381 408: 30(f16vec4) Load 407 409: 30(f16vec4) GroupNonUniformBroadcast 42 408 42 410: 389(ptr) AccessChain 34(data) 406 381 Store 410 409 411: 6(int) Load 8(invocation) 412: 382(ptr) AccessChain 34(data) 37 381 38 413:29(float16_t) Load 412 414:29(float16_t) GroupNonUniformBroadcastFirst 42 413 415: 382(ptr) AccessChain 34(data) 411 381 38 Store 415 414 416: 6(int) Load 8(invocation) 417: 389(ptr) AccessChain 34(data) 46 381 418: 30(f16vec4) Load 417 419:388(f16vec2) VectorShuffle 418 418 0 1 420:388(f16vec2) GroupNonUniformBroadcastFirst 42 419 421: 389(ptr) AccessChain 34(data) 416 381 422: 30(f16vec4) Load 421 423: 30(f16vec4) VectorShuffle 422 420 4 5 2 3 Store 421 423 424: 6(int) Load 8(invocation) 425: 389(ptr) AccessChain 34(data) 57 381 426: 30(f16vec4) Load 425 427:398(f16vec3) VectorShuffle 426 426 0 1 2 428:398(f16vec3) GroupNonUniformBroadcastFirst 42 427 429: 389(ptr) AccessChain 34(data) 424 381 430: 30(f16vec4) Load 429 431: 30(f16vec4) VectorShuffle 430 428 4 5 6 3 Store 429 431 432: 6(int) Load 8(invocation) 433: 389(ptr) AccessChain 34(data) 67 381 434: 30(f16vec4) Load 433 435: 30(f16vec4) GroupNonUniformBroadcastFirst 42 434 436: 389(ptr) AccessChain 34(data) 432 381 Store 436 435 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesBallotNeg.comp.out000066400000000000000000000166771360464450000273770ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesBasic.comp.out000066400000000000000000000006741360464450000265370ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out000066400000000000000000002420651360464450000274520ustar00rootroot00000000000000spv.subgroupExtendedTypesClustered.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 1273 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 1272 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) 58: 36(int) Constant 2 59: TypeVector 17(int8_t) 3 68: 36(int) Constant 3 230: TypePointer StorageBuffer 19(int8_t) 236: TypeVector 19(int8_t) 2 237: TypePointer StorageBuffer 20(i8vec4) 246: TypeVector 19(int8_t) 3 416: TypePointer StorageBuffer 21(int16_t) 422: TypeVector 21(int16_t) 2 423: TypePointer StorageBuffer 22(i16vec4) 432: TypeVector 21(int16_t) 3 602: TypePointer StorageBuffer 23(int16_t) 608: TypeVector 23(int16_t) 2 609: TypePointer StorageBuffer 24(i16vec4) 618: TypeVector 23(int16_t) 3 788: 36(int) Constant 4 789: TypePointer StorageBuffer 25(int64_t) 795: TypeVector 25(int64_t) 2 796: TypePointer StorageBuffer 26(i64vec4) 805: TypeVector 25(int64_t) 3 975: 36(int) Constant 5 976: TypePointer StorageBuffer 27(int64_t) 982: TypeVector 27(int64_t) 2 983: TypePointer StorageBuffer 28(i64vec4) 992: TypeVector 27(int64_t) 3 1162: 36(int) Constant 6 1163: TypePointer StorageBuffer 29(float16_t) 1169: TypeVector 29(float16_t) 2 1170: TypePointer StorageBuffer 30(f16vec4) 1179: TypeVector 29(float16_t) 3 1270: TypeVector 6(int) 3 1271: 6(int) Constant 8 1272: 1270(ivec3) ConstantComposite 1271 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: 49(ptr) AccessChain 34(data) 46 37 55: 18(i8vec4) Load 54 56: 18(i8vec4) VectorShuffle 55 53 4 5 2 3 Store 54 56 57: 6(int) Load 8(invocation) 60: 49(ptr) AccessChain 34(data) 58 37 61: 18(i8vec4) Load 60 62: 59(i8vec3) VectorShuffle 61 61 0 1 2 63: 59(i8vec3) GroupNonUniformIAdd 43 ClusteredReduce 62 42 64: 49(ptr) AccessChain 34(data) 57 37 65: 18(i8vec4) Load 64 66: 18(i8vec4) VectorShuffle 65 63 4 5 6 3 Store 64 66 67: 6(int) Load 8(invocation) 69: 49(ptr) AccessChain 34(data) 68 37 70: 18(i8vec4) Load 69 71: 18(i8vec4) GroupNonUniformIAdd 43 ClusteredReduce 70 42 72: 49(ptr) AccessChain 34(data) 67 37 Store 72 71 73: 6(int) Load 8(invocation) 74: 39(ptr) AccessChain 34(data) 37 37 38 75: 17(int8_t) Load 74 76: 17(int8_t) GroupNonUniformIMul 43 ClusteredReduce 75 42 77: 39(ptr) AccessChain 34(data) 73 37 38 Store 77 76 78: 6(int) Load 8(invocation) 79: 49(ptr) AccessChain 34(data) 47 37 80: 18(i8vec4) Load 79 81: 48(i8vec2) VectorShuffle 80 80 0 1 82: 48(i8vec2) GroupNonUniformIMul 43 ClusteredReduce 81 42 83: 49(ptr) AccessChain 34(data) 78 37 84: 18(i8vec4) Load 83 85: 18(i8vec4) VectorShuffle 84 82 4 5 2 3 Store 83 85 86: 6(int) Load 8(invocation) 87: 49(ptr) AccessChain 34(data) 58 37 88: 18(i8vec4) Load 87 89: 59(i8vec3) VectorShuffle 88 88 0 1 2 90: 59(i8vec3) GroupNonUniformIMul 43 ClusteredReduce 89 42 91: 49(ptr) AccessChain 34(data) 86 37 92: 18(i8vec4) Load 91 93: 18(i8vec4) VectorShuffle 92 90 4 5 6 3 Store 91 93 94: 6(int) Load 8(invocation) 95: 49(ptr) AccessChain 34(data) 68 37 96: 18(i8vec4) Load 95 97: 18(i8vec4) GroupNonUniformIMul 43 ClusteredReduce 96 42 98: 49(ptr) AccessChain 34(data) 94 37 Store 98 97 99: 6(int) Load 8(invocation) 100: 39(ptr) AccessChain 34(data) 37 37 38 101: 17(int8_t) Load 100 102: 17(int8_t) GroupNonUniformSMin 43 ClusteredReduce 101 42 103: 39(ptr) AccessChain 34(data) 99 37 38 Store 103 102 104: 6(int) Load 8(invocation) 105: 49(ptr) AccessChain 34(data) 47 37 106: 18(i8vec4) Load 105 107: 48(i8vec2) VectorShuffle 106 106 0 1 108: 48(i8vec2) GroupNonUniformSMin 43 ClusteredReduce 107 42 109: 49(ptr) AccessChain 34(data) 104 37 110: 18(i8vec4) Load 109 111: 18(i8vec4) VectorShuffle 110 108 4 5 2 3 Store 109 111 112: 6(int) Load 8(invocation) 113: 49(ptr) AccessChain 34(data) 58 37 114: 18(i8vec4) Load 113 115: 59(i8vec3) VectorShuffle 114 114 0 1 2 116: 59(i8vec3) GroupNonUniformSMin 43 ClusteredReduce 115 42 117: 49(ptr) AccessChain 34(data) 112 37 118: 18(i8vec4) Load 117 119: 18(i8vec4) VectorShuffle 118 116 4 5 6 3 Store 117 119 120: 6(int) Load 8(invocation) 121: 49(ptr) AccessChain 34(data) 68 37 122: 18(i8vec4) Load 121 123: 18(i8vec4) GroupNonUniformSMin 43 ClusteredReduce 122 42 124: 49(ptr) AccessChain 34(data) 120 37 Store 124 123 125: 6(int) Load 8(invocation) 126: 39(ptr) AccessChain 34(data) 37 37 38 127: 17(int8_t) Load 126 128: 17(int8_t) GroupNonUniformSMax 43 ClusteredReduce 127 42 129: 39(ptr) AccessChain 34(data) 125 37 38 Store 129 128 130: 6(int) Load 8(invocation) 131: 49(ptr) AccessChain 34(data) 47 37 132: 18(i8vec4) Load 131 133: 48(i8vec2) VectorShuffle 132 132 0 1 134: 48(i8vec2) GroupNonUniformSMax 43 ClusteredReduce 133 42 135: 49(ptr) AccessChain 34(data) 130 37 136: 18(i8vec4) Load 135 137: 18(i8vec4) VectorShuffle 136 134 4 5 2 3 Store 135 137 138: 6(int) Load 8(invocation) 139: 49(ptr) AccessChain 34(data) 58 37 140: 18(i8vec4) Load 139 141: 59(i8vec3) VectorShuffle 140 140 0 1 2 142: 59(i8vec3) GroupNonUniformSMax 43 ClusteredReduce 141 42 143: 49(ptr) AccessChain 34(data) 138 37 144: 18(i8vec4) Load 143 145: 18(i8vec4) VectorShuffle 144 142 4 5 6 3 Store 143 145 146: 6(int) Load 8(invocation) 147: 49(ptr) AccessChain 34(data) 68 37 148: 18(i8vec4) Load 147 149: 18(i8vec4) GroupNonUniformSMax 43 ClusteredReduce 148 42 150: 49(ptr) AccessChain 34(data) 146 37 Store 150 149 151: 6(int) Load 8(invocation) 152: 39(ptr) AccessChain 34(data) 37 37 38 153: 17(int8_t) Load 152 154: 17(int8_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 153 42 155: 39(ptr) AccessChain 34(data) 151 37 38 Store 155 154 156: 6(int) Load 8(invocation) 157: 49(ptr) AccessChain 34(data) 47 37 158: 18(i8vec4) Load 157 159: 48(i8vec2) VectorShuffle 158 158 0 1 160: 48(i8vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 159 42 161: 49(ptr) AccessChain 34(data) 156 37 162: 18(i8vec4) Load 161 163: 18(i8vec4) VectorShuffle 162 160 4 5 2 3 Store 161 163 164: 6(int) Load 8(invocation) 165: 49(ptr) AccessChain 34(data) 58 37 166: 18(i8vec4) Load 165 167: 59(i8vec3) VectorShuffle 166 166 0 1 2 168: 59(i8vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 167 42 169: 49(ptr) AccessChain 34(data) 164 37 170: 18(i8vec4) Load 169 171: 18(i8vec4) VectorShuffle 170 168 4 5 6 3 Store 169 171 172: 6(int) Load 8(invocation) 173: 49(ptr) AccessChain 34(data) 68 37 174: 18(i8vec4) Load 173 175: 18(i8vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 174 42 176: 49(ptr) AccessChain 34(data) 172 37 Store 176 175 177: 6(int) Load 8(invocation) 178: 39(ptr) AccessChain 34(data) 37 37 38 179: 17(int8_t) Load 178 180: 17(int8_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 179 42 181: 39(ptr) AccessChain 34(data) 177 37 38 Store 181 180 182: 6(int) Load 8(invocation) 183: 49(ptr) AccessChain 34(data) 47 37 184: 18(i8vec4) Load 183 185: 48(i8vec2) VectorShuffle 184 184 0 1 186: 48(i8vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 185 42 187: 49(ptr) AccessChain 34(data) 182 37 188: 18(i8vec4) Load 187 189: 18(i8vec4) VectorShuffle 188 186 4 5 2 3 Store 187 189 190: 6(int) Load 8(invocation) 191: 49(ptr) AccessChain 34(data) 58 37 192: 18(i8vec4) Load 191 193: 59(i8vec3) VectorShuffle 192 192 0 1 2 194: 59(i8vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 193 42 195: 49(ptr) AccessChain 34(data) 190 37 196: 18(i8vec4) Load 195 197: 18(i8vec4) VectorShuffle 196 194 4 5 6 3 Store 195 197 198: 6(int) Load 8(invocation) 199: 49(ptr) AccessChain 34(data) 68 37 200: 18(i8vec4) Load 199 201: 18(i8vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 200 42 202: 49(ptr) AccessChain 34(data) 198 37 Store 202 201 203: 6(int) Load 8(invocation) 204: 39(ptr) AccessChain 34(data) 37 37 38 205: 17(int8_t) Load 204 206: 17(int8_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 205 42 207: 39(ptr) AccessChain 34(data) 203 37 38 Store 207 206 208: 6(int) Load 8(invocation) 209: 49(ptr) AccessChain 34(data) 47 37 210: 18(i8vec4) Load 209 211: 48(i8vec2) VectorShuffle 210 210 0 1 212: 48(i8vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 211 42 213: 49(ptr) AccessChain 34(data) 208 37 214: 18(i8vec4) Load 213 215: 18(i8vec4) VectorShuffle 214 212 4 5 2 3 Store 213 215 216: 6(int) Load 8(invocation) 217: 49(ptr) AccessChain 34(data) 58 37 218: 18(i8vec4) Load 217 219: 59(i8vec3) VectorShuffle 218 218 0 1 2 220: 59(i8vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 219 42 221: 49(ptr) AccessChain 34(data) 216 37 222: 18(i8vec4) Load 221 223: 18(i8vec4) VectorShuffle 222 220 4 5 6 3 Store 221 223 224: 6(int) Load 8(invocation) 225: 49(ptr) AccessChain 34(data) 68 37 226: 18(i8vec4) Load 225 227: 18(i8vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 226 42 228: 49(ptr) AccessChain 34(data) 224 37 Store 228 227 229: 6(int) Load 8(invocation) 231: 230(ptr) AccessChain 34(data) 37 47 38 232: 19(int8_t) Load 231 233: 19(int8_t) GroupNonUniformIAdd 43 ClusteredReduce 232 42 234: 230(ptr) AccessChain 34(data) 229 47 38 Store 234 233 235: 6(int) Load 8(invocation) 238: 237(ptr) AccessChain 34(data) 47 47 239: 20(i8vec4) Load 238 240: 236(i8vec2) VectorShuffle 239 239 0 1 241: 236(i8vec2) GroupNonUniformIAdd 43 ClusteredReduce 240 42 242: 237(ptr) AccessChain 34(data) 235 47 243: 20(i8vec4) Load 242 244: 20(i8vec4) VectorShuffle 243 241 4 5 2 3 Store 242 244 245: 6(int) Load 8(invocation) 247: 237(ptr) AccessChain 34(data) 58 47 248: 20(i8vec4) Load 247 249: 246(i8vec3) VectorShuffle 248 248 0 1 2 250: 246(i8vec3) GroupNonUniformIAdd 43 ClusteredReduce 249 42 251: 237(ptr) AccessChain 34(data) 245 47 252: 20(i8vec4) Load 251 253: 20(i8vec4) VectorShuffle 252 250 4 5 6 3 Store 251 253 254: 6(int) Load 8(invocation) 255: 237(ptr) AccessChain 34(data) 68 47 256: 20(i8vec4) Load 255 257: 20(i8vec4) GroupNonUniformIAdd 43 ClusteredReduce 256 42 258: 237(ptr) AccessChain 34(data) 254 47 Store 258 257 259: 6(int) Load 8(invocation) 260: 230(ptr) AccessChain 34(data) 37 47 38 261: 19(int8_t) Load 260 262: 19(int8_t) GroupNonUniformIMul 43 ClusteredReduce 261 42 263: 230(ptr) AccessChain 34(data) 259 47 38 Store 263 262 264: 6(int) Load 8(invocation) 265: 237(ptr) AccessChain 34(data) 47 47 266: 20(i8vec4) Load 265 267: 236(i8vec2) VectorShuffle 266 266 0 1 268: 236(i8vec2) GroupNonUniformIMul 43 ClusteredReduce 267 42 269: 237(ptr) AccessChain 34(data) 264 47 270: 20(i8vec4) Load 269 271: 20(i8vec4) VectorShuffle 270 268 4 5 2 3 Store 269 271 272: 6(int) Load 8(invocation) 273: 237(ptr) AccessChain 34(data) 58 47 274: 20(i8vec4) Load 273 275: 246(i8vec3) VectorShuffle 274 274 0 1 2 276: 246(i8vec3) GroupNonUniformIMul 43 ClusteredReduce 275 42 277: 237(ptr) AccessChain 34(data) 272 47 278: 20(i8vec4) Load 277 279: 20(i8vec4) VectorShuffle 278 276 4 5 6 3 Store 277 279 280: 6(int) Load 8(invocation) 281: 237(ptr) AccessChain 34(data) 68 47 282: 20(i8vec4) Load 281 283: 20(i8vec4) GroupNonUniformIMul 43 ClusteredReduce 282 42 284: 237(ptr) AccessChain 34(data) 280 47 Store 284 283 285: 6(int) Load 8(invocation) 286: 230(ptr) AccessChain 34(data) 37 47 38 287: 19(int8_t) Load 286 288: 19(int8_t) GroupNonUniformUMin 43 ClusteredReduce 287 42 289: 230(ptr) AccessChain 34(data) 285 47 38 Store 289 288 290: 6(int) Load 8(invocation) 291: 237(ptr) AccessChain 34(data) 47 47 292: 20(i8vec4) Load 291 293: 236(i8vec2) VectorShuffle 292 292 0 1 294: 236(i8vec2) GroupNonUniformUMin 43 ClusteredReduce 293 42 295: 237(ptr) AccessChain 34(data) 290 47 296: 20(i8vec4) Load 295 297: 20(i8vec4) VectorShuffle 296 294 4 5 2 3 Store 295 297 298: 6(int) Load 8(invocation) 299: 237(ptr) AccessChain 34(data) 58 47 300: 20(i8vec4) Load 299 301: 246(i8vec3) VectorShuffle 300 300 0 1 2 302: 246(i8vec3) GroupNonUniformUMin 43 ClusteredReduce 301 42 303: 237(ptr) AccessChain 34(data) 298 47 304: 20(i8vec4) Load 303 305: 20(i8vec4) VectorShuffle 304 302 4 5 6 3 Store 303 305 306: 6(int) Load 8(invocation) 307: 237(ptr) AccessChain 34(data) 68 47 308: 20(i8vec4) Load 307 309: 20(i8vec4) GroupNonUniformUMin 43 ClusteredReduce 308 42 310: 237(ptr) AccessChain 34(data) 306 47 Store 310 309 311: 6(int) Load 8(invocation) 312: 230(ptr) AccessChain 34(data) 37 47 38 313: 19(int8_t) Load 312 314: 19(int8_t) GroupNonUniformUMax 43 ClusteredReduce 313 42 315: 230(ptr) AccessChain 34(data) 311 47 38 Store 315 314 316: 6(int) Load 8(invocation) 317: 237(ptr) AccessChain 34(data) 47 47 318: 20(i8vec4) Load 317 319: 236(i8vec2) VectorShuffle 318 318 0 1 320: 236(i8vec2) GroupNonUniformUMax 43 ClusteredReduce 319 42 321: 237(ptr) AccessChain 34(data) 316 47 322: 20(i8vec4) Load 321 323: 20(i8vec4) VectorShuffle 322 320 4 5 2 3 Store 321 323 324: 6(int) Load 8(invocation) 325: 237(ptr) AccessChain 34(data) 58 47 326: 20(i8vec4) Load 325 327: 246(i8vec3) VectorShuffle 326 326 0 1 2 328: 246(i8vec3) GroupNonUniformUMax 43 ClusteredReduce 327 42 329: 237(ptr) AccessChain 34(data) 324 47 330: 20(i8vec4) Load 329 331: 20(i8vec4) VectorShuffle 330 328 4 5 6 3 Store 329 331 332: 6(int) Load 8(invocation) 333: 237(ptr) AccessChain 34(data) 68 47 334: 20(i8vec4) Load 333 335: 20(i8vec4) GroupNonUniformUMax 43 ClusteredReduce 334 42 336: 237(ptr) AccessChain 34(data) 332 47 Store 336 335 337: 6(int) Load 8(invocation) 338: 230(ptr) AccessChain 34(data) 37 47 38 339: 19(int8_t) Load 338 340: 19(int8_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 339 42 341: 230(ptr) AccessChain 34(data) 337 47 38 Store 341 340 342: 6(int) Load 8(invocation) 343: 237(ptr) AccessChain 34(data) 47 47 344: 20(i8vec4) Load 343 345: 236(i8vec2) VectorShuffle 344 344 0 1 346: 236(i8vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 345 42 347: 237(ptr) AccessChain 34(data) 342 47 348: 20(i8vec4) Load 347 349: 20(i8vec4) VectorShuffle 348 346 4 5 2 3 Store 347 349 350: 6(int) Load 8(invocation) 351: 237(ptr) AccessChain 34(data) 58 47 352: 20(i8vec4) Load 351 353: 246(i8vec3) VectorShuffle 352 352 0 1 2 354: 246(i8vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 353 42 355: 237(ptr) AccessChain 34(data) 350 47 356: 20(i8vec4) Load 355 357: 20(i8vec4) VectorShuffle 356 354 4 5 6 3 Store 355 357 358: 6(int) Load 8(invocation) 359: 237(ptr) AccessChain 34(data) 68 47 360: 20(i8vec4) Load 359 361: 20(i8vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 360 42 362: 237(ptr) AccessChain 34(data) 358 47 Store 362 361 363: 6(int) Load 8(invocation) 364: 230(ptr) AccessChain 34(data) 37 47 38 365: 19(int8_t) Load 364 366: 19(int8_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 365 42 367: 230(ptr) AccessChain 34(data) 363 47 38 Store 367 366 368: 6(int) Load 8(invocation) 369: 237(ptr) AccessChain 34(data) 47 47 370: 20(i8vec4) Load 369 371: 236(i8vec2) VectorShuffle 370 370 0 1 372: 236(i8vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 371 42 373: 237(ptr) AccessChain 34(data) 368 47 374: 20(i8vec4) Load 373 375: 20(i8vec4) VectorShuffle 374 372 4 5 2 3 Store 373 375 376: 6(int) Load 8(invocation) 377: 237(ptr) AccessChain 34(data) 58 47 378: 20(i8vec4) Load 377 379: 246(i8vec3) VectorShuffle 378 378 0 1 2 380: 246(i8vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 379 42 381: 237(ptr) AccessChain 34(data) 376 47 382: 20(i8vec4) Load 381 383: 20(i8vec4) VectorShuffle 382 380 4 5 6 3 Store 381 383 384: 6(int) Load 8(invocation) 385: 237(ptr) AccessChain 34(data) 68 47 386: 20(i8vec4) Load 385 387: 20(i8vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 386 42 388: 237(ptr) AccessChain 34(data) 384 47 Store 388 387 389: 6(int) Load 8(invocation) 390: 230(ptr) AccessChain 34(data) 37 47 38 391: 19(int8_t) Load 390 392: 19(int8_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 391 42 393: 230(ptr) AccessChain 34(data) 389 47 38 Store 393 392 394: 6(int) Load 8(invocation) 395: 237(ptr) AccessChain 34(data) 47 47 396: 20(i8vec4) Load 395 397: 236(i8vec2) VectorShuffle 396 396 0 1 398: 236(i8vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 397 42 399: 237(ptr) AccessChain 34(data) 394 47 400: 20(i8vec4) Load 399 401: 20(i8vec4) VectorShuffle 400 398 4 5 2 3 Store 399 401 402: 6(int) Load 8(invocation) 403: 237(ptr) AccessChain 34(data) 58 47 404: 20(i8vec4) Load 403 405: 246(i8vec3) VectorShuffle 404 404 0 1 2 406: 246(i8vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 405 42 407: 237(ptr) AccessChain 34(data) 402 47 408: 20(i8vec4) Load 407 409: 20(i8vec4) VectorShuffle 408 406 4 5 6 3 Store 407 409 410: 6(int) Load 8(invocation) 411: 237(ptr) AccessChain 34(data) 68 47 412: 20(i8vec4) Load 411 413: 20(i8vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 412 42 414: 237(ptr) AccessChain 34(data) 410 47 Store 414 413 415: 6(int) Load 8(invocation) 417: 416(ptr) AccessChain 34(data) 37 58 38 418: 21(int16_t) Load 417 419: 21(int16_t) GroupNonUniformIAdd 43 ClusteredReduce 418 42 420: 416(ptr) AccessChain 34(data) 415 58 38 Store 420 419 421: 6(int) Load 8(invocation) 424: 423(ptr) AccessChain 34(data) 47 58 425: 22(i16vec4) Load 424 426:422(i16vec2) VectorShuffle 425 425 0 1 427:422(i16vec2) GroupNonUniformIAdd 43 ClusteredReduce 426 42 428: 423(ptr) AccessChain 34(data) 421 58 429: 22(i16vec4) Load 428 430: 22(i16vec4) VectorShuffle 429 427 4 5 2 3 Store 428 430 431: 6(int) Load 8(invocation) 433: 423(ptr) AccessChain 34(data) 58 58 434: 22(i16vec4) Load 433 435:432(i16vec3) VectorShuffle 434 434 0 1 2 436:432(i16vec3) GroupNonUniformIAdd 43 ClusteredReduce 435 42 437: 423(ptr) AccessChain 34(data) 431 58 438: 22(i16vec4) Load 437 439: 22(i16vec4) VectorShuffle 438 436 4 5 6 3 Store 437 439 440: 6(int) Load 8(invocation) 441: 423(ptr) AccessChain 34(data) 68 58 442: 22(i16vec4) Load 441 443: 22(i16vec4) GroupNonUniformIAdd 43 ClusteredReduce 442 42 444: 423(ptr) AccessChain 34(data) 440 58 Store 444 443 445: 6(int) Load 8(invocation) 446: 416(ptr) AccessChain 34(data) 37 58 38 447: 21(int16_t) Load 446 448: 21(int16_t) GroupNonUniformIMul 43 ClusteredReduce 447 42 449: 416(ptr) AccessChain 34(data) 445 58 38 Store 449 448 450: 6(int) Load 8(invocation) 451: 423(ptr) AccessChain 34(data) 47 58 452: 22(i16vec4) Load 451 453:422(i16vec2) VectorShuffle 452 452 0 1 454:422(i16vec2) GroupNonUniformIMul 43 ClusteredReduce 453 42 455: 423(ptr) AccessChain 34(data) 450 58 456: 22(i16vec4) Load 455 457: 22(i16vec4) VectorShuffle 456 454 4 5 2 3 Store 455 457 458: 6(int) Load 8(invocation) 459: 423(ptr) AccessChain 34(data) 58 58 460: 22(i16vec4) Load 459 461:432(i16vec3) VectorShuffle 460 460 0 1 2 462:432(i16vec3) GroupNonUniformIMul 43 ClusteredReduce 461 42 463: 423(ptr) AccessChain 34(data) 458 58 464: 22(i16vec4) Load 463 465: 22(i16vec4) VectorShuffle 464 462 4 5 6 3 Store 463 465 466: 6(int) Load 8(invocation) 467: 423(ptr) AccessChain 34(data) 68 58 468: 22(i16vec4) Load 467 469: 22(i16vec4) GroupNonUniformIMul 43 ClusteredReduce 468 42 470: 423(ptr) AccessChain 34(data) 466 58 Store 470 469 471: 6(int) Load 8(invocation) 472: 416(ptr) AccessChain 34(data) 37 58 38 473: 21(int16_t) Load 472 474: 21(int16_t) GroupNonUniformSMin 43 ClusteredReduce 473 42 475: 416(ptr) AccessChain 34(data) 471 58 38 Store 475 474 476: 6(int) Load 8(invocation) 477: 423(ptr) AccessChain 34(data) 47 58 478: 22(i16vec4) Load 477 479:422(i16vec2) VectorShuffle 478 478 0 1 480:422(i16vec2) GroupNonUniformSMin 43 ClusteredReduce 479 42 481: 423(ptr) AccessChain 34(data) 476 58 482: 22(i16vec4) Load 481 483: 22(i16vec4) VectorShuffle 482 480 4 5 2 3 Store 481 483 484: 6(int) Load 8(invocation) 485: 423(ptr) AccessChain 34(data) 58 58 486: 22(i16vec4) Load 485 487:432(i16vec3) VectorShuffle 486 486 0 1 2 488:432(i16vec3) GroupNonUniformSMin 43 ClusteredReduce 487 42 489: 423(ptr) AccessChain 34(data) 484 58 490: 22(i16vec4) Load 489 491: 22(i16vec4) VectorShuffle 490 488 4 5 6 3 Store 489 491 492: 6(int) Load 8(invocation) 493: 423(ptr) AccessChain 34(data) 68 58 494: 22(i16vec4) Load 493 495: 22(i16vec4) GroupNonUniformSMin 43 ClusteredReduce 494 42 496: 423(ptr) AccessChain 34(data) 492 58 Store 496 495 497: 6(int) Load 8(invocation) 498: 416(ptr) AccessChain 34(data) 37 58 38 499: 21(int16_t) Load 498 500: 21(int16_t) GroupNonUniformSMax 43 ClusteredReduce 499 42 501: 416(ptr) AccessChain 34(data) 497 58 38 Store 501 500 502: 6(int) Load 8(invocation) 503: 423(ptr) AccessChain 34(data) 47 58 504: 22(i16vec4) Load 503 505:422(i16vec2) VectorShuffle 504 504 0 1 506:422(i16vec2) GroupNonUniformSMax 43 ClusteredReduce 505 42 507: 423(ptr) AccessChain 34(data) 502 58 508: 22(i16vec4) Load 507 509: 22(i16vec4) VectorShuffle 508 506 4 5 2 3 Store 507 509 510: 6(int) Load 8(invocation) 511: 423(ptr) AccessChain 34(data) 58 58 512: 22(i16vec4) Load 511 513:432(i16vec3) VectorShuffle 512 512 0 1 2 514:432(i16vec3) GroupNonUniformSMax 43 ClusteredReduce 513 42 515: 423(ptr) AccessChain 34(data) 510 58 516: 22(i16vec4) Load 515 517: 22(i16vec4) VectorShuffle 516 514 4 5 6 3 Store 515 517 518: 6(int) Load 8(invocation) 519: 423(ptr) AccessChain 34(data) 68 58 520: 22(i16vec4) Load 519 521: 22(i16vec4) GroupNonUniformSMax 43 ClusteredReduce 520 42 522: 423(ptr) AccessChain 34(data) 518 58 Store 522 521 523: 6(int) Load 8(invocation) 524: 416(ptr) AccessChain 34(data) 37 58 38 525: 21(int16_t) Load 524 526: 21(int16_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 525 42 527: 416(ptr) AccessChain 34(data) 523 58 38 Store 527 526 528: 6(int) Load 8(invocation) 529: 423(ptr) AccessChain 34(data) 47 58 530: 22(i16vec4) Load 529 531:422(i16vec2) VectorShuffle 530 530 0 1 532:422(i16vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 531 42 533: 423(ptr) AccessChain 34(data) 528 58 534: 22(i16vec4) Load 533 535: 22(i16vec4) VectorShuffle 534 532 4 5 2 3 Store 533 535 536: 6(int) Load 8(invocation) 537: 423(ptr) AccessChain 34(data) 58 58 538: 22(i16vec4) Load 537 539:432(i16vec3) VectorShuffle 538 538 0 1 2 540:432(i16vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 539 42 541: 423(ptr) AccessChain 34(data) 536 58 542: 22(i16vec4) Load 541 543: 22(i16vec4) VectorShuffle 542 540 4 5 6 3 Store 541 543 544: 6(int) Load 8(invocation) 545: 423(ptr) AccessChain 34(data) 68 58 546: 22(i16vec4) Load 545 547: 22(i16vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 546 42 548: 423(ptr) AccessChain 34(data) 544 58 Store 548 547 549: 6(int) Load 8(invocation) 550: 416(ptr) AccessChain 34(data) 37 58 38 551: 21(int16_t) Load 550 552: 21(int16_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 551 42 553: 416(ptr) AccessChain 34(data) 549 58 38 Store 553 552 554: 6(int) Load 8(invocation) 555: 423(ptr) AccessChain 34(data) 47 58 556: 22(i16vec4) Load 555 557:422(i16vec2) VectorShuffle 556 556 0 1 558:422(i16vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 557 42 559: 423(ptr) AccessChain 34(data) 554 58 560: 22(i16vec4) Load 559 561: 22(i16vec4) VectorShuffle 560 558 4 5 2 3 Store 559 561 562: 6(int) Load 8(invocation) 563: 423(ptr) AccessChain 34(data) 58 58 564: 22(i16vec4) Load 563 565:432(i16vec3) VectorShuffle 564 564 0 1 2 566:432(i16vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 565 42 567: 423(ptr) AccessChain 34(data) 562 58 568: 22(i16vec4) Load 567 569: 22(i16vec4) VectorShuffle 568 566 4 5 6 3 Store 567 569 570: 6(int) Load 8(invocation) 571: 423(ptr) AccessChain 34(data) 68 58 572: 22(i16vec4) Load 571 573: 22(i16vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 572 42 574: 423(ptr) AccessChain 34(data) 570 58 Store 574 573 575: 6(int) Load 8(invocation) 576: 416(ptr) AccessChain 34(data) 37 58 38 577: 21(int16_t) Load 576 578: 21(int16_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 577 42 579: 416(ptr) AccessChain 34(data) 575 58 38 Store 579 578 580: 6(int) Load 8(invocation) 581: 423(ptr) AccessChain 34(data) 47 58 582: 22(i16vec4) Load 581 583:422(i16vec2) VectorShuffle 582 582 0 1 584:422(i16vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 583 42 585: 423(ptr) AccessChain 34(data) 580 58 586: 22(i16vec4) Load 585 587: 22(i16vec4) VectorShuffle 586 584 4 5 2 3 Store 585 587 588: 6(int) Load 8(invocation) 589: 423(ptr) AccessChain 34(data) 58 58 590: 22(i16vec4) Load 589 591:432(i16vec3) VectorShuffle 590 590 0 1 2 592:432(i16vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 591 42 593: 423(ptr) AccessChain 34(data) 588 58 594: 22(i16vec4) Load 593 595: 22(i16vec4) VectorShuffle 594 592 4 5 6 3 Store 593 595 596: 6(int) Load 8(invocation) 597: 423(ptr) AccessChain 34(data) 68 58 598: 22(i16vec4) Load 597 599: 22(i16vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 598 42 600: 423(ptr) AccessChain 34(data) 596 58 Store 600 599 601: 6(int) Load 8(invocation) 603: 602(ptr) AccessChain 34(data) 37 68 38 604: 23(int16_t) Load 603 605: 23(int16_t) GroupNonUniformIAdd 43 ClusteredReduce 604 42 606: 602(ptr) AccessChain 34(data) 601 68 38 Store 606 605 607: 6(int) Load 8(invocation) 610: 609(ptr) AccessChain 34(data) 47 68 611: 24(i16vec4) Load 610 612:608(i16vec2) VectorShuffle 611 611 0 1 613:608(i16vec2) GroupNonUniformIAdd 43 ClusteredReduce 612 42 614: 609(ptr) AccessChain 34(data) 607 68 615: 24(i16vec4) Load 614 616: 24(i16vec4) VectorShuffle 615 613 4 5 2 3 Store 614 616 617: 6(int) Load 8(invocation) 619: 609(ptr) AccessChain 34(data) 58 68 620: 24(i16vec4) Load 619 621:618(i16vec3) VectorShuffle 620 620 0 1 2 622:618(i16vec3) GroupNonUniformIAdd 43 ClusteredReduce 621 42 623: 609(ptr) AccessChain 34(data) 617 68 624: 24(i16vec4) Load 623 625: 24(i16vec4) VectorShuffle 624 622 4 5 6 3 Store 623 625 626: 6(int) Load 8(invocation) 627: 609(ptr) AccessChain 34(data) 68 68 628: 24(i16vec4) Load 627 629: 24(i16vec4) GroupNonUniformIAdd 43 ClusteredReduce 628 42 630: 609(ptr) AccessChain 34(data) 626 68 Store 630 629 631: 6(int) Load 8(invocation) 632: 602(ptr) AccessChain 34(data) 37 68 38 633: 23(int16_t) Load 632 634: 23(int16_t) GroupNonUniformIMul 43 ClusteredReduce 633 42 635: 602(ptr) AccessChain 34(data) 631 68 38 Store 635 634 636: 6(int) Load 8(invocation) 637: 609(ptr) AccessChain 34(data) 47 68 638: 24(i16vec4) Load 637 639:608(i16vec2) VectorShuffle 638 638 0 1 640:608(i16vec2) GroupNonUniformIMul 43 ClusteredReduce 639 42 641: 609(ptr) AccessChain 34(data) 636 68 642: 24(i16vec4) Load 641 643: 24(i16vec4) VectorShuffle 642 640 4 5 2 3 Store 641 643 644: 6(int) Load 8(invocation) 645: 609(ptr) AccessChain 34(data) 58 68 646: 24(i16vec4) Load 645 647:618(i16vec3) VectorShuffle 646 646 0 1 2 648:618(i16vec3) GroupNonUniformIMul 43 ClusteredReduce 647 42 649: 609(ptr) AccessChain 34(data) 644 68 650: 24(i16vec4) Load 649 651: 24(i16vec4) VectorShuffle 650 648 4 5 6 3 Store 649 651 652: 6(int) Load 8(invocation) 653: 609(ptr) AccessChain 34(data) 68 68 654: 24(i16vec4) Load 653 655: 24(i16vec4) GroupNonUniformIMul 43 ClusteredReduce 654 42 656: 609(ptr) AccessChain 34(data) 652 68 Store 656 655 657: 6(int) Load 8(invocation) 658: 602(ptr) AccessChain 34(data) 37 68 38 659: 23(int16_t) Load 658 660: 23(int16_t) GroupNonUniformUMin 43 ClusteredReduce 659 42 661: 602(ptr) AccessChain 34(data) 657 68 38 Store 661 660 662: 6(int) Load 8(invocation) 663: 609(ptr) AccessChain 34(data) 47 68 664: 24(i16vec4) Load 663 665:608(i16vec2) VectorShuffle 664 664 0 1 666:608(i16vec2) GroupNonUniformUMin 43 ClusteredReduce 665 42 667: 609(ptr) AccessChain 34(data) 662 68 668: 24(i16vec4) Load 667 669: 24(i16vec4) VectorShuffle 668 666 4 5 2 3 Store 667 669 670: 6(int) Load 8(invocation) 671: 609(ptr) AccessChain 34(data) 58 68 672: 24(i16vec4) Load 671 673:618(i16vec3) VectorShuffle 672 672 0 1 2 674:618(i16vec3) GroupNonUniformUMin 43 ClusteredReduce 673 42 675: 609(ptr) AccessChain 34(data) 670 68 676: 24(i16vec4) Load 675 677: 24(i16vec4) VectorShuffle 676 674 4 5 6 3 Store 675 677 678: 6(int) Load 8(invocation) 679: 609(ptr) AccessChain 34(data) 68 68 680: 24(i16vec4) Load 679 681: 24(i16vec4) GroupNonUniformUMin 43 ClusteredReduce 680 42 682: 609(ptr) AccessChain 34(data) 678 68 Store 682 681 683: 6(int) Load 8(invocation) 684: 602(ptr) AccessChain 34(data) 37 68 38 685: 23(int16_t) Load 684 686: 23(int16_t) GroupNonUniformUMax 43 ClusteredReduce 685 42 687: 602(ptr) AccessChain 34(data) 683 68 38 Store 687 686 688: 6(int) Load 8(invocation) 689: 609(ptr) AccessChain 34(data) 47 68 690: 24(i16vec4) Load 689 691:608(i16vec2) VectorShuffle 690 690 0 1 692:608(i16vec2) GroupNonUniformUMax 43 ClusteredReduce 691 42 693: 609(ptr) AccessChain 34(data) 688 68 694: 24(i16vec4) Load 693 695: 24(i16vec4) VectorShuffle 694 692 4 5 2 3 Store 693 695 696: 6(int) Load 8(invocation) 697: 609(ptr) AccessChain 34(data) 58 68 698: 24(i16vec4) Load 697 699:618(i16vec3) VectorShuffle 698 698 0 1 2 700:618(i16vec3) GroupNonUniformUMax 43 ClusteredReduce 699 42 701: 609(ptr) AccessChain 34(data) 696 68 702: 24(i16vec4) Load 701 703: 24(i16vec4) VectorShuffle 702 700 4 5 6 3 Store 701 703 704: 6(int) Load 8(invocation) 705: 609(ptr) AccessChain 34(data) 68 68 706: 24(i16vec4) Load 705 707: 24(i16vec4) GroupNonUniformUMax 43 ClusteredReduce 706 42 708: 609(ptr) AccessChain 34(data) 704 68 Store 708 707 709: 6(int) Load 8(invocation) 710: 602(ptr) AccessChain 34(data) 37 68 38 711: 23(int16_t) Load 710 712: 23(int16_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 711 42 713: 602(ptr) AccessChain 34(data) 709 68 38 Store 713 712 714: 6(int) Load 8(invocation) 715: 609(ptr) AccessChain 34(data) 47 68 716: 24(i16vec4) Load 715 717:608(i16vec2) VectorShuffle 716 716 0 1 718:608(i16vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 717 42 719: 609(ptr) AccessChain 34(data) 714 68 720: 24(i16vec4) Load 719 721: 24(i16vec4) VectorShuffle 720 718 4 5 2 3 Store 719 721 722: 6(int) Load 8(invocation) 723: 609(ptr) AccessChain 34(data) 58 68 724: 24(i16vec4) Load 723 725:618(i16vec3) VectorShuffle 724 724 0 1 2 726:618(i16vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 725 42 727: 609(ptr) AccessChain 34(data) 722 68 728: 24(i16vec4) Load 727 729: 24(i16vec4) VectorShuffle 728 726 4 5 6 3 Store 727 729 730: 6(int) Load 8(invocation) 731: 609(ptr) AccessChain 34(data) 68 68 732: 24(i16vec4) Load 731 733: 24(i16vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 732 42 734: 609(ptr) AccessChain 34(data) 730 68 Store 734 733 735: 6(int) Load 8(invocation) 736: 602(ptr) AccessChain 34(data) 37 68 38 737: 23(int16_t) Load 736 738: 23(int16_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 737 42 739: 602(ptr) AccessChain 34(data) 735 68 38 Store 739 738 740: 6(int) Load 8(invocation) 741: 609(ptr) AccessChain 34(data) 47 68 742: 24(i16vec4) Load 741 743:608(i16vec2) VectorShuffle 742 742 0 1 744:608(i16vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 743 42 745: 609(ptr) AccessChain 34(data) 740 68 746: 24(i16vec4) Load 745 747: 24(i16vec4) VectorShuffle 746 744 4 5 2 3 Store 745 747 748: 6(int) Load 8(invocation) 749: 609(ptr) AccessChain 34(data) 58 68 750: 24(i16vec4) Load 749 751:618(i16vec3) VectorShuffle 750 750 0 1 2 752:618(i16vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 751 42 753: 609(ptr) AccessChain 34(data) 748 68 754: 24(i16vec4) Load 753 755: 24(i16vec4) VectorShuffle 754 752 4 5 6 3 Store 753 755 756: 6(int) Load 8(invocation) 757: 609(ptr) AccessChain 34(data) 68 68 758: 24(i16vec4) Load 757 759: 24(i16vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 758 42 760: 609(ptr) AccessChain 34(data) 756 68 Store 760 759 761: 6(int) Load 8(invocation) 762: 602(ptr) AccessChain 34(data) 37 68 38 763: 23(int16_t) Load 762 764: 23(int16_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 763 42 765: 602(ptr) AccessChain 34(data) 761 68 38 Store 765 764 766: 6(int) Load 8(invocation) 767: 609(ptr) AccessChain 34(data) 47 68 768: 24(i16vec4) Load 767 769:608(i16vec2) VectorShuffle 768 768 0 1 770:608(i16vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 769 42 771: 609(ptr) AccessChain 34(data) 766 68 772: 24(i16vec4) Load 771 773: 24(i16vec4) VectorShuffle 772 770 4 5 2 3 Store 771 773 774: 6(int) Load 8(invocation) 775: 609(ptr) AccessChain 34(data) 58 68 776: 24(i16vec4) Load 775 777:618(i16vec3) VectorShuffle 776 776 0 1 2 778:618(i16vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 777 42 779: 609(ptr) AccessChain 34(data) 774 68 780: 24(i16vec4) Load 779 781: 24(i16vec4) VectorShuffle 780 778 4 5 6 3 Store 779 781 782: 6(int) Load 8(invocation) 783: 609(ptr) AccessChain 34(data) 68 68 784: 24(i16vec4) Load 783 785: 24(i16vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 784 42 786: 609(ptr) AccessChain 34(data) 782 68 Store 786 785 787: 6(int) Load 8(invocation) 790: 789(ptr) AccessChain 34(data) 37 788 38 791: 25(int64_t) Load 790 792: 25(int64_t) GroupNonUniformIAdd 43 ClusteredReduce 791 42 793: 789(ptr) AccessChain 34(data) 787 788 38 Store 793 792 794: 6(int) Load 8(invocation) 797: 796(ptr) AccessChain 34(data) 47 788 798: 26(i64vec4) Load 797 799:795(i64vec2) VectorShuffle 798 798 0 1 800:795(i64vec2) GroupNonUniformIAdd 43 ClusteredReduce 799 42 801: 796(ptr) AccessChain 34(data) 794 788 802: 26(i64vec4) Load 801 803: 26(i64vec4) VectorShuffle 802 800 4 5 2 3 Store 801 803 804: 6(int) Load 8(invocation) 806: 796(ptr) AccessChain 34(data) 58 788 807: 26(i64vec4) Load 806 808:805(i64vec3) VectorShuffle 807 807 0 1 2 809:805(i64vec3) GroupNonUniformIAdd 43 ClusteredReduce 808 42 810: 796(ptr) AccessChain 34(data) 804 788 811: 26(i64vec4) Load 810 812: 26(i64vec4) VectorShuffle 811 809 4 5 6 3 Store 810 812 813: 6(int) Load 8(invocation) 814: 796(ptr) AccessChain 34(data) 68 788 815: 26(i64vec4) Load 814 816: 26(i64vec4) GroupNonUniformIAdd 43 ClusteredReduce 815 42 817: 796(ptr) AccessChain 34(data) 813 788 Store 817 816 818: 6(int) Load 8(invocation) 819: 789(ptr) AccessChain 34(data) 37 788 38 820: 25(int64_t) Load 819 821: 25(int64_t) GroupNonUniformIMul 43 ClusteredReduce 820 42 822: 789(ptr) AccessChain 34(data) 818 788 38 Store 822 821 823: 6(int) Load 8(invocation) 824: 796(ptr) AccessChain 34(data) 47 788 825: 26(i64vec4) Load 824 826:795(i64vec2) VectorShuffle 825 825 0 1 827:795(i64vec2) GroupNonUniformIMul 43 ClusteredReduce 826 42 828: 796(ptr) AccessChain 34(data) 823 788 829: 26(i64vec4) Load 828 830: 26(i64vec4) VectorShuffle 829 827 4 5 2 3 Store 828 830 831: 6(int) Load 8(invocation) 832: 796(ptr) AccessChain 34(data) 58 788 833: 26(i64vec4) Load 832 834:805(i64vec3) VectorShuffle 833 833 0 1 2 835:805(i64vec3) GroupNonUniformIMul 43 ClusteredReduce 834 42 836: 796(ptr) AccessChain 34(data) 831 788 837: 26(i64vec4) Load 836 838: 26(i64vec4) VectorShuffle 837 835 4 5 6 3 Store 836 838 839: 6(int) Load 8(invocation) 840: 796(ptr) AccessChain 34(data) 68 788 841: 26(i64vec4) Load 840 842: 26(i64vec4) GroupNonUniformIMul 43 ClusteredReduce 841 42 843: 796(ptr) AccessChain 34(data) 839 788 Store 843 842 844: 6(int) Load 8(invocation) 845: 789(ptr) AccessChain 34(data) 37 788 38 846: 25(int64_t) Load 845 847: 25(int64_t) GroupNonUniformSMin 43 ClusteredReduce 846 42 848: 789(ptr) AccessChain 34(data) 844 788 38 Store 848 847 849: 6(int) Load 8(invocation) 850: 796(ptr) AccessChain 34(data) 47 788 851: 26(i64vec4) Load 850 852:795(i64vec2) VectorShuffle 851 851 0 1 853:795(i64vec2) GroupNonUniformSMin 43 ClusteredReduce 852 42 854: 796(ptr) AccessChain 34(data) 849 788 855: 26(i64vec4) Load 854 856: 26(i64vec4) VectorShuffle 855 853 4 5 2 3 Store 854 856 857: 6(int) Load 8(invocation) 858: 796(ptr) AccessChain 34(data) 58 788 859: 26(i64vec4) Load 858 860:805(i64vec3) VectorShuffle 859 859 0 1 2 861:805(i64vec3) GroupNonUniformSMin 43 ClusteredReduce 860 42 862: 796(ptr) AccessChain 34(data) 857 788 863: 26(i64vec4) Load 862 864: 26(i64vec4) VectorShuffle 863 861 4 5 6 3 Store 862 864 865: 6(int) Load 8(invocation) 866: 796(ptr) AccessChain 34(data) 68 788 867: 26(i64vec4) Load 866 868: 26(i64vec4) GroupNonUniformSMin 43 ClusteredReduce 867 42 869: 796(ptr) AccessChain 34(data) 865 788 Store 869 868 870: 6(int) Load 8(invocation) 871: 789(ptr) AccessChain 34(data) 37 788 38 872: 25(int64_t) Load 871 873: 25(int64_t) GroupNonUniformSMax 43 ClusteredReduce 872 42 874: 789(ptr) AccessChain 34(data) 870 788 38 Store 874 873 875: 6(int) Load 8(invocation) 876: 796(ptr) AccessChain 34(data) 47 788 877: 26(i64vec4) Load 876 878:795(i64vec2) VectorShuffle 877 877 0 1 879:795(i64vec2) GroupNonUniformSMax 43 ClusteredReduce 878 42 880: 796(ptr) AccessChain 34(data) 875 788 881: 26(i64vec4) Load 880 882: 26(i64vec4) VectorShuffle 881 879 4 5 2 3 Store 880 882 883: 6(int) Load 8(invocation) 884: 796(ptr) AccessChain 34(data) 58 788 885: 26(i64vec4) Load 884 886:805(i64vec3) VectorShuffle 885 885 0 1 2 887:805(i64vec3) GroupNonUniformSMax 43 ClusteredReduce 886 42 888: 796(ptr) AccessChain 34(data) 883 788 889: 26(i64vec4) Load 888 890: 26(i64vec4) VectorShuffle 889 887 4 5 6 3 Store 888 890 891: 6(int) Load 8(invocation) 892: 796(ptr) AccessChain 34(data) 68 788 893: 26(i64vec4) Load 892 894: 26(i64vec4) GroupNonUniformSMax 43 ClusteredReduce 893 42 895: 796(ptr) AccessChain 34(data) 891 788 Store 895 894 896: 6(int) Load 8(invocation) 897: 789(ptr) AccessChain 34(data) 37 788 38 898: 25(int64_t) Load 897 899: 25(int64_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 898 42 900: 789(ptr) AccessChain 34(data) 896 788 38 Store 900 899 901: 6(int) Load 8(invocation) 902: 796(ptr) AccessChain 34(data) 47 788 903: 26(i64vec4) Load 902 904:795(i64vec2) VectorShuffle 903 903 0 1 905:795(i64vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 904 42 906: 796(ptr) AccessChain 34(data) 901 788 907: 26(i64vec4) Load 906 908: 26(i64vec4) VectorShuffle 907 905 4 5 2 3 Store 906 908 909: 6(int) Load 8(invocation) 910: 796(ptr) AccessChain 34(data) 58 788 911: 26(i64vec4) Load 910 912:805(i64vec3) VectorShuffle 911 911 0 1 2 913:805(i64vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 912 42 914: 796(ptr) AccessChain 34(data) 909 788 915: 26(i64vec4) Load 914 916: 26(i64vec4) VectorShuffle 915 913 4 5 6 3 Store 914 916 917: 6(int) Load 8(invocation) 918: 796(ptr) AccessChain 34(data) 68 788 919: 26(i64vec4) Load 918 920: 26(i64vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 919 42 921: 796(ptr) AccessChain 34(data) 917 788 Store 921 920 922: 6(int) Load 8(invocation) 923: 789(ptr) AccessChain 34(data) 37 788 38 924: 25(int64_t) Load 923 925: 25(int64_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 924 42 926: 789(ptr) AccessChain 34(data) 922 788 38 Store 926 925 927: 6(int) Load 8(invocation) 928: 796(ptr) AccessChain 34(data) 47 788 929: 26(i64vec4) Load 928 930:795(i64vec2) VectorShuffle 929 929 0 1 931:795(i64vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 930 42 932: 796(ptr) AccessChain 34(data) 927 788 933: 26(i64vec4) Load 932 934: 26(i64vec4) VectorShuffle 933 931 4 5 2 3 Store 932 934 935: 6(int) Load 8(invocation) 936: 796(ptr) AccessChain 34(data) 58 788 937: 26(i64vec4) Load 936 938:805(i64vec3) VectorShuffle 937 937 0 1 2 939:805(i64vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 938 42 940: 796(ptr) AccessChain 34(data) 935 788 941: 26(i64vec4) Load 940 942: 26(i64vec4) VectorShuffle 941 939 4 5 6 3 Store 940 942 943: 6(int) Load 8(invocation) 944: 796(ptr) AccessChain 34(data) 68 788 945: 26(i64vec4) Load 944 946: 26(i64vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 945 42 947: 796(ptr) AccessChain 34(data) 943 788 Store 947 946 948: 6(int) Load 8(invocation) 949: 789(ptr) AccessChain 34(data) 37 788 38 950: 25(int64_t) Load 949 951: 25(int64_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 950 42 952: 789(ptr) AccessChain 34(data) 948 788 38 Store 952 951 953: 6(int) Load 8(invocation) 954: 796(ptr) AccessChain 34(data) 47 788 955: 26(i64vec4) Load 954 956:795(i64vec2) VectorShuffle 955 955 0 1 957:795(i64vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 956 42 958: 796(ptr) AccessChain 34(data) 953 788 959: 26(i64vec4) Load 958 960: 26(i64vec4) VectorShuffle 959 957 4 5 2 3 Store 958 960 961: 6(int) Load 8(invocation) 962: 796(ptr) AccessChain 34(data) 58 788 963: 26(i64vec4) Load 962 964:805(i64vec3) VectorShuffle 963 963 0 1 2 965:805(i64vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 964 42 966: 796(ptr) AccessChain 34(data) 961 788 967: 26(i64vec4) Load 966 968: 26(i64vec4) VectorShuffle 967 965 4 5 6 3 Store 966 968 969: 6(int) Load 8(invocation) 970: 796(ptr) AccessChain 34(data) 68 788 971: 26(i64vec4) Load 970 972: 26(i64vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 971 42 973: 796(ptr) AccessChain 34(data) 969 788 Store 973 972 974: 6(int) Load 8(invocation) 977: 976(ptr) AccessChain 34(data) 37 975 38 978: 27(int64_t) Load 977 979: 27(int64_t) GroupNonUniformIAdd 43 ClusteredReduce 978 42 980: 976(ptr) AccessChain 34(data) 974 975 38 Store 980 979 981: 6(int) Load 8(invocation) 984: 983(ptr) AccessChain 34(data) 47 975 985: 28(i64vec4) Load 984 986:982(i64vec2) VectorShuffle 985 985 0 1 987:982(i64vec2) GroupNonUniformIAdd 43 ClusteredReduce 986 42 988: 983(ptr) AccessChain 34(data) 981 975 989: 28(i64vec4) Load 988 990: 28(i64vec4) VectorShuffle 989 987 4 5 2 3 Store 988 990 991: 6(int) Load 8(invocation) 993: 983(ptr) AccessChain 34(data) 58 975 994: 28(i64vec4) Load 993 995:992(i64vec3) VectorShuffle 994 994 0 1 2 996:992(i64vec3) GroupNonUniformIAdd 43 ClusteredReduce 995 42 997: 983(ptr) AccessChain 34(data) 991 975 998: 28(i64vec4) Load 997 999: 28(i64vec4) VectorShuffle 998 996 4 5 6 3 Store 997 999 1000: 6(int) Load 8(invocation) 1001: 983(ptr) AccessChain 34(data) 68 975 1002: 28(i64vec4) Load 1001 1003: 28(i64vec4) GroupNonUniformIAdd 43 ClusteredReduce 1002 42 1004: 983(ptr) AccessChain 34(data) 1000 975 Store 1004 1003 1005: 6(int) Load 8(invocation) 1006: 976(ptr) AccessChain 34(data) 37 975 38 1007: 27(int64_t) Load 1006 1008: 27(int64_t) GroupNonUniformIMul 43 ClusteredReduce 1007 42 1009: 976(ptr) AccessChain 34(data) 1005 975 38 Store 1009 1008 1010: 6(int) Load 8(invocation) 1011: 983(ptr) AccessChain 34(data) 47 975 1012: 28(i64vec4) Load 1011 1013:982(i64vec2) VectorShuffle 1012 1012 0 1 1014:982(i64vec2) GroupNonUniformIMul 43 ClusteredReduce 1013 42 1015: 983(ptr) AccessChain 34(data) 1010 975 1016: 28(i64vec4) Load 1015 1017: 28(i64vec4) VectorShuffle 1016 1014 4 5 2 3 Store 1015 1017 1018: 6(int) Load 8(invocation) 1019: 983(ptr) AccessChain 34(data) 58 975 1020: 28(i64vec4) Load 1019 1021:992(i64vec3) VectorShuffle 1020 1020 0 1 2 1022:992(i64vec3) GroupNonUniformIMul 43 ClusteredReduce 1021 42 1023: 983(ptr) AccessChain 34(data) 1018 975 1024: 28(i64vec4) Load 1023 1025: 28(i64vec4) VectorShuffle 1024 1022 4 5 6 3 Store 1023 1025 1026: 6(int) Load 8(invocation) 1027: 983(ptr) AccessChain 34(data) 68 975 1028: 28(i64vec4) Load 1027 1029: 28(i64vec4) GroupNonUniformIMul 43 ClusteredReduce 1028 42 1030: 983(ptr) AccessChain 34(data) 1026 975 Store 1030 1029 1031: 6(int) Load 8(invocation) 1032: 976(ptr) AccessChain 34(data) 37 975 38 1033: 27(int64_t) Load 1032 1034: 27(int64_t) GroupNonUniformUMin 43 ClusteredReduce 1033 42 1035: 976(ptr) AccessChain 34(data) 1031 975 38 Store 1035 1034 1036: 6(int) Load 8(invocation) 1037: 983(ptr) AccessChain 34(data) 47 975 1038: 28(i64vec4) Load 1037 1039:982(i64vec2) VectorShuffle 1038 1038 0 1 1040:982(i64vec2) GroupNonUniformUMin 43 ClusteredReduce 1039 42 1041: 983(ptr) AccessChain 34(data) 1036 975 1042: 28(i64vec4) Load 1041 1043: 28(i64vec4) VectorShuffle 1042 1040 4 5 2 3 Store 1041 1043 1044: 6(int) Load 8(invocation) 1045: 983(ptr) AccessChain 34(data) 58 975 1046: 28(i64vec4) Load 1045 1047:992(i64vec3) VectorShuffle 1046 1046 0 1 2 1048:992(i64vec3) GroupNonUniformUMin 43 ClusteredReduce 1047 42 1049: 983(ptr) AccessChain 34(data) 1044 975 1050: 28(i64vec4) Load 1049 1051: 28(i64vec4) VectorShuffle 1050 1048 4 5 6 3 Store 1049 1051 1052: 6(int) Load 8(invocation) 1053: 983(ptr) AccessChain 34(data) 68 975 1054: 28(i64vec4) Load 1053 1055: 28(i64vec4) GroupNonUniformUMin 43 ClusteredReduce 1054 42 1056: 983(ptr) AccessChain 34(data) 1052 975 Store 1056 1055 1057: 6(int) Load 8(invocation) 1058: 976(ptr) AccessChain 34(data) 37 975 38 1059: 27(int64_t) Load 1058 1060: 27(int64_t) GroupNonUniformUMax 43 ClusteredReduce 1059 42 1061: 976(ptr) AccessChain 34(data) 1057 975 38 Store 1061 1060 1062: 6(int) Load 8(invocation) 1063: 983(ptr) AccessChain 34(data) 47 975 1064: 28(i64vec4) Load 1063 1065:982(i64vec2) VectorShuffle 1064 1064 0 1 1066:982(i64vec2) GroupNonUniformUMax 43 ClusteredReduce 1065 42 1067: 983(ptr) AccessChain 34(data) 1062 975 1068: 28(i64vec4) Load 1067 1069: 28(i64vec4) VectorShuffle 1068 1066 4 5 2 3 Store 1067 1069 1070: 6(int) Load 8(invocation) 1071: 983(ptr) AccessChain 34(data) 58 975 1072: 28(i64vec4) Load 1071 1073:992(i64vec3) VectorShuffle 1072 1072 0 1 2 1074:992(i64vec3) GroupNonUniformUMax 43 ClusteredReduce 1073 42 1075: 983(ptr) AccessChain 34(data) 1070 975 1076: 28(i64vec4) Load 1075 1077: 28(i64vec4) VectorShuffle 1076 1074 4 5 6 3 Store 1075 1077 1078: 6(int) Load 8(invocation) 1079: 983(ptr) AccessChain 34(data) 68 975 1080: 28(i64vec4) Load 1079 1081: 28(i64vec4) GroupNonUniformUMax 43 ClusteredReduce 1080 42 1082: 983(ptr) AccessChain 34(data) 1078 975 Store 1082 1081 1083: 6(int) Load 8(invocation) 1084: 976(ptr) AccessChain 34(data) 37 975 38 1085: 27(int64_t) Load 1084 1086: 27(int64_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1085 42 1087: 976(ptr) AccessChain 34(data) 1083 975 38 Store 1087 1086 1088: 6(int) Load 8(invocation) 1089: 983(ptr) AccessChain 34(data) 47 975 1090: 28(i64vec4) Load 1089 1091:982(i64vec2) VectorShuffle 1090 1090 0 1 1092:982(i64vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1091 42 1093: 983(ptr) AccessChain 34(data) 1088 975 1094: 28(i64vec4) Load 1093 1095: 28(i64vec4) VectorShuffle 1094 1092 4 5 2 3 Store 1093 1095 1096: 6(int) Load 8(invocation) 1097: 983(ptr) AccessChain 34(data) 58 975 1098: 28(i64vec4) Load 1097 1099:992(i64vec3) VectorShuffle 1098 1098 0 1 2 1100:992(i64vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1099 42 1101: 983(ptr) AccessChain 34(data) 1096 975 1102: 28(i64vec4) Load 1101 1103: 28(i64vec4) VectorShuffle 1102 1100 4 5 6 3 Store 1101 1103 1104: 6(int) Load 8(invocation) 1105: 983(ptr) AccessChain 34(data) 68 975 1106: 28(i64vec4) Load 1105 1107: 28(i64vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1106 42 1108: 983(ptr) AccessChain 34(data) 1104 975 Store 1108 1107 1109: 6(int) Load 8(invocation) 1110: 976(ptr) AccessChain 34(data) 37 975 38 1111: 27(int64_t) Load 1110 1112: 27(int64_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 1111 42 1113: 976(ptr) AccessChain 34(data) 1109 975 38 Store 1113 1112 1114: 6(int) Load 8(invocation) 1115: 983(ptr) AccessChain 34(data) 47 975 1116: 28(i64vec4) Load 1115 1117:982(i64vec2) VectorShuffle 1116 1116 0 1 1118:982(i64vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 1117 42 1119: 983(ptr) AccessChain 34(data) 1114 975 1120: 28(i64vec4) Load 1119 1121: 28(i64vec4) VectorShuffle 1120 1118 4 5 2 3 Store 1119 1121 1122: 6(int) Load 8(invocation) 1123: 983(ptr) AccessChain 34(data) 58 975 1124: 28(i64vec4) Load 1123 1125:992(i64vec3) VectorShuffle 1124 1124 0 1 2 1126:992(i64vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 1125 42 1127: 983(ptr) AccessChain 34(data) 1122 975 1128: 28(i64vec4) Load 1127 1129: 28(i64vec4) VectorShuffle 1128 1126 4 5 6 3 Store 1127 1129 1130: 6(int) Load 8(invocation) 1131: 983(ptr) AccessChain 34(data) 68 975 1132: 28(i64vec4) Load 1131 1133: 28(i64vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 1132 42 1134: 983(ptr) AccessChain 34(data) 1130 975 Store 1134 1133 1135: 6(int) Load 8(invocation) 1136: 976(ptr) AccessChain 34(data) 37 975 38 1137: 27(int64_t) Load 1136 1138: 27(int64_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 1137 42 1139: 976(ptr) AccessChain 34(data) 1135 975 38 Store 1139 1138 1140: 6(int) Load 8(invocation) 1141: 983(ptr) AccessChain 34(data) 47 975 1142: 28(i64vec4) Load 1141 1143:982(i64vec2) VectorShuffle 1142 1142 0 1 1144:982(i64vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 1143 42 1145: 983(ptr) AccessChain 34(data) 1140 975 1146: 28(i64vec4) Load 1145 1147: 28(i64vec4) VectorShuffle 1146 1144 4 5 2 3 Store 1145 1147 1148: 6(int) Load 8(invocation) 1149: 983(ptr) AccessChain 34(data) 58 975 1150: 28(i64vec4) Load 1149 1151:992(i64vec3) VectorShuffle 1150 1150 0 1 2 1152:992(i64vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 1151 42 1153: 983(ptr) AccessChain 34(data) 1148 975 1154: 28(i64vec4) Load 1153 1155: 28(i64vec4) VectorShuffle 1154 1152 4 5 6 3 Store 1153 1155 1156: 6(int) Load 8(invocation) 1157: 983(ptr) AccessChain 34(data) 68 975 1158: 28(i64vec4) Load 1157 1159: 28(i64vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 1158 42 1160: 983(ptr) AccessChain 34(data) 1156 975 Store 1160 1159 1161: 6(int) Load 8(invocation) 1164: 1163(ptr) AccessChain 34(data) 37 1162 38 1165:29(float16_t) Load 1164 1166:29(float16_t) GroupNonUniformFAdd 43 ClusteredReduce 1165 42 1167: 1163(ptr) AccessChain 34(data) 1161 1162 38 Store 1167 1166 1168: 6(int) Load 8(invocation) 1171: 1170(ptr) AccessChain 34(data) 47 1162 1172: 30(f16vec4) Load 1171 1173:1169(f16vec2) VectorShuffle 1172 1172 0 1 1174:1169(f16vec2) GroupNonUniformFAdd 43 ClusteredReduce 1173 42 1175: 1170(ptr) AccessChain 34(data) 1168 1162 1176: 30(f16vec4) Load 1175 1177: 30(f16vec4) VectorShuffle 1176 1174 4 5 2 3 Store 1175 1177 1178: 6(int) Load 8(invocation) 1180: 1170(ptr) AccessChain 34(data) 58 1162 1181: 30(f16vec4) Load 1180 1182:1179(f16vec3) VectorShuffle 1181 1181 0 1 2 1183:1179(f16vec3) GroupNonUniformFAdd 43 ClusteredReduce 1182 42 1184: 1170(ptr) AccessChain 34(data) 1178 1162 1185: 30(f16vec4) Load 1184 1186: 30(f16vec4) VectorShuffle 1185 1183 4 5 6 3 Store 1184 1186 1187: 6(int) Load 8(invocation) 1188: 1170(ptr) AccessChain 34(data) 68 1162 1189: 30(f16vec4) Load 1188 1190: 30(f16vec4) GroupNonUniformFAdd 43 ClusteredReduce 1189 42 1191: 1170(ptr) AccessChain 34(data) 1187 1162 Store 1191 1190 1192: 6(int) Load 8(invocation) 1193: 1163(ptr) AccessChain 34(data) 37 1162 38 1194:29(float16_t) Load 1193 1195:29(float16_t) GroupNonUniformFMul 43 ClusteredReduce 1194 42 1196: 1163(ptr) AccessChain 34(data) 1192 1162 38 Store 1196 1195 1197: 6(int) Load 8(invocation) 1198: 1170(ptr) AccessChain 34(data) 47 1162 1199: 30(f16vec4) Load 1198 1200:1169(f16vec2) VectorShuffle 1199 1199 0 1 1201:1169(f16vec2) GroupNonUniformFMul 43 ClusteredReduce 1200 42 1202: 1170(ptr) AccessChain 34(data) 1197 1162 1203: 30(f16vec4) Load 1202 1204: 30(f16vec4) VectorShuffle 1203 1201 4 5 2 3 Store 1202 1204 1205: 6(int) Load 8(invocation) 1206: 1170(ptr) AccessChain 34(data) 58 1162 1207: 30(f16vec4) Load 1206 1208:1179(f16vec3) VectorShuffle 1207 1207 0 1 2 1209:1179(f16vec3) GroupNonUniformFMul 43 ClusteredReduce 1208 42 1210: 1170(ptr) AccessChain 34(data) 1205 1162 1211: 30(f16vec4) Load 1210 1212: 30(f16vec4) VectorShuffle 1211 1209 4 5 6 3 Store 1210 1212 1213: 6(int) Load 8(invocation) 1214: 1170(ptr) AccessChain 34(data) 68 1162 1215: 30(f16vec4) Load 1214 1216: 30(f16vec4) GroupNonUniformFMul 43 ClusteredReduce 1215 42 1217: 1170(ptr) AccessChain 34(data) 1213 1162 Store 1217 1216 1218: 6(int) Load 8(invocation) 1219: 1163(ptr) AccessChain 34(data) 37 1162 38 1220:29(float16_t) Load 1219 1221:29(float16_t) GroupNonUniformFMin 43 ClusteredReduce 1220 42 1222: 1163(ptr) AccessChain 34(data) 1218 1162 38 Store 1222 1221 1223: 6(int) Load 8(invocation) 1224: 1170(ptr) AccessChain 34(data) 47 1162 1225: 30(f16vec4) Load 1224 1226:1169(f16vec2) VectorShuffle 1225 1225 0 1 1227:1169(f16vec2) GroupNonUniformFMin 43 ClusteredReduce 1226 42 1228: 1170(ptr) AccessChain 34(data) 1223 1162 1229: 30(f16vec4) Load 1228 1230: 30(f16vec4) VectorShuffle 1229 1227 4 5 2 3 Store 1228 1230 1231: 6(int) Load 8(invocation) 1232: 1170(ptr) AccessChain 34(data) 58 1162 1233: 30(f16vec4) Load 1232 1234:1179(f16vec3) VectorShuffle 1233 1233 0 1 2 1235:1179(f16vec3) GroupNonUniformFMin 43 ClusteredReduce 1234 42 1236: 1170(ptr) AccessChain 34(data) 1231 1162 1237: 30(f16vec4) Load 1236 1238: 30(f16vec4) VectorShuffle 1237 1235 4 5 6 3 Store 1236 1238 1239: 6(int) Load 8(invocation) 1240: 1170(ptr) AccessChain 34(data) 68 1162 1241: 30(f16vec4) Load 1240 1242: 30(f16vec4) GroupNonUniformFMin 43 ClusteredReduce 1241 42 1243: 1170(ptr) AccessChain 34(data) 1239 1162 Store 1243 1242 1244: 6(int) Load 8(invocation) 1245: 1163(ptr) AccessChain 34(data) 37 1162 38 1246:29(float16_t) Load 1245 1247:29(float16_t) GroupNonUniformFMax 43 ClusteredReduce 1246 42 1248: 1163(ptr) AccessChain 34(data) 1244 1162 38 Store 1248 1247 1249: 6(int) Load 8(invocation) 1250: 1170(ptr) AccessChain 34(data) 47 1162 1251: 30(f16vec4) Load 1250 1252:1169(f16vec2) VectorShuffle 1251 1251 0 1 1253:1169(f16vec2) GroupNonUniformFMax 43 ClusteredReduce 1252 42 1254: 1170(ptr) AccessChain 34(data) 1249 1162 1255: 30(f16vec4) Load 1254 1256: 30(f16vec4) VectorShuffle 1255 1253 4 5 2 3 Store 1254 1256 1257: 6(int) Load 8(invocation) 1258: 1170(ptr) AccessChain 34(data) 58 1162 1259: 30(f16vec4) Load 1258 1260:1179(f16vec3) VectorShuffle 1259 1259 0 1 2 1261:1179(f16vec3) GroupNonUniformFMax 43 ClusteredReduce 1260 42 1262: 1170(ptr) AccessChain 34(data) 1257 1162 1263: 30(f16vec4) Load 1262 1264: 30(f16vec4) VectorShuffle 1263 1261 4 5 6 3 Store 1262 1264 1265: 6(int) Load 8(invocation) 1266: 1170(ptr) AccessChain 34(data) 68 1162 1267: 30(f16vec4) Load 1266 1268: 30(f16vec4) GroupNonUniformFMax 43 ClusteredReduce 1267 42 1269: 1170(ptr) AccessChain 34(data) 1265 1162 Store 1269 1268 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesClusteredNeg.comp.out000066400000000000000000000603131360464450000300760ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out000066400000000000000000003027341360464450000300020ustar00rootroot00000000000000spv.subgroupExtendedTypesPartitioned.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 1558 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 1557 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 1554: TypeVector 6(int) 3 1555: 6(int) Constant 8 1556: 6(int) Constant 1 1557: 1554(ivec3) ConstantComposite 1555 1556 1556 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: 47(ptr) AccessChain 37(data) 180 39 187: 21(i8vec4) Load 186 188: 21(i8vec4) VectorShuffle 187 185 4 5 2 3 Store 186 188 189: 6(int) Load 8(invocation) 190: 47(ptr) AccessChain 37(data) 52 39 191: 21(i8vec4) Load 190 192: 53(i8vec3) VectorShuffle 191 191 0 1 2 193: 17(ivec4) Load 19(ballot) 194: 53(i8vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 192 193 195: 47(ptr) AccessChain 37(data) 189 39 196: 21(i8vec4) Load 195 197: 21(i8vec4) VectorShuffle 196 194 4 5 6 3 Store 195 197 198: 6(int) Load 8(invocation) 199: 47(ptr) AccessChain 37(data) 58 39 200: 21(i8vec4) Load 199 201: 17(ivec4) Load 19(ballot) 202: 21(i8vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 200 201 203: 47(ptr) AccessChain 37(data) 198 39 Store 203 202 204: 6(int) Load 8(invocation) 205: 41(ptr) AccessChain 37(data) 39 39 40 206: 20(int8_t) Load 205 207: 17(ivec4) Load 19(ballot) 208: 20(int8_t) GroupNonUniformIMul 177 PartitionedReduceNV 206 207 209: 41(ptr) AccessChain 37(data) 204 39 40 Store 209 208 210: 6(int) Load 8(invocation) 211: 47(ptr) AccessChain 37(data) 45 39 212: 21(i8vec4) Load 211 213: 46(i8vec2) VectorShuffle 212 212 0 1 214: 17(ivec4) Load 19(ballot) 215: 46(i8vec2) GroupNonUniformIMul 177 PartitionedReduceNV 213 214 216: 47(ptr) AccessChain 37(data) 210 39 217: 21(i8vec4) Load 216 218: 21(i8vec4) VectorShuffle 217 215 4 5 2 3 Store 216 218 219: 6(int) Load 8(invocation) 220: 47(ptr) AccessChain 37(data) 52 39 221: 21(i8vec4) Load 220 222: 53(i8vec3) VectorShuffle 221 221 0 1 2 223: 17(ivec4) Load 19(ballot) 224: 53(i8vec3) GroupNonUniformIMul 177 PartitionedReduceNV 222 223 225: 47(ptr) AccessChain 37(data) 219 39 226: 21(i8vec4) Load 225 227: 21(i8vec4) VectorShuffle 226 224 4 5 6 3 Store 225 227 228: 6(int) Load 8(invocation) 229: 47(ptr) AccessChain 37(data) 58 39 230: 21(i8vec4) Load 229 231: 17(ivec4) Load 19(ballot) 232: 21(i8vec4) GroupNonUniformIMul 177 PartitionedReduceNV 230 231 233: 47(ptr) AccessChain 37(data) 228 39 Store 233 232 234: 6(int) Load 8(invocation) 235: 41(ptr) AccessChain 37(data) 39 39 40 236: 20(int8_t) Load 235 237: 17(ivec4) Load 19(ballot) 238: 20(int8_t) GroupNonUniformSMin 177 PartitionedReduceNV 236 237 239: 41(ptr) AccessChain 37(data) 234 39 40 Store 239 238 240: 6(int) Load 8(invocation) 241: 47(ptr) AccessChain 37(data) 45 39 242: 21(i8vec4) Load 241 243: 46(i8vec2) VectorShuffle 242 242 0 1 244: 17(ivec4) Load 19(ballot) 245: 46(i8vec2) GroupNonUniformSMin 177 PartitionedReduceNV 243 244 246: 47(ptr) AccessChain 37(data) 240 39 247: 21(i8vec4) Load 246 248: 21(i8vec4) VectorShuffle 247 245 4 5 2 3 Store 246 248 249: 6(int) Load 8(invocation) 250: 47(ptr) AccessChain 37(data) 52 39 251: 21(i8vec4) Load 250 252: 53(i8vec3) VectorShuffle 251 251 0 1 2 253: 17(ivec4) Load 19(ballot) 254: 53(i8vec3) GroupNonUniformSMin 177 PartitionedReduceNV 252 253 255: 47(ptr) AccessChain 37(data) 249 39 256: 21(i8vec4) Load 255 257: 21(i8vec4) VectorShuffle 256 254 4 5 6 3 Store 255 257 258: 6(int) Load 8(invocation) 259: 47(ptr) AccessChain 37(data) 58 39 260: 21(i8vec4) Load 259 261: 17(ivec4) Load 19(ballot) 262: 21(i8vec4) GroupNonUniformSMin 177 PartitionedReduceNV 260 261 263: 47(ptr) AccessChain 37(data) 258 39 Store 263 262 264: 6(int) Load 8(invocation) 265: 41(ptr) AccessChain 37(data) 39 39 40 266: 20(int8_t) Load 265 267: 17(ivec4) Load 19(ballot) 268: 20(int8_t) GroupNonUniformSMax 177 PartitionedReduceNV 266 267 269: 41(ptr) AccessChain 37(data) 264 39 40 Store 269 268 270: 6(int) Load 8(invocation) 271: 47(ptr) AccessChain 37(data) 45 39 272: 21(i8vec4) Load 271 273: 46(i8vec2) VectorShuffle 272 272 0 1 274: 17(ivec4) Load 19(ballot) 275: 46(i8vec2) GroupNonUniformSMax 177 PartitionedReduceNV 273 274 276: 47(ptr) AccessChain 37(data) 270 39 277: 21(i8vec4) Load 276 278: 21(i8vec4) VectorShuffle 277 275 4 5 2 3 Store 276 278 279: 6(int) Load 8(invocation) 280: 47(ptr) AccessChain 37(data) 52 39 281: 21(i8vec4) Load 280 282: 53(i8vec3) VectorShuffle 281 281 0 1 2 283: 17(ivec4) Load 19(ballot) 284: 53(i8vec3) GroupNonUniformSMax 177 PartitionedReduceNV 282 283 285: 47(ptr) AccessChain 37(data) 279 39 286: 21(i8vec4) Load 285 287: 21(i8vec4) VectorShuffle 286 284 4 5 6 3 Store 285 287 288: 6(int) Load 8(invocation) 289: 47(ptr) AccessChain 37(data) 58 39 290: 21(i8vec4) Load 289 291: 17(ivec4) Load 19(ballot) 292: 21(i8vec4) GroupNonUniformSMax 177 PartitionedReduceNV 290 291 293: 47(ptr) AccessChain 37(data) 288 39 Store 293 292 294: 6(int) Load 8(invocation) 295: 41(ptr) AccessChain 37(data) 39 39 40 296: 20(int8_t) Load 295 297: 17(ivec4) Load 19(ballot) 298: 20(int8_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 296 297 299: 41(ptr) AccessChain 37(data) 294 39 40 Store 299 298 300: 6(int) Load 8(invocation) 301: 47(ptr) AccessChain 37(data) 45 39 302: 21(i8vec4) Load 301 303: 46(i8vec2) VectorShuffle 302 302 0 1 304: 17(ivec4) Load 19(ballot) 305: 46(i8vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 303 304 306: 47(ptr) AccessChain 37(data) 300 39 307: 21(i8vec4) Load 306 308: 21(i8vec4) VectorShuffle 307 305 4 5 2 3 Store 306 308 309: 6(int) Load 8(invocation) 310: 47(ptr) AccessChain 37(data) 52 39 311: 21(i8vec4) Load 310 312: 53(i8vec3) VectorShuffle 311 311 0 1 2 313: 17(ivec4) Load 19(ballot) 314: 53(i8vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 312 313 315: 47(ptr) AccessChain 37(data) 309 39 316: 21(i8vec4) Load 315 317: 21(i8vec4) VectorShuffle 316 314 4 5 6 3 Store 315 317 318: 6(int) Load 8(invocation) 319: 47(ptr) AccessChain 37(data) 58 39 320: 21(i8vec4) Load 319 321: 17(ivec4) Load 19(ballot) 322: 21(i8vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 320 321 323: 47(ptr) AccessChain 37(data) 318 39 Store 323 322 324: 6(int) Load 8(invocation) 325: 41(ptr) AccessChain 37(data) 39 39 40 326: 20(int8_t) Load 325 327: 17(ivec4) Load 19(ballot) 328: 20(int8_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 326 327 329: 41(ptr) AccessChain 37(data) 324 39 40 Store 329 328 330: 6(int) Load 8(invocation) 331: 47(ptr) AccessChain 37(data) 45 39 332: 21(i8vec4) Load 331 333: 46(i8vec2) VectorShuffle 332 332 0 1 334: 17(ivec4) Load 19(ballot) 335: 46(i8vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 333 334 336: 47(ptr) AccessChain 37(data) 330 39 337: 21(i8vec4) Load 336 338: 21(i8vec4) VectorShuffle 337 335 4 5 2 3 Store 336 338 339: 6(int) Load 8(invocation) 340: 47(ptr) AccessChain 37(data) 52 39 341: 21(i8vec4) Load 340 342: 53(i8vec3) VectorShuffle 341 341 0 1 2 343: 17(ivec4) Load 19(ballot) 344: 53(i8vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 342 343 345: 47(ptr) AccessChain 37(data) 339 39 346: 21(i8vec4) Load 345 347: 21(i8vec4) VectorShuffle 346 344 4 5 6 3 Store 345 347 348: 6(int) Load 8(invocation) 349: 47(ptr) AccessChain 37(data) 58 39 350: 21(i8vec4) Load 349 351: 17(ivec4) Load 19(ballot) 352: 21(i8vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 350 351 353: 47(ptr) AccessChain 37(data) 348 39 Store 353 352 354: 6(int) Load 8(invocation) 355: 41(ptr) AccessChain 37(data) 39 39 40 356: 20(int8_t) Load 355 357: 17(ivec4) Load 19(ballot) 358: 20(int8_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 356 357 359: 41(ptr) AccessChain 37(data) 354 39 40 Store 359 358 360: 6(int) Load 8(invocation) 361: 47(ptr) AccessChain 37(data) 45 39 362: 21(i8vec4) Load 361 363: 46(i8vec2) VectorShuffle 362 362 0 1 364: 17(ivec4) Load 19(ballot) 365: 46(i8vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 363 364 366: 47(ptr) AccessChain 37(data) 360 39 367: 21(i8vec4) Load 366 368: 21(i8vec4) VectorShuffle 367 365 4 5 2 3 Store 366 368 369: 6(int) Load 8(invocation) 370: 47(ptr) AccessChain 37(data) 52 39 371: 21(i8vec4) Load 370 372: 53(i8vec3) VectorShuffle 371 371 0 1 2 373: 17(ivec4) Load 19(ballot) 374: 53(i8vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 372 373 375: 47(ptr) AccessChain 37(data) 369 39 376: 21(i8vec4) Load 375 377: 21(i8vec4) VectorShuffle 376 374 4 5 6 3 Store 375 377 378: 6(int) Load 8(invocation) 379: 47(ptr) AccessChain 37(data) 58 39 380: 21(i8vec4) Load 379 381: 17(ivec4) Load 19(ballot) 382: 21(i8vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 380 381 383: 47(ptr) AccessChain 37(data) 378 39 Store 383 382 384: 6(int) Load 8(invocation) 385: 62(ptr) AccessChain 37(data) 39 45 40 386: 22(int8_t) Load 385 387: 17(ivec4) Load 19(ballot) 388: 22(int8_t) GroupNonUniformIAdd 177 PartitionedReduceNV 386 387 389: 62(ptr) AccessChain 37(data) 384 45 40 Store 389 388 390: 6(int) Load 8(invocation) 391: 67(ptr) AccessChain 37(data) 45 45 392: 23(i8vec4) Load 391 393: 66(i8vec2) VectorShuffle 392 392 0 1 394: 17(ivec4) Load 19(ballot) 395: 66(i8vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 393 394 396: 67(ptr) AccessChain 37(data) 390 45 397: 23(i8vec4) Load 396 398: 23(i8vec4) VectorShuffle 397 395 4 5 2 3 Store 396 398 399: 6(int) Load 8(invocation) 400: 67(ptr) AccessChain 37(data) 52 45 401: 23(i8vec4) Load 400 402: 72(i8vec3) VectorShuffle 401 401 0 1 2 403: 17(ivec4) Load 19(ballot) 404: 72(i8vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 402 403 405: 67(ptr) AccessChain 37(data) 399 45 406: 23(i8vec4) Load 405 407: 23(i8vec4) VectorShuffle 406 404 4 5 6 3 Store 405 407 408: 6(int) Load 8(invocation) 409: 67(ptr) AccessChain 37(data) 58 45 410: 23(i8vec4) Load 409 411: 17(ivec4) Load 19(ballot) 412: 23(i8vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 410 411 413: 67(ptr) AccessChain 37(data) 408 45 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) GroupNonUniformIMul 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) GroupNonUniformIMul 177 PartitionedReduceNV 423 424 426: 67(ptr) AccessChain 37(data) 420 45 427: 23(i8vec4) Load 426 428: 23(i8vec4) VectorShuffle 427 425 4 5 2 3 Store 426 428 429: 6(int) Load 8(invocation) 430: 67(ptr) AccessChain 37(data) 52 45 431: 23(i8vec4) Load 430 432: 72(i8vec3) VectorShuffle 431 431 0 1 2 433: 17(ivec4) Load 19(ballot) 434: 72(i8vec3) GroupNonUniformIMul 177 PartitionedReduceNV 432 433 435: 67(ptr) AccessChain 37(data) 429 45 436: 23(i8vec4) Load 435 437: 23(i8vec4) VectorShuffle 436 434 4 5 6 3 Store 435 437 438: 6(int) Load 8(invocation) 439: 67(ptr) AccessChain 37(data) 58 45 440: 23(i8vec4) Load 439 441: 17(ivec4) Load 19(ballot) 442: 23(i8vec4) GroupNonUniformIMul 177 PartitionedReduceNV 440 441 443: 67(ptr) AccessChain 37(data) 438 45 Store 443 442 444: 6(int) Load 8(invocation) 445: 62(ptr) AccessChain 37(data) 39 45 40 446: 22(int8_t) Load 445 447: 17(ivec4) Load 19(ballot) 448: 22(int8_t) GroupNonUniformUMin 177 PartitionedReduceNV 446 447 449: 62(ptr) AccessChain 37(data) 444 45 40 Store 449 448 450: 6(int) Load 8(invocation) 451: 67(ptr) AccessChain 37(data) 45 45 452: 23(i8vec4) Load 451 453: 66(i8vec2) VectorShuffle 452 452 0 1 454: 17(ivec4) Load 19(ballot) 455: 66(i8vec2) GroupNonUniformUMin 177 PartitionedReduceNV 453 454 456: 67(ptr) AccessChain 37(data) 450 45 457: 23(i8vec4) Load 456 458: 23(i8vec4) VectorShuffle 457 455 4 5 2 3 Store 456 458 459: 6(int) Load 8(invocation) 460: 67(ptr) AccessChain 37(data) 52 45 461: 23(i8vec4) Load 460 462: 72(i8vec3) VectorShuffle 461 461 0 1 2 463: 17(ivec4) Load 19(ballot) 464: 72(i8vec3) GroupNonUniformUMin 177 PartitionedReduceNV 462 463 465: 67(ptr) AccessChain 37(data) 459 45 466: 23(i8vec4) Load 465 467: 23(i8vec4) VectorShuffle 466 464 4 5 6 3 Store 465 467 468: 6(int) Load 8(invocation) 469: 67(ptr) AccessChain 37(data) 58 45 470: 23(i8vec4) Load 469 471: 17(ivec4) Load 19(ballot) 472: 23(i8vec4) GroupNonUniformUMin 177 PartitionedReduceNV 470 471 473: 67(ptr) AccessChain 37(data) 468 45 Store 473 472 474: 6(int) Load 8(invocation) 475: 62(ptr) AccessChain 37(data) 39 45 40 476: 22(int8_t) Load 475 477: 17(ivec4) Load 19(ballot) 478: 22(int8_t) GroupNonUniformUMax 177 PartitionedReduceNV 476 477 479: 62(ptr) AccessChain 37(data) 474 45 40 Store 479 478 480: 6(int) Load 8(invocation) 481: 67(ptr) AccessChain 37(data) 45 45 482: 23(i8vec4) Load 481 483: 66(i8vec2) VectorShuffle 482 482 0 1 484: 17(ivec4) Load 19(ballot) 485: 66(i8vec2) GroupNonUniformUMax 177 PartitionedReduceNV 483 484 486: 67(ptr) AccessChain 37(data) 480 45 487: 23(i8vec4) Load 486 488: 23(i8vec4) VectorShuffle 487 485 4 5 2 3 Store 486 488 489: 6(int) Load 8(invocation) 490: 67(ptr) AccessChain 37(data) 52 45 491: 23(i8vec4) Load 490 492: 72(i8vec3) VectorShuffle 491 491 0 1 2 493: 17(ivec4) Load 19(ballot) 494: 72(i8vec3) GroupNonUniformUMax 177 PartitionedReduceNV 492 493 495: 67(ptr) AccessChain 37(data) 489 45 496: 23(i8vec4) Load 495 497: 23(i8vec4) VectorShuffle 496 494 4 5 6 3 Store 495 497 498: 6(int) Load 8(invocation) 499: 67(ptr) AccessChain 37(data) 58 45 500: 23(i8vec4) Load 499 501: 17(ivec4) Load 19(ballot) 502: 23(i8vec4) GroupNonUniformUMax 177 PartitionedReduceNV 500 501 503: 67(ptr) AccessChain 37(data) 498 45 Store 503 502 504: 6(int) Load 8(invocation) 505: 62(ptr) AccessChain 37(data) 39 45 40 506: 22(int8_t) Load 505 507: 17(ivec4) Load 19(ballot) 508: 22(int8_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 506 507 509: 62(ptr) AccessChain 37(data) 504 45 40 Store 509 508 510: 6(int) Load 8(invocation) 511: 67(ptr) AccessChain 37(data) 45 45 512: 23(i8vec4) Load 511 513: 66(i8vec2) VectorShuffle 512 512 0 1 514: 17(ivec4) Load 19(ballot) 515: 66(i8vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 513 514 516: 67(ptr) AccessChain 37(data) 510 45 517: 23(i8vec4) Load 516 518: 23(i8vec4) VectorShuffle 517 515 4 5 2 3 Store 516 518 519: 6(int) Load 8(invocation) 520: 67(ptr) AccessChain 37(data) 52 45 521: 23(i8vec4) Load 520 522: 72(i8vec3) VectorShuffle 521 521 0 1 2 523: 17(ivec4) Load 19(ballot) 524: 72(i8vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 522 523 525: 67(ptr) AccessChain 37(data) 519 45 526: 23(i8vec4) Load 525 527: 23(i8vec4) VectorShuffle 526 524 4 5 6 3 Store 525 527 528: 6(int) Load 8(invocation) 529: 67(ptr) AccessChain 37(data) 58 45 530: 23(i8vec4) Load 529 531: 17(ivec4) Load 19(ballot) 532: 23(i8vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 530 531 533: 67(ptr) AccessChain 37(data) 528 45 Store 533 532 534: 6(int) Load 8(invocation) 535: 62(ptr) AccessChain 37(data) 39 45 40 536: 22(int8_t) Load 535 537: 17(ivec4) Load 19(ballot) 538: 22(int8_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 536 537 539: 62(ptr) AccessChain 37(data) 534 45 40 Store 539 538 540: 6(int) Load 8(invocation) 541: 67(ptr) AccessChain 37(data) 45 45 542: 23(i8vec4) Load 541 543: 66(i8vec2) VectorShuffle 542 542 0 1 544: 17(ivec4) Load 19(ballot) 545: 66(i8vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 543 544 546: 67(ptr) AccessChain 37(data) 540 45 547: 23(i8vec4) Load 546 548: 23(i8vec4) VectorShuffle 547 545 4 5 2 3 Store 546 548 549: 6(int) Load 8(invocation) 550: 67(ptr) AccessChain 37(data) 52 45 551: 23(i8vec4) Load 550 552: 72(i8vec3) VectorShuffle 551 551 0 1 2 553: 17(ivec4) Load 19(ballot) 554: 72(i8vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 552 553 555: 67(ptr) AccessChain 37(data) 549 45 556: 23(i8vec4) Load 555 557: 23(i8vec4) VectorShuffle 556 554 4 5 6 3 Store 555 557 558: 6(int) Load 8(invocation) 559: 67(ptr) AccessChain 37(data) 58 45 560: 23(i8vec4) Load 559 561: 17(ivec4) Load 19(ballot) 562: 23(i8vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 560 561 563: 67(ptr) AccessChain 37(data) 558 45 Store 563 562 564: 6(int) Load 8(invocation) 565: 62(ptr) AccessChain 37(data) 39 45 40 566: 22(int8_t) Load 565 567: 17(ivec4) Load 19(ballot) 568: 22(int8_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 566 567 569: 62(ptr) AccessChain 37(data) 564 45 40 Store 569 568 570: 6(int) Load 8(invocation) 571: 67(ptr) AccessChain 37(data) 45 45 572: 23(i8vec4) Load 571 573: 66(i8vec2) VectorShuffle 572 572 0 1 574: 17(ivec4) Load 19(ballot) 575: 66(i8vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 573 574 576: 67(ptr) AccessChain 37(data) 570 45 577: 23(i8vec4) Load 576 578: 23(i8vec4) VectorShuffle 577 575 4 5 2 3 Store 576 578 579: 6(int) Load 8(invocation) 580: 67(ptr) AccessChain 37(data) 52 45 581: 23(i8vec4) Load 580 582: 72(i8vec3) VectorShuffle 581 581 0 1 2 583: 17(ivec4) Load 19(ballot) 584: 72(i8vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 582 583 585: 67(ptr) AccessChain 37(data) 579 45 586: 23(i8vec4) Load 585 587: 23(i8vec4) VectorShuffle 586 584 4 5 6 3 Store 585 587 588: 6(int) Load 8(invocation) 589: 67(ptr) AccessChain 37(data) 58 45 590: 23(i8vec4) Load 589 591: 17(ivec4) Load 19(ballot) 592: 23(i8vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 590 591 593: 67(ptr) AccessChain 37(data) 588 45 Store 593 592 594: 6(int) Load 8(invocation) 595: 80(ptr) AccessChain 37(data) 39 52 40 596: 24(int16_t) Load 595 597: 17(ivec4) Load 19(ballot) 598: 24(int16_t) GroupNonUniformIAdd 177 PartitionedReduceNV 596 597 599: 80(ptr) AccessChain 37(data) 594 52 40 Store 599 598 600: 6(int) Load 8(invocation) 601: 85(ptr) AccessChain 37(data) 45 52 602: 25(i16vec4) Load 601 603: 84(i16vec2) VectorShuffle 602 602 0 1 604: 17(ivec4) Load 19(ballot) 605: 84(i16vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 603 604 606: 85(ptr) AccessChain 37(data) 600 52 607: 25(i16vec4) Load 606 608: 25(i16vec4) VectorShuffle 607 605 4 5 2 3 Store 606 608 609: 6(int) Load 8(invocation) 610: 85(ptr) AccessChain 37(data) 52 52 611: 25(i16vec4) Load 610 612: 90(i16vec3) VectorShuffle 611 611 0 1 2 613: 17(ivec4) Load 19(ballot) 614: 90(i16vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 612 613 615: 85(ptr) AccessChain 37(data) 609 52 616: 25(i16vec4) Load 615 617: 25(i16vec4) VectorShuffle 616 614 4 5 6 3 Store 615 617 618: 6(int) Load 8(invocation) 619: 85(ptr) AccessChain 37(data) 58 52 620: 25(i16vec4) Load 619 621: 17(ivec4) Load 19(ballot) 622: 25(i16vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 620 621 623: 85(ptr) AccessChain 37(data) 618 52 Store 623 622 624: 6(int) Load 8(invocation) 625: 80(ptr) AccessChain 37(data) 39 52 40 626: 24(int16_t) Load 625 627: 17(ivec4) Load 19(ballot) 628: 24(int16_t) GroupNonUniformIMul 177 PartitionedReduceNV 626 627 629: 80(ptr) AccessChain 37(data) 624 52 40 Store 629 628 630: 6(int) Load 8(invocation) 631: 85(ptr) AccessChain 37(data) 45 52 632: 25(i16vec4) Load 631 633: 84(i16vec2) VectorShuffle 632 632 0 1 634: 17(ivec4) Load 19(ballot) 635: 84(i16vec2) GroupNonUniformIMul 177 PartitionedReduceNV 633 634 636: 85(ptr) AccessChain 37(data) 630 52 637: 25(i16vec4) Load 636 638: 25(i16vec4) VectorShuffle 637 635 4 5 2 3 Store 636 638 639: 6(int) Load 8(invocation) 640: 85(ptr) AccessChain 37(data) 52 52 641: 25(i16vec4) Load 640 642: 90(i16vec3) VectorShuffle 641 641 0 1 2 643: 17(ivec4) Load 19(ballot) 644: 90(i16vec3) GroupNonUniformIMul 177 PartitionedReduceNV 642 643 645: 85(ptr) AccessChain 37(data) 639 52 646: 25(i16vec4) Load 645 647: 25(i16vec4) VectorShuffle 646 644 4 5 6 3 Store 645 647 648: 6(int) Load 8(invocation) 649: 85(ptr) AccessChain 37(data) 58 52 650: 25(i16vec4) Load 649 651: 17(ivec4) Load 19(ballot) 652: 25(i16vec4) GroupNonUniformIMul 177 PartitionedReduceNV 650 651 653: 85(ptr) AccessChain 37(data) 648 52 Store 653 652 654: 6(int) Load 8(invocation) 655: 80(ptr) AccessChain 37(data) 39 52 40 656: 24(int16_t) Load 655 657: 17(ivec4) Load 19(ballot) 658: 24(int16_t) GroupNonUniformSMin 177 PartitionedReduceNV 656 657 659: 80(ptr) AccessChain 37(data) 654 52 40 Store 659 658 660: 6(int) Load 8(invocation) 661: 85(ptr) AccessChain 37(data) 45 52 662: 25(i16vec4) Load 661 663: 84(i16vec2) VectorShuffle 662 662 0 1 664: 17(ivec4) Load 19(ballot) 665: 84(i16vec2) GroupNonUniformSMin 177 PartitionedReduceNV 663 664 666: 85(ptr) AccessChain 37(data) 660 52 667: 25(i16vec4) Load 666 668: 25(i16vec4) VectorShuffle 667 665 4 5 2 3 Store 666 668 669: 6(int) Load 8(invocation) 670: 85(ptr) AccessChain 37(data) 52 52 671: 25(i16vec4) Load 670 672: 90(i16vec3) VectorShuffle 671 671 0 1 2 673: 17(ivec4) Load 19(ballot) 674: 90(i16vec3) GroupNonUniformSMin 177 PartitionedReduceNV 672 673 675: 85(ptr) AccessChain 37(data) 669 52 676: 25(i16vec4) Load 675 677: 25(i16vec4) VectorShuffle 676 674 4 5 6 3 Store 675 677 678: 6(int) Load 8(invocation) 679: 85(ptr) AccessChain 37(data) 58 52 680: 25(i16vec4) Load 679 681: 17(ivec4) Load 19(ballot) 682: 25(i16vec4) GroupNonUniformSMin 177 PartitionedReduceNV 680 681 683: 85(ptr) AccessChain 37(data) 678 52 Store 683 682 684: 6(int) Load 8(invocation) 685: 80(ptr) AccessChain 37(data) 39 52 40 686: 24(int16_t) Load 685 687: 17(ivec4) Load 19(ballot) 688: 24(int16_t) GroupNonUniformSMax 177 PartitionedReduceNV 686 687 689: 80(ptr) AccessChain 37(data) 684 52 40 Store 689 688 690: 6(int) Load 8(invocation) 691: 85(ptr) AccessChain 37(data) 45 52 692: 25(i16vec4) Load 691 693: 84(i16vec2) VectorShuffle 692 692 0 1 694: 17(ivec4) Load 19(ballot) 695: 84(i16vec2) GroupNonUniformSMax 177 PartitionedReduceNV 693 694 696: 85(ptr) AccessChain 37(data) 690 52 697: 25(i16vec4) Load 696 698: 25(i16vec4) VectorShuffle 697 695 4 5 2 3 Store 696 698 699: 6(int) Load 8(invocation) 700: 85(ptr) AccessChain 37(data) 52 52 701: 25(i16vec4) Load 700 702: 90(i16vec3) VectorShuffle 701 701 0 1 2 703: 17(ivec4) Load 19(ballot) 704: 90(i16vec3) GroupNonUniformSMax 177 PartitionedReduceNV 702 703 705: 85(ptr) AccessChain 37(data) 699 52 706: 25(i16vec4) Load 705 707: 25(i16vec4) VectorShuffle 706 704 4 5 6 3 Store 705 707 708: 6(int) Load 8(invocation) 709: 85(ptr) AccessChain 37(data) 58 52 710: 25(i16vec4) Load 709 711: 17(ivec4) Load 19(ballot) 712: 25(i16vec4) GroupNonUniformSMax 177 PartitionedReduceNV 710 711 713: 85(ptr) AccessChain 37(data) 708 52 Store 713 712 714: 6(int) Load 8(invocation) 715: 80(ptr) AccessChain 37(data) 39 52 40 716: 24(int16_t) Load 715 717: 17(ivec4) Load 19(ballot) 718: 24(int16_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 716 717 719: 80(ptr) AccessChain 37(data) 714 52 40 Store 719 718 720: 6(int) Load 8(invocation) 721: 85(ptr) AccessChain 37(data) 45 52 722: 25(i16vec4) Load 721 723: 84(i16vec2) VectorShuffle 722 722 0 1 724: 17(ivec4) Load 19(ballot) 725: 84(i16vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 723 724 726: 85(ptr) AccessChain 37(data) 720 52 727: 25(i16vec4) Load 726 728: 25(i16vec4) VectorShuffle 727 725 4 5 2 3 Store 726 728 729: 6(int) Load 8(invocation) 730: 85(ptr) AccessChain 37(data) 52 52 731: 25(i16vec4) Load 730 732: 90(i16vec3) VectorShuffle 731 731 0 1 2 733: 17(ivec4) Load 19(ballot) 734: 90(i16vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 732 733 735: 85(ptr) AccessChain 37(data) 729 52 736: 25(i16vec4) Load 735 737: 25(i16vec4) VectorShuffle 736 734 4 5 6 3 Store 735 737 738: 6(int) Load 8(invocation) 739: 85(ptr) AccessChain 37(data) 58 52 740: 25(i16vec4) Load 739 741: 17(ivec4) Load 19(ballot) 742: 25(i16vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 740 741 743: 85(ptr) AccessChain 37(data) 738 52 Store 743 742 744: 6(int) Load 8(invocation) 745: 80(ptr) AccessChain 37(data) 39 52 40 746: 24(int16_t) Load 745 747: 17(ivec4) Load 19(ballot) 748: 24(int16_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 746 747 749: 80(ptr) AccessChain 37(data) 744 52 40 Store 749 748 750: 6(int) Load 8(invocation) 751: 85(ptr) AccessChain 37(data) 45 52 752: 25(i16vec4) Load 751 753: 84(i16vec2) VectorShuffle 752 752 0 1 754: 17(ivec4) Load 19(ballot) 755: 84(i16vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 753 754 756: 85(ptr) AccessChain 37(data) 750 52 757: 25(i16vec4) Load 756 758: 25(i16vec4) VectorShuffle 757 755 4 5 2 3 Store 756 758 759: 6(int) Load 8(invocation) 760: 85(ptr) AccessChain 37(data) 52 52 761: 25(i16vec4) Load 760 762: 90(i16vec3) VectorShuffle 761 761 0 1 2 763: 17(ivec4) Load 19(ballot) 764: 90(i16vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 762 763 765: 85(ptr) AccessChain 37(data) 759 52 766: 25(i16vec4) Load 765 767: 25(i16vec4) VectorShuffle 766 764 4 5 6 3 Store 765 767 768: 6(int) Load 8(invocation) 769: 85(ptr) AccessChain 37(data) 58 52 770: 25(i16vec4) Load 769 771: 17(ivec4) Load 19(ballot) 772: 25(i16vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 770 771 773: 85(ptr) AccessChain 37(data) 768 52 Store 773 772 774: 6(int) Load 8(invocation) 775: 80(ptr) AccessChain 37(data) 39 52 40 776: 24(int16_t) Load 775 777: 17(ivec4) Load 19(ballot) 778: 24(int16_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 776 777 779: 80(ptr) AccessChain 37(data) 774 52 40 Store 779 778 780: 6(int) Load 8(invocation) 781: 85(ptr) AccessChain 37(data) 45 52 782: 25(i16vec4) Load 781 783: 84(i16vec2) VectorShuffle 782 782 0 1 784: 17(ivec4) Load 19(ballot) 785: 84(i16vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 783 784 786: 85(ptr) AccessChain 37(data) 780 52 787: 25(i16vec4) Load 786 788: 25(i16vec4) VectorShuffle 787 785 4 5 2 3 Store 786 788 789: 6(int) Load 8(invocation) 790: 85(ptr) AccessChain 37(data) 52 52 791: 25(i16vec4) Load 790 792: 90(i16vec3) VectorShuffle 791 791 0 1 2 793: 17(ivec4) Load 19(ballot) 794: 90(i16vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 792 793 795: 85(ptr) AccessChain 37(data) 789 52 796: 25(i16vec4) Load 795 797: 25(i16vec4) VectorShuffle 796 794 4 5 6 3 Store 795 797 798: 6(int) Load 8(invocation) 799: 85(ptr) AccessChain 37(data) 58 52 800: 25(i16vec4) Load 799 801: 17(ivec4) Load 19(ballot) 802: 25(i16vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 800 801 803: 85(ptr) AccessChain 37(data) 798 52 Store 803 802 804: 6(int) Load 8(invocation) 805: 98(ptr) AccessChain 37(data) 39 58 40 806: 26(int16_t) Load 805 807: 17(ivec4) Load 19(ballot) 808: 26(int16_t) GroupNonUniformIAdd 177 PartitionedReduceNV 806 807 809: 98(ptr) AccessChain 37(data) 804 58 40 Store 809 808 810: 6(int) Load 8(invocation) 811: 103(ptr) AccessChain 37(data) 45 58 812: 27(i16vec4) Load 811 813:102(i16vec2) VectorShuffle 812 812 0 1 814: 17(ivec4) Load 19(ballot) 815:102(i16vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 813 814 816: 103(ptr) AccessChain 37(data) 810 58 817: 27(i16vec4) Load 816 818: 27(i16vec4) VectorShuffle 817 815 4 5 2 3 Store 816 818 819: 6(int) Load 8(invocation) 820: 103(ptr) AccessChain 37(data) 52 58 821: 27(i16vec4) Load 820 822:108(i16vec3) VectorShuffle 821 821 0 1 2 823: 17(ivec4) Load 19(ballot) 824:108(i16vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 822 823 825: 103(ptr) AccessChain 37(data) 819 58 826: 27(i16vec4) Load 825 827: 27(i16vec4) VectorShuffle 826 824 4 5 6 3 Store 825 827 828: 6(int) Load 8(invocation) 829: 103(ptr) AccessChain 37(data) 58 58 830: 27(i16vec4) Load 829 831: 17(ivec4) Load 19(ballot) 832: 27(i16vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 830 831 833: 103(ptr) AccessChain 37(data) 828 58 Store 833 832 834: 6(int) Load 8(invocation) 835: 98(ptr) AccessChain 37(data) 39 58 40 836: 26(int16_t) Load 835 837: 17(ivec4) Load 19(ballot) 838: 26(int16_t) GroupNonUniformIMul 177 PartitionedReduceNV 836 837 839: 98(ptr) AccessChain 37(data) 834 58 40 Store 839 838 840: 6(int) Load 8(invocation) 841: 103(ptr) AccessChain 37(data) 45 58 842: 27(i16vec4) Load 841 843:102(i16vec2) VectorShuffle 842 842 0 1 844: 17(ivec4) Load 19(ballot) 845:102(i16vec2) GroupNonUniformIMul 177 PartitionedReduceNV 843 844 846: 103(ptr) AccessChain 37(data) 840 58 847: 27(i16vec4) Load 846 848: 27(i16vec4) VectorShuffle 847 845 4 5 2 3 Store 846 848 849: 6(int) Load 8(invocation) 850: 103(ptr) AccessChain 37(data) 52 58 851: 27(i16vec4) Load 850 852:108(i16vec3) VectorShuffle 851 851 0 1 2 853: 17(ivec4) Load 19(ballot) 854:108(i16vec3) GroupNonUniformIMul 177 PartitionedReduceNV 852 853 855: 103(ptr) AccessChain 37(data) 849 58 856: 27(i16vec4) Load 855 857: 27(i16vec4) VectorShuffle 856 854 4 5 6 3 Store 855 857 858: 6(int) Load 8(invocation) 859: 103(ptr) AccessChain 37(data) 58 58 860: 27(i16vec4) Load 859 861: 17(ivec4) Load 19(ballot) 862: 27(i16vec4) GroupNonUniformIMul 177 PartitionedReduceNV 860 861 863: 103(ptr) AccessChain 37(data) 858 58 Store 863 862 864: 6(int) Load 8(invocation) 865: 98(ptr) AccessChain 37(data) 39 58 40 866: 26(int16_t) Load 865 867: 17(ivec4) Load 19(ballot) 868: 26(int16_t) GroupNonUniformUMin 177 PartitionedReduceNV 866 867 869: 98(ptr) AccessChain 37(data) 864 58 40 Store 869 868 870: 6(int) Load 8(invocation) 871: 103(ptr) AccessChain 37(data) 45 58 872: 27(i16vec4) Load 871 873:102(i16vec2) VectorShuffle 872 872 0 1 874: 17(ivec4) Load 19(ballot) 875:102(i16vec2) GroupNonUniformUMin 177 PartitionedReduceNV 873 874 876: 103(ptr) AccessChain 37(data) 870 58 877: 27(i16vec4) Load 876 878: 27(i16vec4) VectorShuffle 877 875 4 5 2 3 Store 876 878 879: 6(int) Load 8(invocation) 880: 103(ptr) AccessChain 37(data) 52 58 881: 27(i16vec4) Load 880 882:108(i16vec3) VectorShuffle 881 881 0 1 2 883: 17(ivec4) Load 19(ballot) 884:108(i16vec3) GroupNonUniformUMin 177 PartitionedReduceNV 882 883 885: 103(ptr) AccessChain 37(data) 879 58 886: 27(i16vec4) Load 885 887: 27(i16vec4) VectorShuffle 886 884 4 5 6 3 Store 885 887 888: 6(int) Load 8(invocation) 889: 103(ptr) AccessChain 37(data) 58 58 890: 27(i16vec4) Load 889 891: 17(ivec4) Load 19(ballot) 892: 27(i16vec4) GroupNonUniformUMin 177 PartitionedReduceNV 890 891 893: 103(ptr) AccessChain 37(data) 888 58 Store 893 892 894: 6(int) Load 8(invocation) 895: 98(ptr) AccessChain 37(data) 39 58 40 896: 26(int16_t) Load 895 897: 17(ivec4) Load 19(ballot) 898: 26(int16_t) GroupNonUniformUMax 177 PartitionedReduceNV 896 897 899: 98(ptr) AccessChain 37(data) 894 58 40 Store 899 898 900: 6(int) Load 8(invocation) 901: 103(ptr) AccessChain 37(data) 45 58 902: 27(i16vec4) Load 901 903:102(i16vec2) VectorShuffle 902 902 0 1 904: 17(ivec4) Load 19(ballot) 905:102(i16vec2) GroupNonUniformUMax 177 PartitionedReduceNV 903 904 906: 103(ptr) AccessChain 37(data) 900 58 907: 27(i16vec4) Load 906 908: 27(i16vec4) VectorShuffle 907 905 4 5 2 3 Store 906 908 909: 6(int) Load 8(invocation) 910: 103(ptr) AccessChain 37(data) 52 58 911: 27(i16vec4) Load 910 912:108(i16vec3) VectorShuffle 911 911 0 1 2 913: 17(ivec4) Load 19(ballot) 914:108(i16vec3) GroupNonUniformUMax 177 PartitionedReduceNV 912 913 915: 103(ptr) AccessChain 37(data) 909 58 916: 27(i16vec4) Load 915 917: 27(i16vec4) VectorShuffle 916 914 4 5 6 3 Store 915 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) GroupNonUniformUMax 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) GroupNonUniformBitwiseAnd 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) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 933 934 936: 103(ptr) AccessChain 37(data) 930 58 937: 27(i16vec4) Load 936 938: 27(i16vec4) VectorShuffle 937 935 4 5 2 3 Store 936 938 939: 6(int) Load 8(invocation) 940: 103(ptr) AccessChain 37(data) 52 58 941: 27(i16vec4) Load 940 942:108(i16vec3) VectorShuffle 941 941 0 1 2 943: 17(ivec4) Load 19(ballot) 944:108(i16vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 942 943 945: 103(ptr) AccessChain 37(data) 939 58 946: 27(i16vec4) Load 945 947: 27(i16vec4) VectorShuffle 946 944 4 5 6 3 Store 945 947 948: 6(int) Load 8(invocation) 949: 103(ptr) AccessChain 37(data) 58 58 950: 27(i16vec4) Load 949 951: 17(ivec4) Load 19(ballot) 952: 27(i16vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 950 951 953: 103(ptr) AccessChain 37(data) 948 58 Store 953 952 954: 6(int) Load 8(invocation) 955: 98(ptr) AccessChain 37(data) 39 58 40 956: 26(int16_t) Load 955 957: 17(ivec4) Load 19(ballot) 958: 26(int16_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 956 957 959: 98(ptr) AccessChain 37(data) 954 58 40 Store 959 958 960: 6(int) Load 8(invocation) 961: 103(ptr) AccessChain 37(data) 45 58 962: 27(i16vec4) Load 961 963:102(i16vec2) VectorShuffle 962 962 0 1 964: 17(ivec4) Load 19(ballot) 965:102(i16vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 963 964 966: 103(ptr) AccessChain 37(data) 960 58 967: 27(i16vec4) Load 966 968: 27(i16vec4) VectorShuffle 967 965 4 5 2 3 Store 966 968 969: 6(int) Load 8(invocation) 970: 103(ptr) AccessChain 37(data) 52 58 971: 27(i16vec4) Load 970 972:108(i16vec3) VectorShuffle 971 971 0 1 2 973: 17(ivec4) Load 19(ballot) 974:108(i16vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 972 973 975: 103(ptr) AccessChain 37(data) 969 58 976: 27(i16vec4) Load 975 977: 27(i16vec4) VectorShuffle 976 974 4 5 6 3 Store 975 977 978: 6(int) Load 8(invocation) 979: 103(ptr) AccessChain 37(data) 58 58 980: 27(i16vec4) Load 979 981: 17(ivec4) Load 19(ballot) 982: 27(i16vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 980 981 983: 103(ptr) AccessChain 37(data) 978 58 Store 983 982 984: 6(int) Load 8(invocation) 985: 98(ptr) AccessChain 37(data) 39 58 40 986: 26(int16_t) Load 985 987: 17(ivec4) Load 19(ballot) 988: 26(int16_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 986 987 989: 98(ptr) AccessChain 37(data) 984 58 40 Store 989 988 990: 6(int) Load 8(invocation) 991: 103(ptr) AccessChain 37(data) 45 58 992: 27(i16vec4) Load 991 993:102(i16vec2) VectorShuffle 992 992 0 1 994: 17(ivec4) Load 19(ballot) 995:102(i16vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 993 994 996: 103(ptr) AccessChain 37(data) 990 58 997: 27(i16vec4) Load 996 998: 27(i16vec4) VectorShuffle 997 995 4 5 2 3 Store 996 998 999: 6(int) Load 8(invocation) 1000: 103(ptr) AccessChain 37(data) 52 58 1001: 27(i16vec4) Load 1000 1002:108(i16vec3) VectorShuffle 1001 1001 0 1 2 1003: 17(ivec4) Load 19(ballot) 1004:108(i16vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1002 1003 1005: 103(ptr) AccessChain 37(data) 999 58 1006: 27(i16vec4) Load 1005 1007: 27(i16vec4) VectorShuffle 1006 1004 4 5 6 3 Store 1005 1007 1008: 6(int) Load 8(invocation) 1009: 103(ptr) AccessChain 37(data) 58 58 1010: 27(i16vec4) Load 1009 1011: 17(ivec4) Load 19(ballot) 1012: 27(i16vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1010 1011 1013: 103(ptr) AccessChain 37(data) 1008 58 Store 1013 1012 1014: 6(int) Load 8(invocation) 1015: 117(ptr) AccessChain 37(data) 39 116 40 1016: 28(int64_t) Load 1015 1017: 17(ivec4) Load 19(ballot) 1018: 28(int64_t) GroupNonUniformIAdd 177 PartitionedReduceNV 1016 1017 1019: 117(ptr) AccessChain 37(data) 1014 116 40 Store 1019 1018 1020: 6(int) Load 8(invocation) 1021: 122(ptr) AccessChain 37(data) 45 116 1022: 29(i64vec4) Load 1021 1023:121(i64vec2) VectorShuffle 1022 1022 0 1 1024: 17(ivec4) Load 19(ballot) 1025:121(i64vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 1023 1024 1026: 122(ptr) AccessChain 37(data) 1020 116 1027: 29(i64vec4) Load 1026 1028: 29(i64vec4) VectorShuffle 1027 1025 4 5 2 3 Store 1026 1028 1029: 6(int) Load 8(invocation) 1030: 122(ptr) AccessChain 37(data) 52 116 1031: 29(i64vec4) Load 1030 1032:127(i64vec3) VectorShuffle 1031 1031 0 1 2 1033: 17(ivec4) Load 19(ballot) 1034:127(i64vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 1032 1033 1035: 122(ptr) AccessChain 37(data) 1029 116 1036: 29(i64vec4) Load 1035 1037: 29(i64vec4) VectorShuffle 1036 1034 4 5 6 3 Store 1035 1037 1038: 6(int) Load 8(invocation) 1039: 122(ptr) AccessChain 37(data) 58 116 1040: 29(i64vec4) Load 1039 1041: 17(ivec4) Load 19(ballot) 1042: 29(i64vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 1040 1041 1043: 122(ptr) AccessChain 37(data) 1038 116 Store 1043 1042 1044: 6(int) Load 8(invocation) 1045: 117(ptr) AccessChain 37(data) 39 116 40 1046: 28(int64_t) Load 1045 1047: 17(ivec4) Load 19(ballot) 1048: 28(int64_t) GroupNonUniformIMul 177 PartitionedReduceNV 1046 1047 1049: 117(ptr) AccessChain 37(data) 1044 116 40 Store 1049 1048 1050: 6(int) Load 8(invocation) 1051: 122(ptr) AccessChain 37(data) 45 116 1052: 29(i64vec4) Load 1051 1053:121(i64vec2) VectorShuffle 1052 1052 0 1 1054: 17(ivec4) Load 19(ballot) 1055:121(i64vec2) GroupNonUniformIMul 177 PartitionedReduceNV 1053 1054 1056: 122(ptr) AccessChain 37(data) 1050 116 1057: 29(i64vec4) Load 1056 1058: 29(i64vec4) VectorShuffle 1057 1055 4 5 2 3 Store 1056 1058 1059: 6(int) Load 8(invocation) 1060: 122(ptr) AccessChain 37(data) 52 116 1061: 29(i64vec4) Load 1060 1062:127(i64vec3) VectorShuffle 1061 1061 0 1 2 1063: 17(ivec4) Load 19(ballot) 1064:127(i64vec3) GroupNonUniformIMul 177 PartitionedReduceNV 1062 1063 1065: 122(ptr) AccessChain 37(data) 1059 116 1066: 29(i64vec4) Load 1065 1067: 29(i64vec4) VectorShuffle 1066 1064 4 5 6 3 Store 1065 1067 1068: 6(int) Load 8(invocation) 1069: 122(ptr) AccessChain 37(data) 58 116 1070: 29(i64vec4) Load 1069 1071: 17(ivec4) Load 19(ballot) 1072: 29(i64vec4) GroupNonUniformIMul 177 PartitionedReduceNV 1070 1071 1073: 122(ptr) AccessChain 37(data) 1068 116 Store 1073 1072 1074: 6(int) Load 8(invocation) 1075: 117(ptr) AccessChain 37(data) 39 116 40 1076: 28(int64_t) Load 1075 1077: 17(ivec4) Load 19(ballot) 1078: 28(int64_t) GroupNonUniformSMin 177 PartitionedReduceNV 1076 1077 1079: 117(ptr) AccessChain 37(data) 1074 116 40 Store 1079 1078 1080: 6(int) Load 8(invocation) 1081: 122(ptr) AccessChain 37(data) 45 116 1082: 29(i64vec4) Load 1081 1083:121(i64vec2) VectorShuffle 1082 1082 0 1 1084: 17(ivec4) Load 19(ballot) 1085:121(i64vec2) GroupNonUniformSMin 177 PartitionedReduceNV 1083 1084 1086: 122(ptr) AccessChain 37(data) 1080 116 1087: 29(i64vec4) Load 1086 1088: 29(i64vec4) VectorShuffle 1087 1085 4 5 2 3 Store 1086 1088 1089: 6(int) Load 8(invocation) 1090: 122(ptr) AccessChain 37(data) 52 116 1091: 29(i64vec4) Load 1090 1092:127(i64vec3) VectorShuffle 1091 1091 0 1 2 1093: 17(ivec4) Load 19(ballot) 1094:127(i64vec3) GroupNonUniformSMin 177 PartitionedReduceNV 1092 1093 1095: 122(ptr) AccessChain 37(data) 1089 116 1096: 29(i64vec4) Load 1095 1097: 29(i64vec4) VectorShuffle 1096 1094 4 5 6 3 Store 1095 1097 1098: 6(int) Load 8(invocation) 1099: 122(ptr) AccessChain 37(data) 58 116 1100: 29(i64vec4) Load 1099 1101: 17(ivec4) Load 19(ballot) 1102: 29(i64vec4) GroupNonUniformSMin 177 PartitionedReduceNV 1100 1101 1103: 122(ptr) AccessChain 37(data) 1098 116 Store 1103 1102 1104: 6(int) Load 8(invocation) 1105: 117(ptr) AccessChain 37(data) 39 116 40 1106: 28(int64_t) Load 1105 1107: 17(ivec4) Load 19(ballot) 1108: 28(int64_t) GroupNonUniformSMax 177 PartitionedReduceNV 1106 1107 1109: 117(ptr) AccessChain 37(data) 1104 116 40 Store 1109 1108 1110: 6(int) Load 8(invocation) 1111: 122(ptr) AccessChain 37(data) 45 116 1112: 29(i64vec4) Load 1111 1113:121(i64vec2) VectorShuffle 1112 1112 0 1 1114: 17(ivec4) Load 19(ballot) 1115:121(i64vec2) GroupNonUniformSMax 177 PartitionedReduceNV 1113 1114 1116: 122(ptr) AccessChain 37(data) 1110 116 1117: 29(i64vec4) Load 1116 1118: 29(i64vec4) VectorShuffle 1117 1115 4 5 2 3 Store 1116 1118 1119: 6(int) Load 8(invocation) 1120: 122(ptr) AccessChain 37(data) 52 116 1121: 29(i64vec4) Load 1120 1122:127(i64vec3) VectorShuffle 1121 1121 0 1 2 1123: 17(ivec4) Load 19(ballot) 1124:127(i64vec3) GroupNonUniformSMax 177 PartitionedReduceNV 1122 1123 1125: 122(ptr) AccessChain 37(data) 1119 116 1126: 29(i64vec4) Load 1125 1127: 29(i64vec4) VectorShuffle 1126 1124 4 5 6 3 Store 1125 1127 1128: 6(int) Load 8(invocation) 1129: 122(ptr) AccessChain 37(data) 58 116 1130: 29(i64vec4) Load 1129 1131: 17(ivec4) Load 19(ballot) 1132: 29(i64vec4) GroupNonUniformSMax 177 PartitionedReduceNV 1130 1131 1133: 122(ptr) AccessChain 37(data) 1128 116 Store 1133 1132 1134: 6(int) Load 8(invocation) 1135: 117(ptr) AccessChain 37(data) 39 116 40 1136: 28(int64_t) Load 1135 1137: 17(ivec4) Load 19(ballot) 1138: 28(int64_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1136 1137 1139: 117(ptr) AccessChain 37(data) 1134 116 40 Store 1139 1138 1140: 6(int) Load 8(invocation) 1141: 122(ptr) AccessChain 37(data) 45 116 1142: 29(i64vec4) Load 1141 1143:121(i64vec2) VectorShuffle 1142 1142 0 1 1144: 17(ivec4) Load 19(ballot) 1145:121(i64vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1143 1144 1146: 122(ptr) AccessChain 37(data) 1140 116 1147: 29(i64vec4) Load 1146 1148: 29(i64vec4) VectorShuffle 1147 1145 4 5 2 3 Store 1146 1148 1149: 6(int) Load 8(invocation) 1150: 122(ptr) AccessChain 37(data) 52 116 1151: 29(i64vec4) Load 1150 1152:127(i64vec3) VectorShuffle 1151 1151 0 1 2 1153: 17(ivec4) Load 19(ballot) 1154:127(i64vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1152 1153 1155: 122(ptr) AccessChain 37(data) 1149 116 1156: 29(i64vec4) Load 1155 1157: 29(i64vec4) VectorShuffle 1156 1154 4 5 6 3 Store 1155 1157 1158: 6(int) Load 8(invocation) 1159: 122(ptr) AccessChain 37(data) 58 116 1160: 29(i64vec4) Load 1159 1161: 17(ivec4) Load 19(ballot) 1162: 29(i64vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1160 1161 1163: 122(ptr) AccessChain 37(data) 1158 116 Store 1163 1162 1164: 6(int) Load 8(invocation) 1165: 117(ptr) AccessChain 37(data) 39 116 40 1166: 28(int64_t) Load 1165 1167: 17(ivec4) Load 19(ballot) 1168: 28(int64_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1166 1167 1169: 117(ptr) AccessChain 37(data) 1164 116 40 Store 1169 1168 1170: 6(int) Load 8(invocation) 1171: 122(ptr) AccessChain 37(data) 45 116 1172: 29(i64vec4) Load 1171 1173:121(i64vec2) VectorShuffle 1172 1172 0 1 1174: 17(ivec4) Load 19(ballot) 1175:121(i64vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1173 1174 1176: 122(ptr) AccessChain 37(data) 1170 116 1177: 29(i64vec4) Load 1176 1178: 29(i64vec4) VectorShuffle 1177 1175 4 5 2 3 Store 1176 1178 1179: 6(int) Load 8(invocation) 1180: 122(ptr) AccessChain 37(data) 52 116 1181: 29(i64vec4) Load 1180 1182:127(i64vec3) VectorShuffle 1181 1181 0 1 2 1183: 17(ivec4) Load 19(ballot) 1184:127(i64vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1182 1183 1185: 122(ptr) AccessChain 37(data) 1179 116 1186: 29(i64vec4) Load 1185 1187: 29(i64vec4) VectorShuffle 1186 1184 4 5 6 3 Store 1185 1187 1188: 6(int) Load 8(invocation) 1189: 122(ptr) AccessChain 37(data) 58 116 1190: 29(i64vec4) Load 1189 1191: 17(ivec4) Load 19(ballot) 1192: 29(i64vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1190 1191 1193: 122(ptr) AccessChain 37(data) 1188 116 Store 1193 1192 1194: 6(int) Load 8(invocation) 1195: 117(ptr) AccessChain 37(data) 39 116 40 1196: 28(int64_t) Load 1195 1197: 17(ivec4) Load 19(ballot) 1198: 28(int64_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1196 1197 1199: 117(ptr) AccessChain 37(data) 1194 116 40 Store 1199 1198 1200: 6(int) Load 8(invocation) 1201: 122(ptr) AccessChain 37(data) 45 116 1202: 29(i64vec4) Load 1201 1203:121(i64vec2) VectorShuffle 1202 1202 0 1 1204: 17(ivec4) Load 19(ballot) 1205:121(i64vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1203 1204 1206: 122(ptr) AccessChain 37(data) 1200 116 1207: 29(i64vec4) Load 1206 1208: 29(i64vec4) VectorShuffle 1207 1205 4 5 2 3 Store 1206 1208 1209: 6(int) Load 8(invocation) 1210: 122(ptr) AccessChain 37(data) 52 116 1211: 29(i64vec4) Load 1210 1212:127(i64vec3) VectorShuffle 1211 1211 0 1 2 1213: 17(ivec4) Load 19(ballot) 1214:127(i64vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1212 1213 1215: 122(ptr) AccessChain 37(data) 1209 116 1216: 29(i64vec4) Load 1215 1217: 29(i64vec4) VectorShuffle 1216 1214 4 5 6 3 Store 1215 1217 1218: 6(int) Load 8(invocation) 1219: 122(ptr) AccessChain 37(data) 58 116 1220: 29(i64vec4) Load 1219 1221: 17(ivec4) Load 19(ballot) 1222: 29(i64vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1220 1221 1223: 122(ptr) AccessChain 37(data) 1218 116 Store 1223 1222 1224: 6(int) Load 8(invocation) 1225: 136(ptr) AccessChain 37(data) 39 135 40 1226: 30(int64_t) Load 1225 1227: 17(ivec4) Load 19(ballot) 1228: 30(int64_t) GroupNonUniformIAdd 177 PartitionedReduceNV 1226 1227 1229: 136(ptr) AccessChain 37(data) 1224 135 40 Store 1229 1228 1230: 6(int) Load 8(invocation) 1231: 141(ptr) AccessChain 37(data) 45 135 1232: 31(i64vec4) Load 1231 1233:140(i64vec2) VectorShuffle 1232 1232 0 1 1234: 17(ivec4) Load 19(ballot) 1235:140(i64vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 1233 1234 1236: 141(ptr) AccessChain 37(data) 1230 135 1237: 31(i64vec4) Load 1236 1238: 31(i64vec4) VectorShuffle 1237 1235 4 5 2 3 Store 1236 1238 1239: 6(int) Load 8(invocation) 1240: 141(ptr) AccessChain 37(data) 52 135 1241: 31(i64vec4) Load 1240 1242:146(i64vec3) VectorShuffle 1241 1241 0 1 2 1243: 17(ivec4) Load 19(ballot) 1244:146(i64vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 1242 1243 1245: 141(ptr) AccessChain 37(data) 1239 135 1246: 31(i64vec4) Load 1245 1247: 31(i64vec4) VectorShuffle 1246 1244 4 5 6 3 Store 1245 1247 1248: 6(int) Load 8(invocation) 1249: 141(ptr) AccessChain 37(data) 58 135 1250: 31(i64vec4) Load 1249 1251: 17(ivec4) Load 19(ballot) 1252: 31(i64vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 1250 1251 1253: 141(ptr) AccessChain 37(data) 1248 135 Store 1253 1252 1254: 6(int) Load 8(invocation) 1255: 136(ptr) AccessChain 37(data) 39 135 40 1256: 30(int64_t) Load 1255 1257: 17(ivec4) Load 19(ballot) 1258: 30(int64_t) GroupNonUniformIMul 177 PartitionedReduceNV 1256 1257 1259: 136(ptr) AccessChain 37(data) 1254 135 40 Store 1259 1258 1260: 6(int) Load 8(invocation) 1261: 141(ptr) AccessChain 37(data) 45 135 1262: 31(i64vec4) Load 1261 1263:140(i64vec2) VectorShuffle 1262 1262 0 1 1264: 17(ivec4) Load 19(ballot) 1265:140(i64vec2) GroupNonUniformIMul 177 PartitionedReduceNV 1263 1264 1266: 141(ptr) AccessChain 37(data) 1260 135 1267: 31(i64vec4) Load 1266 1268: 31(i64vec4) VectorShuffle 1267 1265 4 5 2 3 Store 1266 1268 1269: 6(int) Load 8(invocation) 1270: 141(ptr) AccessChain 37(data) 52 135 1271: 31(i64vec4) Load 1270 1272:146(i64vec3) VectorShuffle 1271 1271 0 1 2 1273: 17(ivec4) Load 19(ballot) 1274:146(i64vec3) GroupNonUniformIMul 177 PartitionedReduceNV 1272 1273 1275: 141(ptr) AccessChain 37(data) 1269 135 1276: 31(i64vec4) Load 1275 1277: 31(i64vec4) VectorShuffle 1276 1274 4 5 6 3 Store 1275 1277 1278: 6(int) Load 8(invocation) 1279: 141(ptr) AccessChain 37(data) 58 135 1280: 31(i64vec4) Load 1279 1281: 17(ivec4) Load 19(ballot) 1282: 31(i64vec4) GroupNonUniformIMul 177 PartitionedReduceNV 1280 1281 1283: 141(ptr) AccessChain 37(data) 1278 135 Store 1283 1282 1284: 6(int) Load 8(invocation) 1285: 136(ptr) AccessChain 37(data) 39 135 40 1286: 30(int64_t) Load 1285 1287: 17(ivec4) Load 19(ballot) 1288: 30(int64_t) GroupNonUniformUMin 177 PartitionedReduceNV 1286 1287 1289: 136(ptr) AccessChain 37(data) 1284 135 40 Store 1289 1288 1290: 6(int) Load 8(invocation) 1291: 141(ptr) AccessChain 37(data) 45 135 1292: 31(i64vec4) Load 1291 1293:140(i64vec2) VectorShuffle 1292 1292 0 1 1294: 17(ivec4) Load 19(ballot) 1295:140(i64vec2) GroupNonUniformUMin 177 PartitionedReduceNV 1293 1294 1296: 141(ptr) AccessChain 37(data) 1290 135 1297: 31(i64vec4) Load 1296 1298: 31(i64vec4) VectorShuffle 1297 1295 4 5 2 3 Store 1296 1298 1299: 6(int) Load 8(invocation) 1300: 141(ptr) AccessChain 37(data) 52 135 1301: 31(i64vec4) Load 1300 1302:146(i64vec3) VectorShuffle 1301 1301 0 1 2 1303: 17(ivec4) Load 19(ballot) 1304:146(i64vec3) GroupNonUniformUMin 177 PartitionedReduceNV 1302 1303 1305: 141(ptr) AccessChain 37(data) 1299 135 1306: 31(i64vec4) Load 1305 1307: 31(i64vec4) VectorShuffle 1306 1304 4 5 6 3 Store 1305 1307 1308: 6(int) Load 8(invocation) 1309: 141(ptr) AccessChain 37(data) 58 135 1310: 31(i64vec4) Load 1309 1311: 17(ivec4) Load 19(ballot) 1312: 31(i64vec4) GroupNonUniformUMin 177 PartitionedReduceNV 1310 1311 1313: 141(ptr) AccessChain 37(data) 1308 135 Store 1313 1312 1314: 6(int) Load 8(invocation) 1315: 136(ptr) AccessChain 37(data) 39 135 40 1316: 30(int64_t) Load 1315 1317: 17(ivec4) Load 19(ballot) 1318: 30(int64_t) GroupNonUniformUMax 177 PartitionedReduceNV 1316 1317 1319: 136(ptr) AccessChain 37(data) 1314 135 40 Store 1319 1318 1320: 6(int) Load 8(invocation) 1321: 141(ptr) AccessChain 37(data) 45 135 1322: 31(i64vec4) Load 1321 1323:140(i64vec2) VectorShuffle 1322 1322 0 1 1324: 17(ivec4) Load 19(ballot) 1325:140(i64vec2) GroupNonUniformUMax 177 PartitionedReduceNV 1323 1324 1326: 141(ptr) AccessChain 37(data) 1320 135 1327: 31(i64vec4) Load 1326 1328: 31(i64vec4) VectorShuffle 1327 1325 4 5 2 3 Store 1326 1328 1329: 6(int) Load 8(invocation) 1330: 141(ptr) AccessChain 37(data) 52 135 1331: 31(i64vec4) Load 1330 1332:146(i64vec3) VectorShuffle 1331 1331 0 1 2 1333: 17(ivec4) Load 19(ballot) 1334:146(i64vec3) GroupNonUniformUMax 177 PartitionedReduceNV 1332 1333 1335: 141(ptr) AccessChain 37(data) 1329 135 1336: 31(i64vec4) Load 1335 1337: 31(i64vec4) VectorShuffle 1336 1334 4 5 6 3 Store 1335 1337 1338: 6(int) Load 8(invocation) 1339: 141(ptr) AccessChain 37(data) 58 135 1340: 31(i64vec4) Load 1339 1341: 17(ivec4) Load 19(ballot) 1342: 31(i64vec4) GroupNonUniformUMax 177 PartitionedReduceNV 1340 1341 1343: 141(ptr) AccessChain 37(data) 1338 135 Store 1343 1342 1344: 6(int) Load 8(invocation) 1345: 136(ptr) AccessChain 37(data) 39 135 40 1346: 30(int64_t) Load 1345 1347: 17(ivec4) Load 19(ballot) 1348: 30(int64_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1346 1347 1349: 136(ptr) AccessChain 37(data) 1344 135 40 Store 1349 1348 1350: 6(int) Load 8(invocation) 1351: 141(ptr) AccessChain 37(data) 45 135 1352: 31(i64vec4) Load 1351 1353:140(i64vec2) VectorShuffle 1352 1352 0 1 1354: 17(ivec4) Load 19(ballot) 1355:140(i64vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1353 1354 1356: 141(ptr) AccessChain 37(data) 1350 135 1357: 31(i64vec4) Load 1356 1358: 31(i64vec4) VectorShuffle 1357 1355 4 5 2 3 Store 1356 1358 1359: 6(int) Load 8(invocation) 1360: 141(ptr) AccessChain 37(data) 52 135 1361: 31(i64vec4) Load 1360 1362:146(i64vec3) VectorShuffle 1361 1361 0 1 2 1363: 17(ivec4) Load 19(ballot) 1364:146(i64vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1362 1363 1365: 141(ptr) AccessChain 37(data) 1359 135 1366: 31(i64vec4) Load 1365 1367: 31(i64vec4) VectorShuffle 1366 1364 4 5 6 3 Store 1365 1367 1368: 6(int) Load 8(invocation) 1369: 141(ptr) AccessChain 37(data) 58 135 1370: 31(i64vec4) Load 1369 1371: 17(ivec4) Load 19(ballot) 1372: 31(i64vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1370 1371 1373: 141(ptr) AccessChain 37(data) 1368 135 Store 1373 1372 1374: 6(int) Load 8(invocation) 1375: 136(ptr) AccessChain 37(data) 39 135 40 1376: 30(int64_t) Load 1375 1377: 17(ivec4) Load 19(ballot) 1378: 30(int64_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1376 1377 1379: 136(ptr) AccessChain 37(data) 1374 135 40 Store 1379 1378 1380: 6(int) Load 8(invocation) 1381: 141(ptr) AccessChain 37(data) 45 135 1382: 31(i64vec4) Load 1381 1383:140(i64vec2) VectorShuffle 1382 1382 0 1 1384: 17(ivec4) Load 19(ballot) 1385:140(i64vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1383 1384 1386: 141(ptr) AccessChain 37(data) 1380 135 1387: 31(i64vec4) Load 1386 1388: 31(i64vec4) VectorShuffle 1387 1385 4 5 2 3 Store 1386 1388 1389: 6(int) Load 8(invocation) 1390: 141(ptr) AccessChain 37(data) 52 135 1391: 31(i64vec4) Load 1390 1392:146(i64vec3) VectorShuffle 1391 1391 0 1 2 1393: 17(ivec4) Load 19(ballot) 1394:146(i64vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1392 1393 1395: 141(ptr) AccessChain 37(data) 1389 135 1396: 31(i64vec4) Load 1395 1397: 31(i64vec4) VectorShuffle 1396 1394 4 5 6 3 Store 1395 1397 1398: 6(int) Load 8(invocation) 1399: 141(ptr) AccessChain 37(data) 58 135 1400: 31(i64vec4) Load 1399 1401: 17(ivec4) Load 19(ballot) 1402: 31(i64vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1400 1401 1403: 141(ptr) AccessChain 37(data) 1398 135 Store 1403 1402 1404: 6(int) Load 8(invocation) 1405: 136(ptr) AccessChain 37(data) 39 135 40 1406: 30(int64_t) Load 1405 1407: 17(ivec4) Load 19(ballot) 1408: 30(int64_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1406 1407 1409: 136(ptr) AccessChain 37(data) 1404 135 40 Store 1409 1408 1410: 6(int) Load 8(invocation) 1411: 141(ptr) AccessChain 37(data) 45 135 1412: 31(i64vec4) Load 1411 1413:140(i64vec2) VectorShuffle 1412 1412 0 1 1414: 17(ivec4) Load 19(ballot) 1415:140(i64vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1413 1414 1416: 141(ptr) AccessChain 37(data) 1410 135 1417: 31(i64vec4) Load 1416 1418: 31(i64vec4) VectorShuffle 1417 1415 4 5 2 3 Store 1416 1418 1419: 6(int) Load 8(invocation) 1420: 141(ptr) AccessChain 37(data) 52 135 1421: 31(i64vec4) Load 1420 1422:146(i64vec3) VectorShuffle 1421 1421 0 1 2 1423: 17(ivec4) Load 19(ballot) 1424:146(i64vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1422 1423 1425: 141(ptr) AccessChain 37(data) 1419 135 1426: 31(i64vec4) Load 1425 1427: 31(i64vec4) VectorShuffle 1426 1424 4 5 6 3 Store 1425 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) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1430 1431 1433: 141(ptr) AccessChain 37(data) 1428 135 Store 1433 1432 1434: 6(int) Load 8(invocation) 1435: 155(ptr) AccessChain 37(data) 39 154 40 1436:32(float16_t) Load 1435 1437: 17(ivec4) Load 19(ballot) 1438:32(float16_t) GroupNonUniformFAdd 177 PartitionedReduceNV 1436 1437 1439: 155(ptr) AccessChain 37(data) 1434 154 40 Store 1439 1438 1440: 6(int) Load 8(invocation) 1441: 160(ptr) AccessChain 37(data) 45 154 1442: 33(f16vec4) Load 1441 1443:159(f16vec2) VectorShuffle 1442 1442 0 1 1444: 17(ivec4) Load 19(ballot) 1445:159(f16vec2) GroupNonUniformFAdd 177 PartitionedReduceNV 1443 1444 1446: 160(ptr) AccessChain 37(data) 1440 154 1447: 33(f16vec4) Load 1446 1448: 33(f16vec4) VectorShuffle 1447 1445 4 5 2 3 Store 1446 1448 1449: 6(int) Load 8(invocation) 1450: 160(ptr) AccessChain 37(data) 52 154 1451: 33(f16vec4) Load 1450 1452:165(f16vec3) VectorShuffle 1451 1451 0 1 2 1453: 17(ivec4) Load 19(ballot) 1454:165(f16vec3) GroupNonUniformFAdd 177 PartitionedReduceNV 1452 1453 1455: 160(ptr) AccessChain 37(data) 1449 154 1456: 33(f16vec4) Load 1455 1457: 33(f16vec4) VectorShuffle 1456 1454 4 5 6 3 Store 1455 1457 1458: 6(int) Load 8(invocation) 1459: 160(ptr) AccessChain 37(data) 58 154 1460: 33(f16vec4) Load 1459 1461: 17(ivec4) Load 19(ballot) 1462: 33(f16vec4) GroupNonUniformFAdd 177 PartitionedReduceNV 1460 1461 1463: 160(ptr) AccessChain 37(data) 1458 154 Store 1463 1462 1464: 6(int) Load 8(invocation) 1465: 155(ptr) AccessChain 37(data) 39 154 40 1466:32(float16_t) Load 1465 1467: 17(ivec4) Load 19(ballot) 1468:32(float16_t) GroupNonUniformFMul 177 PartitionedReduceNV 1466 1467 1469: 155(ptr) AccessChain 37(data) 1464 154 40 Store 1469 1468 1470: 6(int) Load 8(invocation) 1471: 160(ptr) AccessChain 37(data) 45 154 1472: 33(f16vec4) Load 1471 1473:159(f16vec2) VectorShuffle 1472 1472 0 1 1474: 17(ivec4) Load 19(ballot) 1475:159(f16vec2) GroupNonUniformFMul 177 PartitionedReduceNV 1473 1474 1476: 160(ptr) AccessChain 37(data) 1470 154 1477: 33(f16vec4) Load 1476 1478: 33(f16vec4) VectorShuffle 1477 1475 4 5 2 3 Store 1476 1478 1479: 6(int) Load 8(invocation) 1480: 160(ptr) AccessChain 37(data) 52 154 1481: 33(f16vec4) Load 1480 1482:165(f16vec3) VectorShuffle 1481 1481 0 1 2 1483: 17(ivec4) Load 19(ballot) 1484:165(f16vec3) GroupNonUniformFMul 177 PartitionedReduceNV 1482 1483 1485: 160(ptr) AccessChain 37(data) 1479 154 1486: 33(f16vec4) Load 1485 1487: 33(f16vec4) VectorShuffle 1486 1484 4 5 6 3 Store 1485 1487 1488: 6(int) Load 8(invocation) 1489: 160(ptr) AccessChain 37(data) 58 154 1490: 33(f16vec4) Load 1489 1491: 17(ivec4) Load 19(ballot) 1492: 33(f16vec4) GroupNonUniformFMul 177 PartitionedReduceNV 1490 1491 1493: 160(ptr) AccessChain 37(data) 1488 154 Store 1493 1492 1494: 6(int) Load 8(invocation) 1495: 155(ptr) AccessChain 37(data) 39 154 40 1496:32(float16_t) Load 1495 1497: 17(ivec4) Load 19(ballot) 1498:32(float16_t) GroupNonUniformFMin 177 PartitionedReduceNV 1496 1497 1499: 155(ptr) AccessChain 37(data) 1494 154 40 Store 1499 1498 1500: 6(int) Load 8(invocation) 1501: 160(ptr) AccessChain 37(data) 45 154 1502: 33(f16vec4) Load 1501 1503:159(f16vec2) VectorShuffle 1502 1502 0 1 1504: 17(ivec4) Load 19(ballot) 1505:159(f16vec2) GroupNonUniformFMin 177 PartitionedReduceNV 1503 1504 1506: 160(ptr) AccessChain 37(data) 1500 154 1507: 33(f16vec4) Load 1506 1508: 33(f16vec4) VectorShuffle 1507 1505 4 5 2 3 Store 1506 1508 1509: 6(int) Load 8(invocation) 1510: 160(ptr) AccessChain 37(data) 52 154 1511: 33(f16vec4) Load 1510 1512:165(f16vec3) VectorShuffle 1511 1511 0 1 2 1513: 17(ivec4) Load 19(ballot) 1514:165(f16vec3) GroupNonUniformFMin 177 PartitionedReduceNV 1512 1513 1515: 160(ptr) AccessChain 37(data) 1509 154 1516: 33(f16vec4) Load 1515 1517: 33(f16vec4) VectorShuffle 1516 1514 4 5 6 3 Store 1515 1517 1518: 6(int) Load 8(invocation) 1519: 160(ptr) AccessChain 37(data) 58 154 1520: 33(f16vec4) Load 1519 1521: 17(ivec4) Load 19(ballot) 1522: 33(f16vec4) GroupNonUniformFMin 177 PartitionedReduceNV 1520 1521 1523: 160(ptr) AccessChain 37(data) 1518 154 Store 1523 1522 1524: 6(int) Load 8(invocation) 1525: 155(ptr) AccessChain 37(data) 39 154 40 1526:32(float16_t) Load 1525 1527: 17(ivec4) Load 19(ballot) 1528:32(float16_t) GroupNonUniformFMax 177 PartitionedReduceNV 1526 1527 1529: 155(ptr) AccessChain 37(data) 1524 154 40 Store 1529 1528 1530: 6(int) Load 8(invocation) 1531: 160(ptr) AccessChain 37(data) 45 154 1532: 33(f16vec4) Load 1531 1533:159(f16vec2) VectorShuffle 1532 1532 0 1 1534: 17(ivec4) Load 19(ballot) 1535:159(f16vec2) GroupNonUniformFMax 177 PartitionedReduceNV 1533 1534 1536: 160(ptr) AccessChain 37(data) 1530 154 1537: 33(f16vec4) Load 1536 1538: 33(f16vec4) VectorShuffle 1537 1535 4 5 2 3 Store 1536 1538 1539: 6(int) Load 8(invocation) 1540: 160(ptr) AccessChain 37(data) 52 154 1541: 33(f16vec4) Load 1540 1542:165(f16vec3) VectorShuffle 1541 1541 0 1 2 1543: 17(ivec4) Load 19(ballot) 1544:165(f16vec3) GroupNonUniformFMax 177 PartitionedReduceNV 1542 1543 1545: 160(ptr) AccessChain 37(data) 1539 154 1546: 33(f16vec4) Load 1545 1547: 33(f16vec4) VectorShuffle 1546 1544 4 5 6 3 Store 1545 1547 1548: 6(int) Load 8(invocation) 1549: 160(ptr) AccessChain 37(data) 58 154 1550: 33(f16vec4) Load 1549 1551: 17(ivec4) Load 19(ballot) 1552: 33(f16vec4) GroupNonUniformFMax 177 PartitionedReduceNV 1550 1551 1553: 160(ptr) AccessChain 37(data) 1548 154 Store 1553 1552 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesPartitionedNeg.comp.out000066400000000000000000000677421360464450000304430ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out000066400000000000000000001455271360464450000264170ustar00rootroot00000000000000spv.subgroupExtendedTypesQuad.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 806 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 805 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) 58: 36(int) Constant 2 59: TypeVector 17(int8_t) 3 68: 36(int) Constant 3 128: 6(int) Constant 2 153: TypePointer StorageBuffer 19(int8_t) 159: TypeVector 19(int8_t) 2 160: TypePointer StorageBuffer 20(i8vec4) 169: TypeVector 19(int8_t) 3 261: TypePointer StorageBuffer 21(int16_t) 267: TypeVector 21(int16_t) 2 268: TypePointer StorageBuffer 22(i16vec4) 277: TypeVector 21(int16_t) 3 369: TypePointer StorageBuffer 23(int16_t) 375: TypeVector 23(int16_t) 2 376: TypePointer StorageBuffer 24(i16vec4) 385: TypeVector 23(int16_t) 3 477: 36(int) Constant 4 478: TypePointer StorageBuffer 25(int64_t) 484: TypeVector 25(int64_t) 2 485: TypePointer StorageBuffer 26(i64vec4) 494: TypeVector 25(int64_t) 3 586: 36(int) Constant 5 587: TypePointer StorageBuffer 27(int64_t) 593: TypeVector 27(int64_t) 2 594: TypePointer StorageBuffer 28(i64vec4) 603: TypeVector 27(int64_t) 3 695: 36(int) Constant 6 696: TypePointer StorageBuffer 29(float16_t) 702: TypeVector 29(float16_t) 2 703: TypePointer StorageBuffer 30(f16vec4) 712: TypeVector 29(float16_t) 3 803: TypeVector 6(int) 3 804: 6(int) Constant 8 805: 803(ivec3) ConstantComposite 804 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: 49(ptr) AccessChain 34(data) 46 37 55: 18(i8vec4) Load 54 56: 18(i8vec4) VectorShuffle 55 53 4 5 2 3 Store 54 56 57: 6(int) Load 8(invocation) 60: 49(ptr) AccessChain 34(data) 58 37 61: 18(i8vec4) Load 60 62: 59(i8vec3) VectorShuffle 61 61 0 1 2 63: 59(i8vec3) GroupNonUniformQuadBroadcast 43 62 42 64: 49(ptr) AccessChain 34(data) 57 37 65: 18(i8vec4) Load 64 66: 18(i8vec4) VectorShuffle 65 63 4 5 6 3 Store 64 66 67: 6(int) Load 8(invocation) 69: 49(ptr) AccessChain 34(data) 68 37 70: 18(i8vec4) Load 69 71: 18(i8vec4) GroupNonUniformQuadBroadcast 43 70 42 72: 49(ptr) AccessChain 34(data) 67 37 Store 72 71 73: 6(int) Load 8(invocation) 74: 39(ptr) AccessChain 34(data) 37 37 38 75: 17(int8_t) Load 74 76: 17(int8_t) GroupNonUniformQuadSwap 43 75 38 77: 39(ptr) AccessChain 34(data) 73 37 38 Store 77 76 78: 6(int) Load 8(invocation) 79: 49(ptr) AccessChain 34(data) 47 37 80: 18(i8vec4) Load 79 81: 48(i8vec2) VectorShuffle 80 80 0 1 82: 48(i8vec2) GroupNonUniformQuadSwap 43 81 38 83: 49(ptr) AccessChain 34(data) 78 37 84: 18(i8vec4) Load 83 85: 18(i8vec4) VectorShuffle 84 82 4 5 2 3 Store 83 85 86: 6(int) Load 8(invocation) 87: 49(ptr) AccessChain 34(data) 58 37 88: 18(i8vec4) Load 87 89: 59(i8vec3) VectorShuffle 88 88 0 1 2 90: 59(i8vec3) GroupNonUniformQuadSwap 43 89 38 91: 49(ptr) AccessChain 34(data) 86 37 92: 18(i8vec4) Load 91 93: 18(i8vec4) VectorShuffle 92 90 4 5 6 3 Store 91 93 94: 6(int) Load 8(invocation) 95: 49(ptr) AccessChain 34(data) 68 37 96: 18(i8vec4) Load 95 97: 18(i8vec4) GroupNonUniformQuadSwap 43 96 38 98: 49(ptr) AccessChain 34(data) 94 37 Store 98 97 99: 6(int) Load 8(invocation) 100: 39(ptr) AccessChain 34(data) 37 37 38 101: 17(int8_t) Load 100 102: 17(int8_t) GroupNonUniformQuadSwap 43 101 42 103: 39(ptr) AccessChain 34(data) 99 37 38 Store 103 102 104: 6(int) Load 8(invocation) 105: 49(ptr) AccessChain 34(data) 47 37 106: 18(i8vec4) Load 105 107: 48(i8vec2) VectorShuffle 106 106 0 1 108: 48(i8vec2) GroupNonUniformQuadSwap 43 107 42 109: 49(ptr) AccessChain 34(data) 104 37 110: 18(i8vec4) Load 109 111: 18(i8vec4) VectorShuffle 110 108 4 5 2 3 Store 109 111 112: 6(int) Load 8(invocation) 113: 49(ptr) AccessChain 34(data) 58 37 114: 18(i8vec4) Load 113 115: 59(i8vec3) VectorShuffle 114 114 0 1 2 116: 59(i8vec3) GroupNonUniformQuadSwap 43 115 42 117: 49(ptr) AccessChain 34(data) 112 37 118: 18(i8vec4) Load 117 119: 18(i8vec4) VectorShuffle 118 116 4 5 6 3 Store 117 119 120: 6(int) Load 8(invocation) 121: 49(ptr) AccessChain 34(data) 68 37 122: 18(i8vec4) Load 121 123: 18(i8vec4) GroupNonUniformQuadSwap 43 122 42 124: 49(ptr) AccessChain 34(data) 120 37 Store 124 123 125: 6(int) Load 8(invocation) 126: 39(ptr) AccessChain 34(data) 37 37 38 127: 17(int8_t) Load 126 129: 17(int8_t) GroupNonUniformQuadSwap 43 127 128 130: 39(ptr) AccessChain 34(data) 125 37 38 Store 130 129 131: 6(int) Load 8(invocation) 132: 49(ptr) AccessChain 34(data) 47 37 133: 18(i8vec4) Load 132 134: 48(i8vec2) VectorShuffle 133 133 0 1 135: 48(i8vec2) GroupNonUniformQuadSwap 43 134 128 136: 49(ptr) AccessChain 34(data) 131 37 137: 18(i8vec4) Load 136 138: 18(i8vec4) VectorShuffle 137 135 4 5 2 3 Store 136 138 139: 6(int) Load 8(invocation) 140: 49(ptr) AccessChain 34(data) 58 37 141: 18(i8vec4) Load 140 142: 59(i8vec3) VectorShuffle 141 141 0 1 2 143: 59(i8vec3) GroupNonUniformQuadSwap 43 142 128 144: 49(ptr) AccessChain 34(data) 139 37 145: 18(i8vec4) Load 144 146: 18(i8vec4) VectorShuffle 145 143 4 5 6 3 Store 144 146 147: 6(int) Load 8(invocation) 148: 49(ptr) AccessChain 34(data) 68 37 149: 18(i8vec4) Load 148 150: 18(i8vec4) GroupNonUniformQuadSwap 43 149 128 151: 49(ptr) AccessChain 34(data) 147 37 Store 151 150 152: 6(int) Load 8(invocation) 154: 153(ptr) AccessChain 34(data) 37 47 38 155: 19(int8_t) Load 154 156: 19(int8_t) GroupNonUniformQuadBroadcast 43 155 42 157: 153(ptr) AccessChain 34(data) 152 47 38 Store 157 156 158: 6(int) Load 8(invocation) 161: 160(ptr) AccessChain 34(data) 47 47 162: 20(i8vec4) Load 161 163: 159(i8vec2) VectorShuffle 162 162 0 1 164: 159(i8vec2) GroupNonUniformQuadBroadcast 43 163 42 165: 160(ptr) AccessChain 34(data) 158 47 166: 20(i8vec4) Load 165 167: 20(i8vec4) VectorShuffle 166 164 4 5 2 3 Store 165 167 168: 6(int) Load 8(invocation) 170: 160(ptr) AccessChain 34(data) 58 47 171: 20(i8vec4) Load 170 172: 169(i8vec3) VectorShuffle 171 171 0 1 2 173: 169(i8vec3) GroupNonUniformQuadBroadcast 43 172 42 174: 160(ptr) AccessChain 34(data) 168 47 175: 20(i8vec4) Load 174 176: 20(i8vec4) VectorShuffle 175 173 4 5 6 3 Store 174 176 177: 6(int) Load 8(invocation) 178: 160(ptr) AccessChain 34(data) 68 47 179: 20(i8vec4) Load 178 180: 20(i8vec4) GroupNonUniformQuadBroadcast 43 179 42 181: 160(ptr) AccessChain 34(data) 177 47 Store 181 180 182: 6(int) Load 8(invocation) 183: 153(ptr) AccessChain 34(data) 37 47 38 184: 19(int8_t) Load 183 185: 19(int8_t) GroupNonUniformQuadSwap 43 184 38 186: 153(ptr) AccessChain 34(data) 182 47 38 Store 186 185 187: 6(int) Load 8(invocation) 188: 160(ptr) AccessChain 34(data) 47 47 189: 20(i8vec4) Load 188 190: 159(i8vec2) VectorShuffle 189 189 0 1 191: 159(i8vec2) GroupNonUniformQuadSwap 43 190 38 192: 160(ptr) AccessChain 34(data) 187 47 193: 20(i8vec4) Load 192 194: 20(i8vec4) VectorShuffle 193 191 4 5 2 3 Store 192 194 195: 6(int) Load 8(invocation) 196: 160(ptr) AccessChain 34(data) 58 47 197: 20(i8vec4) Load 196 198: 169(i8vec3) VectorShuffle 197 197 0 1 2 199: 169(i8vec3) GroupNonUniformQuadSwap 43 198 38 200: 160(ptr) AccessChain 34(data) 195 47 201: 20(i8vec4) Load 200 202: 20(i8vec4) VectorShuffle 201 199 4 5 6 3 Store 200 202 203: 6(int) Load 8(invocation) 204: 160(ptr) AccessChain 34(data) 68 47 205: 20(i8vec4) Load 204 206: 20(i8vec4) GroupNonUniformQuadSwap 43 205 38 207: 160(ptr) AccessChain 34(data) 203 47 Store 207 206 208: 6(int) Load 8(invocation) 209: 153(ptr) AccessChain 34(data) 37 47 38 210: 19(int8_t) Load 209 211: 19(int8_t) GroupNonUniformQuadSwap 43 210 42 212: 153(ptr) AccessChain 34(data) 208 47 38 Store 212 211 213: 6(int) Load 8(invocation) 214: 160(ptr) AccessChain 34(data) 47 47 215: 20(i8vec4) Load 214 216: 159(i8vec2) VectorShuffle 215 215 0 1 217: 159(i8vec2) GroupNonUniformQuadSwap 43 216 42 218: 160(ptr) AccessChain 34(data) 213 47 219: 20(i8vec4) Load 218 220: 20(i8vec4) VectorShuffle 219 217 4 5 2 3 Store 218 220 221: 6(int) Load 8(invocation) 222: 160(ptr) AccessChain 34(data) 58 47 223: 20(i8vec4) Load 222 224: 169(i8vec3) VectorShuffle 223 223 0 1 2 225: 169(i8vec3) GroupNonUniformQuadSwap 43 224 42 226: 160(ptr) AccessChain 34(data) 221 47 227: 20(i8vec4) Load 226 228: 20(i8vec4) VectorShuffle 227 225 4 5 6 3 Store 226 228 229: 6(int) Load 8(invocation) 230: 160(ptr) AccessChain 34(data) 68 47 231: 20(i8vec4) Load 230 232: 20(i8vec4) GroupNonUniformQuadSwap 43 231 42 233: 160(ptr) AccessChain 34(data) 229 47 Store 233 232 234: 6(int) Load 8(invocation) 235: 153(ptr) AccessChain 34(data) 37 47 38 236: 19(int8_t) Load 235 237: 19(int8_t) GroupNonUniformQuadSwap 43 236 128 238: 153(ptr) AccessChain 34(data) 234 47 38 Store 238 237 239: 6(int) Load 8(invocation) 240: 160(ptr) AccessChain 34(data) 47 47 241: 20(i8vec4) Load 240 242: 159(i8vec2) VectorShuffle 241 241 0 1 243: 159(i8vec2) GroupNonUniformQuadSwap 43 242 128 244: 160(ptr) AccessChain 34(data) 239 47 245: 20(i8vec4) Load 244 246: 20(i8vec4) VectorShuffle 245 243 4 5 2 3 Store 244 246 247: 6(int) Load 8(invocation) 248: 160(ptr) AccessChain 34(data) 58 47 249: 20(i8vec4) Load 248 250: 169(i8vec3) VectorShuffle 249 249 0 1 2 251: 169(i8vec3) GroupNonUniformQuadSwap 43 250 128 252: 160(ptr) AccessChain 34(data) 247 47 253: 20(i8vec4) Load 252 254: 20(i8vec4) VectorShuffle 253 251 4 5 6 3 Store 252 254 255: 6(int) Load 8(invocation) 256: 160(ptr) AccessChain 34(data) 68 47 257: 20(i8vec4) Load 256 258: 20(i8vec4) GroupNonUniformQuadSwap 43 257 128 259: 160(ptr) AccessChain 34(data) 255 47 Store 259 258 260: 6(int) Load 8(invocation) 262: 261(ptr) AccessChain 34(data) 37 58 38 263: 21(int16_t) Load 262 264: 21(int16_t) GroupNonUniformQuadBroadcast 43 263 42 265: 261(ptr) AccessChain 34(data) 260 58 38 Store 265 264 266: 6(int) Load 8(invocation) 269: 268(ptr) AccessChain 34(data) 47 58 270: 22(i16vec4) Load 269 271:267(i16vec2) VectorShuffle 270 270 0 1 272:267(i16vec2) GroupNonUniformQuadBroadcast 43 271 42 273: 268(ptr) AccessChain 34(data) 266 58 274: 22(i16vec4) Load 273 275: 22(i16vec4) VectorShuffle 274 272 4 5 2 3 Store 273 275 276: 6(int) Load 8(invocation) 278: 268(ptr) AccessChain 34(data) 58 58 279: 22(i16vec4) Load 278 280:277(i16vec3) VectorShuffle 279 279 0 1 2 281:277(i16vec3) GroupNonUniformQuadBroadcast 43 280 42 282: 268(ptr) AccessChain 34(data) 276 58 283: 22(i16vec4) Load 282 284: 22(i16vec4) VectorShuffle 283 281 4 5 6 3 Store 282 284 285: 6(int) Load 8(invocation) 286: 268(ptr) AccessChain 34(data) 68 58 287: 22(i16vec4) Load 286 288: 22(i16vec4) GroupNonUniformQuadBroadcast 43 287 42 289: 268(ptr) AccessChain 34(data) 285 58 Store 289 288 290: 6(int) Load 8(invocation) 291: 261(ptr) AccessChain 34(data) 37 58 38 292: 21(int16_t) Load 291 293: 21(int16_t) GroupNonUniformQuadSwap 43 292 38 294: 261(ptr) AccessChain 34(data) 290 58 38 Store 294 293 295: 6(int) Load 8(invocation) 296: 268(ptr) AccessChain 34(data) 47 58 297: 22(i16vec4) Load 296 298:267(i16vec2) VectorShuffle 297 297 0 1 299:267(i16vec2) GroupNonUniformQuadSwap 43 298 38 300: 268(ptr) AccessChain 34(data) 295 58 301: 22(i16vec4) Load 300 302: 22(i16vec4) VectorShuffle 301 299 4 5 2 3 Store 300 302 303: 6(int) Load 8(invocation) 304: 268(ptr) AccessChain 34(data) 58 58 305: 22(i16vec4) Load 304 306:277(i16vec3) VectorShuffle 305 305 0 1 2 307:277(i16vec3) GroupNonUniformQuadSwap 43 306 38 308: 268(ptr) AccessChain 34(data) 303 58 309: 22(i16vec4) Load 308 310: 22(i16vec4) VectorShuffle 309 307 4 5 6 3 Store 308 310 311: 6(int) Load 8(invocation) 312: 268(ptr) AccessChain 34(data) 68 58 313: 22(i16vec4) Load 312 314: 22(i16vec4) GroupNonUniformQuadSwap 43 313 38 315: 268(ptr) AccessChain 34(data) 311 58 Store 315 314 316: 6(int) Load 8(invocation) 317: 261(ptr) AccessChain 34(data) 37 58 38 318: 21(int16_t) Load 317 319: 21(int16_t) GroupNonUniformQuadSwap 43 318 42 320: 261(ptr) AccessChain 34(data) 316 58 38 Store 320 319 321: 6(int) Load 8(invocation) 322: 268(ptr) AccessChain 34(data) 47 58 323: 22(i16vec4) Load 322 324:267(i16vec2) VectorShuffle 323 323 0 1 325:267(i16vec2) GroupNonUniformQuadSwap 43 324 42 326: 268(ptr) AccessChain 34(data) 321 58 327: 22(i16vec4) Load 326 328: 22(i16vec4) VectorShuffle 327 325 4 5 2 3 Store 326 328 329: 6(int) Load 8(invocation) 330: 268(ptr) AccessChain 34(data) 58 58 331: 22(i16vec4) Load 330 332:277(i16vec3) VectorShuffle 331 331 0 1 2 333:277(i16vec3) GroupNonUniformQuadSwap 43 332 42 334: 268(ptr) AccessChain 34(data) 329 58 335: 22(i16vec4) Load 334 336: 22(i16vec4) VectorShuffle 335 333 4 5 6 3 Store 334 336 337: 6(int) Load 8(invocation) 338: 268(ptr) AccessChain 34(data) 68 58 339: 22(i16vec4) Load 338 340: 22(i16vec4) GroupNonUniformQuadSwap 43 339 42 341: 268(ptr) AccessChain 34(data) 337 58 Store 341 340 342: 6(int) Load 8(invocation) 343: 261(ptr) AccessChain 34(data) 37 58 38 344: 21(int16_t) Load 343 345: 21(int16_t) GroupNonUniformQuadSwap 43 344 128 346: 261(ptr) AccessChain 34(data) 342 58 38 Store 346 345 347: 6(int) Load 8(invocation) 348: 268(ptr) AccessChain 34(data) 47 58 349: 22(i16vec4) Load 348 350:267(i16vec2) VectorShuffle 349 349 0 1 351:267(i16vec2) GroupNonUniformQuadSwap 43 350 128 352: 268(ptr) AccessChain 34(data) 347 58 353: 22(i16vec4) Load 352 354: 22(i16vec4) VectorShuffle 353 351 4 5 2 3 Store 352 354 355: 6(int) Load 8(invocation) 356: 268(ptr) AccessChain 34(data) 58 58 357: 22(i16vec4) Load 356 358:277(i16vec3) VectorShuffle 357 357 0 1 2 359:277(i16vec3) GroupNonUniformQuadSwap 43 358 128 360: 268(ptr) AccessChain 34(data) 355 58 361: 22(i16vec4) Load 360 362: 22(i16vec4) VectorShuffle 361 359 4 5 6 3 Store 360 362 363: 6(int) Load 8(invocation) 364: 268(ptr) AccessChain 34(data) 68 58 365: 22(i16vec4) Load 364 366: 22(i16vec4) GroupNonUniformQuadSwap 43 365 128 367: 268(ptr) AccessChain 34(data) 363 58 Store 367 366 368: 6(int) Load 8(invocation) 370: 369(ptr) AccessChain 34(data) 37 68 38 371: 23(int16_t) Load 370 372: 23(int16_t) GroupNonUniformQuadBroadcast 43 371 42 373: 369(ptr) AccessChain 34(data) 368 68 38 Store 373 372 374: 6(int) Load 8(invocation) 377: 376(ptr) AccessChain 34(data) 47 68 378: 24(i16vec4) Load 377 379:375(i16vec2) VectorShuffle 378 378 0 1 380:375(i16vec2) GroupNonUniformQuadBroadcast 43 379 42 381: 376(ptr) AccessChain 34(data) 374 68 382: 24(i16vec4) Load 381 383: 24(i16vec4) VectorShuffle 382 380 4 5 2 3 Store 381 383 384: 6(int) Load 8(invocation) 386: 376(ptr) AccessChain 34(data) 58 68 387: 24(i16vec4) Load 386 388:385(i16vec3) VectorShuffle 387 387 0 1 2 389:385(i16vec3) GroupNonUniformQuadBroadcast 43 388 42 390: 376(ptr) AccessChain 34(data) 384 68 391: 24(i16vec4) Load 390 392: 24(i16vec4) VectorShuffle 391 389 4 5 6 3 Store 390 392 393: 6(int) Load 8(invocation) 394: 376(ptr) AccessChain 34(data) 68 68 395: 24(i16vec4) Load 394 396: 24(i16vec4) GroupNonUniformQuadBroadcast 43 395 42 397: 376(ptr) AccessChain 34(data) 393 68 Store 397 396 398: 6(int) Load 8(invocation) 399: 369(ptr) AccessChain 34(data) 37 68 38 400: 23(int16_t) Load 399 401: 23(int16_t) GroupNonUniformQuadSwap 43 400 38 402: 369(ptr) AccessChain 34(data) 398 68 38 Store 402 401 403: 6(int) Load 8(invocation) 404: 376(ptr) AccessChain 34(data) 47 68 405: 24(i16vec4) Load 404 406:375(i16vec2) VectorShuffle 405 405 0 1 407:375(i16vec2) GroupNonUniformQuadSwap 43 406 38 408: 376(ptr) AccessChain 34(data) 403 68 409: 24(i16vec4) Load 408 410: 24(i16vec4) VectorShuffle 409 407 4 5 2 3 Store 408 410 411: 6(int) Load 8(invocation) 412: 376(ptr) AccessChain 34(data) 58 68 413: 24(i16vec4) Load 412 414:385(i16vec3) VectorShuffle 413 413 0 1 2 415:385(i16vec3) GroupNonUniformQuadSwap 43 414 38 416: 376(ptr) AccessChain 34(data) 411 68 417: 24(i16vec4) Load 416 418: 24(i16vec4) VectorShuffle 417 415 4 5 6 3 Store 416 418 419: 6(int) Load 8(invocation) 420: 376(ptr) AccessChain 34(data) 68 68 421: 24(i16vec4) Load 420 422: 24(i16vec4) GroupNonUniformQuadSwap 43 421 38 423: 376(ptr) AccessChain 34(data) 419 68 Store 423 422 424: 6(int) Load 8(invocation) 425: 369(ptr) AccessChain 34(data) 37 68 38 426: 23(int16_t) Load 425 427: 23(int16_t) GroupNonUniformQuadSwap 43 426 42 428: 369(ptr) AccessChain 34(data) 424 68 38 Store 428 427 429: 6(int) Load 8(invocation) 430: 376(ptr) AccessChain 34(data) 47 68 431: 24(i16vec4) Load 430 432:375(i16vec2) VectorShuffle 431 431 0 1 433:375(i16vec2) GroupNonUniformQuadSwap 43 432 42 434: 376(ptr) AccessChain 34(data) 429 68 435: 24(i16vec4) Load 434 436: 24(i16vec4) VectorShuffle 435 433 4 5 2 3 Store 434 436 437: 6(int) Load 8(invocation) 438: 376(ptr) AccessChain 34(data) 58 68 439: 24(i16vec4) Load 438 440:385(i16vec3) VectorShuffle 439 439 0 1 2 441:385(i16vec3) GroupNonUniformQuadSwap 43 440 42 442: 376(ptr) AccessChain 34(data) 437 68 443: 24(i16vec4) Load 442 444: 24(i16vec4) VectorShuffle 443 441 4 5 6 3 Store 442 444 445: 6(int) Load 8(invocation) 446: 376(ptr) AccessChain 34(data) 68 68 447: 24(i16vec4) Load 446 448: 24(i16vec4) GroupNonUniformQuadSwap 43 447 42 449: 376(ptr) AccessChain 34(data) 445 68 Store 449 448 450: 6(int) Load 8(invocation) 451: 369(ptr) AccessChain 34(data) 37 68 38 452: 23(int16_t) Load 451 453: 23(int16_t) GroupNonUniformQuadSwap 43 452 128 454: 369(ptr) AccessChain 34(data) 450 68 38 Store 454 453 455: 6(int) Load 8(invocation) 456: 376(ptr) AccessChain 34(data) 47 68 457: 24(i16vec4) Load 456 458:375(i16vec2) VectorShuffle 457 457 0 1 459:375(i16vec2) GroupNonUniformQuadSwap 43 458 128 460: 376(ptr) AccessChain 34(data) 455 68 461: 24(i16vec4) Load 460 462: 24(i16vec4) VectorShuffle 461 459 4 5 2 3 Store 460 462 463: 6(int) Load 8(invocation) 464: 376(ptr) AccessChain 34(data) 58 68 465: 24(i16vec4) Load 464 466:385(i16vec3) VectorShuffle 465 465 0 1 2 467:385(i16vec3) GroupNonUniformQuadSwap 43 466 128 468: 376(ptr) AccessChain 34(data) 463 68 469: 24(i16vec4) Load 468 470: 24(i16vec4) VectorShuffle 469 467 4 5 6 3 Store 468 470 471: 6(int) Load 8(invocation) 472: 376(ptr) AccessChain 34(data) 68 68 473: 24(i16vec4) Load 472 474: 24(i16vec4) GroupNonUniformQuadSwap 43 473 128 475: 376(ptr) AccessChain 34(data) 471 68 Store 475 474 476: 6(int) Load 8(invocation) 479: 478(ptr) AccessChain 34(data) 37 477 38 480: 25(int64_t) Load 479 481: 25(int64_t) GroupNonUniformQuadBroadcast 43 480 42 482: 478(ptr) AccessChain 34(data) 476 477 38 Store 482 481 483: 6(int) Load 8(invocation) 486: 485(ptr) AccessChain 34(data) 47 477 487: 26(i64vec4) Load 486 488:484(i64vec2) VectorShuffle 487 487 0 1 489:484(i64vec2) GroupNonUniformQuadBroadcast 43 488 42 490: 485(ptr) AccessChain 34(data) 483 477 491: 26(i64vec4) Load 490 492: 26(i64vec4) VectorShuffle 491 489 4 5 2 3 Store 490 492 493: 6(int) Load 8(invocation) 495: 485(ptr) AccessChain 34(data) 58 477 496: 26(i64vec4) Load 495 497:494(i64vec3) VectorShuffle 496 496 0 1 2 498:494(i64vec3) GroupNonUniformQuadBroadcast 43 497 42 499: 485(ptr) AccessChain 34(data) 493 477 500: 26(i64vec4) Load 499 501: 26(i64vec4) VectorShuffle 500 498 4 5 6 3 Store 499 501 502: 6(int) Load 8(invocation) 503: 485(ptr) AccessChain 34(data) 68 477 504: 26(i64vec4) Load 503 505: 26(i64vec4) GroupNonUniformQuadBroadcast 43 504 42 506: 485(ptr) AccessChain 34(data) 502 477 Store 506 505 507: 6(int) Load 8(invocation) 508: 478(ptr) AccessChain 34(data) 37 477 38 509: 25(int64_t) Load 508 510: 25(int64_t) GroupNonUniformQuadSwap 43 509 38 511: 478(ptr) AccessChain 34(data) 507 477 38 Store 511 510 512: 6(int) Load 8(invocation) 513: 485(ptr) AccessChain 34(data) 47 477 514: 26(i64vec4) Load 513 515:484(i64vec2) VectorShuffle 514 514 0 1 516:484(i64vec2) GroupNonUniformQuadSwap 43 515 38 517: 485(ptr) AccessChain 34(data) 512 477 518: 26(i64vec4) Load 517 519: 26(i64vec4) VectorShuffle 518 516 4 5 2 3 Store 517 519 520: 6(int) Load 8(invocation) 521: 485(ptr) AccessChain 34(data) 58 477 522: 26(i64vec4) Load 521 523:494(i64vec3) VectorShuffle 522 522 0 1 2 524:494(i64vec3) GroupNonUniformQuadSwap 43 523 38 525: 485(ptr) AccessChain 34(data) 520 477 526: 26(i64vec4) Load 525 527: 26(i64vec4) VectorShuffle 526 524 4 5 6 3 Store 525 527 528: 6(int) Load 8(invocation) 529: 485(ptr) AccessChain 34(data) 68 477 530: 26(i64vec4) Load 529 531: 26(i64vec4) GroupNonUniformQuadSwap 43 530 38 532: 485(ptr) AccessChain 34(data) 528 477 Store 532 531 533: 6(int) Load 8(invocation) 534: 478(ptr) AccessChain 34(data) 37 477 38 535: 25(int64_t) Load 534 536: 25(int64_t) GroupNonUniformQuadSwap 43 535 42 537: 478(ptr) AccessChain 34(data) 533 477 38 Store 537 536 538: 6(int) Load 8(invocation) 539: 485(ptr) AccessChain 34(data) 47 477 540: 26(i64vec4) Load 539 541:484(i64vec2) VectorShuffle 540 540 0 1 542:484(i64vec2) GroupNonUniformQuadSwap 43 541 42 543: 485(ptr) AccessChain 34(data) 538 477 544: 26(i64vec4) Load 543 545: 26(i64vec4) VectorShuffle 544 542 4 5 2 3 Store 543 545 546: 6(int) Load 8(invocation) 547: 485(ptr) AccessChain 34(data) 58 477 548: 26(i64vec4) Load 547 549:494(i64vec3) VectorShuffle 548 548 0 1 2 550:494(i64vec3) GroupNonUniformQuadSwap 43 549 42 551: 485(ptr) AccessChain 34(data) 546 477 552: 26(i64vec4) Load 551 553: 26(i64vec4) VectorShuffle 552 550 4 5 6 3 Store 551 553 554: 6(int) Load 8(invocation) 555: 485(ptr) AccessChain 34(data) 68 477 556: 26(i64vec4) Load 555 557: 26(i64vec4) GroupNonUniformQuadSwap 43 556 42 558: 485(ptr) AccessChain 34(data) 554 477 Store 558 557 559: 6(int) Load 8(invocation) 560: 478(ptr) AccessChain 34(data) 37 477 38 561: 25(int64_t) Load 560 562: 25(int64_t) GroupNonUniformQuadSwap 43 561 128 563: 478(ptr) AccessChain 34(data) 559 477 38 Store 563 562 564: 6(int) Load 8(invocation) 565: 485(ptr) AccessChain 34(data) 47 477 566: 26(i64vec4) Load 565 567:484(i64vec2) VectorShuffle 566 566 0 1 568:484(i64vec2) GroupNonUniformQuadSwap 43 567 128 569: 485(ptr) AccessChain 34(data) 564 477 570: 26(i64vec4) Load 569 571: 26(i64vec4) VectorShuffle 570 568 4 5 2 3 Store 569 571 572: 6(int) Load 8(invocation) 573: 485(ptr) AccessChain 34(data) 58 477 574: 26(i64vec4) Load 573 575:494(i64vec3) VectorShuffle 574 574 0 1 2 576:494(i64vec3) GroupNonUniformQuadSwap 43 575 128 577: 485(ptr) AccessChain 34(data) 572 477 578: 26(i64vec4) Load 577 579: 26(i64vec4) VectorShuffle 578 576 4 5 6 3 Store 577 579 580: 6(int) Load 8(invocation) 581: 485(ptr) AccessChain 34(data) 68 477 582: 26(i64vec4) Load 581 583: 26(i64vec4) GroupNonUniformQuadSwap 43 582 128 584: 485(ptr) AccessChain 34(data) 580 477 Store 584 583 585: 6(int) Load 8(invocation) 588: 587(ptr) AccessChain 34(data) 37 586 38 589: 27(int64_t) Load 588 590: 27(int64_t) GroupNonUniformQuadBroadcast 43 589 42 591: 587(ptr) AccessChain 34(data) 585 586 38 Store 591 590 592: 6(int) Load 8(invocation) 595: 594(ptr) AccessChain 34(data) 47 586 596: 28(i64vec4) Load 595 597:593(i64vec2) VectorShuffle 596 596 0 1 598:593(i64vec2) GroupNonUniformQuadBroadcast 43 597 42 599: 594(ptr) AccessChain 34(data) 592 586 600: 28(i64vec4) Load 599 601: 28(i64vec4) VectorShuffle 600 598 4 5 2 3 Store 599 601 602: 6(int) Load 8(invocation) 604: 594(ptr) AccessChain 34(data) 58 586 605: 28(i64vec4) Load 604 606:603(i64vec3) VectorShuffle 605 605 0 1 2 607:603(i64vec3) GroupNonUniformQuadBroadcast 43 606 42 608: 594(ptr) AccessChain 34(data) 602 586 609: 28(i64vec4) Load 608 610: 28(i64vec4) VectorShuffle 609 607 4 5 6 3 Store 608 610 611: 6(int) Load 8(invocation) 612: 594(ptr) AccessChain 34(data) 68 586 613: 28(i64vec4) Load 612 614: 28(i64vec4) GroupNonUniformQuadBroadcast 43 613 42 615: 594(ptr) AccessChain 34(data) 611 586 Store 615 614 616: 6(int) Load 8(invocation) 617: 587(ptr) AccessChain 34(data) 37 586 38 618: 27(int64_t) Load 617 619: 27(int64_t) GroupNonUniformQuadSwap 43 618 38 620: 587(ptr) AccessChain 34(data) 616 586 38 Store 620 619 621: 6(int) Load 8(invocation) 622: 594(ptr) AccessChain 34(data) 47 586 623: 28(i64vec4) Load 622 624:593(i64vec2) VectorShuffle 623 623 0 1 625:593(i64vec2) GroupNonUniformQuadSwap 43 624 38 626: 594(ptr) AccessChain 34(data) 621 586 627: 28(i64vec4) Load 626 628: 28(i64vec4) VectorShuffle 627 625 4 5 2 3 Store 626 628 629: 6(int) Load 8(invocation) 630: 594(ptr) AccessChain 34(data) 58 586 631: 28(i64vec4) Load 630 632:603(i64vec3) VectorShuffle 631 631 0 1 2 633:603(i64vec3) GroupNonUniformQuadSwap 43 632 38 634: 594(ptr) AccessChain 34(data) 629 586 635: 28(i64vec4) Load 634 636: 28(i64vec4) VectorShuffle 635 633 4 5 6 3 Store 634 636 637: 6(int) Load 8(invocation) 638: 594(ptr) AccessChain 34(data) 68 586 639: 28(i64vec4) Load 638 640: 28(i64vec4) GroupNonUniformQuadSwap 43 639 38 641: 594(ptr) AccessChain 34(data) 637 586 Store 641 640 642: 6(int) Load 8(invocation) 643: 587(ptr) AccessChain 34(data) 37 586 38 644: 27(int64_t) Load 643 645: 27(int64_t) GroupNonUniformQuadSwap 43 644 42 646: 587(ptr) AccessChain 34(data) 642 586 38 Store 646 645 647: 6(int) Load 8(invocation) 648: 594(ptr) AccessChain 34(data) 47 586 649: 28(i64vec4) Load 648 650:593(i64vec2) VectorShuffle 649 649 0 1 651:593(i64vec2) GroupNonUniformQuadSwap 43 650 42 652: 594(ptr) AccessChain 34(data) 647 586 653: 28(i64vec4) Load 652 654: 28(i64vec4) VectorShuffle 653 651 4 5 2 3 Store 652 654 655: 6(int) Load 8(invocation) 656: 594(ptr) AccessChain 34(data) 58 586 657: 28(i64vec4) Load 656 658:603(i64vec3) VectorShuffle 657 657 0 1 2 659:603(i64vec3) GroupNonUniformQuadSwap 43 658 42 660: 594(ptr) AccessChain 34(data) 655 586 661: 28(i64vec4) Load 660 662: 28(i64vec4) VectorShuffle 661 659 4 5 6 3 Store 660 662 663: 6(int) Load 8(invocation) 664: 594(ptr) AccessChain 34(data) 68 586 665: 28(i64vec4) Load 664 666: 28(i64vec4) GroupNonUniformQuadSwap 43 665 42 667: 594(ptr) AccessChain 34(data) 663 586 Store 667 666 668: 6(int) Load 8(invocation) 669: 587(ptr) AccessChain 34(data) 37 586 38 670: 27(int64_t) Load 669 671: 27(int64_t) GroupNonUniformQuadSwap 43 670 128 672: 587(ptr) AccessChain 34(data) 668 586 38 Store 672 671 673: 6(int) Load 8(invocation) 674: 594(ptr) AccessChain 34(data) 47 586 675: 28(i64vec4) Load 674 676:593(i64vec2) VectorShuffle 675 675 0 1 677:593(i64vec2) GroupNonUniformQuadSwap 43 676 128 678: 594(ptr) AccessChain 34(data) 673 586 679: 28(i64vec4) Load 678 680: 28(i64vec4) VectorShuffle 679 677 4 5 2 3 Store 678 680 681: 6(int) Load 8(invocation) 682: 594(ptr) AccessChain 34(data) 58 586 683: 28(i64vec4) Load 682 684:603(i64vec3) VectorShuffle 683 683 0 1 2 685:603(i64vec3) GroupNonUniformQuadSwap 43 684 128 686: 594(ptr) AccessChain 34(data) 681 586 687: 28(i64vec4) Load 686 688: 28(i64vec4) VectorShuffle 687 685 4 5 6 3 Store 686 688 689: 6(int) Load 8(invocation) 690: 594(ptr) AccessChain 34(data) 68 586 691: 28(i64vec4) Load 690 692: 28(i64vec4) GroupNonUniformQuadSwap 43 691 128 693: 594(ptr) AccessChain 34(data) 689 586 Store 693 692 694: 6(int) Load 8(invocation) 697: 696(ptr) AccessChain 34(data) 37 695 38 698:29(float16_t) Load 697 699:29(float16_t) GroupNonUniformQuadBroadcast 43 698 42 700: 696(ptr) AccessChain 34(data) 694 695 38 Store 700 699 701: 6(int) Load 8(invocation) 704: 703(ptr) AccessChain 34(data) 47 695 705: 30(f16vec4) Load 704 706:702(f16vec2) VectorShuffle 705 705 0 1 707:702(f16vec2) GroupNonUniformQuadBroadcast 43 706 42 708: 703(ptr) AccessChain 34(data) 701 695 709: 30(f16vec4) Load 708 710: 30(f16vec4) VectorShuffle 709 707 4 5 2 3 Store 708 710 711: 6(int) Load 8(invocation) 713: 703(ptr) AccessChain 34(data) 58 695 714: 30(f16vec4) Load 713 715:712(f16vec3) VectorShuffle 714 714 0 1 2 716:712(f16vec3) GroupNonUniformQuadBroadcast 43 715 42 717: 703(ptr) AccessChain 34(data) 711 695 718: 30(f16vec4) Load 717 719: 30(f16vec4) VectorShuffle 718 716 4 5 6 3 Store 717 719 720: 6(int) Load 8(invocation) 721: 703(ptr) AccessChain 34(data) 68 695 722: 30(f16vec4) Load 721 723: 30(f16vec4) GroupNonUniformQuadBroadcast 43 722 42 724: 703(ptr) AccessChain 34(data) 720 695 Store 724 723 725: 6(int) Load 8(invocation) 726: 696(ptr) AccessChain 34(data) 37 695 38 727:29(float16_t) Load 726 728:29(float16_t) GroupNonUniformQuadSwap 43 727 38 729: 696(ptr) AccessChain 34(data) 725 695 38 Store 729 728 730: 6(int) Load 8(invocation) 731: 703(ptr) AccessChain 34(data) 47 695 732: 30(f16vec4) Load 731 733:702(f16vec2) VectorShuffle 732 732 0 1 734:702(f16vec2) GroupNonUniformQuadSwap 43 733 38 735: 703(ptr) AccessChain 34(data) 730 695 736: 30(f16vec4) Load 735 737: 30(f16vec4) VectorShuffle 736 734 4 5 2 3 Store 735 737 738: 6(int) Load 8(invocation) 739: 703(ptr) AccessChain 34(data) 58 695 740: 30(f16vec4) Load 739 741:712(f16vec3) VectorShuffle 740 740 0 1 2 742:712(f16vec3) GroupNonUniformQuadSwap 43 741 38 743: 703(ptr) AccessChain 34(data) 738 695 744: 30(f16vec4) Load 743 745: 30(f16vec4) VectorShuffle 744 742 4 5 6 3 Store 743 745 746: 6(int) Load 8(invocation) 747: 703(ptr) AccessChain 34(data) 68 695 748: 30(f16vec4) Load 747 749: 30(f16vec4) GroupNonUniformQuadSwap 43 748 38 750: 703(ptr) AccessChain 34(data) 746 695 Store 750 749 751: 6(int) Load 8(invocation) 752: 696(ptr) AccessChain 34(data) 37 695 38 753:29(float16_t) Load 752 754:29(float16_t) GroupNonUniformQuadSwap 43 753 42 755: 696(ptr) AccessChain 34(data) 751 695 38 Store 755 754 756: 6(int) Load 8(invocation) 757: 703(ptr) AccessChain 34(data) 47 695 758: 30(f16vec4) Load 757 759:702(f16vec2) VectorShuffle 758 758 0 1 760:702(f16vec2) GroupNonUniformQuadSwap 43 759 42 761: 703(ptr) AccessChain 34(data) 756 695 762: 30(f16vec4) Load 761 763: 30(f16vec4) VectorShuffle 762 760 4 5 2 3 Store 761 763 764: 6(int) Load 8(invocation) 765: 703(ptr) AccessChain 34(data) 58 695 766: 30(f16vec4) Load 765 767:712(f16vec3) VectorShuffle 766 766 0 1 2 768:712(f16vec3) GroupNonUniformQuadSwap 43 767 42 769: 703(ptr) AccessChain 34(data) 764 695 770: 30(f16vec4) Load 769 771: 30(f16vec4) VectorShuffle 770 768 4 5 6 3 Store 769 771 772: 6(int) Load 8(invocation) 773: 703(ptr) AccessChain 34(data) 68 695 774: 30(f16vec4) Load 773 775: 30(f16vec4) GroupNonUniformQuadSwap 43 774 42 776: 703(ptr) AccessChain 34(data) 772 695 Store 776 775 777: 6(int) Load 8(invocation) 778: 696(ptr) AccessChain 34(data) 37 695 38 779:29(float16_t) Load 778 780:29(float16_t) GroupNonUniformQuadSwap 43 779 128 781: 696(ptr) AccessChain 34(data) 777 695 38 Store 781 780 782: 6(int) Load 8(invocation) 783: 703(ptr) AccessChain 34(data) 47 695 784: 30(f16vec4) Load 783 785:702(f16vec2) VectorShuffle 784 784 0 1 786:702(f16vec2) GroupNonUniformQuadSwap 43 785 128 787: 703(ptr) AccessChain 34(data) 782 695 788: 30(f16vec4) Load 787 789: 30(f16vec4) VectorShuffle 788 786 4 5 2 3 Store 787 789 790: 6(int) Load 8(invocation) 791: 703(ptr) AccessChain 34(data) 58 695 792: 30(f16vec4) Load 791 793:712(f16vec3) VectorShuffle 792 792 0 1 2 794:712(f16vec3) GroupNonUniformQuadSwap 43 793 128 795: 703(ptr) AccessChain 34(data) 790 695 796: 30(f16vec4) Load 795 797: 30(f16vec4) VectorShuffle 796 794 4 5 6 3 Store 795 797 798: 6(int) Load 8(invocation) 799: 703(ptr) AccessChain 34(data) 68 695 800: 30(f16vec4) Load 799 801: 30(f16vec4) GroupNonUniformQuadSwap 43 800 128 802: 703(ptr) AccessChain 34(data) 798 695 Store 802 801 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesQuadNeg.comp.out000066400000000000000000000354421360464450000270430ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out000066400000000000000000000777741360464450000271310ustar00rootroot00000000000000spv.subgroupExtendedTypesShuffle.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 497 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 496 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) 59: 36(int) Constant 2 60: TypeVector 17(int8_t) 3 70: 36(int) Constant 3 107: TypePointer StorageBuffer 19(int8_t) 114: TypeVector 19(int8_t) 2 115: TypePointer StorageBuffer 20(i8vec4) 125: TypeVector 19(int8_t) 3 171: TypePointer StorageBuffer 21(int16_t) 178: TypeVector 21(int16_t) 2 179: TypePointer StorageBuffer 22(i16vec4) 189: TypeVector 21(int16_t) 3 235: TypePointer StorageBuffer 23(int16_t) 242: TypeVector 23(int16_t) 2 243: TypePointer StorageBuffer 24(i16vec4) 253: TypeVector 23(int16_t) 3 299: 36(int) Constant 4 300: TypePointer StorageBuffer 25(int64_t) 307: TypeVector 25(int64_t) 2 308: TypePointer StorageBuffer 26(i64vec4) 318: TypeVector 25(int64_t) 3 364: 36(int) Constant 5 365: TypePointer StorageBuffer 27(int64_t) 372: TypeVector 27(int64_t) 2 373: TypePointer StorageBuffer 28(i64vec4) 383: TypeVector 27(int64_t) 3 429: 36(int) Constant 6 430: TypePointer StorageBuffer 29(float16_t) 437: TypeVector 29(float16_t) 2 438: TypePointer StorageBuffer 30(f16vec4) 448: TypeVector 29(float16_t) 3 493: TypeVector 6(int) 3 494: 6(int) Constant 8 495: 6(int) Constant 1 496: 493(ivec3) ConstantComposite 494 495 495 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: 49(ptr) AccessChain 34(data) 46 37 56: 18(i8vec4) Load 55 57: 18(i8vec4) VectorShuffle 56 54 4 5 2 3 Store 55 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: 6(int) Load 8(invocation) 65: 60(i8vec3) GroupNonUniformShuffle 43 63 64 66: 49(ptr) AccessChain 34(data) 58 37 67: 18(i8vec4) Load 66 68: 18(i8vec4) VectorShuffle 67 65 4 5 6 3 Store 66 68 69: 6(int) Load 8(invocation) 71: 49(ptr) AccessChain 34(data) 70 37 72: 18(i8vec4) Load 71 73: 6(int) Load 8(invocation) 74: 18(i8vec4) GroupNonUniformShuffle 43 72 73 75: 49(ptr) AccessChain 34(data) 69 37 Store 75 74 76: 6(int) Load 8(invocation) 77: 39(ptr) AccessChain 34(data) 37 37 38 78: 17(int8_t) Load 77 79: 6(int) Load 8(invocation) 80: 17(int8_t) GroupNonUniformShuffleXor 43 78 79 81: 39(ptr) AccessChain 34(data) 76 37 38 Store 81 80 82: 6(int) Load 8(invocation) 83: 49(ptr) AccessChain 34(data) 47 37 84: 18(i8vec4) Load 83 85: 48(i8vec2) VectorShuffle 84 84 0 1 86: 6(int) Load 8(invocation) 87: 48(i8vec2) GroupNonUniformShuffleXor 43 85 86 88: 49(ptr) AccessChain 34(data) 82 37 89: 18(i8vec4) Load 88 90: 18(i8vec4) VectorShuffle 89 87 4 5 2 3 Store 88 90 91: 6(int) Load 8(invocation) 92: 49(ptr) AccessChain 34(data) 59 37 93: 18(i8vec4) Load 92 94: 60(i8vec3) VectorShuffle 93 93 0 1 2 95: 6(int) Load 8(invocation) 96: 60(i8vec3) GroupNonUniformShuffleXor 43 94 95 97: 49(ptr) AccessChain 34(data) 91 37 98: 18(i8vec4) Load 97 99: 18(i8vec4) VectorShuffle 98 96 4 5 6 3 Store 97 99 100: 6(int) Load 8(invocation) 101: 49(ptr) AccessChain 34(data) 70 37 102: 18(i8vec4) Load 101 103: 6(int) Load 8(invocation) 104: 18(i8vec4) GroupNonUniformShuffleXor 43 102 103 105: 49(ptr) AccessChain 34(data) 100 37 Store 105 104 106: 6(int) Load 8(invocation) 108: 107(ptr) AccessChain 34(data) 37 47 38 109: 19(int8_t) Load 108 110: 6(int) Load 8(invocation) 111: 19(int8_t) GroupNonUniformShuffle 43 109 110 112: 107(ptr) AccessChain 34(data) 106 47 38 Store 112 111 113: 6(int) Load 8(invocation) 116: 115(ptr) AccessChain 34(data) 47 47 117: 20(i8vec4) Load 116 118: 114(i8vec2) VectorShuffle 117 117 0 1 119: 6(int) Load 8(invocation) 120: 114(i8vec2) GroupNonUniformShuffle 43 118 119 121: 115(ptr) AccessChain 34(data) 113 47 122: 20(i8vec4) Load 121 123: 20(i8vec4) VectorShuffle 122 120 4 5 2 3 Store 121 123 124: 6(int) Load 8(invocation) 126: 115(ptr) AccessChain 34(data) 59 47 127: 20(i8vec4) Load 126 128: 125(i8vec3) VectorShuffle 127 127 0 1 2 129: 6(int) Load 8(invocation) 130: 125(i8vec3) GroupNonUniformShuffle 43 128 129 131: 115(ptr) AccessChain 34(data) 124 47 132: 20(i8vec4) Load 131 133: 20(i8vec4) VectorShuffle 132 130 4 5 6 3 Store 131 133 134: 6(int) Load 8(invocation) 135: 115(ptr) AccessChain 34(data) 70 47 136: 20(i8vec4) Load 135 137: 6(int) Load 8(invocation) 138: 20(i8vec4) GroupNonUniformShuffle 43 136 137 139: 115(ptr) AccessChain 34(data) 134 47 Store 139 138 140: 6(int) Load 8(invocation) 141: 107(ptr) AccessChain 34(data) 37 47 38 142: 19(int8_t) Load 141 143: 6(int) Load 8(invocation) 144: 19(int8_t) GroupNonUniformShuffleXor 43 142 143 145: 107(ptr) AccessChain 34(data) 140 47 38 Store 145 144 146: 6(int) Load 8(invocation) 147: 115(ptr) AccessChain 34(data) 47 47 148: 20(i8vec4) Load 147 149: 114(i8vec2) VectorShuffle 148 148 0 1 150: 6(int) Load 8(invocation) 151: 114(i8vec2) GroupNonUniformShuffleXor 43 149 150 152: 115(ptr) AccessChain 34(data) 146 47 153: 20(i8vec4) Load 152 154: 20(i8vec4) VectorShuffle 153 151 4 5 2 3 Store 152 154 155: 6(int) Load 8(invocation) 156: 115(ptr) AccessChain 34(data) 59 47 157: 20(i8vec4) Load 156 158: 125(i8vec3) VectorShuffle 157 157 0 1 2 159: 6(int) Load 8(invocation) 160: 125(i8vec3) GroupNonUniformShuffleXor 43 158 159 161: 115(ptr) AccessChain 34(data) 155 47 162: 20(i8vec4) Load 161 163: 20(i8vec4) VectorShuffle 162 160 4 5 6 3 Store 161 163 164: 6(int) Load 8(invocation) 165: 115(ptr) AccessChain 34(data) 70 47 166: 20(i8vec4) Load 165 167: 6(int) Load 8(invocation) 168: 20(i8vec4) GroupNonUniformShuffleXor 43 166 167 169: 115(ptr) AccessChain 34(data) 164 47 Store 169 168 170: 6(int) Load 8(invocation) 172: 171(ptr) AccessChain 34(data) 37 59 38 173: 21(int16_t) Load 172 174: 6(int) Load 8(invocation) 175: 21(int16_t) GroupNonUniformShuffle 43 173 174 176: 171(ptr) AccessChain 34(data) 170 59 38 Store 176 175 177: 6(int) Load 8(invocation) 180: 179(ptr) AccessChain 34(data) 47 59 181: 22(i16vec4) Load 180 182:178(i16vec2) VectorShuffle 181 181 0 1 183: 6(int) Load 8(invocation) 184:178(i16vec2) GroupNonUniformShuffle 43 182 183 185: 179(ptr) AccessChain 34(data) 177 59 186: 22(i16vec4) Load 185 187: 22(i16vec4) VectorShuffle 186 184 4 5 2 3 Store 185 187 188: 6(int) Load 8(invocation) 190: 179(ptr) AccessChain 34(data) 59 59 191: 22(i16vec4) Load 190 192:189(i16vec3) VectorShuffle 191 191 0 1 2 193: 6(int) Load 8(invocation) 194:189(i16vec3) GroupNonUniformShuffle 43 192 193 195: 179(ptr) AccessChain 34(data) 188 59 196: 22(i16vec4) Load 195 197: 22(i16vec4) VectorShuffle 196 194 4 5 6 3 Store 195 197 198: 6(int) Load 8(invocation) 199: 179(ptr) AccessChain 34(data) 70 59 200: 22(i16vec4) Load 199 201: 6(int) Load 8(invocation) 202: 22(i16vec4) GroupNonUniformShuffle 43 200 201 203: 179(ptr) AccessChain 34(data) 198 59 Store 203 202 204: 6(int) Load 8(invocation) 205: 171(ptr) AccessChain 34(data) 37 59 38 206: 21(int16_t) Load 205 207: 6(int) Load 8(invocation) 208: 21(int16_t) GroupNonUniformShuffleXor 43 206 207 209: 171(ptr) AccessChain 34(data) 204 59 38 Store 209 208 210: 6(int) Load 8(invocation) 211: 179(ptr) AccessChain 34(data) 47 59 212: 22(i16vec4) Load 211 213:178(i16vec2) VectorShuffle 212 212 0 1 214: 6(int) Load 8(invocation) 215:178(i16vec2) GroupNonUniformShuffleXor 43 213 214 216: 179(ptr) AccessChain 34(data) 210 59 217: 22(i16vec4) Load 216 218: 22(i16vec4) VectorShuffle 217 215 4 5 2 3 Store 216 218 219: 6(int) Load 8(invocation) 220: 179(ptr) AccessChain 34(data) 59 59 221: 22(i16vec4) Load 220 222:189(i16vec3) VectorShuffle 221 221 0 1 2 223: 6(int) Load 8(invocation) 224:189(i16vec3) GroupNonUniformShuffleXor 43 222 223 225: 179(ptr) AccessChain 34(data) 219 59 226: 22(i16vec4) Load 225 227: 22(i16vec4) VectorShuffle 226 224 4 5 6 3 Store 225 227 228: 6(int) Load 8(invocation) 229: 179(ptr) AccessChain 34(data) 70 59 230: 22(i16vec4) Load 229 231: 6(int) Load 8(invocation) 232: 22(i16vec4) GroupNonUniformShuffleXor 43 230 231 233: 179(ptr) AccessChain 34(data) 228 59 Store 233 232 234: 6(int) Load 8(invocation) 236: 235(ptr) AccessChain 34(data) 37 70 38 237: 23(int16_t) Load 236 238: 6(int) Load 8(invocation) 239: 23(int16_t) GroupNonUniformShuffle 43 237 238 240: 235(ptr) AccessChain 34(data) 234 70 38 Store 240 239 241: 6(int) Load 8(invocation) 244: 243(ptr) AccessChain 34(data) 47 70 245: 24(i16vec4) Load 244 246:242(i16vec2) VectorShuffle 245 245 0 1 247: 6(int) Load 8(invocation) 248:242(i16vec2) GroupNonUniformShuffle 43 246 247 249: 243(ptr) AccessChain 34(data) 241 70 250: 24(i16vec4) Load 249 251: 24(i16vec4) VectorShuffle 250 248 4 5 2 3 Store 249 251 252: 6(int) Load 8(invocation) 254: 243(ptr) AccessChain 34(data) 59 70 255: 24(i16vec4) Load 254 256:253(i16vec3) VectorShuffle 255 255 0 1 2 257: 6(int) Load 8(invocation) 258:253(i16vec3) GroupNonUniformShuffle 43 256 257 259: 243(ptr) AccessChain 34(data) 252 70 260: 24(i16vec4) Load 259 261: 24(i16vec4) VectorShuffle 260 258 4 5 6 3 Store 259 261 262: 6(int) Load 8(invocation) 263: 243(ptr) AccessChain 34(data) 70 70 264: 24(i16vec4) Load 263 265: 6(int) Load 8(invocation) 266: 24(i16vec4) GroupNonUniformShuffle 43 264 265 267: 243(ptr) AccessChain 34(data) 262 70 Store 267 266 268: 6(int) Load 8(invocation) 269: 235(ptr) AccessChain 34(data) 37 70 38 270: 23(int16_t) Load 269 271: 6(int) Load 8(invocation) 272: 23(int16_t) GroupNonUniformShuffleXor 43 270 271 273: 235(ptr) AccessChain 34(data) 268 70 38 Store 273 272 274: 6(int) Load 8(invocation) 275: 243(ptr) AccessChain 34(data) 47 70 276: 24(i16vec4) Load 275 277:242(i16vec2) VectorShuffle 276 276 0 1 278: 6(int) Load 8(invocation) 279:242(i16vec2) GroupNonUniformShuffleXor 43 277 278 280: 243(ptr) AccessChain 34(data) 274 70 281: 24(i16vec4) Load 280 282: 24(i16vec4) VectorShuffle 281 279 4 5 2 3 Store 280 282 283: 6(int) Load 8(invocation) 284: 243(ptr) AccessChain 34(data) 59 70 285: 24(i16vec4) Load 284 286:253(i16vec3) VectorShuffle 285 285 0 1 2 287: 6(int) Load 8(invocation) 288:253(i16vec3) GroupNonUniformShuffleXor 43 286 287 289: 243(ptr) AccessChain 34(data) 283 70 290: 24(i16vec4) Load 289 291: 24(i16vec4) VectorShuffle 290 288 4 5 6 3 Store 289 291 292: 6(int) Load 8(invocation) 293: 243(ptr) AccessChain 34(data) 70 70 294: 24(i16vec4) Load 293 295: 6(int) Load 8(invocation) 296: 24(i16vec4) GroupNonUniformShuffleXor 43 294 295 297: 243(ptr) AccessChain 34(data) 292 70 Store 297 296 298: 6(int) Load 8(invocation) 301: 300(ptr) AccessChain 34(data) 37 299 38 302: 25(int64_t) Load 301 303: 6(int) Load 8(invocation) 304: 25(int64_t) GroupNonUniformShuffle 43 302 303 305: 300(ptr) AccessChain 34(data) 298 299 38 Store 305 304 306: 6(int) Load 8(invocation) 309: 308(ptr) AccessChain 34(data) 47 299 310: 26(i64vec4) Load 309 311:307(i64vec2) VectorShuffle 310 310 0 1 312: 6(int) Load 8(invocation) 313:307(i64vec2) GroupNonUniformShuffle 43 311 312 314: 308(ptr) AccessChain 34(data) 306 299 315: 26(i64vec4) Load 314 316: 26(i64vec4) VectorShuffle 315 313 4 5 2 3 Store 314 316 317: 6(int) Load 8(invocation) 319: 308(ptr) AccessChain 34(data) 59 299 320: 26(i64vec4) Load 319 321:318(i64vec3) VectorShuffle 320 320 0 1 2 322: 6(int) Load 8(invocation) 323:318(i64vec3) GroupNonUniformShuffle 43 321 322 324: 308(ptr) AccessChain 34(data) 317 299 325: 26(i64vec4) Load 324 326: 26(i64vec4) VectorShuffle 325 323 4 5 6 3 Store 324 326 327: 6(int) Load 8(invocation) 328: 308(ptr) AccessChain 34(data) 70 299 329: 26(i64vec4) Load 328 330: 6(int) Load 8(invocation) 331: 26(i64vec4) GroupNonUniformShuffle 43 329 330 332: 308(ptr) AccessChain 34(data) 327 299 Store 332 331 333: 6(int) Load 8(invocation) 334: 300(ptr) AccessChain 34(data) 37 299 38 335: 25(int64_t) Load 334 336: 6(int) Load 8(invocation) 337: 25(int64_t) GroupNonUniformShuffleXor 43 335 336 338: 300(ptr) AccessChain 34(data) 333 299 38 Store 338 337 339: 6(int) Load 8(invocation) 340: 308(ptr) AccessChain 34(data) 47 299 341: 26(i64vec4) Load 340 342:307(i64vec2) VectorShuffle 341 341 0 1 343: 6(int) Load 8(invocation) 344:307(i64vec2) GroupNonUniformShuffleXor 43 342 343 345: 308(ptr) AccessChain 34(data) 339 299 346: 26(i64vec4) Load 345 347: 26(i64vec4) VectorShuffle 346 344 4 5 2 3 Store 345 347 348: 6(int) Load 8(invocation) 349: 308(ptr) AccessChain 34(data) 59 299 350: 26(i64vec4) Load 349 351:318(i64vec3) VectorShuffle 350 350 0 1 2 352: 6(int) Load 8(invocation) 353:318(i64vec3) GroupNonUniformShuffleXor 43 351 352 354: 308(ptr) AccessChain 34(data) 348 299 355: 26(i64vec4) Load 354 356: 26(i64vec4) VectorShuffle 355 353 4 5 6 3 Store 354 356 357: 6(int) Load 8(invocation) 358: 308(ptr) AccessChain 34(data) 70 299 359: 26(i64vec4) Load 358 360: 6(int) Load 8(invocation) 361: 26(i64vec4) GroupNonUniformShuffleXor 43 359 360 362: 308(ptr) AccessChain 34(data) 357 299 Store 362 361 363: 6(int) Load 8(invocation) 366: 365(ptr) AccessChain 34(data) 37 364 38 367: 27(int64_t) Load 366 368: 6(int) Load 8(invocation) 369: 27(int64_t) GroupNonUniformShuffle 43 367 368 370: 365(ptr) AccessChain 34(data) 363 364 38 Store 370 369 371: 6(int) Load 8(invocation) 374: 373(ptr) AccessChain 34(data) 47 364 375: 28(i64vec4) Load 374 376:372(i64vec2) VectorShuffle 375 375 0 1 377: 6(int) Load 8(invocation) 378:372(i64vec2) GroupNonUniformShuffle 43 376 377 379: 373(ptr) AccessChain 34(data) 371 364 380: 28(i64vec4) Load 379 381: 28(i64vec4) VectorShuffle 380 378 4 5 2 3 Store 379 381 382: 6(int) Load 8(invocation) 384: 373(ptr) AccessChain 34(data) 59 364 385: 28(i64vec4) Load 384 386:383(i64vec3) VectorShuffle 385 385 0 1 2 387: 6(int) Load 8(invocation) 388:383(i64vec3) GroupNonUniformShuffle 43 386 387 389: 373(ptr) AccessChain 34(data) 382 364 390: 28(i64vec4) Load 389 391: 28(i64vec4) VectorShuffle 390 388 4 5 6 3 Store 389 391 392: 6(int) Load 8(invocation) 393: 373(ptr) AccessChain 34(data) 70 364 394: 28(i64vec4) Load 393 395: 6(int) Load 8(invocation) 396: 28(i64vec4) GroupNonUniformShuffle 43 394 395 397: 373(ptr) AccessChain 34(data) 392 364 Store 397 396 398: 6(int) Load 8(invocation) 399: 365(ptr) AccessChain 34(data) 37 364 38 400: 27(int64_t) Load 399 401: 6(int) Load 8(invocation) 402: 27(int64_t) GroupNonUniformShuffleXor 43 400 401 403: 365(ptr) AccessChain 34(data) 398 364 38 Store 403 402 404: 6(int) Load 8(invocation) 405: 373(ptr) AccessChain 34(data) 47 364 406: 28(i64vec4) Load 405 407:372(i64vec2) VectorShuffle 406 406 0 1 408: 6(int) Load 8(invocation) 409:372(i64vec2) GroupNonUniformShuffleXor 43 407 408 410: 373(ptr) AccessChain 34(data) 404 364 411: 28(i64vec4) Load 410 412: 28(i64vec4) VectorShuffle 411 409 4 5 2 3 Store 410 412 413: 6(int) Load 8(invocation) 414: 373(ptr) AccessChain 34(data) 59 364 415: 28(i64vec4) Load 414 416:383(i64vec3) VectorShuffle 415 415 0 1 2 417: 6(int) Load 8(invocation) 418:383(i64vec3) GroupNonUniformShuffleXor 43 416 417 419: 373(ptr) AccessChain 34(data) 413 364 420: 28(i64vec4) Load 419 421: 28(i64vec4) VectorShuffle 420 418 4 5 6 3 Store 419 421 422: 6(int) Load 8(invocation) 423: 373(ptr) AccessChain 34(data) 70 364 424: 28(i64vec4) Load 423 425: 6(int) Load 8(invocation) 426: 28(i64vec4) GroupNonUniformShuffleXor 43 424 425 427: 373(ptr) AccessChain 34(data) 422 364 Store 427 426 428: 6(int) Load 8(invocation) 431: 430(ptr) AccessChain 34(data) 37 429 38 432:29(float16_t) Load 431 433: 6(int) Load 8(invocation) 434:29(float16_t) GroupNonUniformShuffle 43 432 433 435: 430(ptr) AccessChain 34(data) 428 429 38 Store 435 434 436: 6(int) Load 8(invocation) 439: 438(ptr) AccessChain 34(data) 47 429 440: 30(f16vec4) Load 439 441:437(f16vec2) VectorShuffle 440 440 0 1 442: 6(int) Load 8(invocation) 443:437(f16vec2) GroupNonUniformShuffle 43 441 442 444: 438(ptr) AccessChain 34(data) 436 429 445: 30(f16vec4) Load 444 446: 30(f16vec4) VectorShuffle 445 443 4 5 2 3 Store 444 446 447: 6(int) Load 8(invocation) 449: 438(ptr) AccessChain 34(data) 59 429 450: 30(f16vec4) Load 449 451:448(f16vec3) VectorShuffle 450 450 0 1 2 452: 6(int) Load 8(invocation) 453:448(f16vec3) GroupNonUniformShuffle 43 451 452 454: 438(ptr) AccessChain 34(data) 447 429 455: 30(f16vec4) Load 454 456: 30(f16vec4) VectorShuffle 455 453 4 5 6 3 Store 454 456 457: 6(int) Load 8(invocation) 458: 438(ptr) AccessChain 34(data) 70 429 459: 30(f16vec4) Load 458 460: 6(int) Load 8(invocation) 461: 30(f16vec4) GroupNonUniformShuffle 43 459 460 462: 438(ptr) AccessChain 34(data) 457 429 Store 462 461 463: 6(int) Load 8(invocation) 464: 430(ptr) AccessChain 34(data) 37 429 38 465:29(float16_t) Load 464 466: 6(int) Load 8(invocation) 467:29(float16_t) GroupNonUniformShuffleXor 43 465 466 468: 430(ptr) AccessChain 34(data) 463 429 38 Store 468 467 469: 6(int) Load 8(invocation) 470: 438(ptr) AccessChain 34(data) 47 429 471: 30(f16vec4) Load 470 472:437(f16vec2) VectorShuffle 471 471 0 1 473: 6(int) Load 8(invocation) 474:437(f16vec2) GroupNonUniformShuffleXor 43 472 473 475: 438(ptr) AccessChain 34(data) 469 429 476: 30(f16vec4) Load 475 477: 30(f16vec4) VectorShuffle 476 474 4 5 2 3 Store 475 477 478: 6(int) Load 8(invocation) 479: 438(ptr) AccessChain 34(data) 59 429 480: 30(f16vec4) Load 479 481:448(f16vec3) VectorShuffle 480 480 0 1 2 482: 6(int) Load 8(invocation) 483:448(f16vec3) GroupNonUniformShuffleXor 43 481 482 484: 438(ptr) AccessChain 34(data) 478 429 485: 30(f16vec4) Load 484 486: 30(f16vec4) VectorShuffle 485 483 4 5 6 3 Store 484 486 487: 6(int) Load 8(invocation) 488: 438(ptr) AccessChain 34(data) 70 429 489: 30(f16vec4) Load 488 490: 6(int) Load 8(invocation) 491: 30(f16vec4) GroupNonUniformShuffleXor 43 489 490 492: 438(ptr) AccessChain 34(data) 487 429 Store 492 491 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesShuffleNeg.comp.out000066400000000000000000000167601360464450000275470ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out000066400000000000000000001001511360464450000305750ustar00rootroot00000000000000spv.subgroupExtendedTypesShuffleRelative.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 497 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 496 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) 59: 36(int) Constant 2 60: TypeVector 17(int8_t) 3 70: 36(int) Constant 3 107: TypePointer StorageBuffer 19(int8_t) 114: TypeVector 19(int8_t) 2 115: TypePointer StorageBuffer 20(i8vec4) 125: TypeVector 19(int8_t) 3 171: TypePointer StorageBuffer 21(int16_t) 178: TypeVector 21(int16_t) 2 179: TypePointer StorageBuffer 22(i16vec4) 189: TypeVector 21(int16_t) 3 235: TypePointer StorageBuffer 23(int16_t) 242: TypeVector 23(int16_t) 2 243: TypePointer StorageBuffer 24(i16vec4) 253: TypeVector 23(int16_t) 3 299: 36(int) Constant 4 300: TypePointer StorageBuffer 25(int64_t) 307: TypeVector 25(int64_t) 2 308: TypePointer StorageBuffer 26(i64vec4) 318: TypeVector 25(int64_t) 3 364: 36(int) Constant 5 365: TypePointer StorageBuffer 27(int64_t) 372: TypeVector 27(int64_t) 2 373: TypePointer StorageBuffer 28(i64vec4) 383: TypeVector 27(int64_t) 3 429: 36(int) Constant 6 430: TypePointer StorageBuffer 29(float16_t) 437: TypeVector 29(float16_t) 2 438: TypePointer StorageBuffer 30(f16vec4) 448: TypeVector 29(float16_t) 3 493: TypeVector 6(int) 3 494: 6(int) Constant 8 495: 6(int) Constant 1 496: 493(ivec3) ConstantComposite 494 495 495 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: 49(ptr) AccessChain 34(data) 46 37 56: 18(i8vec4) Load 55 57: 18(i8vec4) VectorShuffle 56 54 4 5 2 3 Store 55 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: 6(int) Load 8(invocation) 65: 60(i8vec3) GroupNonUniformShuffleUp 43 63 64 66: 49(ptr) AccessChain 34(data) 58 37 67: 18(i8vec4) Load 66 68: 18(i8vec4) VectorShuffle 67 65 4 5 6 3 Store 66 68 69: 6(int) Load 8(invocation) 71: 49(ptr) AccessChain 34(data) 70 37 72: 18(i8vec4) Load 71 73: 6(int) Load 8(invocation) 74: 18(i8vec4) GroupNonUniformShuffleUp 43 72 73 75: 49(ptr) AccessChain 34(data) 69 37 Store 75 74 76: 6(int) Load 8(invocation) 77: 39(ptr) AccessChain 34(data) 37 37 38 78: 17(int8_t) Load 77 79: 6(int) Load 8(invocation) 80: 17(int8_t) GroupNonUniformShuffleDown 43 78 79 81: 39(ptr) AccessChain 34(data) 76 37 38 Store 81 80 82: 6(int) Load 8(invocation) 83: 49(ptr) AccessChain 34(data) 47 37 84: 18(i8vec4) Load 83 85: 48(i8vec2) VectorShuffle 84 84 0 1 86: 6(int) Load 8(invocation) 87: 48(i8vec2) GroupNonUniformShuffleDown 43 85 86 88: 49(ptr) AccessChain 34(data) 82 37 89: 18(i8vec4) Load 88 90: 18(i8vec4) VectorShuffle 89 87 4 5 2 3 Store 88 90 91: 6(int) Load 8(invocation) 92: 49(ptr) AccessChain 34(data) 59 37 93: 18(i8vec4) Load 92 94: 60(i8vec3) VectorShuffle 93 93 0 1 2 95: 6(int) Load 8(invocation) 96: 60(i8vec3) GroupNonUniformShuffleDown 43 94 95 97: 49(ptr) AccessChain 34(data) 91 37 98: 18(i8vec4) Load 97 99: 18(i8vec4) VectorShuffle 98 96 4 5 6 3 Store 97 99 100: 6(int) Load 8(invocation) 101: 49(ptr) AccessChain 34(data) 70 37 102: 18(i8vec4) Load 101 103: 6(int) Load 8(invocation) 104: 18(i8vec4) GroupNonUniformShuffleDown 43 102 103 105: 49(ptr) AccessChain 34(data) 100 37 Store 105 104 106: 6(int) Load 8(invocation) 108: 107(ptr) AccessChain 34(data) 37 47 38 109: 19(int8_t) Load 108 110: 6(int) Load 8(invocation) 111: 19(int8_t) GroupNonUniformShuffleUp 43 109 110 112: 107(ptr) AccessChain 34(data) 106 47 38 Store 112 111 113: 6(int) Load 8(invocation) 116: 115(ptr) AccessChain 34(data) 47 47 117: 20(i8vec4) Load 116 118: 114(i8vec2) VectorShuffle 117 117 0 1 119: 6(int) Load 8(invocation) 120: 114(i8vec2) GroupNonUniformShuffleUp 43 118 119 121: 115(ptr) AccessChain 34(data) 113 47 122: 20(i8vec4) Load 121 123: 20(i8vec4) VectorShuffle 122 120 4 5 2 3 Store 121 123 124: 6(int) Load 8(invocation) 126: 115(ptr) AccessChain 34(data) 59 47 127: 20(i8vec4) Load 126 128: 125(i8vec3) VectorShuffle 127 127 0 1 2 129: 6(int) Load 8(invocation) 130: 125(i8vec3) GroupNonUniformShuffleUp 43 128 129 131: 115(ptr) AccessChain 34(data) 124 47 132: 20(i8vec4) Load 131 133: 20(i8vec4) VectorShuffle 132 130 4 5 6 3 Store 131 133 134: 6(int) Load 8(invocation) 135: 115(ptr) AccessChain 34(data) 70 47 136: 20(i8vec4) Load 135 137: 6(int) Load 8(invocation) 138: 20(i8vec4) GroupNonUniformShuffleUp 43 136 137 139: 115(ptr) AccessChain 34(data) 134 47 Store 139 138 140: 6(int) Load 8(invocation) 141: 107(ptr) AccessChain 34(data) 37 47 38 142: 19(int8_t) Load 141 143: 6(int) Load 8(invocation) 144: 19(int8_t) GroupNonUniformShuffleDown 43 142 143 145: 107(ptr) AccessChain 34(data) 140 47 38 Store 145 144 146: 6(int) Load 8(invocation) 147: 115(ptr) AccessChain 34(data) 47 47 148: 20(i8vec4) Load 147 149: 114(i8vec2) VectorShuffle 148 148 0 1 150: 6(int) Load 8(invocation) 151: 114(i8vec2) GroupNonUniformShuffleDown 43 149 150 152: 115(ptr) AccessChain 34(data) 146 47 153: 20(i8vec4) Load 152 154: 20(i8vec4) VectorShuffle 153 151 4 5 2 3 Store 152 154 155: 6(int) Load 8(invocation) 156: 115(ptr) AccessChain 34(data) 59 47 157: 20(i8vec4) Load 156 158: 125(i8vec3) VectorShuffle 157 157 0 1 2 159: 6(int) Load 8(invocation) 160: 125(i8vec3) GroupNonUniformShuffleDown 43 158 159 161: 115(ptr) AccessChain 34(data) 155 47 162: 20(i8vec4) Load 161 163: 20(i8vec4) VectorShuffle 162 160 4 5 6 3 Store 161 163 164: 6(int) Load 8(invocation) 165: 115(ptr) AccessChain 34(data) 70 47 166: 20(i8vec4) Load 165 167: 6(int) Load 8(invocation) 168: 20(i8vec4) GroupNonUniformShuffleDown 43 166 167 169: 115(ptr) AccessChain 34(data) 164 47 Store 169 168 170: 6(int) Load 8(invocation) 172: 171(ptr) AccessChain 34(data) 37 59 38 173: 21(int16_t) Load 172 174: 6(int) Load 8(invocation) 175: 21(int16_t) GroupNonUniformShuffleUp 43 173 174 176: 171(ptr) AccessChain 34(data) 170 59 38 Store 176 175 177: 6(int) Load 8(invocation) 180: 179(ptr) AccessChain 34(data) 47 59 181: 22(i16vec4) Load 180 182:178(i16vec2) VectorShuffle 181 181 0 1 183: 6(int) Load 8(invocation) 184:178(i16vec2) GroupNonUniformShuffleUp 43 182 183 185: 179(ptr) AccessChain 34(data) 177 59 186: 22(i16vec4) Load 185 187: 22(i16vec4) VectorShuffle 186 184 4 5 2 3 Store 185 187 188: 6(int) Load 8(invocation) 190: 179(ptr) AccessChain 34(data) 59 59 191: 22(i16vec4) Load 190 192:189(i16vec3) VectorShuffle 191 191 0 1 2 193: 6(int) Load 8(invocation) 194:189(i16vec3) GroupNonUniformShuffleUp 43 192 193 195: 179(ptr) AccessChain 34(data) 188 59 196: 22(i16vec4) Load 195 197: 22(i16vec4) VectorShuffle 196 194 4 5 6 3 Store 195 197 198: 6(int) Load 8(invocation) 199: 179(ptr) AccessChain 34(data) 70 59 200: 22(i16vec4) Load 199 201: 6(int) Load 8(invocation) 202: 22(i16vec4) GroupNonUniformShuffleUp 43 200 201 203: 179(ptr) AccessChain 34(data) 198 59 Store 203 202 204: 6(int) Load 8(invocation) 205: 171(ptr) AccessChain 34(data) 37 59 38 206: 21(int16_t) Load 205 207: 6(int) Load 8(invocation) 208: 21(int16_t) GroupNonUniformShuffleDown 43 206 207 209: 171(ptr) AccessChain 34(data) 204 59 38 Store 209 208 210: 6(int) Load 8(invocation) 211: 179(ptr) AccessChain 34(data) 47 59 212: 22(i16vec4) Load 211 213:178(i16vec2) VectorShuffle 212 212 0 1 214: 6(int) Load 8(invocation) 215:178(i16vec2) GroupNonUniformShuffleDown 43 213 214 216: 179(ptr) AccessChain 34(data) 210 59 217: 22(i16vec4) Load 216 218: 22(i16vec4) VectorShuffle 217 215 4 5 2 3 Store 216 218 219: 6(int) Load 8(invocation) 220: 179(ptr) AccessChain 34(data) 59 59 221: 22(i16vec4) Load 220 222:189(i16vec3) VectorShuffle 221 221 0 1 2 223: 6(int) Load 8(invocation) 224:189(i16vec3) GroupNonUniformShuffleDown 43 222 223 225: 179(ptr) AccessChain 34(data) 219 59 226: 22(i16vec4) Load 225 227: 22(i16vec4) VectorShuffle 226 224 4 5 6 3 Store 225 227 228: 6(int) Load 8(invocation) 229: 179(ptr) AccessChain 34(data) 70 59 230: 22(i16vec4) Load 229 231: 6(int) Load 8(invocation) 232: 22(i16vec4) GroupNonUniformShuffleDown 43 230 231 233: 179(ptr) AccessChain 34(data) 228 59 Store 233 232 234: 6(int) Load 8(invocation) 236: 235(ptr) AccessChain 34(data) 37 70 38 237: 23(int16_t) Load 236 238: 6(int) Load 8(invocation) 239: 23(int16_t) GroupNonUniformShuffleUp 43 237 238 240: 235(ptr) AccessChain 34(data) 234 70 38 Store 240 239 241: 6(int) Load 8(invocation) 244: 243(ptr) AccessChain 34(data) 47 70 245: 24(i16vec4) Load 244 246:242(i16vec2) VectorShuffle 245 245 0 1 247: 6(int) Load 8(invocation) 248:242(i16vec2) GroupNonUniformShuffleUp 43 246 247 249: 243(ptr) AccessChain 34(data) 241 70 250: 24(i16vec4) Load 249 251: 24(i16vec4) VectorShuffle 250 248 4 5 2 3 Store 249 251 252: 6(int) Load 8(invocation) 254: 243(ptr) AccessChain 34(data) 59 70 255: 24(i16vec4) Load 254 256:253(i16vec3) VectorShuffle 255 255 0 1 2 257: 6(int) Load 8(invocation) 258:253(i16vec3) GroupNonUniformShuffleUp 43 256 257 259: 243(ptr) AccessChain 34(data) 252 70 260: 24(i16vec4) Load 259 261: 24(i16vec4) VectorShuffle 260 258 4 5 6 3 Store 259 261 262: 6(int) Load 8(invocation) 263: 243(ptr) AccessChain 34(data) 70 70 264: 24(i16vec4) Load 263 265: 6(int) Load 8(invocation) 266: 24(i16vec4) GroupNonUniformShuffleUp 43 264 265 267: 243(ptr) AccessChain 34(data) 262 70 Store 267 266 268: 6(int) Load 8(invocation) 269: 235(ptr) AccessChain 34(data) 37 70 38 270: 23(int16_t) Load 269 271: 6(int) Load 8(invocation) 272: 23(int16_t) GroupNonUniformShuffleDown 43 270 271 273: 235(ptr) AccessChain 34(data) 268 70 38 Store 273 272 274: 6(int) Load 8(invocation) 275: 243(ptr) AccessChain 34(data) 47 70 276: 24(i16vec4) Load 275 277:242(i16vec2) VectorShuffle 276 276 0 1 278: 6(int) Load 8(invocation) 279:242(i16vec2) GroupNonUniformShuffleDown 43 277 278 280: 243(ptr) AccessChain 34(data) 274 70 281: 24(i16vec4) Load 280 282: 24(i16vec4) VectorShuffle 281 279 4 5 2 3 Store 280 282 283: 6(int) Load 8(invocation) 284: 243(ptr) AccessChain 34(data) 59 70 285: 24(i16vec4) Load 284 286:253(i16vec3) VectorShuffle 285 285 0 1 2 287: 6(int) Load 8(invocation) 288:253(i16vec3) GroupNonUniformShuffleDown 43 286 287 289: 243(ptr) AccessChain 34(data) 283 70 290: 24(i16vec4) Load 289 291: 24(i16vec4) VectorShuffle 290 288 4 5 6 3 Store 289 291 292: 6(int) Load 8(invocation) 293: 243(ptr) AccessChain 34(data) 70 70 294: 24(i16vec4) Load 293 295: 6(int) Load 8(invocation) 296: 24(i16vec4) GroupNonUniformShuffleDown 43 294 295 297: 243(ptr) AccessChain 34(data) 292 70 Store 297 296 298: 6(int) Load 8(invocation) 301: 300(ptr) AccessChain 34(data) 37 299 38 302: 25(int64_t) Load 301 303: 6(int) Load 8(invocation) 304: 25(int64_t) GroupNonUniformShuffleUp 43 302 303 305: 300(ptr) AccessChain 34(data) 298 299 38 Store 305 304 306: 6(int) Load 8(invocation) 309: 308(ptr) AccessChain 34(data) 47 299 310: 26(i64vec4) Load 309 311:307(i64vec2) VectorShuffle 310 310 0 1 312: 6(int) Load 8(invocation) 313:307(i64vec2) GroupNonUniformShuffleUp 43 311 312 314: 308(ptr) AccessChain 34(data) 306 299 315: 26(i64vec4) Load 314 316: 26(i64vec4) VectorShuffle 315 313 4 5 2 3 Store 314 316 317: 6(int) Load 8(invocation) 319: 308(ptr) AccessChain 34(data) 59 299 320: 26(i64vec4) Load 319 321:318(i64vec3) VectorShuffle 320 320 0 1 2 322: 6(int) Load 8(invocation) 323:318(i64vec3) GroupNonUniformShuffleUp 43 321 322 324: 308(ptr) AccessChain 34(data) 317 299 325: 26(i64vec4) Load 324 326: 26(i64vec4) VectorShuffle 325 323 4 5 6 3 Store 324 326 327: 6(int) Load 8(invocation) 328: 308(ptr) AccessChain 34(data) 70 299 329: 26(i64vec4) Load 328 330: 6(int) Load 8(invocation) 331: 26(i64vec4) GroupNonUniformShuffleUp 43 329 330 332: 308(ptr) AccessChain 34(data) 327 299 Store 332 331 333: 6(int) Load 8(invocation) 334: 300(ptr) AccessChain 34(data) 37 299 38 335: 25(int64_t) Load 334 336: 6(int) Load 8(invocation) 337: 25(int64_t) GroupNonUniformShuffleDown 43 335 336 338: 300(ptr) AccessChain 34(data) 333 299 38 Store 338 337 339: 6(int) Load 8(invocation) 340: 308(ptr) AccessChain 34(data) 47 299 341: 26(i64vec4) Load 340 342:307(i64vec2) VectorShuffle 341 341 0 1 343: 6(int) Load 8(invocation) 344:307(i64vec2) GroupNonUniformShuffleDown 43 342 343 345: 308(ptr) AccessChain 34(data) 339 299 346: 26(i64vec4) Load 345 347: 26(i64vec4) VectorShuffle 346 344 4 5 2 3 Store 345 347 348: 6(int) Load 8(invocation) 349: 308(ptr) AccessChain 34(data) 59 299 350: 26(i64vec4) Load 349 351:318(i64vec3) VectorShuffle 350 350 0 1 2 352: 6(int) Load 8(invocation) 353:318(i64vec3) GroupNonUniformShuffleDown 43 351 352 354: 308(ptr) AccessChain 34(data) 348 299 355: 26(i64vec4) Load 354 356: 26(i64vec4) VectorShuffle 355 353 4 5 6 3 Store 354 356 357: 6(int) Load 8(invocation) 358: 308(ptr) AccessChain 34(data) 70 299 359: 26(i64vec4) Load 358 360: 6(int) Load 8(invocation) 361: 26(i64vec4) GroupNonUniformShuffleDown 43 359 360 362: 308(ptr) AccessChain 34(data) 357 299 Store 362 361 363: 6(int) Load 8(invocation) 366: 365(ptr) AccessChain 34(data) 37 364 38 367: 27(int64_t) Load 366 368: 6(int) Load 8(invocation) 369: 27(int64_t) GroupNonUniformShuffleUp 43 367 368 370: 365(ptr) AccessChain 34(data) 363 364 38 Store 370 369 371: 6(int) Load 8(invocation) 374: 373(ptr) AccessChain 34(data) 47 364 375: 28(i64vec4) Load 374 376:372(i64vec2) VectorShuffle 375 375 0 1 377: 6(int) Load 8(invocation) 378:372(i64vec2) GroupNonUniformShuffleUp 43 376 377 379: 373(ptr) AccessChain 34(data) 371 364 380: 28(i64vec4) Load 379 381: 28(i64vec4) VectorShuffle 380 378 4 5 2 3 Store 379 381 382: 6(int) Load 8(invocation) 384: 373(ptr) AccessChain 34(data) 59 364 385: 28(i64vec4) Load 384 386:383(i64vec3) VectorShuffle 385 385 0 1 2 387: 6(int) Load 8(invocation) 388:383(i64vec3) GroupNonUniformShuffleUp 43 386 387 389: 373(ptr) AccessChain 34(data) 382 364 390: 28(i64vec4) Load 389 391: 28(i64vec4) VectorShuffle 390 388 4 5 6 3 Store 389 391 392: 6(int) Load 8(invocation) 393: 373(ptr) AccessChain 34(data) 70 364 394: 28(i64vec4) Load 393 395: 6(int) Load 8(invocation) 396: 28(i64vec4) GroupNonUniformShuffleUp 43 394 395 397: 373(ptr) AccessChain 34(data) 392 364 Store 397 396 398: 6(int) Load 8(invocation) 399: 365(ptr) AccessChain 34(data) 37 364 38 400: 27(int64_t) Load 399 401: 6(int) Load 8(invocation) 402: 27(int64_t) GroupNonUniformShuffleDown 43 400 401 403: 365(ptr) AccessChain 34(data) 398 364 38 Store 403 402 404: 6(int) Load 8(invocation) 405: 373(ptr) AccessChain 34(data) 47 364 406: 28(i64vec4) Load 405 407:372(i64vec2) VectorShuffle 406 406 0 1 408: 6(int) Load 8(invocation) 409:372(i64vec2) GroupNonUniformShuffleDown 43 407 408 410: 373(ptr) AccessChain 34(data) 404 364 411: 28(i64vec4) Load 410 412: 28(i64vec4) VectorShuffle 411 409 4 5 2 3 Store 410 412 413: 6(int) Load 8(invocation) 414: 373(ptr) AccessChain 34(data) 59 364 415: 28(i64vec4) Load 414 416:383(i64vec3) VectorShuffle 415 415 0 1 2 417: 6(int) Load 8(invocation) 418:383(i64vec3) GroupNonUniformShuffleDown 43 416 417 419: 373(ptr) AccessChain 34(data) 413 364 420: 28(i64vec4) Load 419 421: 28(i64vec4) VectorShuffle 420 418 4 5 6 3 Store 419 421 422: 6(int) Load 8(invocation) 423: 373(ptr) AccessChain 34(data) 70 364 424: 28(i64vec4) Load 423 425: 6(int) Load 8(invocation) 426: 28(i64vec4) GroupNonUniformShuffleDown 43 424 425 427: 373(ptr) AccessChain 34(data) 422 364 Store 427 426 428: 6(int) Load 8(invocation) 431: 430(ptr) AccessChain 34(data) 37 429 38 432:29(float16_t) Load 431 433: 6(int) Load 8(invocation) 434:29(float16_t) GroupNonUniformShuffleUp 43 432 433 435: 430(ptr) AccessChain 34(data) 428 429 38 Store 435 434 436: 6(int) Load 8(invocation) 439: 438(ptr) AccessChain 34(data) 47 429 440: 30(f16vec4) Load 439 441:437(f16vec2) VectorShuffle 440 440 0 1 442: 6(int) Load 8(invocation) 443:437(f16vec2) GroupNonUniformShuffleUp 43 441 442 444: 438(ptr) AccessChain 34(data) 436 429 445: 30(f16vec4) Load 444 446: 30(f16vec4) VectorShuffle 445 443 4 5 2 3 Store 444 446 447: 6(int) Load 8(invocation) 449: 438(ptr) AccessChain 34(data) 59 429 450: 30(f16vec4) Load 449 451:448(f16vec3) VectorShuffle 450 450 0 1 2 452: 6(int) Load 8(invocation) 453:448(f16vec3) GroupNonUniformShuffleUp 43 451 452 454: 438(ptr) AccessChain 34(data) 447 429 455: 30(f16vec4) Load 454 456: 30(f16vec4) VectorShuffle 455 453 4 5 6 3 Store 454 456 457: 6(int) Load 8(invocation) 458: 438(ptr) AccessChain 34(data) 70 429 459: 30(f16vec4) Load 458 460: 6(int) Load 8(invocation) 461: 30(f16vec4) GroupNonUniformShuffleUp 43 459 460 462: 438(ptr) AccessChain 34(data) 457 429 Store 462 461 463: 6(int) Load 8(invocation) 464: 430(ptr) AccessChain 34(data) 37 429 38 465:29(float16_t) Load 464 466: 6(int) Load 8(invocation) 467:29(float16_t) GroupNonUniformShuffleDown 43 465 466 468: 430(ptr) AccessChain 34(data) 463 429 38 Store 468 467 469: 6(int) Load 8(invocation) 470: 438(ptr) AccessChain 34(data) 47 429 471: 30(f16vec4) Load 470 472:437(f16vec2) VectorShuffle 471 471 0 1 473: 6(int) Load 8(invocation) 474:437(f16vec2) GroupNonUniformShuffleDown 43 472 473 475: 438(ptr) AccessChain 34(data) 469 429 476: 30(f16vec4) Load 475 477: 30(f16vec4) VectorShuffle 476 474 4 5 2 3 Store 475 477 478: 6(int) Load 8(invocation) 479: 438(ptr) AccessChain 34(data) 59 429 480: 30(f16vec4) Load 479 481:448(f16vec3) VectorShuffle 480 480 0 1 2 482: 6(int) Load 8(invocation) 483:448(f16vec3) GroupNonUniformShuffleDown 43 481 482 484: 438(ptr) AccessChain 34(data) 478 429 485: 30(f16vec4) Load 484 486: 30(f16vec4) VectorShuffle 485 483 4 5 6 3 Store 484 486 487: 6(int) Load 8(invocation) 488: 438(ptr) AccessChain 34(data) 70 429 489: 30(f16vec4) Load 488 490: 6(int) Load 8(invocation) 491: 30(f16vec4) GroupNonUniformShuffleDown 43 489 490 492: 438(ptr) AccessChain 34(data) 487 429 Store 492 491 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesShuffleRelativeNeg.comp.out000066400000000000000000000167701360464450000312440ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out000066400000000000000000000503741360464450000264350ustar00rootroot00000000000000spv.subgroupExtendedTypesVote.comp // Module Version 10300 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.subgroupExtendedTypesVoteNeg.comp.out000066400000000000000000000074451360464450000270700ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.subgroupPartitioned.comp.out000066400000000000000000004623771360464450000253060ustar00rootroot00000000000000spv.subgroupPartitioned.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 2506 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformPartitionedNV Extension "SPV_NV_shader_subgroup_partitioned" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" 10 12 ExecutionMode 4 LocalSize 8 1 1 Source GLSL 450 SourceExtension "GL_KHR_shader_subgroup_basic" SourceExtension "GL_NV_shader_subgroup_partitioned" Name 4 "main" Name 8 "invocation" Name 10 "gl_SubgroupInvocationID" Name 12 "gl_SubgroupSize" Name 19 "ballot" Name 28 "Buffers" MemberName 28(Buffers) 0 "f4" MemberName 28(Buffers) 1 "i4" MemberName 28(Buffers) 2 "u4" MemberName 28(Buffers) 3 "d4" Name 31 "data" Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 11 RelaxedPrecision Decorate 12(gl_SubgroupSize) RelaxedPrecision Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize Decorate 13 RelaxedPrecision Decorate 14 RelaxedPrecision Decorate 16 RelaxedPrecision MemberDecorate 28(Buffers) 0 Offset 0 MemberDecorate 28(Buffers) 1 Offset 16 MemberDecorate 28(Buffers) 2 Offset 32 MemberDecorate 28(Buffers) 3 Offset 64 Decorate 28(Buffers) Block Decorate 31(data) DescriptorSet 0 Decorate 31(data) Binding 0 Decorate 2505 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 9: TypePointer Input 6(int) 10(gl_SubgroupInvocationID): 9(ptr) Variable Input 12(gl_SubgroupSize): 9(ptr) Variable Input 15: 6(int) Constant 4 17: TypeVector 6(int) 4 18: TypePointer Function 17(ivec4) 22: TypeFloat 32 23: TypeVector 22(float) 4 24: TypeInt 32 1 25: TypeVector 24(int) 4 26: TypeFloat 64 27: TypeVector 26(float64_t) 4 28(Buffers): TypeStruct 23(fvec4) 25(ivec4) 17(ivec4) 27(f64vec4) 29: TypeArray 28(Buffers) 15 30: TypePointer 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 727: 70(ivec2) ConstantComposite 34 34 731: 70(ivec2) ConstantComposite 63 63 740: 78(ivec3) ConstantComposite 34 34 34 744: 78(ivec3) ConstantComposite 63 63 63 752: 25(ivec4) ConstantComposite 34 34 34 34 756: 25(ivec4) ConstantComposite 63 63 63 63 2503: 6(int) Constant 8 2504: 6(int) Constant 1 2505: 103(ivec3) ConstantComposite 2503 2504 2504 4(main): 2 Function None 3 5: Label 8(invocation): 7(ptr) Variable Function 19(ballot): 18(ptr) Variable Function 11: 6(int) Load 10(gl_SubgroupInvocationID) 13: 6(int) Load 12(gl_SubgroupSize) 14: 6(int) IAdd 11 13 16: 6(int) UMod 14 15 Store 8(invocation) 16 20: 6(int) Load 8(invocation) 21: 17(ivec4) GroupNonUniformPartitionNV 20 Store 19(ballot) 21 32: 6(int) Load 8(invocation) 37: 36(ptr) AccessChain 31(data) 34 34 35 38: 22(float) Load 37 39: 17(ivec4) GroupNonUniformPartitionNV 38 41: 40(ptr) AccessChain 31(data) 32 33 Store 41 39 42: 6(int) Load 8(invocation) 45: 44(ptr) AccessChain 31(data) 34 34 46: 23(fvec4) Load 45 47: 43(fvec2) VectorShuffle 46 46 0 1 48: 17(ivec4) GroupNonUniformPartitionNV 47 49: 40(ptr) AccessChain 31(data) 42 33 Store 49 48 50: 6(int) Load 8(invocation) 52: 44(ptr) AccessChain 31(data) 34 34 53: 23(fvec4) Load 52 54: 51(fvec3) VectorShuffle 53 53 0 1 2 55: 17(ivec4) GroupNonUniformPartitionNV 54 56: 40(ptr) AccessChain 31(data) 50 33 Store 56 55 57: 6(int) Load 8(invocation) 58: 44(ptr) AccessChain 31(data) 34 34 59: 23(fvec4) Load 58 60: 17(ivec4) GroupNonUniformPartitionNV 59 61: 40(ptr) AccessChain 31(data) 57 33 Store 61 60 62: 6(int) Load 8(invocation) 65: 64(ptr) AccessChain 31(data) 34 63 35 66: 24(int) Load 65 67: 17(ivec4) GroupNonUniformPartitionNV 66 68: 40(ptr) AccessChain 31(data) 62 33 Store 68 67 69: 6(int) Load 8(invocation) 72: 71(ptr) AccessChain 31(data) 34 63 73: 25(ivec4) Load 72 74: 70(ivec2) VectorShuffle 73 73 0 1 75: 17(ivec4) GroupNonUniformPartitionNV 74 76: 40(ptr) AccessChain 31(data) 69 33 Store 76 75 77: 6(int) Load 8(invocation) 79: 71(ptr) AccessChain 31(data) 34 63 80: 25(ivec4) Load 79 81: 78(ivec3) VectorShuffle 80 80 0 1 2 82: 17(ivec4) GroupNonUniformPartitionNV 81 83: 40(ptr) AccessChain 31(data) 77 33 Store 83 82 84: 6(int) Load 8(invocation) 85: 71(ptr) AccessChain 31(data) 34 63 86: 25(ivec4) Load 85 87: 17(ivec4) GroupNonUniformPartitionNV 86 88: 40(ptr) AccessChain 31(data) 84 33 Store 88 87 89: 6(int) Load 8(invocation) 91: 90(ptr) AccessChain 31(data) 34 33 35 92: 6(int) Load 91 93: 17(ivec4) GroupNonUniformPartitionNV 92 94: 40(ptr) AccessChain 31(data) 89 33 Store 94 93 95: 6(int) Load 8(invocation) 97: 40(ptr) AccessChain 31(data) 34 33 98: 17(ivec4) Load 97 99: 96(ivec2) VectorShuffle 98 98 0 1 100: 17(ivec4) GroupNonUniformPartitionNV 99 101: 40(ptr) AccessChain 31(data) 95 33 Store 101 100 102: 6(int) Load 8(invocation) 104: 40(ptr) AccessChain 31(data) 34 33 105: 17(ivec4) Load 104 106: 103(ivec3) VectorShuffle 105 105 0 1 2 107: 17(ivec4) GroupNonUniformPartitionNV 106 108: 40(ptr) AccessChain 31(data) 102 33 Store 108 107 109: 6(int) Load 8(invocation) 110: 40(ptr) AccessChain 31(data) 34 33 111: 17(ivec4) Load 110 112: 17(ivec4) GroupNonUniformPartitionNV 111 113: 40(ptr) AccessChain 31(data) 109 33 Store 113 112 114: 6(int) Load 8(invocation) 117: 116(ptr) AccessChain 31(data) 34 115 35 118:26(float64_t) Load 117 119: 17(ivec4) GroupNonUniformPartitionNV 118 120: 40(ptr) AccessChain 31(data) 114 33 Store 120 119 121: 6(int) Load 8(invocation) 124: 123(ptr) AccessChain 31(data) 34 115 125: 27(f64vec4) Load 124 126:122(f64vec2) VectorShuffle 125 125 0 1 127: 17(ivec4) GroupNonUniformPartitionNV 126 128: 40(ptr) AccessChain 31(data) 121 33 Store 128 127 129: 6(int) Load 8(invocation) 131: 123(ptr) AccessChain 31(data) 34 115 132: 27(f64vec4) Load 131 133:130(f64vec3) VectorShuffle 132 132 0 1 2 134: 17(ivec4) GroupNonUniformPartitionNV 133 135: 40(ptr) AccessChain 31(data) 129 33 Store 135 134 136: 6(int) Load 8(invocation) 137: 123(ptr) AccessChain 31(data) 34 115 138: 27(f64vec4) Load 137 139: 17(ivec4) GroupNonUniformPartitionNV 138 140: 40(ptr) AccessChain 31(data) 136 33 Store 140 139 141: 6(int) Load 8(invocation) 142: 64(ptr) AccessChain 31(data) 34 63 35 143: 24(int) Load 142 145: 144(bool) INotEqual 143 35 146: 17(ivec4) GroupNonUniformPartitionNV 145 147: 40(ptr) AccessChain 31(data) 141 33 Store 147 146 148: 6(int) Load 8(invocation) 149: 71(ptr) AccessChain 31(data) 34 63 150: 25(ivec4) Load 149 151: 70(ivec2) VectorShuffle 150 150 0 1 154: 152(bvec2) INotEqual 151 153 155: 17(ivec4) GroupNonUniformPartitionNV 154 156: 40(ptr) AccessChain 31(data) 148 33 Store 156 155 157: 6(int) Load 8(invocation) 158: 71(ptr) AccessChain 31(data) 34 63 159: 25(ivec4) Load 158 160: 78(ivec3) VectorShuffle 159 159 0 1 2 163: 161(bvec3) INotEqual 160 162 164: 17(ivec4) GroupNonUniformPartitionNV 163 165: 40(ptr) AccessChain 31(data) 157 33 Store 165 164 166: 6(int) Load 8(invocation) 167: 71(ptr) AccessChain 31(data) 34 63 168: 25(ivec4) Load 167 171: 169(bvec4) INotEqual 168 170 172: 17(ivec4) GroupNonUniformPartitionNV 171 173: 40(ptr) AccessChain 31(data) 166 33 Store 173 172 174: 6(int) Load 8(invocation) 175: 36(ptr) AccessChain 31(data) 34 34 35 176: 22(float) Load 175 177: 17(ivec4) Load 19(ballot) 179: 22(float) GroupNonUniformFAdd 178 PartitionedReduceNV 176 177 180: 36(ptr) AccessChain 31(data) 174 34 35 Store 180 179 181: 6(int) Load 8(invocation) 182: 44(ptr) AccessChain 31(data) 63 34 183: 23(fvec4) Load 182 184: 43(fvec2) VectorShuffle 183 183 0 1 185: 17(ivec4) Load 19(ballot) 186: 43(fvec2) GroupNonUniformFAdd 178 PartitionedReduceNV 184 185 187: 44(ptr) AccessChain 31(data) 181 34 188: 23(fvec4) Load 187 189: 23(fvec4) VectorShuffle 188 186 4 5 2 3 Store 187 189 190: 6(int) Load 8(invocation) 191: 44(ptr) AccessChain 31(data) 33 34 192: 23(fvec4) Load 191 193: 51(fvec3) VectorShuffle 192 192 0 1 2 194: 17(ivec4) Load 19(ballot) 195: 51(fvec3) GroupNonUniformFAdd 178 PartitionedReduceNV 193 194 196: 44(ptr) AccessChain 31(data) 190 34 197: 23(fvec4) Load 196 198: 23(fvec4) VectorShuffle 197 195 4 5 6 3 Store 196 198 199: 6(int) Load 8(invocation) 200: 44(ptr) AccessChain 31(data) 115 34 201: 23(fvec4) Load 200 202: 17(ivec4) Load 19(ballot) 203: 23(fvec4) GroupNonUniformFAdd 178 PartitionedReduceNV 201 202 204: 44(ptr) AccessChain 31(data) 199 34 Store 204 203 205: 6(int) Load 8(invocation) 206: 64(ptr) AccessChain 31(data) 34 63 35 207: 24(int) Load 206 208: 17(ivec4) Load 19(ballot) 209: 24(int) GroupNonUniformIAdd 178 PartitionedReduceNV 207 208 210: 64(ptr) AccessChain 31(data) 205 63 35 Store 210 209 211: 6(int) Load 8(invocation) 212: 71(ptr) AccessChain 31(data) 63 63 213: 25(ivec4) Load 212 214: 70(ivec2) VectorShuffle 213 213 0 1 215: 17(ivec4) Load 19(ballot) 216: 70(ivec2) GroupNonUniformIAdd 178 PartitionedReduceNV 214 215 217: 71(ptr) AccessChain 31(data) 211 63 218: 25(ivec4) Load 217 219: 25(ivec4) VectorShuffle 218 216 4 5 2 3 Store 217 219 220: 6(int) Load 8(invocation) 221: 71(ptr) AccessChain 31(data) 33 63 222: 25(ivec4) Load 221 223: 78(ivec3) VectorShuffle 222 222 0 1 2 224: 17(ivec4) Load 19(ballot) 225: 78(ivec3) GroupNonUniformIAdd 178 PartitionedReduceNV 223 224 226: 71(ptr) AccessChain 31(data) 220 63 227: 25(ivec4) Load 226 228: 25(ivec4) VectorShuffle 227 225 4 5 6 3 Store 226 228 229: 6(int) Load 8(invocation) 230: 71(ptr) AccessChain 31(data) 115 63 231: 25(ivec4) Load 230 232: 17(ivec4) Load 19(ballot) 233: 25(ivec4) GroupNonUniformIAdd 178 PartitionedReduceNV 231 232 234: 71(ptr) AccessChain 31(data) 229 63 Store 234 233 235: 6(int) Load 8(invocation) 236: 90(ptr) AccessChain 31(data) 34 33 35 237: 6(int) Load 236 238: 17(ivec4) Load 19(ballot) 239: 6(int) GroupNonUniformIAdd 178 PartitionedReduceNV 237 238 240: 90(ptr) AccessChain 31(data) 235 33 35 Store 240 239 241: 6(int) Load 8(invocation) 242: 40(ptr) AccessChain 31(data) 63 33 243: 17(ivec4) Load 242 244: 96(ivec2) VectorShuffle 243 243 0 1 245: 17(ivec4) Load 19(ballot) 246: 96(ivec2) GroupNonUniformIAdd 178 PartitionedReduceNV 244 245 247: 40(ptr) AccessChain 31(data) 241 33 248: 17(ivec4) Load 247 249: 17(ivec4) VectorShuffle 248 246 4 5 2 3 Store 247 249 250: 6(int) Load 8(invocation) 251: 40(ptr) AccessChain 31(data) 33 33 252: 17(ivec4) Load 251 253: 103(ivec3) VectorShuffle 252 252 0 1 2 254: 17(ivec4) Load 19(ballot) 255: 103(ivec3) GroupNonUniformIAdd 178 PartitionedReduceNV 253 254 256: 40(ptr) AccessChain 31(data) 250 33 257: 17(ivec4) Load 256 258: 17(ivec4) VectorShuffle 257 255 4 5 6 3 Store 256 258 259: 6(int) Load 8(invocation) 260: 40(ptr) AccessChain 31(data) 115 33 261: 17(ivec4) Load 260 262: 17(ivec4) Load 19(ballot) 263: 17(ivec4) GroupNonUniformIAdd 178 PartitionedReduceNV 261 262 264: 40(ptr) AccessChain 31(data) 259 33 Store 264 263 265: 6(int) Load 8(invocation) 266: 116(ptr) AccessChain 31(data) 34 115 35 267:26(float64_t) Load 266 268: 17(ivec4) Load 19(ballot) 269:26(float64_t) GroupNonUniformFAdd 178 PartitionedReduceNV 267 268 270: 116(ptr) AccessChain 31(data) 265 115 35 Store 270 269 271: 6(int) Load 8(invocation) 272: 123(ptr) AccessChain 31(data) 63 115 273: 27(f64vec4) Load 272 274:122(f64vec2) VectorShuffle 273 273 0 1 275: 17(ivec4) Load 19(ballot) 276:122(f64vec2) GroupNonUniformFAdd 178 PartitionedReduceNV 274 275 277: 123(ptr) AccessChain 31(data) 271 115 278: 27(f64vec4) Load 277 279: 27(f64vec4) VectorShuffle 278 276 4 5 2 3 Store 277 279 280: 6(int) Load 8(invocation) 281: 123(ptr) AccessChain 31(data) 33 115 282: 27(f64vec4) Load 281 283:130(f64vec3) VectorShuffle 282 282 0 1 2 284: 17(ivec4) Load 19(ballot) 285:130(f64vec3) GroupNonUniformFAdd 178 PartitionedReduceNV 283 284 286: 123(ptr) AccessChain 31(data) 280 115 287: 27(f64vec4) Load 286 288: 27(f64vec4) VectorShuffle 287 285 4 5 6 3 Store 286 288 289: 6(int) Load 8(invocation) 290: 123(ptr) AccessChain 31(data) 115 115 291: 27(f64vec4) Load 290 292: 17(ivec4) Load 19(ballot) 293: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedReduceNV 291 292 294: 123(ptr) AccessChain 31(data) 289 115 Store 294 293 295: 6(int) Load 8(invocation) 296: 36(ptr) AccessChain 31(data) 34 34 35 297: 22(float) Load 296 298: 17(ivec4) Load 19(ballot) 299: 22(float) GroupNonUniformFMul 178 PartitionedReduceNV 297 298 300: 36(ptr) AccessChain 31(data) 295 34 35 Store 300 299 301: 6(int) Load 8(invocation) 302: 44(ptr) AccessChain 31(data) 63 34 303: 23(fvec4) Load 302 304: 43(fvec2) VectorShuffle 303 303 0 1 305: 17(ivec4) Load 19(ballot) 306: 43(fvec2) GroupNonUniformFMul 178 PartitionedReduceNV 304 305 307: 44(ptr) AccessChain 31(data) 301 34 308: 23(fvec4) Load 307 309: 23(fvec4) VectorShuffle 308 306 4 5 2 3 Store 307 309 310: 6(int) Load 8(invocation) 311: 44(ptr) AccessChain 31(data) 33 34 312: 23(fvec4) Load 311 313: 51(fvec3) VectorShuffle 312 312 0 1 2 314: 17(ivec4) Load 19(ballot) 315: 51(fvec3) GroupNonUniformFMul 178 PartitionedReduceNV 313 314 316: 44(ptr) AccessChain 31(data) 310 34 317: 23(fvec4) Load 316 318: 23(fvec4) VectorShuffle 317 315 4 5 6 3 Store 316 318 319: 6(int) Load 8(invocation) 320: 44(ptr) AccessChain 31(data) 115 34 321: 23(fvec4) Load 320 322: 17(ivec4) Load 19(ballot) 323: 23(fvec4) GroupNonUniformFMul 178 PartitionedReduceNV 321 322 324: 44(ptr) AccessChain 31(data) 319 34 Store 324 323 325: 6(int) Load 8(invocation) 326: 64(ptr) AccessChain 31(data) 34 63 35 327: 24(int) Load 326 328: 17(ivec4) Load 19(ballot) 329: 24(int) GroupNonUniformIMul 178 PartitionedReduceNV 327 328 330: 64(ptr) AccessChain 31(data) 325 63 35 Store 330 329 331: 6(int) Load 8(invocation) 332: 71(ptr) AccessChain 31(data) 63 63 333: 25(ivec4) Load 332 334: 70(ivec2) VectorShuffle 333 333 0 1 335: 17(ivec4) Load 19(ballot) 336: 70(ivec2) GroupNonUniformIMul 178 PartitionedReduceNV 334 335 337: 71(ptr) AccessChain 31(data) 331 63 338: 25(ivec4) Load 337 339: 25(ivec4) VectorShuffle 338 336 4 5 2 3 Store 337 339 340: 6(int) Load 8(invocation) 341: 71(ptr) AccessChain 31(data) 33 63 342: 25(ivec4) Load 341 343: 78(ivec3) VectorShuffle 342 342 0 1 2 344: 17(ivec4) Load 19(ballot) 345: 78(ivec3) GroupNonUniformIMul 178 PartitionedReduceNV 343 344 346: 71(ptr) AccessChain 31(data) 340 63 347: 25(ivec4) Load 346 348: 25(ivec4) VectorShuffle 347 345 4 5 6 3 Store 346 348 349: 6(int) Load 8(invocation) 350: 71(ptr) AccessChain 31(data) 115 63 351: 25(ivec4) Load 350 352: 17(ivec4) Load 19(ballot) 353: 25(ivec4) GroupNonUniformIMul 178 PartitionedReduceNV 351 352 354: 71(ptr) AccessChain 31(data) 349 63 Store 354 353 355: 6(int) Load 8(invocation) 356: 90(ptr) AccessChain 31(data) 34 33 35 357: 6(int) Load 356 358: 17(ivec4) Load 19(ballot) 359: 6(int) GroupNonUniformIMul 178 PartitionedReduceNV 357 358 360: 90(ptr) AccessChain 31(data) 355 33 35 Store 360 359 361: 6(int) Load 8(invocation) 362: 40(ptr) AccessChain 31(data) 63 33 363: 17(ivec4) Load 362 364: 96(ivec2) VectorShuffle 363 363 0 1 365: 17(ivec4) Load 19(ballot) 366: 96(ivec2) GroupNonUniformIMul 178 PartitionedReduceNV 364 365 367: 40(ptr) AccessChain 31(data) 361 33 368: 17(ivec4) Load 367 369: 17(ivec4) VectorShuffle 368 366 4 5 2 3 Store 367 369 370: 6(int) Load 8(invocation) 371: 40(ptr) AccessChain 31(data) 33 33 372: 17(ivec4) Load 371 373: 103(ivec3) VectorShuffle 372 372 0 1 2 374: 17(ivec4) Load 19(ballot) 375: 103(ivec3) GroupNonUniformIMul 178 PartitionedReduceNV 373 374 376: 40(ptr) AccessChain 31(data) 370 33 377: 17(ivec4) Load 376 378: 17(ivec4) VectorShuffle 377 375 4 5 6 3 Store 376 378 379: 6(int) Load 8(invocation) 380: 40(ptr) AccessChain 31(data) 115 33 381: 17(ivec4) Load 380 382: 17(ivec4) Load 19(ballot) 383: 17(ivec4) GroupNonUniformIMul 178 PartitionedReduceNV 381 382 384: 40(ptr) AccessChain 31(data) 379 33 Store 384 383 385: 6(int) Load 8(invocation) 386: 116(ptr) AccessChain 31(data) 34 115 35 387:26(float64_t) Load 386 388: 17(ivec4) Load 19(ballot) 389:26(float64_t) GroupNonUniformFMul 178 PartitionedReduceNV 387 388 390: 116(ptr) AccessChain 31(data) 385 115 35 Store 390 389 391: 6(int) Load 8(invocation) 392: 123(ptr) AccessChain 31(data) 63 115 393: 27(f64vec4) Load 392 394:122(f64vec2) VectorShuffle 393 393 0 1 395: 17(ivec4) Load 19(ballot) 396:122(f64vec2) GroupNonUniformFMul 178 PartitionedReduceNV 394 395 397: 123(ptr) AccessChain 31(data) 391 115 398: 27(f64vec4) Load 397 399: 27(f64vec4) VectorShuffle 398 396 4 5 2 3 Store 397 399 400: 6(int) Load 8(invocation) 401: 123(ptr) AccessChain 31(data) 33 115 402: 27(f64vec4) Load 401 403:130(f64vec3) VectorShuffle 402 402 0 1 2 404: 17(ivec4) Load 19(ballot) 405:130(f64vec3) GroupNonUniformFMul 178 PartitionedReduceNV 403 404 406: 123(ptr) AccessChain 31(data) 400 115 407: 27(f64vec4) Load 406 408: 27(f64vec4) VectorShuffle 407 405 4 5 6 3 Store 406 408 409: 6(int) Load 8(invocation) 410: 123(ptr) AccessChain 31(data) 115 115 411: 27(f64vec4) Load 410 412: 17(ivec4) Load 19(ballot) 413: 27(f64vec4) GroupNonUniformFMul 178 PartitionedReduceNV 411 412 414: 123(ptr) AccessChain 31(data) 409 115 Store 414 413 415: 6(int) Load 8(invocation) 416: 36(ptr) AccessChain 31(data) 34 34 35 417: 22(float) Load 416 418: 17(ivec4) Load 19(ballot) 419: 22(float) GroupNonUniformFMin 178 PartitionedReduceNV 417 418 420: 36(ptr) AccessChain 31(data) 415 34 35 Store 420 419 421: 6(int) Load 8(invocation) 422: 44(ptr) AccessChain 31(data) 63 34 423: 23(fvec4) Load 422 424: 43(fvec2) VectorShuffle 423 423 0 1 425: 17(ivec4) Load 19(ballot) 426: 43(fvec2) GroupNonUniformFMin 178 PartitionedReduceNV 424 425 427: 44(ptr) AccessChain 31(data) 421 34 428: 23(fvec4) Load 427 429: 23(fvec4) VectorShuffle 428 426 4 5 2 3 Store 427 429 430: 6(int) Load 8(invocation) 431: 44(ptr) AccessChain 31(data) 33 34 432: 23(fvec4) Load 431 433: 51(fvec3) VectorShuffle 432 432 0 1 2 434: 17(ivec4) Load 19(ballot) 435: 51(fvec3) GroupNonUniformFMin 178 PartitionedReduceNV 433 434 436: 44(ptr) AccessChain 31(data) 430 34 437: 23(fvec4) Load 436 438: 23(fvec4) VectorShuffle 437 435 4 5 6 3 Store 436 438 439: 6(int) Load 8(invocation) 440: 44(ptr) AccessChain 31(data) 115 34 441: 23(fvec4) Load 440 442: 17(ivec4) Load 19(ballot) 443: 23(fvec4) GroupNonUniformFMin 178 PartitionedReduceNV 441 442 444: 44(ptr) AccessChain 31(data) 439 34 Store 444 443 445: 6(int) Load 8(invocation) 446: 64(ptr) AccessChain 31(data) 34 63 35 447: 24(int) Load 446 448: 17(ivec4) Load 19(ballot) 449: 24(int) GroupNonUniformSMin 178 PartitionedReduceNV 447 448 450: 64(ptr) AccessChain 31(data) 445 63 35 Store 450 449 451: 6(int) Load 8(invocation) 452: 71(ptr) AccessChain 31(data) 63 63 453: 25(ivec4) Load 452 454: 70(ivec2) VectorShuffle 453 453 0 1 455: 17(ivec4) Load 19(ballot) 456: 70(ivec2) GroupNonUniformSMin 178 PartitionedReduceNV 454 455 457: 71(ptr) AccessChain 31(data) 451 63 458: 25(ivec4) Load 457 459: 25(ivec4) VectorShuffle 458 456 4 5 2 3 Store 457 459 460: 6(int) Load 8(invocation) 461: 71(ptr) AccessChain 31(data) 33 63 462: 25(ivec4) Load 461 463: 78(ivec3) VectorShuffle 462 462 0 1 2 464: 17(ivec4) Load 19(ballot) 465: 78(ivec3) GroupNonUniformSMin 178 PartitionedReduceNV 463 464 466: 71(ptr) AccessChain 31(data) 460 63 467: 25(ivec4) Load 466 468: 25(ivec4) VectorShuffle 467 465 4 5 6 3 Store 466 468 469: 6(int) Load 8(invocation) 470: 71(ptr) AccessChain 31(data) 115 63 471: 25(ivec4) Load 470 472: 17(ivec4) Load 19(ballot) 473: 25(ivec4) GroupNonUniformSMin 178 PartitionedReduceNV 471 472 474: 71(ptr) AccessChain 31(data) 469 63 Store 474 473 475: 6(int) Load 8(invocation) 476: 90(ptr) AccessChain 31(data) 34 33 35 477: 6(int) Load 476 478: 17(ivec4) Load 19(ballot) 479: 6(int) GroupNonUniformUMin 178 PartitionedReduceNV 477 478 480: 90(ptr) AccessChain 31(data) 475 33 35 Store 480 479 481: 6(int) Load 8(invocation) 482: 40(ptr) AccessChain 31(data) 63 33 483: 17(ivec4) Load 482 484: 96(ivec2) VectorShuffle 483 483 0 1 485: 17(ivec4) Load 19(ballot) 486: 96(ivec2) GroupNonUniformUMin 178 PartitionedReduceNV 484 485 487: 40(ptr) AccessChain 31(data) 481 33 488: 17(ivec4) Load 487 489: 17(ivec4) VectorShuffle 488 486 4 5 2 3 Store 487 489 490: 6(int) Load 8(invocation) 491: 40(ptr) AccessChain 31(data) 33 33 492: 17(ivec4) Load 491 493: 103(ivec3) VectorShuffle 492 492 0 1 2 494: 17(ivec4) Load 19(ballot) 495: 103(ivec3) GroupNonUniformUMin 178 PartitionedReduceNV 493 494 496: 40(ptr) AccessChain 31(data) 490 33 497: 17(ivec4) Load 496 498: 17(ivec4) VectorShuffle 497 495 4 5 6 3 Store 496 498 499: 6(int) Load 8(invocation) 500: 40(ptr) AccessChain 31(data) 115 33 501: 17(ivec4) Load 500 502: 17(ivec4) Load 19(ballot) 503: 17(ivec4) GroupNonUniformUMin 178 PartitionedReduceNV 501 502 504: 40(ptr) AccessChain 31(data) 499 33 Store 504 503 505: 6(int) Load 8(invocation) 506: 116(ptr) AccessChain 31(data) 34 115 35 507:26(float64_t) Load 506 508: 17(ivec4) Load 19(ballot) 509:26(float64_t) GroupNonUniformFMin 178 PartitionedReduceNV 507 508 510: 116(ptr) AccessChain 31(data) 505 115 35 Store 510 509 511: 6(int) Load 8(invocation) 512: 123(ptr) AccessChain 31(data) 63 115 513: 27(f64vec4) Load 512 514:122(f64vec2) VectorShuffle 513 513 0 1 515: 17(ivec4) Load 19(ballot) 516:122(f64vec2) GroupNonUniformFMin 178 PartitionedReduceNV 514 515 517: 123(ptr) AccessChain 31(data) 511 115 518: 27(f64vec4) Load 517 519: 27(f64vec4) VectorShuffle 518 516 4 5 2 3 Store 517 519 520: 6(int) Load 8(invocation) 521: 123(ptr) AccessChain 31(data) 33 115 522: 27(f64vec4) Load 521 523:130(f64vec3) VectorShuffle 522 522 0 1 2 524: 17(ivec4) Load 19(ballot) 525:130(f64vec3) GroupNonUniformFMin 178 PartitionedReduceNV 523 524 526: 123(ptr) AccessChain 31(data) 520 115 527: 27(f64vec4) Load 526 528: 27(f64vec4) VectorShuffle 527 525 4 5 6 3 Store 526 528 529: 6(int) Load 8(invocation) 530: 123(ptr) AccessChain 31(data) 115 115 531: 27(f64vec4) Load 530 532: 17(ivec4) Load 19(ballot) 533: 27(f64vec4) GroupNonUniformFMin 178 PartitionedReduceNV 531 532 534: 123(ptr) AccessChain 31(data) 529 115 Store 534 533 535: 6(int) Load 8(invocation) 536: 36(ptr) AccessChain 31(data) 34 34 35 537: 22(float) Load 536 538: 17(ivec4) Load 19(ballot) 539: 22(float) GroupNonUniformFMax 178 PartitionedReduceNV 537 538 540: 36(ptr) AccessChain 31(data) 535 34 35 Store 540 539 541: 6(int) Load 8(invocation) 542: 44(ptr) AccessChain 31(data) 63 34 543: 23(fvec4) Load 542 544: 43(fvec2) VectorShuffle 543 543 0 1 545: 17(ivec4) Load 19(ballot) 546: 43(fvec2) GroupNonUniformFMax 178 PartitionedReduceNV 544 545 547: 44(ptr) AccessChain 31(data) 541 34 548: 23(fvec4) Load 547 549: 23(fvec4) VectorShuffle 548 546 4 5 2 3 Store 547 549 550: 6(int) Load 8(invocation) 551: 44(ptr) AccessChain 31(data) 33 34 552: 23(fvec4) Load 551 553: 51(fvec3) VectorShuffle 552 552 0 1 2 554: 17(ivec4) Load 19(ballot) 555: 51(fvec3) GroupNonUniformFMax 178 PartitionedReduceNV 553 554 556: 44(ptr) AccessChain 31(data) 550 34 557: 23(fvec4) Load 556 558: 23(fvec4) VectorShuffle 557 555 4 5 6 3 Store 556 558 559: 6(int) Load 8(invocation) 560: 44(ptr) AccessChain 31(data) 115 34 561: 23(fvec4) Load 560 562: 17(ivec4) Load 19(ballot) 563: 23(fvec4) GroupNonUniformFMax 178 PartitionedReduceNV 561 562 564: 44(ptr) AccessChain 31(data) 559 34 Store 564 563 565: 6(int) Load 8(invocation) 566: 64(ptr) AccessChain 31(data) 34 63 35 567: 24(int) Load 566 568: 17(ivec4) Load 19(ballot) 569: 24(int) GroupNonUniformSMax 178 PartitionedReduceNV 567 568 570: 64(ptr) AccessChain 31(data) 565 63 35 Store 570 569 571: 6(int) Load 8(invocation) 572: 71(ptr) AccessChain 31(data) 63 63 573: 25(ivec4) Load 572 574: 70(ivec2) VectorShuffle 573 573 0 1 575: 17(ivec4) Load 19(ballot) 576: 70(ivec2) GroupNonUniformSMax 178 PartitionedReduceNV 574 575 577: 71(ptr) AccessChain 31(data) 571 63 578: 25(ivec4) Load 577 579: 25(ivec4) VectorShuffle 578 576 4 5 2 3 Store 577 579 580: 6(int) Load 8(invocation) 581: 71(ptr) AccessChain 31(data) 33 63 582: 25(ivec4) Load 581 583: 78(ivec3) VectorShuffle 582 582 0 1 2 584: 17(ivec4) Load 19(ballot) 585: 78(ivec3) GroupNonUniformSMax 178 PartitionedReduceNV 583 584 586: 71(ptr) AccessChain 31(data) 580 63 587: 25(ivec4) Load 586 588: 25(ivec4) VectorShuffle 587 585 4 5 6 3 Store 586 588 589: 6(int) Load 8(invocation) 590: 71(ptr) AccessChain 31(data) 115 63 591: 25(ivec4) Load 590 592: 17(ivec4) Load 19(ballot) 593: 25(ivec4) GroupNonUniformSMax 178 PartitionedReduceNV 591 592 594: 71(ptr) AccessChain 31(data) 589 63 Store 594 593 595: 6(int) Load 8(invocation) 596: 90(ptr) AccessChain 31(data) 34 33 35 597: 6(int) Load 596 598: 17(ivec4) Load 19(ballot) 599: 6(int) GroupNonUniformUMax 178 PartitionedReduceNV 597 598 600: 90(ptr) AccessChain 31(data) 595 33 35 Store 600 599 601: 6(int) Load 8(invocation) 602: 40(ptr) AccessChain 31(data) 63 33 603: 17(ivec4) Load 602 604: 96(ivec2) VectorShuffle 603 603 0 1 605: 17(ivec4) Load 19(ballot) 606: 96(ivec2) GroupNonUniformUMax 178 PartitionedReduceNV 604 605 607: 40(ptr) AccessChain 31(data) 601 33 608: 17(ivec4) Load 607 609: 17(ivec4) VectorShuffle 608 606 4 5 2 3 Store 607 609 610: 6(int) Load 8(invocation) 611: 40(ptr) AccessChain 31(data) 33 33 612: 17(ivec4) Load 611 613: 103(ivec3) VectorShuffle 612 612 0 1 2 614: 17(ivec4) Load 19(ballot) 615: 103(ivec3) GroupNonUniformUMax 178 PartitionedReduceNV 613 614 616: 40(ptr) AccessChain 31(data) 610 33 617: 17(ivec4) Load 616 618: 17(ivec4) VectorShuffle 617 615 4 5 6 3 Store 616 618 619: 6(int) Load 8(invocation) 620: 40(ptr) AccessChain 31(data) 115 33 621: 17(ivec4) Load 620 622: 17(ivec4) Load 19(ballot) 623: 17(ivec4) GroupNonUniformUMax 178 PartitionedReduceNV 621 622 624: 40(ptr) AccessChain 31(data) 619 33 Store 624 623 625: 6(int) Load 8(invocation) 626: 116(ptr) AccessChain 31(data) 34 115 35 627:26(float64_t) Load 626 628: 17(ivec4) Load 19(ballot) 629:26(float64_t) GroupNonUniformFMax 178 PartitionedReduceNV 627 628 630: 116(ptr) AccessChain 31(data) 625 115 35 Store 630 629 631: 6(int) Load 8(invocation) 632: 123(ptr) AccessChain 31(data) 63 115 633: 27(f64vec4) Load 632 634:122(f64vec2) VectorShuffle 633 633 0 1 635: 17(ivec4) Load 19(ballot) 636:122(f64vec2) GroupNonUniformFMax 178 PartitionedReduceNV 634 635 637: 123(ptr) AccessChain 31(data) 631 115 638: 27(f64vec4) Load 637 639: 27(f64vec4) VectorShuffle 638 636 4 5 2 3 Store 637 639 640: 6(int) Load 8(invocation) 641: 123(ptr) AccessChain 31(data) 33 115 642: 27(f64vec4) Load 641 643:130(f64vec3) VectorShuffle 642 642 0 1 2 644: 17(ivec4) Load 19(ballot) 645:130(f64vec3) GroupNonUniformFMax 178 PartitionedReduceNV 643 644 646: 123(ptr) AccessChain 31(data) 640 115 647: 27(f64vec4) Load 646 648: 27(f64vec4) VectorShuffle 647 645 4 5 6 3 Store 646 648 649: 6(int) Load 8(invocation) 650: 123(ptr) AccessChain 31(data) 115 115 651: 27(f64vec4) Load 650 652: 17(ivec4) Load 19(ballot) 653: 27(f64vec4) GroupNonUniformFMax 178 PartitionedReduceNV 651 652 654: 123(ptr) AccessChain 31(data) 649 115 Store 654 653 655: 6(int) Load 8(invocation) 656: 64(ptr) AccessChain 31(data) 34 63 35 657: 24(int) Load 656 658: 17(ivec4) Load 19(ballot) 659: 24(int) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 657 658 660: 64(ptr) AccessChain 31(data) 655 63 35 Store 660 659 661: 6(int) Load 8(invocation) 662: 71(ptr) AccessChain 31(data) 63 63 663: 25(ivec4) Load 662 664: 70(ivec2) VectorShuffle 663 663 0 1 665: 17(ivec4) Load 19(ballot) 666: 70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 664 665 667: 71(ptr) AccessChain 31(data) 661 63 668: 25(ivec4) Load 667 669: 25(ivec4) VectorShuffle 668 666 4 5 2 3 Store 667 669 670: 6(int) Load 8(invocation) 671: 71(ptr) AccessChain 31(data) 33 63 672: 25(ivec4) Load 671 673: 78(ivec3) VectorShuffle 672 672 0 1 2 674: 17(ivec4) Load 19(ballot) 675: 78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 673 674 676: 71(ptr) AccessChain 31(data) 670 63 677: 25(ivec4) Load 676 678: 25(ivec4) VectorShuffle 677 675 4 5 6 3 Store 676 678 679: 6(int) Load 8(invocation) 680: 71(ptr) AccessChain 31(data) 115 63 681: 25(ivec4) Load 680 682: 17(ivec4) Load 19(ballot) 683: 25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 681 682 684: 71(ptr) AccessChain 31(data) 679 63 Store 684 683 685: 6(int) Load 8(invocation) 686: 90(ptr) AccessChain 31(data) 34 33 35 687: 6(int) Load 686 688: 17(ivec4) Load 19(ballot) 689: 6(int) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 687 688 690: 90(ptr) AccessChain 31(data) 685 33 35 Store 690 689 691: 6(int) Load 8(invocation) 692: 40(ptr) AccessChain 31(data) 63 33 693: 17(ivec4) Load 692 694: 96(ivec2) VectorShuffle 693 693 0 1 695: 17(ivec4) Load 19(ballot) 696: 96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 694 695 697: 40(ptr) AccessChain 31(data) 691 33 698: 17(ivec4) Load 697 699: 17(ivec4) VectorShuffle 698 696 4 5 2 3 Store 697 699 700: 6(int) Load 8(invocation) 701: 40(ptr) AccessChain 31(data) 33 33 702: 17(ivec4) Load 701 703: 103(ivec3) VectorShuffle 702 702 0 1 2 704: 17(ivec4) Load 19(ballot) 705: 103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 703 704 706: 40(ptr) AccessChain 31(data) 700 33 707: 17(ivec4) Load 706 708: 17(ivec4) VectorShuffle 707 705 4 5 6 3 Store 706 708 709: 6(int) Load 8(invocation) 710: 40(ptr) AccessChain 31(data) 115 33 711: 17(ivec4) Load 710 712: 17(ivec4) Load 19(ballot) 713: 17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 711 712 714: 40(ptr) AccessChain 31(data) 709 33 Store 714 713 715: 6(int) Load 8(invocation) 716: 64(ptr) AccessChain 31(data) 34 63 35 717: 24(int) Load 716 718: 144(bool) SLessThan 717 34 719: 17(ivec4) Load 19(ballot) 720: 144(bool) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 718 719 721: 24(int) Select 720 63 34 722: 64(ptr) AccessChain 31(data) 715 63 35 Store 722 721 723: 6(int) Load 8(invocation) 724: 71(ptr) AccessChain 31(data) 63 63 725: 25(ivec4) Load 724 726: 70(ivec2) VectorShuffle 725 725 0 1 728: 152(bvec2) SLessThan 726 727 729: 17(ivec4) Load 19(ballot) 730: 152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 728 729 732: 70(ivec2) Select 730 731 727 733: 71(ptr) AccessChain 31(data) 723 63 734: 25(ivec4) Load 733 735: 25(ivec4) VectorShuffle 734 732 4 5 2 3 Store 733 735 736: 6(int) Load 8(invocation) 737: 71(ptr) AccessChain 31(data) 63 63 738: 25(ivec4) Load 737 739: 78(ivec3) VectorShuffle 738 738 0 1 2 741: 161(bvec3) SLessThan 739 740 742: 17(ivec4) Load 19(ballot) 743: 161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 741 742 745: 78(ivec3) Select 743 744 740 746: 71(ptr) AccessChain 31(data) 736 63 747: 25(ivec4) Load 746 748: 25(ivec4) VectorShuffle 747 745 4 5 6 3 Store 746 748 749: 6(int) Load 8(invocation) 750: 71(ptr) AccessChain 31(data) 63 63 751: 25(ivec4) Load 750 753: 169(bvec4) SLessThan 751 752 754: 17(ivec4) Load 19(ballot) 755: 169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 753 754 757: 25(ivec4) Select 755 756 752 758: 71(ptr) AccessChain 31(data) 749 63 Store 758 757 759: 6(int) Load 8(invocation) 760: 64(ptr) AccessChain 31(data) 34 63 35 761: 24(int) Load 760 762: 17(ivec4) Load 19(ballot) 763: 24(int) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 761 762 764: 64(ptr) AccessChain 31(data) 759 63 35 Store 764 763 765: 6(int) Load 8(invocation) 766: 71(ptr) AccessChain 31(data) 63 63 767: 25(ivec4) Load 766 768: 70(ivec2) VectorShuffle 767 767 0 1 769: 17(ivec4) Load 19(ballot) 770: 70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 768 769 771: 71(ptr) AccessChain 31(data) 765 63 772: 25(ivec4) Load 771 773: 25(ivec4) VectorShuffle 772 770 4 5 2 3 Store 771 773 774: 6(int) Load 8(invocation) 775: 71(ptr) AccessChain 31(data) 33 63 776: 25(ivec4) Load 775 777: 78(ivec3) VectorShuffle 776 776 0 1 2 778: 17(ivec4) Load 19(ballot) 779: 78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 777 778 780: 71(ptr) AccessChain 31(data) 774 63 781: 25(ivec4) Load 780 782: 25(ivec4) VectorShuffle 781 779 4 5 6 3 Store 780 782 783: 6(int) Load 8(invocation) 784: 71(ptr) AccessChain 31(data) 115 63 785: 25(ivec4) Load 784 786: 17(ivec4) Load 19(ballot) 787: 25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 785 786 788: 71(ptr) AccessChain 31(data) 783 63 Store 788 787 789: 6(int) Load 8(invocation) 790: 90(ptr) AccessChain 31(data) 34 33 35 791: 6(int) Load 790 792: 17(ivec4) Load 19(ballot) 793: 6(int) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 791 792 794: 90(ptr) AccessChain 31(data) 789 33 35 Store 794 793 795: 6(int) Load 8(invocation) 796: 40(ptr) AccessChain 31(data) 63 33 797: 17(ivec4) Load 796 798: 96(ivec2) VectorShuffle 797 797 0 1 799: 17(ivec4) Load 19(ballot) 800: 96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 798 799 801: 40(ptr) AccessChain 31(data) 795 33 802: 17(ivec4) Load 801 803: 17(ivec4) VectorShuffle 802 800 4 5 2 3 Store 801 803 804: 6(int) Load 8(invocation) 805: 40(ptr) AccessChain 31(data) 33 33 806: 17(ivec4) Load 805 807: 103(ivec3) VectorShuffle 806 806 0 1 2 808: 17(ivec4) Load 19(ballot) 809: 103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 807 808 810: 40(ptr) AccessChain 31(data) 804 33 811: 17(ivec4) Load 810 812: 17(ivec4) VectorShuffle 811 809 4 5 6 3 Store 810 812 813: 6(int) Load 8(invocation) 814: 40(ptr) AccessChain 31(data) 115 33 815: 17(ivec4) Load 814 816: 17(ivec4) Load 19(ballot) 817: 17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 815 816 818: 40(ptr) AccessChain 31(data) 813 33 Store 818 817 819: 6(int) Load 8(invocation) 820: 64(ptr) AccessChain 31(data) 34 63 35 821: 24(int) Load 820 822: 144(bool) SLessThan 821 34 823: 17(ivec4) Load 19(ballot) 824: 144(bool) GroupNonUniformLogicalOr 178 PartitionedReduceNV 822 823 825: 24(int) Select 824 63 34 826: 64(ptr) AccessChain 31(data) 819 63 35 Store 826 825 827: 6(int) Load 8(invocation) 828: 71(ptr) AccessChain 31(data) 63 63 829: 25(ivec4) Load 828 830: 70(ivec2) VectorShuffle 829 829 0 1 831: 152(bvec2) SLessThan 830 727 832: 17(ivec4) Load 19(ballot) 833: 152(bvec2) GroupNonUniformLogicalOr 178 PartitionedReduceNV 831 832 834: 70(ivec2) Select 833 731 727 835: 71(ptr) AccessChain 31(data) 827 63 836: 25(ivec4) Load 835 837: 25(ivec4) VectorShuffle 836 834 4 5 2 3 Store 835 837 838: 6(int) Load 8(invocation) 839: 71(ptr) AccessChain 31(data) 63 63 840: 25(ivec4) Load 839 841: 78(ivec3) VectorShuffle 840 840 0 1 2 842: 161(bvec3) SLessThan 841 740 843: 17(ivec4) Load 19(ballot) 844: 161(bvec3) GroupNonUniformLogicalOr 178 PartitionedReduceNV 842 843 845: 78(ivec3) Select 844 744 740 846: 71(ptr) AccessChain 31(data) 838 63 847: 25(ivec4) Load 846 848: 25(ivec4) VectorShuffle 847 845 4 5 6 3 Store 846 848 849: 6(int) Load 8(invocation) 850: 71(ptr) AccessChain 31(data) 63 63 851: 25(ivec4) Load 850 852: 169(bvec4) SLessThan 851 752 853: 17(ivec4) Load 19(ballot) 854: 169(bvec4) GroupNonUniformLogicalOr 178 PartitionedReduceNV 852 853 855: 25(ivec4) Select 854 756 752 856: 71(ptr) AccessChain 31(data) 849 63 Store 856 855 857: 6(int) Load 8(invocation) 858: 64(ptr) AccessChain 31(data) 34 63 35 859: 24(int) Load 858 860: 17(ivec4) Load 19(ballot) 861: 24(int) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 859 860 862: 64(ptr) AccessChain 31(data) 857 63 35 Store 862 861 863: 6(int) Load 8(invocation) 864: 71(ptr) AccessChain 31(data) 63 63 865: 25(ivec4) Load 864 866: 70(ivec2) VectorShuffle 865 865 0 1 867: 17(ivec4) Load 19(ballot) 868: 70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 866 867 869: 71(ptr) AccessChain 31(data) 863 63 870: 25(ivec4) Load 869 871: 25(ivec4) VectorShuffle 870 868 4 5 2 3 Store 869 871 872: 6(int) Load 8(invocation) 873: 71(ptr) AccessChain 31(data) 33 63 874: 25(ivec4) Load 873 875: 78(ivec3) VectorShuffle 874 874 0 1 2 876: 17(ivec4) Load 19(ballot) 877: 78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 875 876 878: 71(ptr) AccessChain 31(data) 872 63 879: 25(ivec4) Load 878 880: 25(ivec4) VectorShuffle 879 877 4 5 6 3 Store 878 880 881: 6(int) Load 8(invocation) 882: 71(ptr) AccessChain 31(data) 115 63 883: 25(ivec4) Load 882 884: 17(ivec4) Load 19(ballot) 885: 25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 883 884 886: 71(ptr) AccessChain 31(data) 881 63 Store 886 885 887: 6(int) Load 8(invocation) 888: 90(ptr) AccessChain 31(data) 34 33 35 889: 6(int) Load 888 890: 17(ivec4) Load 19(ballot) 891: 6(int) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 889 890 892: 90(ptr) AccessChain 31(data) 887 33 35 Store 892 891 893: 6(int) Load 8(invocation) 894: 40(ptr) AccessChain 31(data) 63 33 895: 17(ivec4) Load 894 896: 96(ivec2) VectorShuffle 895 895 0 1 897: 17(ivec4) Load 19(ballot) 898: 96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 896 897 899: 40(ptr) AccessChain 31(data) 893 33 900: 17(ivec4) Load 899 901: 17(ivec4) VectorShuffle 900 898 4 5 2 3 Store 899 901 902: 6(int) Load 8(invocation) 903: 40(ptr) AccessChain 31(data) 33 33 904: 17(ivec4) Load 903 905: 103(ivec3) VectorShuffle 904 904 0 1 2 906: 17(ivec4) Load 19(ballot) 907: 103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 905 906 908: 40(ptr) AccessChain 31(data) 902 33 909: 17(ivec4) Load 908 910: 17(ivec4) VectorShuffle 909 907 4 5 6 3 Store 908 910 911: 6(int) Load 8(invocation) 912: 40(ptr) AccessChain 31(data) 115 33 913: 17(ivec4) Load 912 914: 17(ivec4) Load 19(ballot) 915: 17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 913 914 916: 40(ptr) AccessChain 31(data) 911 33 Store 916 915 917: 6(int) Load 8(invocation) 918: 64(ptr) AccessChain 31(data) 34 63 35 919: 24(int) Load 918 920: 144(bool) SLessThan 919 34 921: 17(ivec4) Load 19(ballot) 922: 144(bool) GroupNonUniformLogicalXor 178 PartitionedReduceNV 920 921 923: 24(int) Select 922 63 34 924: 64(ptr) AccessChain 31(data) 917 63 35 Store 924 923 925: 6(int) Load 8(invocation) 926: 71(ptr) AccessChain 31(data) 63 63 927: 25(ivec4) Load 926 928: 70(ivec2) VectorShuffle 927 927 0 1 929: 152(bvec2) SLessThan 928 727 930: 17(ivec4) Load 19(ballot) 931: 152(bvec2) GroupNonUniformLogicalXor 178 PartitionedReduceNV 929 930 932: 70(ivec2) Select 931 731 727 933: 71(ptr) AccessChain 31(data) 925 63 934: 25(ivec4) Load 933 935: 25(ivec4) VectorShuffle 934 932 4 5 2 3 Store 933 935 936: 6(int) Load 8(invocation) 937: 71(ptr) AccessChain 31(data) 63 63 938: 25(ivec4) Load 937 939: 78(ivec3) VectorShuffle 938 938 0 1 2 940: 161(bvec3) SLessThan 939 740 941: 17(ivec4) Load 19(ballot) 942: 161(bvec3) GroupNonUniformLogicalXor 178 PartitionedReduceNV 940 941 943: 78(ivec3) Select 942 744 740 944: 71(ptr) AccessChain 31(data) 936 63 945: 25(ivec4) Load 944 946: 25(ivec4) VectorShuffle 945 943 4 5 6 3 Store 944 946 947: 6(int) Load 8(invocation) 948: 71(ptr) AccessChain 31(data) 63 63 949: 25(ivec4) Load 948 950: 169(bvec4) SLessThan 949 752 951: 17(ivec4) Load 19(ballot) 952: 169(bvec4) GroupNonUniformLogicalXor 178 PartitionedReduceNV 950 951 953: 25(ivec4) Select 952 756 752 954: 71(ptr) AccessChain 31(data) 947 63 Store 954 953 955: 6(int) Load 8(invocation) 956: 36(ptr) AccessChain 31(data) 34 34 35 957: 22(float) Load 956 958: 17(ivec4) Load 19(ballot) 959: 22(float) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 957 958 960: 36(ptr) AccessChain 31(data) 955 34 35 Store 960 959 961: 6(int) Load 8(invocation) 962: 44(ptr) AccessChain 31(data) 63 34 963: 23(fvec4) Load 962 964: 43(fvec2) VectorShuffle 963 963 0 1 965: 17(ivec4) Load 19(ballot) 966: 43(fvec2) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 964 965 967: 44(ptr) AccessChain 31(data) 961 34 968: 23(fvec4) Load 967 969: 23(fvec4) VectorShuffle 968 966 4 5 2 3 Store 967 969 970: 6(int) Load 8(invocation) 971: 44(ptr) AccessChain 31(data) 33 34 972: 23(fvec4) Load 971 973: 51(fvec3) VectorShuffle 972 972 0 1 2 974: 17(ivec4) Load 19(ballot) 975: 51(fvec3) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 973 974 976: 44(ptr) AccessChain 31(data) 970 34 977: 23(fvec4) Load 976 978: 23(fvec4) VectorShuffle 977 975 4 5 6 3 Store 976 978 979: 6(int) Load 8(invocation) 980: 44(ptr) AccessChain 31(data) 115 34 981: 23(fvec4) Load 980 982: 17(ivec4) Load 19(ballot) 983: 23(fvec4) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 981 982 984: 44(ptr) AccessChain 31(data) 979 34 Store 984 983 985: 6(int) Load 8(invocation) 986: 64(ptr) AccessChain 31(data) 34 63 35 987: 24(int) Load 986 988: 17(ivec4) Load 19(ballot) 989: 24(int) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 987 988 990: 64(ptr) AccessChain 31(data) 985 63 35 Store 990 989 991: 6(int) Load 8(invocation) 992: 71(ptr) AccessChain 31(data) 63 63 993: 25(ivec4) Load 992 994: 70(ivec2) VectorShuffle 993 993 0 1 995: 17(ivec4) Load 19(ballot) 996: 70(ivec2) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 994 995 997: 71(ptr) AccessChain 31(data) 991 63 998: 25(ivec4) Load 997 999: 25(ivec4) VectorShuffle 998 996 4 5 2 3 Store 997 999 1000: 6(int) Load 8(invocation) 1001: 71(ptr) AccessChain 31(data) 33 63 1002: 25(ivec4) Load 1001 1003: 78(ivec3) VectorShuffle 1002 1002 0 1 2 1004: 17(ivec4) Load 19(ballot) 1005: 78(ivec3) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1003 1004 1006: 71(ptr) AccessChain 31(data) 1000 63 1007: 25(ivec4) Load 1006 1008: 25(ivec4) VectorShuffle 1007 1005 4 5 6 3 Store 1006 1008 1009: 6(int) Load 8(invocation) 1010: 71(ptr) AccessChain 31(data) 115 63 1011: 25(ivec4) Load 1010 1012: 17(ivec4) Load 19(ballot) 1013: 25(ivec4) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1011 1012 1014: 71(ptr) AccessChain 31(data) 1009 63 Store 1014 1013 1015: 6(int) Load 8(invocation) 1016: 90(ptr) AccessChain 31(data) 34 33 35 1017: 6(int) Load 1016 1018: 17(ivec4) Load 19(ballot) 1019: 6(int) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1017 1018 1020: 90(ptr) AccessChain 31(data) 1015 33 35 Store 1020 1019 1021: 6(int) Load 8(invocation) 1022: 40(ptr) AccessChain 31(data) 63 33 1023: 17(ivec4) Load 1022 1024: 96(ivec2) VectorShuffle 1023 1023 0 1 1025: 17(ivec4) Load 19(ballot) 1026: 96(ivec2) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1024 1025 1027: 40(ptr) AccessChain 31(data) 1021 33 1028: 17(ivec4) Load 1027 1029: 17(ivec4) VectorShuffle 1028 1026 4 5 2 3 Store 1027 1029 1030: 6(int) Load 8(invocation) 1031: 40(ptr) AccessChain 31(data) 33 33 1032: 17(ivec4) Load 1031 1033: 103(ivec3) VectorShuffle 1032 1032 0 1 2 1034: 17(ivec4) Load 19(ballot) 1035: 103(ivec3) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1033 1034 1036: 40(ptr) AccessChain 31(data) 1030 33 1037: 17(ivec4) Load 1036 1038: 17(ivec4) VectorShuffle 1037 1035 4 5 6 3 Store 1036 1038 1039: 6(int) Load 8(invocation) 1040: 40(ptr) AccessChain 31(data) 115 33 1041: 17(ivec4) Load 1040 1042: 17(ivec4) Load 19(ballot) 1043: 17(ivec4) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1041 1042 1044: 40(ptr) AccessChain 31(data) 1039 33 Store 1044 1043 1045: 6(int) Load 8(invocation) 1046: 116(ptr) AccessChain 31(data) 34 115 35 1047:26(float64_t) Load 1046 1048: 17(ivec4) Load 19(ballot) 1049:26(float64_t) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1047 1048 1050: 116(ptr) AccessChain 31(data) 1045 115 35 Store 1050 1049 1051: 6(int) Load 8(invocation) 1052: 123(ptr) AccessChain 31(data) 63 115 1053: 27(f64vec4) Load 1052 1054:122(f64vec2) VectorShuffle 1053 1053 0 1 1055: 17(ivec4) Load 19(ballot) 1056:122(f64vec2) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1054 1055 1057: 123(ptr) AccessChain 31(data) 1051 115 1058: 27(f64vec4) Load 1057 1059: 27(f64vec4) VectorShuffle 1058 1056 4 5 2 3 Store 1057 1059 1060: 6(int) Load 8(invocation) 1061: 123(ptr) AccessChain 31(data) 33 115 1062: 27(f64vec4) Load 1061 1063:130(f64vec3) VectorShuffle 1062 1062 0 1 2 1064: 17(ivec4) Load 19(ballot) 1065:130(f64vec3) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1063 1064 1066: 123(ptr) AccessChain 31(data) 1060 115 1067: 27(f64vec4) Load 1066 1068: 27(f64vec4) VectorShuffle 1067 1065 4 5 6 3 Store 1066 1068 1069: 6(int) Load 8(invocation) 1070: 123(ptr) AccessChain 31(data) 115 115 1071: 27(f64vec4) Load 1070 1072: 17(ivec4) Load 19(ballot) 1073: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1071 1072 1074: 123(ptr) AccessChain 31(data) 1069 115 Store 1074 1073 1075: 6(int) Load 8(invocation) 1076: 36(ptr) AccessChain 31(data) 34 34 35 1077: 22(float) Load 1076 1078: 17(ivec4) Load 19(ballot) 1079: 22(float) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1077 1078 1080: 36(ptr) AccessChain 31(data) 1075 34 35 Store 1080 1079 1081: 6(int) Load 8(invocation) 1082: 44(ptr) AccessChain 31(data) 63 34 1083: 23(fvec4) Load 1082 1084: 43(fvec2) VectorShuffle 1083 1083 0 1 1085: 17(ivec4) Load 19(ballot) 1086: 43(fvec2) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1084 1085 1087: 44(ptr) AccessChain 31(data) 1081 34 1088: 23(fvec4) Load 1087 1089: 23(fvec4) VectorShuffle 1088 1086 4 5 2 3 Store 1087 1089 1090: 6(int) Load 8(invocation) 1091: 44(ptr) AccessChain 31(data) 33 34 1092: 23(fvec4) Load 1091 1093: 51(fvec3) VectorShuffle 1092 1092 0 1 2 1094: 17(ivec4) Load 19(ballot) 1095: 51(fvec3) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1093 1094 1096: 44(ptr) AccessChain 31(data) 1090 34 1097: 23(fvec4) Load 1096 1098: 23(fvec4) VectorShuffle 1097 1095 4 5 6 3 Store 1096 1098 1099: 6(int) Load 8(invocation) 1100: 44(ptr) AccessChain 31(data) 115 34 1101: 23(fvec4) Load 1100 1102: 17(ivec4) Load 19(ballot) 1103: 23(fvec4) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1101 1102 1104: 44(ptr) AccessChain 31(data) 1099 34 Store 1104 1103 1105: 6(int) Load 8(invocation) 1106: 64(ptr) AccessChain 31(data) 34 63 35 1107: 24(int) Load 1106 1108: 17(ivec4) Load 19(ballot) 1109: 24(int) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1107 1108 1110: 64(ptr) AccessChain 31(data) 1105 63 35 Store 1110 1109 1111: 6(int) Load 8(invocation) 1112: 71(ptr) AccessChain 31(data) 63 63 1113: 25(ivec4) Load 1112 1114: 70(ivec2) VectorShuffle 1113 1113 0 1 1115: 17(ivec4) Load 19(ballot) 1116: 70(ivec2) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1114 1115 1117: 71(ptr) AccessChain 31(data) 1111 63 1118: 25(ivec4) Load 1117 1119: 25(ivec4) VectorShuffle 1118 1116 4 5 2 3 Store 1117 1119 1120: 6(int) Load 8(invocation) 1121: 71(ptr) AccessChain 31(data) 33 63 1122: 25(ivec4) Load 1121 1123: 78(ivec3) VectorShuffle 1122 1122 0 1 2 1124: 17(ivec4) Load 19(ballot) 1125: 78(ivec3) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1123 1124 1126: 71(ptr) AccessChain 31(data) 1120 63 1127: 25(ivec4) Load 1126 1128: 25(ivec4) VectorShuffle 1127 1125 4 5 6 3 Store 1126 1128 1129: 6(int) Load 8(invocation) 1130: 71(ptr) AccessChain 31(data) 115 63 1131: 25(ivec4) Load 1130 1132: 17(ivec4) Load 19(ballot) 1133: 25(ivec4) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1131 1132 1134: 71(ptr) AccessChain 31(data) 1129 63 Store 1134 1133 1135: 6(int) Load 8(invocation) 1136: 90(ptr) AccessChain 31(data) 34 33 35 1137: 6(int) Load 1136 1138: 17(ivec4) Load 19(ballot) 1139: 6(int) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1137 1138 1140: 90(ptr) AccessChain 31(data) 1135 33 35 Store 1140 1139 1141: 6(int) Load 8(invocation) 1142: 40(ptr) AccessChain 31(data) 63 33 1143: 17(ivec4) Load 1142 1144: 96(ivec2) VectorShuffle 1143 1143 0 1 1145: 17(ivec4) Load 19(ballot) 1146: 96(ivec2) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1144 1145 1147: 40(ptr) AccessChain 31(data) 1141 33 1148: 17(ivec4) Load 1147 1149: 17(ivec4) VectorShuffle 1148 1146 4 5 2 3 Store 1147 1149 1150: 6(int) Load 8(invocation) 1151: 40(ptr) AccessChain 31(data) 33 33 1152: 17(ivec4) Load 1151 1153: 103(ivec3) VectorShuffle 1152 1152 0 1 2 1154: 17(ivec4) Load 19(ballot) 1155: 103(ivec3) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1153 1154 1156: 40(ptr) AccessChain 31(data) 1150 33 1157: 17(ivec4) Load 1156 1158: 17(ivec4) VectorShuffle 1157 1155 4 5 6 3 Store 1156 1158 1159: 6(int) Load 8(invocation) 1160: 40(ptr) AccessChain 31(data) 115 33 1161: 17(ivec4) Load 1160 1162: 17(ivec4) Load 19(ballot) 1163: 17(ivec4) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1161 1162 1164: 40(ptr) AccessChain 31(data) 1159 33 Store 1164 1163 1165: 6(int) Load 8(invocation) 1166: 116(ptr) AccessChain 31(data) 34 115 35 1167:26(float64_t) Load 1166 1168: 17(ivec4) Load 19(ballot) 1169:26(float64_t) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1167 1168 1170: 116(ptr) AccessChain 31(data) 1165 115 35 Store 1170 1169 1171: 6(int) Load 8(invocation) 1172: 123(ptr) AccessChain 31(data) 63 115 1173: 27(f64vec4) Load 1172 1174:122(f64vec2) VectorShuffle 1173 1173 0 1 1175: 17(ivec4) Load 19(ballot) 1176:122(f64vec2) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1174 1175 1177: 123(ptr) AccessChain 31(data) 1171 115 1178: 27(f64vec4) Load 1177 1179: 27(f64vec4) VectorShuffle 1178 1176 4 5 2 3 Store 1177 1179 1180: 6(int) Load 8(invocation) 1181: 123(ptr) AccessChain 31(data) 33 115 1182: 27(f64vec4) Load 1181 1183:130(f64vec3) VectorShuffle 1182 1182 0 1 2 1184: 17(ivec4) Load 19(ballot) 1185:130(f64vec3) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1183 1184 1186: 123(ptr) AccessChain 31(data) 1180 115 1187: 27(f64vec4) Load 1186 1188: 27(f64vec4) VectorShuffle 1187 1185 4 5 6 3 Store 1186 1188 1189: 6(int) Load 8(invocation) 1190: 123(ptr) AccessChain 31(data) 115 115 1191: 27(f64vec4) Load 1190 1192: 17(ivec4) Load 19(ballot) 1193: 27(f64vec4) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1191 1192 1194: 123(ptr) AccessChain 31(data) 1189 115 Store 1194 1193 1195: 6(int) Load 8(invocation) 1196: 36(ptr) AccessChain 31(data) 34 34 35 1197: 22(float) Load 1196 1198: 17(ivec4) Load 19(ballot) 1199: 22(float) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1197 1198 1200: 36(ptr) AccessChain 31(data) 1195 34 35 Store 1200 1199 1201: 6(int) Load 8(invocation) 1202: 44(ptr) AccessChain 31(data) 63 34 1203: 23(fvec4) Load 1202 1204: 43(fvec2) VectorShuffle 1203 1203 0 1 1205: 17(ivec4) Load 19(ballot) 1206: 43(fvec2) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1204 1205 1207: 44(ptr) AccessChain 31(data) 1201 34 1208: 23(fvec4) Load 1207 1209: 23(fvec4) VectorShuffle 1208 1206 4 5 2 3 Store 1207 1209 1210: 6(int) Load 8(invocation) 1211: 44(ptr) AccessChain 31(data) 33 34 1212: 23(fvec4) Load 1211 1213: 51(fvec3) VectorShuffle 1212 1212 0 1 2 1214: 17(ivec4) Load 19(ballot) 1215: 51(fvec3) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1213 1214 1216: 44(ptr) AccessChain 31(data) 1210 34 1217: 23(fvec4) Load 1216 1218: 23(fvec4) VectorShuffle 1217 1215 4 5 6 3 Store 1216 1218 1219: 6(int) Load 8(invocation) 1220: 44(ptr) AccessChain 31(data) 115 34 1221: 23(fvec4) Load 1220 1222: 17(ivec4) Load 19(ballot) 1223: 23(fvec4) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1221 1222 1224: 44(ptr) AccessChain 31(data) 1219 34 Store 1224 1223 1225: 6(int) Load 8(invocation) 1226: 64(ptr) AccessChain 31(data) 34 63 35 1227: 24(int) Load 1226 1228: 17(ivec4) Load 19(ballot) 1229: 24(int) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1227 1228 1230: 64(ptr) AccessChain 31(data) 1225 63 35 Store 1230 1229 1231: 6(int) Load 8(invocation) 1232: 71(ptr) AccessChain 31(data) 63 63 1233: 25(ivec4) Load 1232 1234: 70(ivec2) VectorShuffle 1233 1233 0 1 1235: 17(ivec4) Load 19(ballot) 1236: 70(ivec2) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1234 1235 1237: 71(ptr) AccessChain 31(data) 1231 63 1238: 25(ivec4) Load 1237 1239: 25(ivec4) VectorShuffle 1238 1236 4 5 2 3 Store 1237 1239 1240: 6(int) Load 8(invocation) 1241: 71(ptr) AccessChain 31(data) 33 63 1242: 25(ivec4) Load 1241 1243: 78(ivec3) VectorShuffle 1242 1242 0 1 2 1244: 17(ivec4) Load 19(ballot) 1245: 78(ivec3) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1243 1244 1246: 71(ptr) AccessChain 31(data) 1240 63 1247: 25(ivec4) Load 1246 1248: 25(ivec4) VectorShuffle 1247 1245 4 5 6 3 Store 1246 1248 1249: 6(int) Load 8(invocation) 1250: 71(ptr) AccessChain 31(data) 115 63 1251: 25(ivec4) Load 1250 1252: 17(ivec4) Load 19(ballot) 1253: 25(ivec4) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1251 1252 1254: 71(ptr) AccessChain 31(data) 1249 63 Store 1254 1253 1255: 6(int) Load 8(invocation) 1256: 90(ptr) AccessChain 31(data) 34 33 35 1257: 6(int) Load 1256 1258: 17(ivec4) Load 19(ballot) 1259: 6(int) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1257 1258 1260: 90(ptr) AccessChain 31(data) 1255 33 35 Store 1260 1259 1261: 6(int) Load 8(invocation) 1262: 40(ptr) AccessChain 31(data) 63 33 1263: 17(ivec4) Load 1262 1264: 96(ivec2) VectorShuffle 1263 1263 0 1 1265: 17(ivec4) Load 19(ballot) 1266: 96(ivec2) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1264 1265 1267: 40(ptr) AccessChain 31(data) 1261 33 1268: 17(ivec4) Load 1267 1269: 17(ivec4) VectorShuffle 1268 1266 4 5 2 3 Store 1267 1269 1270: 6(int) Load 8(invocation) 1271: 40(ptr) AccessChain 31(data) 33 33 1272: 17(ivec4) Load 1271 1273: 103(ivec3) VectorShuffle 1272 1272 0 1 2 1274: 17(ivec4) Load 19(ballot) 1275: 103(ivec3) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1273 1274 1276: 40(ptr) AccessChain 31(data) 1270 33 1277: 17(ivec4) Load 1276 1278: 17(ivec4) VectorShuffle 1277 1275 4 5 6 3 Store 1276 1278 1279: 6(int) Load 8(invocation) 1280: 40(ptr) AccessChain 31(data) 115 33 1281: 17(ivec4) Load 1280 1282: 17(ivec4) Load 19(ballot) 1283: 17(ivec4) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1281 1282 1284: 40(ptr) AccessChain 31(data) 1279 33 Store 1284 1283 1285: 6(int) Load 8(invocation) 1286: 116(ptr) AccessChain 31(data) 34 115 35 1287:26(float64_t) Load 1286 1288: 17(ivec4) Load 19(ballot) 1289:26(float64_t) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1287 1288 1290: 116(ptr) AccessChain 31(data) 1285 115 35 Store 1290 1289 1291: 6(int) Load 8(invocation) 1292: 123(ptr) AccessChain 31(data) 63 115 1293: 27(f64vec4) Load 1292 1294:122(f64vec2) VectorShuffle 1293 1293 0 1 1295: 17(ivec4) Load 19(ballot) 1296:122(f64vec2) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1294 1295 1297: 123(ptr) AccessChain 31(data) 1291 115 1298: 27(f64vec4) Load 1297 1299: 27(f64vec4) VectorShuffle 1298 1296 4 5 2 3 Store 1297 1299 1300: 6(int) Load 8(invocation) 1301: 123(ptr) AccessChain 31(data) 33 115 1302: 27(f64vec4) Load 1301 1303:130(f64vec3) VectorShuffle 1302 1302 0 1 2 1304: 17(ivec4) Load 19(ballot) 1305:130(f64vec3) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1303 1304 1306: 123(ptr) AccessChain 31(data) 1300 115 1307: 27(f64vec4) Load 1306 1308: 27(f64vec4) VectorShuffle 1307 1305 4 5 6 3 Store 1306 1308 1309: 6(int) Load 8(invocation) 1310: 123(ptr) AccessChain 31(data) 115 115 1311: 27(f64vec4) Load 1310 1312: 17(ivec4) Load 19(ballot) 1313: 27(f64vec4) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1311 1312 1314: 123(ptr) AccessChain 31(data) 1309 115 Store 1314 1313 1315: 6(int) Load 8(invocation) 1316: 36(ptr) AccessChain 31(data) 34 34 35 1317: 22(float) Load 1316 1318: 17(ivec4) Load 19(ballot) 1319: 22(float) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1317 1318 1320: 36(ptr) AccessChain 31(data) 1315 34 35 Store 1320 1319 1321: 6(int) Load 8(invocation) 1322: 44(ptr) AccessChain 31(data) 63 34 1323: 23(fvec4) Load 1322 1324: 43(fvec2) VectorShuffle 1323 1323 0 1 1325: 17(ivec4) Load 19(ballot) 1326: 43(fvec2) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1324 1325 1327: 44(ptr) AccessChain 31(data) 1321 34 1328: 23(fvec4) Load 1327 1329: 23(fvec4) VectorShuffle 1328 1326 4 5 2 3 Store 1327 1329 1330: 6(int) Load 8(invocation) 1331: 44(ptr) AccessChain 31(data) 33 34 1332: 23(fvec4) Load 1331 1333: 51(fvec3) VectorShuffle 1332 1332 0 1 2 1334: 17(ivec4) Load 19(ballot) 1335: 51(fvec3) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1333 1334 1336: 44(ptr) AccessChain 31(data) 1330 34 1337: 23(fvec4) Load 1336 1338: 23(fvec4) VectorShuffle 1337 1335 4 5 6 3 Store 1336 1338 1339: 6(int) Load 8(invocation) 1340: 44(ptr) AccessChain 31(data) 115 34 1341: 23(fvec4) Load 1340 1342: 17(ivec4) Load 19(ballot) 1343: 23(fvec4) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1341 1342 1344: 44(ptr) AccessChain 31(data) 1339 34 Store 1344 1343 1345: 6(int) Load 8(invocation) 1346: 64(ptr) AccessChain 31(data) 34 63 35 1347: 24(int) Load 1346 1348: 17(ivec4) Load 19(ballot) 1349: 24(int) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1347 1348 1350: 64(ptr) AccessChain 31(data) 1345 63 35 Store 1350 1349 1351: 6(int) Load 8(invocation) 1352: 71(ptr) AccessChain 31(data) 63 63 1353: 25(ivec4) Load 1352 1354: 70(ivec2) VectorShuffle 1353 1353 0 1 1355: 17(ivec4) Load 19(ballot) 1356: 70(ivec2) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1354 1355 1357: 71(ptr) AccessChain 31(data) 1351 63 1358: 25(ivec4) Load 1357 1359: 25(ivec4) VectorShuffle 1358 1356 4 5 2 3 Store 1357 1359 1360: 6(int) Load 8(invocation) 1361: 71(ptr) AccessChain 31(data) 33 63 1362: 25(ivec4) Load 1361 1363: 78(ivec3) VectorShuffle 1362 1362 0 1 2 1364: 17(ivec4) Load 19(ballot) 1365: 78(ivec3) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1363 1364 1366: 71(ptr) AccessChain 31(data) 1360 63 1367: 25(ivec4) Load 1366 1368: 25(ivec4) VectorShuffle 1367 1365 4 5 6 3 Store 1366 1368 1369: 6(int) Load 8(invocation) 1370: 71(ptr) AccessChain 31(data) 115 63 1371: 25(ivec4) Load 1370 1372: 17(ivec4) Load 19(ballot) 1373: 25(ivec4) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1371 1372 1374: 71(ptr) AccessChain 31(data) 1369 63 Store 1374 1373 1375: 6(int) Load 8(invocation) 1376: 90(ptr) AccessChain 31(data) 34 33 35 1377: 6(int) Load 1376 1378: 17(ivec4) Load 19(ballot) 1379: 6(int) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1377 1378 1380: 90(ptr) AccessChain 31(data) 1375 33 35 Store 1380 1379 1381: 6(int) Load 8(invocation) 1382: 40(ptr) AccessChain 31(data) 63 33 1383: 17(ivec4) Load 1382 1384: 96(ivec2) VectorShuffle 1383 1383 0 1 1385: 17(ivec4) Load 19(ballot) 1386: 96(ivec2) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1384 1385 1387: 40(ptr) AccessChain 31(data) 1381 33 1388: 17(ivec4) Load 1387 1389: 17(ivec4) VectorShuffle 1388 1386 4 5 2 3 Store 1387 1389 1390: 6(int) Load 8(invocation) 1391: 40(ptr) AccessChain 31(data) 33 33 1392: 17(ivec4) Load 1391 1393: 103(ivec3) VectorShuffle 1392 1392 0 1 2 1394: 17(ivec4) Load 19(ballot) 1395: 103(ivec3) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1393 1394 1396: 40(ptr) AccessChain 31(data) 1390 33 1397: 17(ivec4) Load 1396 1398: 17(ivec4) VectorShuffle 1397 1395 4 5 6 3 Store 1396 1398 1399: 6(int) Load 8(invocation) 1400: 40(ptr) AccessChain 31(data) 115 33 1401: 17(ivec4) Load 1400 1402: 17(ivec4) Load 19(ballot) 1403: 17(ivec4) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1401 1402 1404: 40(ptr) AccessChain 31(data) 1399 33 Store 1404 1403 1405: 6(int) Load 8(invocation) 1406: 116(ptr) AccessChain 31(data) 34 115 35 1407:26(float64_t) Load 1406 1408: 17(ivec4) Load 19(ballot) 1409:26(float64_t) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1407 1408 1410: 116(ptr) AccessChain 31(data) 1405 115 35 Store 1410 1409 1411: 6(int) Load 8(invocation) 1412: 123(ptr) AccessChain 31(data) 63 115 1413: 27(f64vec4) Load 1412 1414:122(f64vec2) VectorShuffle 1413 1413 0 1 1415: 17(ivec4) Load 19(ballot) 1416:122(f64vec2) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1414 1415 1417: 123(ptr) AccessChain 31(data) 1411 115 1418: 27(f64vec4) Load 1417 1419: 27(f64vec4) VectorShuffle 1418 1416 4 5 2 3 Store 1417 1419 1420: 6(int) Load 8(invocation) 1421: 123(ptr) AccessChain 31(data) 33 115 1422: 27(f64vec4) Load 1421 1423:130(f64vec3) VectorShuffle 1422 1422 0 1 2 1424: 17(ivec4) Load 19(ballot) 1425:130(f64vec3) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1423 1424 1426: 123(ptr) AccessChain 31(data) 1420 115 1427: 27(f64vec4) Load 1426 1428: 27(f64vec4) VectorShuffle 1427 1425 4 5 6 3 Store 1426 1428 1429: 6(int) Load 8(invocation) 1430: 123(ptr) AccessChain 31(data) 115 115 1431: 27(f64vec4) Load 1430 1432: 17(ivec4) Load 19(ballot) 1433: 27(f64vec4) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1431 1432 1434: 123(ptr) AccessChain 31(data) 1429 115 Store 1434 1433 1435: 6(int) Load 8(invocation) 1436: 64(ptr) AccessChain 31(data) 34 63 35 1437: 24(int) Load 1436 1438: 17(ivec4) Load 19(ballot) 1439: 24(int) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1437 1438 1440: 64(ptr) AccessChain 31(data) 1435 63 35 Store 1440 1439 1441: 6(int) Load 8(invocation) 1442: 71(ptr) AccessChain 31(data) 63 63 1443: 25(ivec4) Load 1442 1444: 70(ivec2) VectorShuffle 1443 1443 0 1 1445: 17(ivec4) Load 19(ballot) 1446: 70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1444 1445 1447: 71(ptr) AccessChain 31(data) 1441 63 1448: 25(ivec4) Load 1447 1449: 25(ivec4) VectorShuffle 1448 1446 4 5 2 3 Store 1447 1449 1450: 6(int) Load 8(invocation) 1451: 71(ptr) AccessChain 31(data) 33 63 1452: 25(ivec4) Load 1451 1453: 78(ivec3) VectorShuffle 1452 1452 0 1 2 1454: 17(ivec4) Load 19(ballot) 1455: 78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1453 1454 1456: 71(ptr) AccessChain 31(data) 1450 63 1457: 25(ivec4) Load 1456 1458: 25(ivec4) VectorShuffle 1457 1455 4 5 6 3 Store 1456 1458 1459: 6(int) Load 8(invocation) 1460: 71(ptr) AccessChain 31(data) 115 63 1461: 25(ivec4) Load 1460 1462: 17(ivec4) Load 19(ballot) 1463: 25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1461 1462 1464: 71(ptr) AccessChain 31(data) 1459 63 Store 1464 1463 1465: 6(int) Load 8(invocation) 1466: 90(ptr) AccessChain 31(data) 34 33 35 1467: 6(int) Load 1466 1468: 17(ivec4) Load 19(ballot) 1469: 6(int) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1467 1468 1470: 90(ptr) AccessChain 31(data) 1465 33 35 Store 1470 1469 1471: 6(int) Load 8(invocation) 1472: 40(ptr) AccessChain 31(data) 63 33 1473: 17(ivec4) Load 1472 1474: 96(ivec2) VectorShuffle 1473 1473 0 1 1475: 17(ivec4) Load 19(ballot) 1476: 96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1474 1475 1477: 40(ptr) AccessChain 31(data) 1471 33 1478: 17(ivec4) Load 1477 1479: 17(ivec4) VectorShuffle 1478 1476 4 5 2 3 Store 1477 1479 1480: 6(int) Load 8(invocation) 1481: 40(ptr) AccessChain 31(data) 33 33 1482: 17(ivec4) Load 1481 1483: 103(ivec3) VectorShuffle 1482 1482 0 1 2 1484: 17(ivec4) Load 19(ballot) 1485: 103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1483 1484 1486: 40(ptr) AccessChain 31(data) 1480 33 1487: 17(ivec4) Load 1486 1488: 17(ivec4) VectorShuffle 1487 1485 4 5 6 3 Store 1486 1488 1489: 6(int) Load 8(invocation) 1490: 40(ptr) AccessChain 31(data) 115 33 1491: 17(ivec4) Load 1490 1492: 17(ivec4) Load 19(ballot) 1493: 17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1491 1492 1494: 40(ptr) AccessChain 31(data) 1489 33 Store 1494 1493 1495: 6(int) Load 8(invocation) 1496: 64(ptr) AccessChain 31(data) 34 63 35 1497: 24(int) Load 1496 1498: 144(bool) SLessThan 1497 34 1499: 17(ivec4) Load 19(ballot) 1500: 144(bool) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1498 1499 1501: 24(int) Select 1500 63 34 1502: 64(ptr) AccessChain 31(data) 1495 63 35 Store 1502 1501 1503: 6(int) Load 8(invocation) 1504: 71(ptr) AccessChain 31(data) 63 63 1505: 25(ivec4) Load 1504 1506: 70(ivec2) VectorShuffle 1505 1505 0 1 1507: 152(bvec2) SLessThan 1506 727 1508: 17(ivec4) Load 19(ballot) 1509: 152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1507 1508 1510: 70(ivec2) Select 1509 731 727 1511: 71(ptr) AccessChain 31(data) 1503 63 1512: 25(ivec4) Load 1511 1513: 25(ivec4) VectorShuffle 1512 1510 4 5 2 3 Store 1511 1513 1514: 6(int) Load 8(invocation) 1515: 71(ptr) AccessChain 31(data) 63 63 1516: 25(ivec4) Load 1515 1517: 78(ivec3) VectorShuffle 1516 1516 0 1 2 1518: 161(bvec3) SLessThan 1517 740 1519: 17(ivec4) Load 19(ballot) 1520: 161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1518 1519 1521: 78(ivec3) Select 1520 744 740 1522: 71(ptr) AccessChain 31(data) 1514 63 1523: 25(ivec4) Load 1522 1524: 25(ivec4) VectorShuffle 1523 1521 4 5 6 3 Store 1522 1524 1525: 6(int) Load 8(invocation) 1526: 71(ptr) AccessChain 31(data) 63 63 1527: 25(ivec4) Load 1526 1528: 169(bvec4) SLessThan 1527 752 1529: 17(ivec4) Load 19(ballot) 1530: 169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1528 1529 1531: 25(ivec4) Select 1530 756 752 1532: 71(ptr) AccessChain 31(data) 1525 63 Store 1532 1531 1533: 6(int) Load 8(invocation) 1534: 64(ptr) AccessChain 31(data) 34 63 35 1535: 24(int) Load 1534 1536: 17(ivec4) Load 19(ballot) 1537: 24(int) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1535 1536 1538: 64(ptr) AccessChain 31(data) 1533 63 35 Store 1538 1537 1539: 6(int) Load 8(invocation) 1540: 71(ptr) AccessChain 31(data) 63 63 1541: 25(ivec4) Load 1540 1542: 70(ivec2) VectorShuffle 1541 1541 0 1 1543: 17(ivec4) Load 19(ballot) 1544: 70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1542 1543 1545: 71(ptr) AccessChain 31(data) 1539 63 1546: 25(ivec4) Load 1545 1547: 25(ivec4) VectorShuffle 1546 1544 4 5 2 3 Store 1545 1547 1548: 6(int) Load 8(invocation) 1549: 71(ptr) AccessChain 31(data) 33 63 1550: 25(ivec4) Load 1549 1551: 78(ivec3) VectorShuffle 1550 1550 0 1 2 1552: 17(ivec4) Load 19(ballot) 1553: 78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1551 1552 1554: 71(ptr) AccessChain 31(data) 1548 63 1555: 25(ivec4) Load 1554 1556: 25(ivec4) VectorShuffle 1555 1553 4 5 6 3 Store 1554 1556 1557: 6(int) Load 8(invocation) 1558: 71(ptr) AccessChain 31(data) 115 63 1559: 25(ivec4) Load 1558 1560: 17(ivec4) Load 19(ballot) 1561: 25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1559 1560 1562: 71(ptr) AccessChain 31(data) 1557 63 Store 1562 1561 1563: 6(int) Load 8(invocation) 1564: 90(ptr) AccessChain 31(data) 34 33 35 1565: 6(int) Load 1564 1566: 17(ivec4) Load 19(ballot) 1567: 6(int) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1565 1566 1568: 90(ptr) AccessChain 31(data) 1563 33 35 Store 1568 1567 1569: 6(int) Load 8(invocation) 1570: 40(ptr) AccessChain 31(data) 63 33 1571: 17(ivec4) Load 1570 1572: 96(ivec2) VectorShuffle 1571 1571 0 1 1573: 17(ivec4) Load 19(ballot) 1574: 96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1572 1573 1575: 40(ptr) AccessChain 31(data) 1569 33 1576: 17(ivec4) Load 1575 1577: 17(ivec4) VectorShuffle 1576 1574 4 5 2 3 Store 1575 1577 1578: 6(int) Load 8(invocation) 1579: 40(ptr) AccessChain 31(data) 33 33 1580: 17(ivec4) Load 1579 1581: 103(ivec3) VectorShuffle 1580 1580 0 1 2 1582: 17(ivec4) Load 19(ballot) 1583: 103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1581 1582 1584: 40(ptr) AccessChain 31(data) 1578 33 1585: 17(ivec4) Load 1584 1586: 17(ivec4) VectorShuffle 1585 1583 4 5 6 3 Store 1584 1586 1587: 6(int) Load 8(invocation) 1588: 40(ptr) AccessChain 31(data) 115 33 1589: 17(ivec4) Load 1588 1590: 17(ivec4) Load 19(ballot) 1591: 17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1589 1590 1592: 40(ptr) AccessChain 31(data) 1587 33 Store 1592 1591 1593: 6(int) Load 8(invocation) 1594: 64(ptr) AccessChain 31(data) 34 63 35 1595: 24(int) Load 1594 1596: 144(bool) SLessThan 1595 34 1597: 17(ivec4) Load 19(ballot) 1598: 144(bool) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1596 1597 1599: 24(int) Select 1598 63 34 1600: 64(ptr) AccessChain 31(data) 1593 63 35 Store 1600 1599 1601: 6(int) Load 8(invocation) 1602: 71(ptr) AccessChain 31(data) 63 63 1603: 25(ivec4) Load 1602 1604: 70(ivec2) VectorShuffle 1603 1603 0 1 1605: 152(bvec2) SLessThan 1604 727 1606: 17(ivec4) Load 19(ballot) 1607: 152(bvec2) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1605 1606 1608: 70(ivec2) Select 1607 731 727 1609: 71(ptr) AccessChain 31(data) 1601 63 1610: 25(ivec4) Load 1609 1611: 25(ivec4) VectorShuffle 1610 1608 4 5 2 3 Store 1609 1611 1612: 6(int) Load 8(invocation) 1613: 71(ptr) AccessChain 31(data) 63 63 1614: 25(ivec4) Load 1613 1615: 78(ivec3) VectorShuffle 1614 1614 0 1 2 1616: 161(bvec3) SLessThan 1615 740 1617: 17(ivec4) Load 19(ballot) 1618: 161(bvec3) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1616 1617 1619: 78(ivec3) Select 1618 744 740 1620: 71(ptr) AccessChain 31(data) 1612 63 1621: 25(ivec4) Load 1620 1622: 25(ivec4) VectorShuffle 1621 1619 4 5 6 3 Store 1620 1622 1623: 6(int) Load 8(invocation) 1624: 71(ptr) AccessChain 31(data) 63 63 1625: 25(ivec4) Load 1624 1626: 169(bvec4) SLessThan 1625 752 1627: 17(ivec4) Load 19(ballot) 1628: 169(bvec4) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1626 1627 1629: 25(ivec4) Select 1628 756 752 1630: 71(ptr) AccessChain 31(data) 1623 63 Store 1630 1629 1631: 6(int) Load 8(invocation) 1632: 64(ptr) AccessChain 31(data) 34 63 35 1633: 24(int) Load 1632 1634: 17(ivec4) Load 19(ballot) 1635: 24(int) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1633 1634 1636: 64(ptr) AccessChain 31(data) 1631 63 35 Store 1636 1635 1637: 6(int) Load 8(invocation) 1638: 71(ptr) AccessChain 31(data) 63 63 1639: 25(ivec4) Load 1638 1640: 70(ivec2) VectorShuffle 1639 1639 0 1 1641: 17(ivec4) Load 19(ballot) 1642: 70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1640 1641 1643: 71(ptr) AccessChain 31(data) 1637 63 1644: 25(ivec4) Load 1643 1645: 25(ivec4) VectorShuffle 1644 1642 4 5 2 3 Store 1643 1645 1646: 6(int) Load 8(invocation) 1647: 71(ptr) AccessChain 31(data) 33 63 1648: 25(ivec4) Load 1647 1649: 78(ivec3) VectorShuffle 1648 1648 0 1 2 1650: 17(ivec4) Load 19(ballot) 1651: 78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1649 1650 1652: 71(ptr) AccessChain 31(data) 1646 63 1653: 25(ivec4) Load 1652 1654: 25(ivec4) VectorShuffle 1653 1651 4 5 6 3 Store 1652 1654 1655: 6(int) Load 8(invocation) 1656: 71(ptr) AccessChain 31(data) 115 63 1657: 25(ivec4) Load 1656 1658: 17(ivec4) Load 19(ballot) 1659: 25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1657 1658 1660: 71(ptr) AccessChain 31(data) 1655 63 Store 1660 1659 1661: 6(int) Load 8(invocation) 1662: 90(ptr) AccessChain 31(data) 34 33 35 1663: 6(int) Load 1662 1664: 17(ivec4) Load 19(ballot) 1665: 6(int) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1663 1664 1666: 90(ptr) AccessChain 31(data) 1661 33 35 Store 1666 1665 1667: 6(int) Load 8(invocation) 1668: 40(ptr) AccessChain 31(data) 63 33 1669: 17(ivec4) Load 1668 1670: 96(ivec2) VectorShuffle 1669 1669 0 1 1671: 17(ivec4) Load 19(ballot) 1672: 96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1670 1671 1673: 40(ptr) AccessChain 31(data) 1667 33 1674: 17(ivec4) Load 1673 1675: 17(ivec4) VectorShuffle 1674 1672 4 5 2 3 Store 1673 1675 1676: 6(int) Load 8(invocation) 1677: 40(ptr) AccessChain 31(data) 33 33 1678: 17(ivec4) Load 1677 1679: 103(ivec3) VectorShuffle 1678 1678 0 1 2 1680: 17(ivec4) Load 19(ballot) 1681: 103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1679 1680 1682: 40(ptr) AccessChain 31(data) 1676 33 1683: 17(ivec4) Load 1682 1684: 17(ivec4) VectorShuffle 1683 1681 4 5 6 3 Store 1682 1684 1685: 6(int) Load 8(invocation) 1686: 40(ptr) AccessChain 31(data) 115 33 1687: 17(ivec4) Load 1686 1688: 17(ivec4) Load 19(ballot) 1689: 17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1687 1688 1690: 40(ptr) AccessChain 31(data) 1685 33 Store 1690 1689 1691: 6(int) Load 8(invocation) 1692: 64(ptr) AccessChain 31(data) 34 63 35 1693: 24(int) Load 1692 1694: 144(bool) SLessThan 1693 34 1695: 17(ivec4) Load 19(ballot) 1696: 144(bool) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1694 1695 1697: 24(int) Select 1696 63 34 1698: 64(ptr) AccessChain 31(data) 1691 63 35 Store 1698 1697 1699: 6(int) Load 8(invocation) 1700: 71(ptr) AccessChain 31(data) 63 63 1701: 25(ivec4) Load 1700 1702: 70(ivec2) VectorShuffle 1701 1701 0 1 1703: 152(bvec2) SLessThan 1702 727 1704: 17(ivec4) Load 19(ballot) 1705: 152(bvec2) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1703 1704 1706: 70(ivec2) Select 1705 731 727 1707: 71(ptr) AccessChain 31(data) 1699 63 1708: 25(ivec4) Load 1707 1709: 25(ivec4) VectorShuffle 1708 1706 4 5 2 3 Store 1707 1709 1710: 6(int) Load 8(invocation) 1711: 71(ptr) AccessChain 31(data) 63 63 1712: 25(ivec4) Load 1711 1713: 78(ivec3) VectorShuffle 1712 1712 0 1 2 1714: 161(bvec3) SLessThan 1713 740 1715: 17(ivec4) Load 19(ballot) 1716: 161(bvec3) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1714 1715 1717: 78(ivec3) Select 1716 744 740 1718: 71(ptr) AccessChain 31(data) 1710 63 1719: 25(ivec4) Load 1718 1720: 25(ivec4) VectorShuffle 1719 1717 4 5 6 3 Store 1718 1720 1721: 6(int) Load 8(invocation) 1722: 71(ptr) AccessChain 31(data) 63 63 1723: 25(ivec4) Load 1722 1724: 169(bvec4) SLessThan 1723 752 1725: 17(ivec4) Load 19(ballot) 1726: 169(bvec4) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1724 1725 1727: 25(ivec4) Select 1726 756 752 1728: 71(ptr) AccessChain 31(data) 1721 63 Store 1728 1727 1729: 6(int) Load 8(invocation) 1730: 36(ptr) AccessChain 31(data) 34 34 35 1731: 22(float) Load 1730 1732: 17(ivec4) Load 19(ballot) 1733: 22(float) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1731 1732 1734: 36(ptr) AccessChain 31(data) 1729 34 35 Store 1734 1733 1735: 6(int) Load 8(invocation) 1736: 44(ptr) AccessChain 31(data) 63 34 1737: 23(fvec4) Load 1736 1738: 43(fvec2) VectorShuffle 1737 1737 0 1 1739: 17(ivec4) Load 19(ballot) 1740: 43(fvec2) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1738 1739 1741: 44(ptr) AccessChain 31(data) 1735 34 1742: 23(fvec4) Load 1741 1743: 23(fvec4) VectorShuffle 1742 1740 4 5 2 3 Store 1741 1743 1744: 6(int) Load 8(invocation) 1745: 44(ptr) AccessChain 31(data) 33 34 1746: 23(fvec4) Load 1745 1747: 51(fvec3) VectorShuffle 1746 1746 0 1 2 1748: 17(ivec4) Load 19(ballot) 1749: 51(fvec3) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1747 1748 1750: 44(ptr) AccessChain 31(data) 1744 34 1751: 23(fvec4) Load 1750 1752: 23(fvec4) VectorShuffle 1751 1749 4 5 6 3 Store 1750 1752 1753: 6(int) Load 8(invocation) 1754: 44(ptr) AccessChain 31(data) 115 34 1755: 23(fvec4) Load 1754 1756: 17(ivec4) Load 19(ballot) 1757: 23(fvec4) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1755 1756 1758: 44(ptr) AccessChain 31(data) 1753 34 Store 1758 1757 1759: 6(int) Load 8(invocation) 1760: 64(ptr) AccessChain 31(data) 34 63 35 1761: 24(int) Load 1760 1762: 17(ivec4) Load 19(ballot) 1763: 24(int) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1761 1762 1764: 64(ptr) AccessChain 31(data) 1759 63 35 Store 1764 1763 1765: 6(int) Load 8(invocation) 1766: 71(ptr) AccessChain 31(data) 63 63 1767: 25(ivec4) Load 1766 1768: 70(ivec2) VectorShuffle 1767 1767 0 1 1769: 17(ivec4) Load 19(ballot) 1770: 70(ivec2) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1768 1769 1771: 71(ptr) AccessChain 31(data) 1765 63 1772: 25(ivec4) Load 1771 1773: 25(ivec4) VectorShuffle 1772 1770 4 5 2 3 Store 1771 1773 1774: 6(int) Load 8(invocation) 1775: 71(ptr) AccessChain 31(data) 33 63 1776: 25(ivec4) Load 1775 1777: 78(ivec3) VectorShuffle 1776 1776 0 1 2 1778: 17(ivec4) Load 19(ballot) 1779: 78(ivec3) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1777 1778 1780: 71(ptr) AccessChain 31(data) 1774 63 1781: 25(ivec4) Load 1780 1782: 25(ivec4) VectorShuffle 1781 1779 4 5 6 3 Store 1780 1782 1783: 6(int) Load 8(invocation) 1784: 71(ptr) AccessChain 31(data) 115 63 1785: 25(ivec4) Load 1784 1786: 17(ivec4) Load 19(ballot) 1787: 25(ivec4) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1785 1786 1788: 71(ptr) AccessChain 31(data) 1783 63 Store 1788 1787 1789: 6(int) Load 8(invocation) 1790: 90(ptr) AccessChain 31(data) 34 33 35 1791: 6(int) Load 1790 1792: 17(ivec4) Load 19(ballot) 1793: 6(int) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1791 1792 1794: 90(ptr) AccessChain 31(data) 1789 33 35 Store 1794 1793 1795: 6(int) Load 8(invocation) 1796: 40(ptr) AccessChain 31(data) 63 33 1797: 17(ivec4) Load 1796 1798: 96(ivec2) VectorShuffle 1797 1797 0 1 1799: 17(ivec4) Load 19(ballot) 1800: 96(ivec2) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1798 1799 1801: 40(ptr) AccessChain 31(data) 1795 33 1802: 17(ivec4) Load 1801 1803: 17(ivec4) VectorShuffle 1802 1800 4 5 2 3 Store 1801 1803 1804: 6(int) Load 8(invocation) 1805: 40(ptr) AccessChain 31(data) 33 33 1806: 17(ivec4) Load 1805 1807: 103(ivec3) VectorShuffle 1806 1806 0 1 2 1808: 17(ivec4) Load 19(ballot) 1809: 103(ivec3) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1807 1808 1810: 40(ptr) AccessChain 31(data) 1804 33 1811: 17(ivec4) Load 1810 1812: 17(ivec4) VectorShuffle 1811 1809 4 5 6 3 Store 1810 1812 1813: 6(int) Load 8(invocation) 1814: 40(ptr) AccessChain 31(data) 115 33 1815: 17(ivec4) Load 1814 1816: 17(ivec4) Load 19(ballot) 1817: 17(ivec4) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1815 1816 1818: 40(ptr) AccessChain 31(data) 1813 33 Store 1818 1817 1819: 6(int) Load 8(invocation) 1820: 116(ptr) AccessChain 31(data) 34 115 35 1821:26(float64_t) Load 1820 1822: 17(ivec4) Load 19(ballot) 1823:26(float64_t) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1821 1822 1824: 116(ptr) AccessChain 31(data) 1819 115 35 Store 1824 1823 1825: 6(int) Load 8(invocation) 1826: 123(ptr) AccessChain 31(data) 63 115 1827: 27(f64vec4) Load 1826 1828:122(f64vec2) VectorShuffle 1827 1827 0 1 1829: 17(ivec4) Load 19(ballot) 1830:122(f64vec2) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1828 1829 1831: 123(ptr) AccessChain 31(data) 1825 115 1832: 27(f64vec4) Load 1831 1833: 27(f64vec4) VectorShuffle 1832 1830 4 5 2 3 Store 1831 1833 1834: 6(int) Load 8(invocation) 1835: 123(ptr) AccessChain 31(data) 33 115 1836: 27(f64vec4) Load 1835 1837:130(f64vec3) VectorShuffle 1836 1836 0 1 2 1838: 17(ivec4) Load 19(ballot) 1839:130(f64vec3) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1837 1838 1840: 123(ptr) AccessChain 31(data) 1834 115 1841: 27(f64vec4) Load 1840 1842: 27(f64vec4) VectorShuffle 1841 1839 4 5 6 3 Store 1840 1842 1843: 6(int) Load 8(invocation) 1844: 123(ptr) AccessChain 31(data) 115 115 1845: 27(f64vec4) Load 1844 1846: 17(ivec4) Load 19(ballot) 1847: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1845 1846 1848: 123(ptr) AccessChain 31(data) 1843 115 Store 1848 1847 1849: 6(int) Load 8(invocation) 1850: 36(ptr) AccessChain 31(data) 34 34 35 1851: 22(float) Load 1850 1852: 17(ivec4) Load 19(ballot) 1853: 22(float) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1851 1852 1854: 36(ptr) AccessChain 31(data) 1849 34 35 Store 1854 1853 1855: 6(int) Load 8(invocation) 1856: 44(ptr) AccessChain 31(data) 63 34 1857: 23(fvec4) Load 1856 1858: 43(fvec2) VectorShuffle 1857 1857 0 1 1859: 17(ivec4) Load 19(ballot) 1860: 43(fvec2) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1858 1859 1861: 44(ptr) AccessChain 31(data) 1855 34 1862: 23(fvec4) Load 1861 1863: 23(fvec4) VectorShuffle 1862 1860 4 5 2 3 Store 1861 1863 1864: 6(int) Load 8(invocation) 1865: 44(ptr) AccessChain 31(data) 33 34 1866: 23(fvec4) Load 1865 1867: 51(fvec3) VectorShuffle 1866 1866 0 1 2 1868: 17(ivec4) Load 19(ballot) 1869: 51(fvec3) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1867 1868 1870: 44(ptr) AccessChain 31(data) 1864 34 1871: 23(fvec4) Load 1870 1872: 23(fvec4) VectorShuffle 1871 1869 4 5 6 3 Store 1870 1872 1873: 6(int) Load 8(invocation) 1874: 44(ptr) AccessChain 31(data) 115 34 1875: 23(fvec4) Load 1874 1876: 17(ivec4) Load 19(ballot) 1877: 23(fvec4) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1875 1876 1878: 44(ptr) AccessChain 31(data) 1873 34 Store 1878 1877 1879: 6(int) Load 8(invocation) 1880: 64(ptr) AccessChain 31(data) 34 63 35 1881: 24(int) Load 1880 1882: 17(ivec4) Load 19(ballot) 1883: 24(int) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1881 1882 1884: 64(ptr) AccessChain 31(data) 1879 63 35 Store 1884 1883 1885: 6(int) Load 8(invocation) 1886: 71(ptr) AccessChain 31(data) 63 63 1887: 25(ivec4) Load 1886 1888: 70(ivec2) VectorShuffle 1887 1887 0 1 1889: 17(ivec4) Load 19(ballot) 1890: 70(ivec2) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1888 1889 1891: 71(ptr) AccessChain 31(data) 1885 63 1892: 25(ivec4) Load 1891 1893: 25(ivec4) VectorShuffle 1892 1890 4 5 2 3 Store 1891 1893 1894: 6(int) Load 8(invocation) 1895: 71(ptr) AccessChain 31(data) 33 63 1896: 25(ivec4) Load 1895 1897: 78(ivec3) VectorShuffle 1896 1896 0 1 2 1898: 17(ivec4) Load 19(ballot) 1899: 78(ivec3) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1897 1898 1900: 71(ptr) AccessChain 31(data) 1894 63 1901: 25(ivec4) Load 1900 1902: 25(ivec4) VectorShuffle 1901 1899 4 5 6 3 Store 1900 1902 1903: 6(int) Load 8(invocation) 1904: 71(ptr) AccessChain 31(data) 115 63 1905: 25(ivec4) Load 1904 1906: 17(ivec4) Load 19(ballot) 1907: 25(ivec4) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1905 1906 1908: 71(ptr) AccessChain 31(data) 1903 63 Store 1908 1907 1909: 6(int) Load 8(invocation) 1910: 90(ptr) AccessChain 31(data) 34 33 35 1911: 6(int) Load 1910 1912: 17(ivec4) Load 19(ballot) 1913: 6(int) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1911 1912 1914: 90(ptr) AccessChain 31(data) 1909 33 35 Store 1914 1913 1915: 6(int) Load 8(invocation) 1916: 40(ptr) AccessChain 31(data) 63 33 1917: 17(ivec4) Load 1916 1918: 96(ivec2) VectorShuffle 1917 1917 0 1 1919: 17(ivec4) Load 19(ballot) 1920: 96(ivec2) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1918 1919 1921: 40(ptr) AccessChain 31(data) 1915 33 1922: 17(ivec4) Load 1921 1923: 17(ivec4) VectorShuffle 1922 1920 4 5 2 3 Store 1921 1923 1924: 6(int) Load 8(invocation) 1925: 40(ptr) AccessChain 31(data) 33 33 1926: 17(ivec4) Load 1925 1927: 103(ivec3) VectorShuffle 1926 1926 0 1 2 1928: 17(ivec4) Load 19(ballot) 1929: 103(ivec3) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1927 1928 1930: 40(ptr) AccessChain 31(data) 1924 33 1931: 17(ivec4) Load 1930 1932: 17(ivec4) VectorShuffle 1931 1929 4 5 6 3 Store 1930 1932 1933: 6(int) Load 8(invocation) 1934: 40(ptr) AccessChain 31(data) 115 33 1935: 17(ivec4) Load 1934 1936: 17(ivec4) Load 19(ballot) 1937: 17(ivec4) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1935 1936 1938: 40(ptr) AccessChain 31(data) 1933 33 Store 1938 1937 1939: 6(int) Load 8(invocation) 1940: 116(ptr) AccessChain 31(data) 34 115 35 1941:26(float64_t) Load 1940 1942: 17(ivec4) Load 19(ballot) 1943:26(float64_t) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1941 1942 1944: 116(ptr) AccessChain 31(data) 1939 115 35 Store 1944 1943 1945: 6(int) Load 8(invocation) 1946: 123(ptr) AccessChain 31(data) 63 115 1947: 27(f64vec4) Load 1946 1948:122(f64vec2) VectorShuffle 1947 1947 0 1 1949: 17(ivec4) Load 19(ballot) 1950:122(f64vec2) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1948 1949 1951: 123(ptr) AccessChain 31(data) 1945 115 1952: 27(f64vec4) Load 1951 1953: 27(f64vec4) VectorShuffle 1952 1950 4 5 2 3 Store 1951 1953 1954: 6(int) Load 8(invocation) 1955: 123(ptr) AccessChain 31(data) 33 115 1956: 27(f64vec4) Load 1955 1957:130(f64vec3) VectorShuffle 1956 1956 0 1 2 1958: 17(ivec4) Load 19(ballot) 1959:130(f64vec3) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1957 1958 1960: 123(ptr) AccessChain 31(data) 1954 115 1961: 27(f64vec4) Load 1960 1962: 27(f64vec4) VectorShuffle 1961 1959 4 5 6 3 Store 1960 1962 1963: 6(int) Load 8(invocation) 1964: 123(ptr) AccessChain 31(data) 115 115 1965: 27(f64vec4) Load 1964 1966: 17(ivec4) Load 19(ballot) 1967: 27(f64vec4) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1965 1966 1968: 123(ptr) AccessChain 31(data) 1963 115 Store 1968 1967 1969: 6(int) Load 8(invocation) 1970: 36(ptr) AccessChain 31(data) 34 34 35 1971: 22(float) Load 1970 1972: 17(ivec4) Load 19(ballot) 1973: 22(float) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1971 1972 1974: 36(ptr) AccessChain 31(data) 1969 34 35 Store 1974 1973 1975: 6(int) Load 8(invocation) 1976: 44(ptr) AccessChain 31(data) 63 34 1977: 23(fvec4) Load 1976 1978: 43(fvec2) VectorShuffle 1977 1977 0 1 1979: 17(ivec4) Load 19(ballot) 1980: 43(fvec2) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1978 1979 1981: 44(ptr) AccessChain 31(data) 1975 34 1982: 23(fvec4) Load 1981 1983: 23(fvec4) VectorShuffle 1982 1980 4 5 2 3 Store 1981 1983 1984: 6(int) Load 8(invocation) 1985: 44(ptr) AccessChain 31(data) 33 34 1986: 23(fvec4) Load 1985 1987: 51(fvec3) VectorShuffle 1986 1986 0 1 2 1988: 17(ivec4) Load 19(ballot) 1989: 51(fvec3) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1987 1988 1990: 44(ptr) AccessChain 31(data) 1984 34 1991: 23(fvec4) Load 1990 1992: 23(fvec4) VectorShuffle 1991 1989 4 5 6 3 Store 1990 1992 1993: 6(int) Load 8(invocation) 1994: 44(ptr) AccessChain 31(data) 115 34 1995: 23(fvec4) Load 1994 1996: 17(ivec4) Load 19(ballot) 1997: 23(fvec4) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1995 1996 1998: 44(ptr) AccessChain 31(data) 1993 34 Store 1998 1997 1999: 6(int) Load 8(invocation) 2000: 64(ptr) AccessChain 31(data) 34 63 35 2001: 24(int) Load 2000 2002: 17(ivec4) Load 19(ballot) 2003: 24(int) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2001 2002 2004: 64(ptr) AccessChain 31(data) 1999 63 35 Store 2004 2003 2005: 6(int) Load 8(invocation) 2006: 71(ptr) AccessChain 31(data) 63 63 2007: 25(ivec4) Load 2006 2008: 70(ivec2) VectorShuffle 2007 2007 0 1 2009: 17(ivec4) Load 19(ballot) 2010: 70(ivec2) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2008 2009 2011: 71(ptr) AccessChain 31(data) 2005 63 2012: 25(ivec4) Load 2011 2013: 25(ivec4) VectorShuffle 2012 2010 4 5 2 3 Store 2011 2013 2014: 6(int) Load 8(invocation) 2015: 71(ptr) AccessChain 31(data) 33 63 2016: 25(ivec4) Load 2015 2017: 78(ivec3) VectorShuffle 2016 2016 0 1 2 2018: 17(ivec4) Load 19(ballot) 2019: 78(ivec3) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2017 2018 2020: 71(ptr) AccessChain 31(data) 2014 63 2021: 25(ivec4) Load 2020 2022: 25(ivec4) VectorShuffle 2021 2019 4 5 6 3 Store 2020 2022 2023: 6(int) Load 8(invocation) 2024: 71(ptr) AccessChain 31(data) 115 63 2025: 25(ivec4) Load 2024 2026: 17(ivec4) Load 19(ballot) 2027: 25(ivec4) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2025 2026 2028: 71(ptr) AccessChain 31(data) 2023 63 Store 2028 2027 2029: 6(int) Load 8(invocation) 2030: 90(ptr) AccessChain 31(data) 34 33 35 2031: 6(int) Load 2030 2032: 17(ivec4) Load 19(ballot) 2033: 6(int) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2031 2032 2034: 90(ptr) AccessChain 31(data) 2029 33 35 Store 2034 2033 2035: 6(int) Load 8(invocation) 2036: 40(ptr) AccessChain 31(data) 63 33 2037: 17(ivec4) Load 2036 2038: 96(ivec2) VectorShuffle 2037 2037 0 1 2039: 17(ivec4) Load 19(ballot) 2040: 96(ivec2) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2038 2039 2041: 40(ptr) AccessChain 31(data) 2035 33 2042: 17(ivec4) Load 2041 2043: 17(ivec4) VectorShuffle 2042 2040 4 5 2 3 Store 2041 2043 2044: 6(int) Load 8(invocation) 2045: 40(ptr) AccessChain 31(data) 33 33 2046: 17(ivec4) Load 2045 2047: 103(ivec3) VectorShuffle 2046 2046 0 1 2 2048: 17(ivec4) Load 19(ballot) 2049: 103(ivec3) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2047 2048 2050: 40(ptr) AccessChain 31(data) 2044 33 2051: 17(ivec4) Load 2050 2052: 17(ivec4) VectorShuffle 2051 2049 4 5 6 3 Store 2050 2052 2053: 6(int) Load 8(invocation) 2054: 40(ptr) AccessChain 31(data) 115 33 2055: 17(ivec4) Load 2054 2056: 17(ivec4) Load 19(ballot) 2057: 17(ivec4) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2055 2056 2058: 40(ptr) AccessChain 31(data) 2053 33 Store 2058 2057 2059: 6(int) Load 8(invocation) 2060: 116(ptr) AccessChain 31(data) 34 115 35 2061:26(float64_t) Load 2060 2062: 17(ivec4) Load 19(ballot) 2063:26(float64_t) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2061 2062 2064: 116(ptr) AccessChain 31(data) 2059 115 35 Store 2064 2063 2065: 6(int) Load 8(invocation) 2066: 123(ptr) AccessChain 31(data) 63 115 2067: 27(f64vec4) Load 2066 2068:122(f64vec2) VectorShuffle 2067 2067 0 1 2069: 17(ivec4) Load 19(ballot) 2070:122(f64vec2) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2068 2069 2071: 123(ptr) AccessChain 31(data) 2065 115 2072: 27(f64vec4) Load 2071 2073: 27(f64vec4) VectorShuffle 2072 2070 4 5 2 3 Store 2071 2073 2074: 6(int) Load 8(invocation) 2075: 123(ptr) AccessChain 31(data) 33 115 2076: 27(f64vec4) Load 2075 2077:130(f64vec3) VectorShuffle 2076 2076 0 1 2 2078: 17(ivec4) Load 19(ballot) 2079:130(f64vec3) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2077 2078 2080: 123(ptr) AccessChain 31(data) 2074 115 2081: 27(f64vec4) Load 2080 2082: 27(f64vec4) VectorShuffle 2081 2079 4 5 6 3 Store 2080 2082 2083: 6(int) Load 8(invocation) 2084: 123(ptr) AccessChain 31(data) 115 115 2085: 27(f64vec4) Load 2084 2086: 17(ivec4) Load 19(ballot) 2087: 27(f64vec4) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2085 2086 2088: 123(ptr) AccessChain 31(data) 2083 115 Store 2088 2087 2089: 6(int) Load 8(invocation) 2090: 36(ptr) AccessChain 31(data) 34 34 35 2091: 22(float) Load 2090 2092: 17(ivec4) Load 19(ballot) 2093: 22(float) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2091 2092 2094: 36(ptr) AccessChain 31(data) 2089 34 35 Store 2094 2093 2095: 6(int) Load 8(invocation) 2096: 44(ptr) AccessChain 31(data) 63 34 2097: 23(fvec4) Load 2096 2098: 43(fvec2) VectorShuffle 2097 2097 0 1 2099: 17(ivec4) Load 19(ballot) 2100: 43(fvec2) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2098 2099 2101: 44(ptr) AccessChain 31(data) 2095 34 2102: 23(fvec4) Load 2101 2103: 23(fvec4) VectorShuffle 2102 2100 4 5 2 3 Store 2101 2103 2104: 6(int) Load 8(invocation) 2105: 44(ptr) AccessChain 31(data) 33 34 2106: 23(fvec4) Load 2105 2107: 51(fvec3) VectorShuffle 2106 2106 0 1 2 2108: 17(ivec4) Load 19(ballot) 2109: 51(fvec3) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2107 2108 2110: 44(ptr) AccessChain 31(data) 2104 34 2111: 23(fvec4) Load 2110 2112: 23(fvec4) VectorShuffle 2111 2109 4 5 6 3 Store 2110 2112 2113: 6(int) Load 8(invocation) 2114: 44(ptr) AccessChain 31(data) 115 34 2115: 23(fvec4) Load 2114 2116: 17(ivec4) Load 19(ballot) 2117: 23(fvec4) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2115 2116 2118: 44(ptr) AccessChain 31(data) 2113 34 Store 2118 2117 2119: 6(int) Load 8(invocation) 2120: 64(ptr) AccessChain 31(data) 34 63 35 2121: 24(int) Load 2120 2122: 17(ivec4) Load 19(ballot) 2123: 24(int) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2121 2122 2124: 64(ptr) AccessChain 31(data) 2119 63 35 Store 2124 2123 2125: 6(int) Load 8(invocation) 2126: 71(ptr) AccessChain 31(data) 63 63 2127: 25(ivec4) Load 2126 2128: 70(ivec2) VectorShuffle 2127 2127 0 1 2129: 17(ivec4) Load 19(ballot) 2130: 70(ivec2) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2128 2129 2131: 71(ptr) AccessChain 31(data) 2125 63 2132: 25(ivec4) Load 2131 2133: 25(ivec4) VectorShuffle 2132 2130 4 5 2 3 Store 2131 2133 2134: 6(int) Load 8(invocation) 2135: 71(ptr) AccessChain 31(data) 33 63 2136: 25(ivec4) Load 2135 2137: 78(ivec3) VectorShuffle 2136 2136 0 1 2 2138: 17(ivec4) Load 19(ballot) 2139: 78(ivec3) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2137 2138 2140: 71(ptr) AccessChain 31(data) 2134 63 2141: 25(ivec4) Load 2140 2142: 25(ivec4) VectorShuffle 2141 2139 4 5 6 3 Store 2140 2142 2143: 6(int) Load 8(invocation) 2144: 71(ptr) AccessChain 31(data) 115 63 2145: 25(ivec4) Load 2144 2146: 17(ivec4) Load 19(ballot) 2147: 25(ivec4) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2145 2146 2148: 71(ptr) AccessChain 31(data) 2143 63 Store 2148 2147 2149: 6(int) Load 8(invocation) 2150: 90(ptr) AccessChain 31(data) 34 33 35 2151: 6(int) Load 2150 2152: 17(ivec4) Load 19(ballot) 2153: 6(int) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2151 2152 2154: 90(ptr) AccessChain 31(data) 2149 33 35 Store 2154 2153 2155: 6(int) Load 8(invocation) 2156: 40(ptr) AccessChain 31(data) 63 33 2157: 17(ivec4) Load 2156 2158: 96(ivec2) VectorShuffle 2157 2157 0 1 2159: 17(ivec4) Load 19(ballot) 2160: 96(ivec2) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2158 2159 2161: 40(ptr) AccessChain 31(data) 2155 33 2162: 17(ivec4) Load 2161 2163: 17(ivec4) VectorShuffle 2162 2160 4 5 2 3 Store 2161 2163 2164: 6(int) Load 8(invocation) 2165: 40(ptr) AccessChain 31(data) 33 33 2166: 17(ivec4) Load 2165 2167: 103(ivec3) VectorShuffle 2166 2166 0 1 2 2168: 17(ivec4) Load 19(ballot) 2169: 103(ivec3) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2167 2168 2170: 40(ptr) AccessChain 31(data) 2164 33 2171: 17(ivec4) Load 2170 2172: 17(ivec4) VectorShuffle 2171 2169 4 5 6 3 Store 2170 2172 2173: 6(int) Load 8(invocation) 2174: 40(ptr) AccessChain 31(data) 115 33 2175: 17(ivec4) Load 2174 2176: 17(ivec4) Load 19(ballot) 2177: 17(ivec4) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2175 2176 2178: 40(ptr) AccessChain 31(data) 2173 33 Store 2178 2177 2179: 6(int) Load 8(invocation) 2180: 116(ptr) AccessChain 31(data) 34 115 35 2181:26(float64_t) Load 2180 2182: 17(ivec4) Load 19(ballot) 2183:26(float64_t) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2181 2182 2184: 116(ptr) AccessChain 31(data) 2179 115 35 Store 2184 2183 2185: 6(int) Load 8(invocation) 2186: 123(ptr) AccessChain 31(data) 63 115 2187: 27(f64vec4) Load 2186 2188:122(f64vec2) VectorShuffle 2187 2187 0 1 2189: 17(ivec4) Load 19(ballot) 2190:122(f64vec2) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2188 2189 2191: 123(ptr) AccessChain 31(data) 2185 115 2192: 27(f64vec4) Load 2191 2193: 27(f64vec4) VectorShuffle 2192 2190 4 5 2 3 Store 2191 2193 2194: 6(int) Load 8(invocation) 2195: 123(ptr) AccessChain 31(data) 33 115 2196: 27(f64vec4) Load 2195 2197:130(f64vec3) VectorShuffle 2196 2196 0 1 2 2198: 17(ivec4) Load 19(ballot) 2199:130(f64vec3) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2197 2198 2200: 123(ptr) AccessChain 31(data) 2194 115 2201: 27(f64vec4) Load 2200 2202: 27(f64vec4) VectorShuffle 2201 2199 4 5 6 3 Store 2200 2202 2203: 6(int) Load 8(invocation) 2204: 123(ptr) AccessChain 31(data) 115 115 2205: 27(f64vec4) Load 2204 2206: 17(ivec4) Load 19(ballot) 2207: 27(f64vec4) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2205 2206 2208: 123(ptr) AccessChain 31(data) 2203 115 Store 2208 2207 2209: 6(int) Load 8(invocation) 2210: 64(ptr) AccessChain 31(data) 34 63 35 2211: 24(int) Load 2210 2212: 17(ivec4) Load 19(ballot) 2213: 24(int) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2211 2212 2214: 64(ptr) AccessChain 31(data) 2209 63 35 Store 2214 2213 2215: 6(int) Load 8(invocation) 2216: 71(ptr) AccessChain 31(data) 63 63 2217: 25(ivec4) Load 2216 2218: 70(ivec2) VectorShuffle 2217 2217 0 1 2219: 17(ivec4) Load 19(ballot) 2220: 70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2218 2219 2221: 71(ptr) AccessChain 31(data) 2215 63 2222: 25(ivec4) Load 2221 2223: 25(ivec4) VectorShuffle 2222 2220 4 5 2 3 Store 2221 2223 2224: 6(int) Load 8(invocation) 2225: 71(ptr) AccessChain 31(data) 33 63 2226: 25(ivec4) Load 2225 2227: 78(ivec3) VectorShuffle 2226 2226 0 1 2 2228: 17(ivec4) Load 19(ballot) 2229: 78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2227 2228 2230: 71(ptr) AccessChain 31(data) 2224 63 2231: 25(ivec4) Load 2230 2232: 25(ivec4) VectorShuffle 2231 2229 4 5 6 3 Store 2230 2232 2233: 6(int) Load 8(invocation) 2234: 71(ptr) AccessChain 31(data) 115 63 2235: 25(ivec4) Load 2234 2236: 17(ivec4) Load 19(ballot) 2237: 25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2235 2236 2238: 71(ptr) AccessChain 31(data) 2233 63 Store 2238 2237 2239: 6(int) Load 8(invocation) 2240: 90(ptr) AccessChain 31(data) 34 33 35 2241: 6(int) Load 2240 2242: 17(ivec4) Load 19(ballot) 2243: 6(int) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2241 2242 2244: 90(ptr) AccessChain 31(data) 2239 33 35 Store 2244 2243 2245: 6(int) Load 8(invocation) 2246: 40(ptr) AccessChain 31(data) 63 33 2247: 17(ivec4) Load 2246 2248: 96(ivec2) VectorShuffle 2247 2247 0 1 2249: 17(ivec4) Load 19(ballot) 2250: 96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2248 2249 2251: 40(ptr) AccessChain 31(data) 2245 33 2252: 17(ivec4) Load 2251 2253: 17(ivec4) VectorShuffle 2252 2250 4 5 2 3 Store 2251 2253 2254: 6(int) Load 8(invocation) 2255: 40(ptr) AccessChain 31(data) 33 33 2256: 17(ivec4) Load 2255 2257: 103(ivec3) VectorShuffle 2256 2256 0 1 2 2258: 17(ivec4) Load 19(ballot) 2259: 103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2257 2258 2260: 40(ptr) AccessChain 31(data) 2254 33 2261: 17(ivec4) Load 2260 2262: 17(ivec4) VectorShuffle 2261 2259 4 5 6 3 Store 2260 2262 2263: 6(int) Load 8(invocation) 2264: 40(ptr) AccessChain 31(data) 115 33 2265: 17(ivec4) Load 2264 2266: 17(ivec4) Load 19(ballot) 2267: 17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2265 2266 2268: 40(ptr) AccessChain 31(data) 2263 33 Store 2268 2267 2269: 6(int) Load 8(invocation) 2270: 64(ptr) AccessChain 31(data) 34 63 35 2271: 24(int) Load 2270 2272: 144(bool) SLessThan 2271 34 2273: 17(ivec4) Load 19(ballot) 2274: 144(bool) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2272 2273 2275: 24(int) Select 2274 63 34 2276: 64(ptr) AccessChain 31(data) 2269 63 35 Store 2276 2275 2277: 6(int) Load 8(invocation) 2278: 71(ptr) AccessChain 31(data) 63 63 2279: 25(ivec4) Load 2278 2280: 70(ivec2) VectorShuffle 2279 2279 0 1 2281: 152(bvec2) SLessThan 2280 727 2282: 17(ivec4) Load 19(ballot) 2283: 152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2281 2282 2284: 70(ivec2) Select 2283 731 727 2285: 71(ptr) AccessChain 31(data) 2277 63 2286: 25(ivec4) Load 2285 2287: 25(ivec4) VectorShuffle 2286 2284 4 5 2 3 Store 2285 2287 2288: 6(int) Load 8(invocation) 2289: 71(ptr) AccessChain 31(data) 63 63 2290: 25(ivec4) Load 2289 2291: 78(ivec3) VectorShuffle 2290 2290 0 1 2 2292: 161(bvec3) SLessThan 2291 740 2293: 17(ivec4) Load 19(ballot) 2294: 161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2292 2293 2295: 78(ivec3) Select 2294 744 740 2296: 71(ptr) AccessChain 31(data) 2288 63 2297: 25(ivec4) Load 2296 2298: 25(ivec4) VectorShuffle 2297 2295 4 5 6 3 Store 2296 2298 2299: 6(int) Load 8(invocation) 2300: 71(ptr) AccessChain 31(data) 63 63 2301: 25(ivec4) Load 2300 2302: 169(bvec4) SLessThan 2301 752 2303: 17(ivec4) Load 19(ballot) 2304: 169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2302 2303 2305: 25(ivec4) Select 2304 756 752 2306: 71(ptr) AccessChain 31(data) 2299 63 Store 2306 2305 2307: 6(int) Load 8(invocation) 2308: 64(ptr) AccessChain 31(data) 34 63 35 2309: 24(int) Load 2308 2310: 17(ivec4) Load 19(ballot) 2311: 24(int) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2309 2310 2312: 64(ptr) AccessChain 31(data) 2307 63 35 Store 2312 2311 2313: 6(int) Load 8(invocation) 2314: 71(ptr) AccessChain 31(data) 63 63 2315: 25(ivec4) Load 2314 2316: 70(ivec2) VectorShuffle 2315 2315 0 1 2317: 17(ivec4) Load 19(ballot) 2318: 70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2316 2317 2319: 71(ptr) AccessChain 31(data) 2313 63 2320: 25(ivec4) Load 2319 2321: 25(ivec4) VectorShuffle 2320 2318 4 5 2 3 Store 2319 2321 2322: 6(int) Load 8(invocation) 2323: 71(ptr) AccessChain 31(data) 33 63 2324: 25(ivec4) Load 2323 2325: 78(ivec3) VectorShuffle 2324 2324 0 1 2 2326: 17(ivec4) Load 19(ballot) 2327: 78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2325 2326 2328: 71(ptr) AccessChain 31(data) 2322 63 2329: 25(ivec4) Load 2328 2330: 25(ivec4) VectorShuffle 2329 2327 4 5 6 3 Store 2328 2330 2331: 6(int) Load 8(invocation) 2332: 71(ptr) AccessChain 31(data) 115 63 2333: 25(ivec4) Load 2332 2334: 17(ivec4) Load 19(ballot) 2335: 25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2333 2334 2336: 71(ptr) AccessChain 31(data) 2331 63 Store 2336 2335 2337: 6(int) Load 8(invocation) 2338: 90(ptr) AccessChain 31(data) 34 33 35 2339: 6(int) Load 2338 2340: 17(ivec4) Load 19(ballot) 2341: 6(int) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2339 2340 2342: 90(ptr) AccessChain 31(data) 2337 33 35 Store 2342 2341 2343: 6(int) Load 8(invocation) 2344: 40(ptr) AccessChain 31(data) 63 33 2345: 17(ivec4) Load 2344 2346: 96(ivec2) VectorShuffle 2345 2345 0 1 2347: 17(ivec4) Load 19(ballot) 2348: 96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2346 2347 2349: 40(ptr) AccessChain 31(data) 2343 33 2350: 17(ivec4) Load 2349 2351: 17(ivec4) VectorShuffle 2350 2348 4 5 2 3 Store 2349 2351 2352: 6(int) Load 8(invocation) 2353: 40(ptr) AccessChain 31(data) 33 33 2354: 17(ivec4) Load 2353 2355: 103(ivec3) VectorShuffle 2354 2354 0 1 2 2356: 17(ivec4) Load 19(ballot) 2357: 103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2355 2356 2358: 40(ptr) AccessChain 31(data) 2352 33 2359: 17(ivec4) Load 2358 2360: 17(ivec4) VectorShuffle 2359 2357 4 5 6 3 Store 2358 2360 2361: 6(int) Load 8(invocation) 2362: 40(ptr) AccessChain 31(data) 115 33 2363: 17(ivec4) Load 2362 2364: 17(ivec4) Load 19(ballot) 2365: 17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2363 2364 2366: 40(ptr) AccessChain 31(data) 2361 33 Store 2366 2365 2367: 6(int) Load 8(invocation) 2368: 64(ptr) AccessChain 31(data) 34 63 35 2369: 24(int) Load 2368 2370: 144(bool) SLessThan 2369 34 2371: 17(ivec4) Load 19(ballot) 2372: 144(bool) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2370 2371 2373: 24(int) Select 2372 63 34 2374: 64(ptr) AccessChain 31(data) 2367 63 35 Store 2374 2373 2375: 6(int) Load 8(invocation) 2376: 71(ptr) AccessChain 31(data) 63 63 2377: 25(ivec4) Load 2376 2378: 70(ivec2) VectorShuffle 2377 2377 0 1 2379: 152(bvec2) SLessThan 2378 727 2380: 17(ivec4) Load 19(ballot) 2381: 152(bvec2) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2379 2380 2382: 70(ivec2) Select 2381 731 727 2383: 71(ptr) AccessChain 31(data) 2375 63 2384: 25(ivec4) Load 2383 2385: 25(ivec4) VectorShuffle 2384 2382 4 5 2 3 Store 2383 2385 2386: 6(int) Load 8(invocation) 2387: 71(ptr) AccessChain 31(data) 63 63 2388: 25(ivec4) Load 2387 2389: 78(ivec3) VectorShuffle 2388 2388 0 1 2 2390: 161(bvec3) SLessThan 2389 740 2391: 17(ivec4) Load 19(ballot) 2392: 161(bvec3) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2390 2391 2393: 78(ivec3) Select 2392 744 740 2394: 71(ptr) AccessChain 31(data) 2386 63 2395: 25(ivec4) Load 2394 2396: 25(ivec4) VectorShuffle 2395 2393 4 5 6 3 Store 2394 2396 2397: 6(int) Load 8(invocation) 2398: 71(ptr) AccessChain 31(data) 63 63 2399: 25(ivec4) Load 2398 2400: 169(bvec4) SLessThan 2399 752 2401: 17(ivec4) Load 19(ballot) 2402: 169(bvec4) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2400 2401 2403: 25(ivec4) Select 2402 756 752 2404: 71(ptr) AccessChain 31(data) 2397 63 Store 2404 2403 2405: 6(int) Load 8(invocation) 2406: 64(ptr) AccessChain 31(data) 34 63 35 2407: 24(int) Load 2406 2408: 17(ivec4) Load 19(ballot) 2409: 24(int) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2407 2408 2410: 64(ptr) AccessChain 31(data) 2405 63 35 Store 2410 2409 2411: 6(int) Load 8(invocation) 2412: 71(ptr) AccessChain 31(data) 63 63 2413: 25(ivec4) Load 2412 2414: 70(ivec2) VectorShuffle 2413 2413 0 1 2415: 17(ivec4) Load 19(ballot) 2416: 70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2414 2415 2417: 71(ptr) AccessChain 31(data) 2411 63 2418: 25(ivec4) Load 2417 2419: 25(ivec4) VectorShuffle 2418 2416 4 5 2 3 Store 2417 2419 2420: 6(int) Load 8(invocation) 2421: 71(ptr) AccessChain 31(data) 33 63 2422: 25(ivec4) Load 2421 2423: 78(ivec3) VectorShuffle 2422 2422 0 1 2 2424: 17(ivec4) Load 19(ballot) 2425: 78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2423 2424 2426: 71(ptr) AccessChain 31(data) 2420 63 2427: 25(ivec4) Load 2426 2428: 25(ivec4) VectorShuffle 2427 2425 4 5 6 3 Store 2426 2428 2429: 6(int) Load 8(invocation) 2430: 71(ptr) AccessChain 31(data) 115 63 2431: 25(ivec4) Load 2430 2432: 17(ivec4) Load 19(ballot) 2433: 25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2431 2432 2434: 71(ptr) AccessChain 31(data) 2429 63 Store 2434 2433 2435: 6(int) Load 8(invocation) 2436: 90(ptr) AccessChain 31(data) 34 33 35 2437: 6(int) Load 2436 2438: 17(ivec4) Load 19(ballot) 2439: 6(int) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2437 2438 2440: 90(ptr) AccessChain 31(data) 2435 33 35 Store 2440 2439 2441: 6(int) Load 8(invocation) 2442: 40(ptr) AccessChain 31(data) 63 33 2443: 17(ivec4) Load 2442 2444: 96(ivec2) VectorShuffle 2443 2443 0 1 2445: 17(ivec4) Load 19(ballot) 2446: 96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2444 2445 2447: 40(ptr) AccessChain 31(data) 2441 33 2448: 17(ivec4) Load 2447 2449: 17(ivec4) VectorShuffle 2448 2446 4 5 2 3 Store 2447 2449 2450: 6(int) Load 8(invocation) 2451: 40(ptr) AccessChain 31(data) 33 33 2452: 17(ivec4) Load 2451 2453: 103(ivec3) VectorShuffle 2452 2452 0 1 2 2454: 17(ivec4) Load 19(ballot) 2455: 103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2453 2454 2456: 40(ptr) AccessChain 31(data) 2450 33 2457: 17(ivec4) Load 2456 2458: 17(ivec4) VectorShuffle 2457 2455 4 5 6 3 Store 2456 2458 2459: 6(int) Load 8(invocation) 2460: 40(ptr) AccessChain 31(data) 115 33 2461: 17(ivec4) Load 2460 2462: 17(ivec4) Load 19(ballot) 2463: 17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2461 2462 2464: 40(ptr) AccessChain 31(data) 2459 33 Store 2464 2463 2465: 6(int) Load 8(invocation) 2466: 64(ptr) AccessChain 31(data) 34 63 35 2467: 24(int) Load 2466 2468: 144(bool) SLessThan 2467 34 2469: 17(ivec4) Load 19(ballot) 2470: 144(bool) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2468 2469 2471: 24(int) Select 2470 63 34 2472: 64(ptr) AccessChain 31(data) 2465 63 35 Store 2472 2471 2473: 6(int) Load 8(invocation) 2474: 71(ptr) AccessChain 31(data) 63 63 2475: 25(ivec4) Load 2474 2476: 70(ivec2) VectorShuffle 2475 2475 0 1 2477: 152(bvec2) SLessThan 2476 727 2478: 17(ivec4) Load 19(ballot) 2479: 152(bvec2) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2477 2478 2480: 70(ivec2) Select 2479 731 727 2481: 71(ptr) AccessChain 31(data) 2473 63 2482: 25(ivec4) Load 2481 2483: 25(ivec4) VectorShuffle 2482 2480 4 5 2 3 Store 2481 2483 2484: 6(int) Load 8(invocation) 2485: 71(ptr) AccessChain 31(data) 63 63 2486: 25(ivec4) Load 2485 2487: 78(ivec3) VectorShuffle 2486 2486 0 1 2 2488: 161(bvec3) SLessThan 2487 740 2489: 17(ivec4) Load 19(ballot) 2490: 161(bvec3) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2488 2489 2491: 78(ivec3) Select 2490 744 740 2492: 71(ptr) AccessChain 31(data) 2484 63 2493: 25(ivec4) Load 2492 2494: 25(ivec4) VectorShuffle 2493 2491 4 5 6 3 Store 2492 2494 2495: 6(int) Load 8(invocation) 2496: 71(ptr) AccessChain 31(data) 63 63 2497: 25(ivec4) Load 2496 2498: 169(bvec4) SLessThan 2497 752 2499: 17(ivec4) Load 19(ballot) 2500: 169(bvec4) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2498 2499 2501: 25(ivec4) Select 2500 756 752 2502: 71(ptr) AccessChain 31(data) 2495 63 Store 2502 2501 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupQuad.comp.out000066400000000000000000001133411360464450000236760ustar00rootroot00000000000000spv.subgroupQuad.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 616 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformQuad 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" 10 12 ExecutionMode 4 LocalSize 8 1 1 Source GLSL 450 SourceExtension "GL_KHR_shader_subgroup_basic" SourceExtension "GL_KHR_shader_subgroup_quad" Name 4 "main" Name 8 "invocation" Name 10 "gl_SubgroupInvocationID" Name 12 "gl_SubgroupSize" Name 24 "Buffers" MemberName 24(Buffers) 0 "f4" MemberName 24(Buffers) 1 "i4" MemberName 24(Buffers) 2 "u4" MemberName 24(Buffers) 3 "d4" Name 27 "data" Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 11 RelaxedPrecision Decorate 12(gl_SubgroupSize) RelaxedPrecision Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize Decorate 13 RelaxedPrecision Decorate 14 RelaxedPrecision Decorate 16 RelaxedPrecision MemberDecorate 24(Buffers) 0 Offset 0 MemberDecorate 24(Buffers) 1 Offset 16 MemberDecorate 24(Buffers) 2 Offset 32 MemberDecorate 24(Buffers) 3 Offset 64 Decorate 24(Buffers) Block Decorate 27(data) DescriptorSet 0 Decorate 27(data) Binding 0 Decorate 615 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 9: TypePointer Input 6(int) 10(gl_SubgroupInvocationID): 9(ptr) Variable Input 12(gl_SubgroupSize): 9(ptr) Variable Input 15: 6(int) Constant 4 17: TypeFloat 32 18: TypeVector 17(float) 4 19: TypeInt 32 1 20: TypeVector 19(int) 4 21: TypeVector 6(int) 4 22: TypeFloat 64 23: TypeVector 22(float64_t) 4 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) 25: TypeArray 24(Buffers) 15 26: TypePointer 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) 50: 19(int) Constant 2 51: TypeVector 17(float) 3 60: 19(int) Constant 3 66: TypePointer StorageBuffer 19(int) 72: TypeVector 19(int) 2 73: TypePointer StorageBuffer 20(ivec4) 82: TypeVector 19(int) 3 96: TypePointer StorageBuffer 6(int) 102: TypeVector 6(int) 2 103: TypePointer StorageBuffer 21(ivec4) 112: TypeVector 6(int) 3 126: TypePointer StorageBuffer 22(float64_t) 132: TypeVector 22(float64_t) 2 133: TypePointer StorageBuffer 23(f64vec4) 142: TypeVector 22(float64_t) 3 158: TypeBool 167: 72(ivec2) ConstantComposite 29 29 168: TypeVector 158(bool) 2 171: 72(ivec2) ConstantComposite 39 39 180: 82(ivec3) ConstantComposite 29 29 29 181: TypeVector 158(bool) 3 184: 82(ivec3) ConstantComposite 39 39 39 192: 20(ivec4) ConstantComposite 29 29 29 29 193: TypeVector 158(bool) 4 196: 20(ivec4) ConstantComposite 39 39 39 39 478: 6(int) Constant 2 614: 6(int) Constant 8 615: 112(ivec3) ConstantComposite 614 34 34 4(main): 2 Function None 3 5: Label 8(invocation): 7(ptr) Variable Function 11: 6(int) Load 10(gl_SubgroupInvocationID) 13: 6(int) Load 12(gl_SubgroupSize) 14: 6(int) IAdd 11 13 16: 6(int) UMod 14 15 Store 8(invocation) 16 28: 6(int) Load 8(invocation) 32: 31(ptr) AccessChain 27(data) 29 29 30 33: 17(float) Load 32 36: 17(float) GroupNonUniformQuadBroadcast 35 33 34 37: 31(ptr) AccessChain 27(data) 28 29 30 Store 37 36 38: 6(int) Load 8(invocation) 42: 41(ptr) AccessChain 27(data) 39 29 43: 18(fvec4) Load 42 44: 40(fvec2) VectorShuffle 43 43 0 1 45: 40(fvec2) GroupNonUniformQuadBroadcast 35 44 34 46: 41(ptr) AccessChain 27(data) 38 29 47: 18(fvec4) Load 46 48: 18(fvec4) VectorShuffle 47 45 4 5 2 3 Store 46 48 49: 6(int) Load 8(invocation) 52: 41(ptr) AccessChain 27(data) 50 29 53: 18(fvec4) Load 52 54: 51(fvec3) VectorShuffle 53 53 0 1 2 55: 51(fvec3) GroupNonUniformQuadBroadcast 35 54 34 56: 41(ptr) AccessChain 27(data) 49 29 57: 18(fvec4) Load 56 58: 18(fvec4) VectorShuffle 57 55 4 5 6 3 Store 56 58 59: 6(int) Load 8(invocation) 61: 41(ptr) AccessChain 27(data) 60 29 62: 18(fvec4) Load 61 63: 18(fvec4) GroupNonUniformQuadBroadcast 35 62 34 64: 41(ptr) AccessChain 27(data) 59 29 Store 64 63 65: 6(int) Load 8(invocation) 67: 66(ptr) AccessChain 27(data) 29 39 30 68: 19(int) Load 67 69: 19(int) GroupNonUniformQuadBroadcast 35 68 34 70: 66(ptr) AccessChain 27(data) 65 39 30 Store 70 69 71: 6(int) Load 8(invocation) 74: 73(ptr) AccessChain 27(data) 39 39 75: 20(ivec4) Load 74 76: 72(ivec2) VectorShuffle 75 75 0 1 77: 72(ivec2) GroupNonUniformQuadBroadcast 35 76 34 78: 73(ptr) AccessChain 27(data) 71 39 79: 20(ivec4) Load 78 80: 20(ivec4) VectorShuffle 79 77 4 5 2 3 Store 78 80 81: 6(int) Load 8(invocation) 83: 73(ptr) AccessChain 27(data) 50 39 84: 20(ivec4) Load 83 85: 82(ivec3) VectorShuffle 84 84 0 1 2 86: 82(ivec3) GroupNonUniformQuadBroadcast 35 85 34 87: 73(ptr) AccessChain 27(data) 81 39 88: 20(ivec4) Load 87 89: 20(ivec4) VectorShuffle 88 86 4 5 6 3 Store 87 89 90: 6(int) Load 8(invocation) 91: 73(ptr) AccessChain 27(data) 60 39 92: 20(ivec4) Load 91 93: 20(ivec4) GroupNonUniformQuadBroadcast 35 92 34 94: 73(ptr) AccessChain 27(data) 90 39 Store 94 93 95: 6(int) Load 8(invocation) 97: 96(ptr) AccessChain 27(data) 29 50 30 98: 6(int) Load 97 99: 6(int) GroupNonUniformQuadBroadcast 35 98 34 100: 96(ptr) AccessChain 27(data) 95 50 30 Store 100 99 101: 6(int) Load 8(invocation) 104: 103(ptr) AccessChain 27(data) 39 50 105: 21(ivec4) Load 104 106: 102(ivec2) VectorShuffle 105 105 0 1 107: 102(ivec2) GroupNonUniformQuadBroadcast 35 106 34 108: 103(ptr) AccessChain 27(data) 101 50 109: 21(ivec4) Load 108 110: 21(ivec4) VectorShuffle 109 107 4 5 2 3 Store 108 110 111: 6(int) Load 8(invocation) 113: 103(ptr) AccessChain 27(data) 50 50 114: 21(ivec4) Load 113 115: 112(ivec3) VectorShuffle 114 114 0 1 2 116: 112(ivec3) GroupNonUniformQuadBroadcast 35 115 34 117: 103(ptr) AccessChain 27(data) 111 50 118: 21(ivec4) Load 117 119: 21(ivec4) VectorShuffle 118 116 4 5 6 3 Store 117 119 120: 6(int) Load 8(invocation) 121: 103(ptr) AccessChain 27(data) 60 50 122: 21(ivec4) Load 121 123: 21(ivec4) GroupNonUniformQuadBroadcast 35 122 34 124: 103(ptr) AccessChain 27(data) 120 50 Store 124 123 125: 6(int) Load 8(invocation) 127: 126(ptr) AccessChain 27(data) 29 60 30 128:22(float64_t) Load 127 129:22(float64_t) GroupNonUniformQuadBroadcast 35 128 34 130: 126(ptr) AccessChain 27(data) 125 60 30 Store 130 129 131: 6(int) Load 8(invocation) 134: 133(ptr) AccessChain 27(data) 39 60 135: 23(f64vec4) Load 134 136:132(f64vec2) VectorShuffle 135 135 0 1 137:132(f64vec2) GroupNonUniformQuadBroadcast 35 136 34 138: 133(ptr) AccessChain 27(data) 131 60 139: 23(f64vec4) Load 138 140: 23(f64vec4) VectorShuffle 139 137 4 5 2 3 Store 138 140 141: 6(int) Load 8(invocation) 143: 133(ptr) AccessChain 27(data) 50 60 144: 23(f64vec4) Load 143 145:142(f64vec3) VectorShuffle 144 144 0 1 2 146:142(f64vec3) GroupNonUniformQuadBroadcast 35 145 34 147: 133(ptr) AccessChain 27(data) 141 60 148: 23(f64vec4) Load 147 149: 23(f64vec4) VectorShuffle 148 146 4 5 6 3 Store 147 149 150: 6(int) Load 8(invocation) 151: 133(ptr) AccessChain 27(data) 60 60 152: 23(f64vec4) Load 151 153: 23(f64vec4) GroupNonUniformQuadBroadcast 35 152 34 154: 133(ptr) AccessChain 27(data) 150 60 Store 154 153 155: 6(int) Load 8(invocation) 156: 66(ptr) AccessChain 27(data) 29 39 30 157: 19(int) Load 156 159: 158(bool) SLessThan 157 29 160: 158(bool) GroupNonUniformQuadBroadcast 35 159 34 161: 19(int) Select 160 39 29 162: 66(ptr) AccessChain 27(data) 155 39 30 Store 162 161 163: 6(int) Load 8(invocation) 164: 73(ptr) AccessChain 27(data) 39 39 165: 20(ivec4) Load 164 166: 72(ivec2) VectorShuffle 165 165 0 1 169: 168(bvec2) SLessThan 166 167 170: 168(bvec2) GroupNonUniformQuadBroadcast 35 169 34 172: 72(ivec2) Select 170 171 167 173: 73(ptr) AccessChain 27(data) 163 39 174: 20(ivec4) Load 173 175: 20(ivec4) VectorShuffle 174 172 4 5 2 3 Store 173 175 176: 6(int) Load 8(invocation) 177: 73(ptr) AccessChain 27(data) 39 39 178: 20(ivec4) Load 177 179: 82(ivec3) VectorShuffle 178 178 0 1 2 182: 181(bvec3) SLessThan 179 180 183: 181(bvec3) GroupNonUniformQuadBroadcast 35 182 34 185: 82(ivec3) Select 183 184 180 186: 73(ptr) AccessChain 27(data) 176 39 187: 20(ivec4) Load 186 188: 20(ivec4) VectorShuffle 187 185 4 5 6 3 Store 186 188 189: 6(int) Load 8(invocation) 190: 73(ptr) AccessChain 27(data) 39 39 191: 20(ivec4) Load 190 194: 193(bvec4) SLessThan 191 192 195: 193(bvec4) GroupNonUniformQuadBroadcast 35 194 34 197: 20(ivec4) Select 195 196 192 198: 73(ptr) AccessChain 27(data) 189 39 Store 198 197 199: 6(int) Load 8(invocation) 200: 31(ptr) AccessChain 27(data) 29 29 30 201: 17(float) Load 200 202: 17(float) GroupNonUniformQuadSwap 35 201 30 203: 31(ptr) AccessChain 27(data) 199 29 30 Store 203 202 204: 6(int) Load 8(invocation) 205: 41(ptr) AccessChain 27(data) 39 29 206: 18(fvec4) Load 205 207: 40(fvec2) VectorShuffle 206 206 0 1 208: 40(fvec2) GroupNonUniformQuadSwap 35 207 30 209: 41(ptr) AccessChain 27(data) 204 29 210: 18(fvec4) Load 209 211: 18(fvec4) VectorShuffle 210 208 4 5 2 3 Store 209 211 212: 6(int) Load 8(invocation) 213: 41(ptr) AccessChain 27(data) 50 29 214: 18(fvec4) Load 213 215: 51(fvec3) VectorShuffle 214 214 0 1 2 216: 51(fvec3) GroupNonUniformQuadSwap 35 215 30 217: 41(ptr) AccessChain 27(data) 212 29 218: 18(fvec4) Load 217 219: 18(fvec4) VectorShuffle 218 216 4 5 6 3 Store 217 219 220: 6(int) Load 8(invocation) 221: 41(ptr) AccessChain 27(data) 60 29 222: 18(fvec4) Load 221 223: 18(fvec4) GroupNonUniformQuadSwap 35 222 30 224: 41(ptr) AccessChain 27(data) 220 29 Store 224 223 225: 6(int) Load 8(invocation) 226: 66(ptr) AccessChain 27(data) 29 39 30 227: 19(int) Load 226 228: 19(int) GroupNonUniformQuadSwap 35 227 30 229: 66(ptr) AccessChain 27(data) 225 39 30 Store 229 228 230: 6(int) Load 8(invocation) 231: 73(ptr) AccessChain 27(data) 39 39 232: 20(ivec4) Load 231 233: 72(ivec2) VectorShuffle 232 232 0 1 234: 72(ivec2) GroupNonUniformQuadSwap 35 233 30 235: 73(ptr) AccessChain 27(data) 230 39 236: 20(ivec4) Load 235 237: 20(ivec4) VectorShuffle 236 234 4 5 2 3 Store 235 237 238: 6(int) Load 8(invocation) 239: 73(ptr) AccessChain 27(data) 50 39 240: 20(ivec4) Load 239 241: 82(ivec3) VectorShuffle 240 240 0 1 2 242: 82(ivec3) GroupNonUniformQuadSwap 35 241 30 243: 73(ptr) AccessChain 27(data) 238 39 244: 20(ivec4) Load 243 245: 20(ivec4) VectorShuffle 244 242 4 5 6 3 Store 243 245 246: 6(int) Load 8(invocation) 247: 73(ptr) AccessChain 27(data) 60 39 248: 20(ivec4) Load 247 249: 20(ivec4) GroupNonUniformQuadSwap 35 248 30 250: 73(ptr) AccessChain 27(data) 246 39 Store 250 249 251: 6(int) Load 8(invocation) 252: 96(ptr) AccessChain 27(data) 29 50 30 253: 6(int) Load 252 254: 6(int) GroupNonUniformQuadSwap 35 253 30 255: 96(ptr) AccessChain 27(data) 251 50 30 Store 255 254 256: 6(int) Load 8(invocation) 257: 103(ptr) AccessChain 27(data) 39 50 258: 21(ivec4) Load 257 259: 102(ivec2) VectorShuffle 258 258 0 1 260: 102(ivec2) GroupNonUniformQuadSwap 35 259 30 261: 103(ptr) AccessChain 27(data) 256 50 262: 21(ivec4) Load 261 263: 21(ivec4) VectorShuffle 262 260 4 5 2 3 Store 261 263 264: 6(int) Load 8(invocation) 265: 103(ptr) AccessChain 27(data) 50 50 266: 21(ivec4) Load 265 267: 112(ivec3) VectorShuffle 266 266 0 1 2 268: 112(ivec3) GroupNonUniformQuadSwap 35 267 30 269: 103(ptr) AccessChain 27(data) 264 50 270: 21(ivec4) Load 269 271: 21(ivec4) VectorShuffle 270 268 4 5 6 3 Store 269 271 272: 6(int) Load 8(invocation) 273: 103(ptr) AccessChain 27(data) 60 50 274: 21(ivec4) Load 273 275: 21(ivec4) GroupNonUniformQuadSwap 35 274 30 276: 103(ptr) AccessChain 27(data) 272 50 Store 276 275 277: 6(int) Load 8(invocation) 278: 126(ptr) AccessChain 27(data) 29 60 30 279:22(float64_t) Load 278 280:22(float64_t) GroupNonUniformQuadSwap 35 279 30 281: 126(ptr) AccessChain 27(data) 277 60 30 Store 281 280 282: 6(int) Load 8(invocation) 283: 133(ptr) AccessChain 27(data) 39 60 284: 23(f64vec4) Load 283 285:132(f64vec2) VectorShuffle 284 284 0 1 286:132(f64vec2) GroupNonUniformQuadSwap 35 285 30 287: 133(ptr) AccessChain 27(data) 282 60 288: 23(f64vec4) Load 287 289: 23(f64vec4) VectorShuffle 288 286 4 5 2 3 Store 287 289 290: 6(int) Load 8(invocation) 291: 133(ptr) AccessChain 27(data) 50 60 292: 23(f64vec4) Load 291 293:142(f64vec3) VectorShuffle 292 292 0 1 2 294:142(f64vec3) GroupNonUniformQuadSwap 35 293 30 295: 133(ptr) AccessChain 27(data) 290 60 296: 23(f64vec4) Load 295 297: 23(f64vec4) VectorShuffle 296 294 4 5 6 3 Store 295 297 298: 6(int) Load 8(invocation) 299: 133(ptr) AccessChain 27(data) 60 60 300: 23(f64vec4) Load 299 301: 23(f64vec4) GroupNonUniformQuadSwap 35 300 30 302: 133(ptr) AccessChain 27(data) 298 60 Store 302 301 303: 6(int) Load 8(invocation) 304: 66(ptr) AccessChain 27(data) 29 39 30 305: 19(int) Load 304 306: 158(bool) SLessThan 305 29 307: 158(bool) GroupNonUniformQuadSwap 35 306 30 308: 19(int) Select 307 39 29 309: 66(ptr) AccessChain 27(data) 303 39 30 Store 309 308 310: 6(int) Load 8(invocation) 311: 73(ptr) AccessChain 27(data) 39 39 312: 20(ivec4) Load 311 313: 72(ivec2) VectorShuffle 312 312 0 1 314: 168(bvec2) SLessThan 313 167 315: 168(bvec2) GroupNonUniformQuadSwap 35 314 30 316: 72(ivec2) Select 315 171 167 317: 73(ptr) AccessChain 27(data) 310 39 318: 20(ivec4) Load 317 319: 20(ivec4) VectorShuffle 318 316 4 5 2 3 Store 317 319 320: 6(int) Load 8(invocation) 321: 73(ptr) AccessChain 27(data) 39 39 322: 20(ivec4) Load 321 323: 82(ivec3) VectorShuffle 322 322 0 1 2 324: 181(bvec3) SLessThan 323 180 325: 181(bvec3) GroupNonUniformQuadSwap 35 324 30 326: 82(ivec3) Select 325 184 180 327: 73(ptr) AccessChain 27(data) 320 39 328: 20(ivec4) Load 327 329: 20(ivec4) VectorShuffle 328 326 4 5 6 3 Store 327 329 330: 6(int) Load 8(invocation) 331: 73(ptr) AccessChain 27(data) 39 39 332: 20(ivec4) Load 331 333: 193(bvec4) SLessThan 332 192 334: 193(bvec4) GroupNonUniformQuadSwap 35 333 30 335: 20(ivec4) Select 334 196 192 336: 73(ptr) AccessChain 27(data) 330 39 Store 336 335 337: 6(int) Load 8(invocation) 338: 31(ptr) AccessChain 27(data) 29 29 30 339: 17(float) Load 338 340: 17(float) GroupNonUniformQuadSwap 35 339 34 341: 31(ptr) AccessChain 27(data) 337 29 30 Store 341 340 342: 6(int) Load 8(invocation) 343: 41(ptr) AccessChain 27(data) 39 29 344: 18(fvec4) Load 343 345: 40(fvec2) VectorShuffle 344 344 0 1 346: 40(fvec2) GroupNonUniformQuadSwap 35 345 34 347: 41(ptr) AccessChain 27(data) 342 29 348: 18(fvec4) Load 347 349: 18(fvec4) VectorShuffle 348 346 4 5 2 3 Store 347 349 350: 6(int) Load 8(invocation) 351: 41(ptr) AccessChain 27(data) 50 29 352: 18(fvec4) Load 351 353: 51(fvec3) VectorShuffle 352 352 0 1 2 354: 51(fvec3) GroupNonUniformQuadSwap 35 353 34 355: 41(ptr) AccessChain 27(data) 350 29 356: 18(fvec4) Load 355 357: 18(fvec4) VectorShuffle 356 354 4 5 6 3 Store 355 357 358: 6(int) Load 8(invocation) 359: 41(ptr) AccessChain 27(data) 60 29 360: 18(fvec4) Load 359 361: 18(fvec4) GroupNonUniformQuadSwap 35 360 34 362: 41(ptr) AccessChain 27(data) 358 29 Store 362 361 363: 6(int) Load 8(invocation) 364: 66(ptr) AccessChain 27(data) 29 39 30 365: 19(int) Load 364 366: 19(int) GroupNonUniformQuadSwap 35 365 34 367: 66(ptr) AccessChain 27(data) 363 39 30 Store 367 366 368: 6(int) Load 8(invocation) 369: 73(ptr) AccessChain 27(data) 39 39 370: 20(ivec4) Load 369 371: 72(ivec2) VectorShuffle 370 370 0 1 372: 72(ivec2) GroupNonUniformQuadSwap 35 371 34 373: 73(ptr) AccessChain 27(data) 368 39 374: 20(ivec4) Load 373 375: 20(ivec4) VectorShuffle 374 372 4 5 2 3 Store 373 375 376: 6(int) Load 8(invocation) 377: 73(ptr) AccessChain 27(data) 50 39 378: 20(ivec4) Load 377 379: 82(ivec3) VectorShuffle 378 378 0 1 2 380: 82(ivec3) GroupNonUniformQuadSwap 35 379 34 381: 73(ptr) AccessChain 27(data) 376 39 382: 20(ivec4) Load 381 383: 20(ivec4) VectorShuffle 382 380 4 5 6 3 Store 381 383 384: 6(int) Load 8(invocation) 385: 73(ptr) AccessChain 27(data) 60 39 386: 20(ivec4) Load 385 387: 20(ivec4) GroupNonUniformQuadSwap 35 386 34 388: 73(ptr) AccessChain 27(data) 384 39 Store 388 387 389: 6(int) Load 8(invocation) 390: 96(ptr) AccessChain 27(data) 29 50 30 391: 6(int) Load 390 392: 6(int) GroupNonUniformQuadSwap 35 391 34 393: 96(ptr) AccessChain 27(data) 389 50 30 Store 393 392 394: 6(int) Load 8(invocation) 395: 103(ptr) AccessChain 27(data) 39 50 396: 21(ivec4) Load 395 397: 102(ivec2) VectorShuffle 396 396 0 1 398: 102(ivec2) GroupNonUniformQuadSwap 35 397 34 399: 103(ptr) AccessChain 27(data) 394 50 400: 21(ivec4) Load 399 401: 21(ivec4) VectorShuffle 400 398 4 5 2 3 Store 399 401 402: 6(int) Load 8(invocation) 403: 103(ptr) AccessChain 27(data) 50 50 404: 21(ivec4) Load 403 405: 112(ivec3) VectorShuffle 404 404 0 1 2 406: 112(ivec3) GroupNonUniformQuadSwap 35 405 34 407: 103(ptr) AccessChain 27(data) 402 50 408: 21(ivec4) Load 407 409: 21(ivec4) VectorShuffle 408 406 4 5 6 3 Store 407 409 410: 6(int) Load 8(invocation) 411: 103(ptr) AccessChain 27(data) 60 50 412: 21(ivec4) Load 411 413: 21(ivec4) GroupNonUniformQuadSwap 35 412 34 414: 103(ptr) AccessChain 27(data) 410 50 Store 414 413 415: 6(int) Load 8(invocation) 416: 126(ptr) AccessChain 27(data) 29 60 30 417:22(float64_t) Load 416 418:22(float64_t) GroupNonUniformQuadSwap 35 417 34 419: 126(ptr) AccessChain 27(data) 415 60 30 Store 419 418 420: 6(int) Load 8(invocation) 421: 133(ptr) AccessChain 27(data) 39 60 422: 23(f64vec4) Load 421 423:132(f64vec2) VectorShuffle 422 422 0 1 424:132(f64vec2) GroupNonUniformQuadSwap 35 423 34 425: 133(ptr) AccessChain 27(data) 420 60 426: 23(f64vec4) Load 425 427: 23(f64vec4) VectorShuffle 426 424 4 5 2 3 Store 425 427 428: 6(int) Load 8(invocation) 429: 133(ptr) AccessChain 27(data) 50 60 430: 23(f64vec4) Load 429 431:142(f64vec3) VectorShuffle 430 430 0 1 2 432:142(f64vec3) GroupNonUniformQuadSwap 35 431 34 433: 133(ptr) AccessChain 27(data) 428 60 434: 23(f64vec4) Load 433 435: 23(f64vec4) VectorShuffle 434 432 4 5 6 3 Store 433 435 436: 6(int) Load 8(invocation) 437: 133(ptr) AccessChain 27(data) 60 60 438: 23(f64vec4) Load 437 439: 23(f64vec4) GroupNonUniformQuadSwap 35 438 34 440: 133(ptr) AccessChain 27(data) 436 60 Store 440 439 441: 6(int) Load 8(invocation) 442: 66(ptr) AccessChain 27(data) 29 39 30 443: 19(int) Load 442 444: 158(bool) SLessThan 443 29 445: 158(bool) GroupNonUniformQuadSwap 35 444 34 446: 19(int) Select 445 39 29 447: 66(ptr) AccessChain 27(data) 441 39 30 Store 447 446 448: 6(int) Load 8(invocation) 449: 73(ptr) AccessChain 27(data) 39 39 450: 20(ivec4) Load 449 451: 72(ivec2) VectorShuffle 450 450 0 1 452: 168(bvec2) SLessThan 451 167 453: 168(bvec2) GroupNonUniformQuadSwap 35 452 34 454: 72(ivec2) Select 453 171 167 455: 73(ptr) AccessChain 27(data) 448 39 456: 20(ivec4) Load 455 457: 20(ivec4) VectorShuffle 456 454 4 5 2 3 Store 455 457 458: 6(int) Load 8(invocation) 459: 73(ptr) AccessChain 27(data) 39 39 460: 20(ivec4) Load 459 461: 82(ivec3) VectorShuffle 460 460 0 1 2 462: 181(bvec3) SLessThan 461 180 463: 181(bvec3) GroupNonUniformQuadSwap 35 462 34 464: 82(ivec3) Select 463 184 180 465: 73(ptr) AccessChain 27(data) 458 39 466: 20(ivec4) Load 465 467: 20(ivec4) VectorShuffle 466 464 4 5 6 3 Store 465 467 468: 6(int) Load 8(invocation) 469: 73(ptr) AccessChain 27(data) 39 39 470: 20(ivec4) Load 469 471: 193(bvec4) SLessThan 470 192 472: 193(bvec4) GroupNonUniformQuadSwap 35 471 34 473: 20(ivec4) Select 472 196 192 474: 73(ptr) AccessChain 27(data) 468 39 Store 474 473 475: 6(int) Load 8(invocation) 476: 31(ptr) AccessChain 27(data) 29 29 30 477: 17(float) Load 476 479: 17(float) GroupNonUniformQuadSwap 35 477 478 480: 31(ptr) AccessChain 27(data) 475 29 30 Store 480 479 481: 6(int) Load 8(invocation) 482: 41(ptr) AccessChain 27(data) 39 29 483: 18(fvec4) Load 482 484: 40(fvec2) VectorShuffle 483 483 0 1 485: 40(fvec2) GroupNonUniformQuadSwap 35 484 478 486: 41(ptr) AccessChain 27(data) 481 29 487: 18(fvec4) Load 486 488: 18(fvec4) VectorShuffle 487 485 4 5 2 3 Store 486 488 489: 6(int) Load 8(invocation) 490: 41(ptr) AccessChain 27(data) 50 29 491: 18(fvec4) Load 490 492: 51(fvec3) VectorShuffle 491 491 0 1 2 493: 51(fvec3) GroupNonUniformQuadSwap 35 492 478 494: 41(ptr) AccessChain 27(data) 489 29 495: 18(fvec4) Load 494 496: 18(fvec4) VectorShuffle 495 493 4 5 6 3 Store 494 496 497: 6(int) Load 8(invocation) 498: 41(ptr) AccessChain 27(data) 60 29 499: 18(fvec4) Load 498 500: 18(fvec4) GroupNonUniformQuadSwap 35 499 478 501: 41(ptr) AccessChain 27(data) 497 29 Store 501 500 502: 6(int) Load 8(invocation) 503: 66(ptr) AccessChain 27(data) 29 39 30 504: 19(int) Load 503 505: 19(int) GroupNonUniformQuadSwap 35 504 478 506: 66(ptr) AccessChain 27(data) 502 39 30 Store 506 505 507: 6(int) Load 8(invocation) 508: 73(ptr) AccessChain 27(data) 39 39 509: 20(ivec4) Load 508 510: 72(ivec2) VectorShuffle 509 509 0 1 511: 72(ivec2) GroupNonUniformQuadSwap 35 510 478 512: 73(ptr) AccessChain 27(data) 507 39 513: 20(ivec4) Load 512 514: 20(ivec4) VectorShuffle 513 511 4 5 2 3 Store 512 514 515: 6(int) Load 8(invocation) 516: 73(ptr) AccessChain 27(data) 50 39 517: 20(ivec4) Load 516 518: 82(ivec3) VectorShuffle 517 517 0 1 2 519: 82(ivec3) GroupNonUniformQuadSwap 35 518 478 520: 73(ptr) AccessChain 27(data) 515 39 521: 20(ivec4) Load 520 522: 20(ivec4) VectorShuffle 521 519 4 5 6 3 Store 520 522 523: 6(int) Load 8(invocation) 524: 73(ptr) AccessChain 27(data) 60 39 525: 20(ivec4) Load 524 526: 20(ivec4) GroupNonUniformQuadSwap 35 525 478 527: 73(ptr) AccessChain 27(data) 523 39 Store 527 526 528: 6(int) Load 8(invocation) 529: 96(ptr) AccessChain 27(data) 29 50 30 530: 6(int) Load 529 531: 6(int) GroupNonUniformQuadSwap 35 530 478 532: 96(ptr) AccessChain 27(data) 528 50 30 Store 532 531 533: 6(int) Load 8(invocation) 534: 103(ptr) AccessChain 27(data) 39 50 535: 21(ivec4) Load 534 536: 102(ivec2) VectorShuffle 535 535 0 1 537: 102(ivec2) GroupNonUniformQuadSwap 35 536 478 538: 103(ptr) AccessChain 27(data) 533 50 539: 21(ivec4) Load 538 540: 21(ivec4) VectorShuffle 539 537 4 5 2 3 Store 538 540 541: 6(int) Load 8(invocation) 542: 103(ptr) AccessChain 27(data) 50 50 543: 21(ivec4) Load 542 544: 112(ivec3) VectorShuffle 543 543 0 1 2 545: 112(ivec3) GroupNonUniformQuadSwap 35 544 478 546: 103(ptr) AccessChain 27(data) 541 50 547: 21(ivec4) Load 546 548: 21(ivec4) VectorShuffle 547 545 4 5 6 3 Store 546 548 549: 6(int) Load 8(invocation) 550: 103(ptr) AccessChain 27(data) 60 50 551: 21(ivec4) Load 550 552: 21(ivec4) GroupNonUniformQuadSwap 35 551 478 553: 103(ptr) AccessChain 27(data) 549 50 Store 553 552 554: 6(int) Load 8(invocation) 555: 126(ptr) AccessChain 27(data) 29 60 30 556:22(float64_t) Load 555 557:22(float64_t) GroupNonUniformQuadSwap 35 556 478 558: 126(ptr) AccessChain 27(data) 554 60 30 Store 558 557 559: 6(int) Load 8(invocation) 560: 133(ptr) AccessChain 27(data) 39 60 561: 23(f64vec4) Load 560 562:132(f64vec2) VectorShuffle 561 561 0 1 563:132(f64vec2) GroupNonUniformQuadSwap 35 562 478 564: 133(ptr) AccessChain 27(data) 559 60 565: 23(f64vec4) Load 564 566: 23(f64vec4) VectorShuffle 565 563 4 5 2 3 Store 564 566 567: 6(int) Load 8(invocation) 568: 133(ptr) AccessChain 27(data) 50 60 569: 23(f64vec4) Load 568 570:142(f64vec3) VectorShuffle 569 569 0 1 2 571:142(f64vec3) GroupNonUniformQuadSwap 35 570 478 572: 133(ptr) AccessChain 27(data) 567 60 573: 23(f64vec4) Load 572 574: 23(f64vec4) VectorShuffle 573 571 4 5 6 3 Store 572 574 575: 6(int) Load 8(invocation) 576: 133(ptr) AccessChain 27(data) 60 60 577: 23(f64vec4) Load 576 578: 23(f64vec4) GroupNonUniformQuadSwap 35 577 478 579: 133(ptr) AccessChain 27(data) 575 60 Store 579 578 580: 6(int) Load 8(invocation) 581: 66(ptr) AccessChain 27(data) 29 39 30 582: 19(int) Load 581 583: 158(bool) SLessThan 582 29 584: 158(bool) GroupNonUniformQuadSwap 35 583 478 585: 19(int) Select 584 39 29 586: 66(ptr) AccessChain 27(data) 580 39 30 Store 586 585 587: 6(int) Load 8(invocation) 588: 73(ptr) AccessChain 27(data) 39 39 589: 20(ivec4) Load 588 590: 72(ivec2) VectorShuffle 589 589 0 1 591: 168(bvec2) SLessThan 590 167 592: 168(bvec2) GroupNonUniformQuadSwap 35 591 478 593: 72(ivec2) Select 592 171 167 594: 73(ptr) AccessChain 27(data) 587 39 595: 20(ivec4) Load 594 596: 20(ivec4) VectorShuffle 595 593 4 5 2 3 Store 594 596 597: 6(int) Load 8(invocation) 598: 73(ptr) AccessChain 27(data) 39 39 599: 20(ivec4) Load 598 600: 82(ivec3) VectorShuffle 599 599 0 1 2 601: 181(bvec3) SLessThan 600 180 602: 181(bvec3) GroupNonUniformQuadSwap 35 601 478 603: 82(ivec3) Select 602 184 180 604: 73(ptr) AccessChain 27(data) 597 39 605: 20(ivec4) Load 604 606: 20(ivec4) VectorShuffle 605 603 4 5 6 3 Store 604 606 607: 6(int) Load 8(invocation) 608: 73(ptr) AccessChain 27(data) 39 39 609: 20(ivec4) Load 608 610: 193(bvec4) SLessThan 609 192 611: 193(bvec4) GroupNonUniformQuadSwap 35 610 478 612: 20(ivec4) Select 611 196 192 613: 73(ptr) AccessChain 27(data) 607 39 Store 613 612 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupShuffle.comp.out000066400000000000000000000570431360464450000244060ustar00rootroot00000000000000spv.subgroupShuffle.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 379 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformShuffle 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" 10 12 ExecutionMode 4 LocalSize 8 8 1 Source GLSL 450 SourceExtension "GL_KHR_shader_subgroup_basic" SourceExtension "GL_KHR_shader_subgroup_shuffle" Name 4 "main" Name 8 "invocation" Name 10 "gl_SubgroupInvocationID" Name 12 "gl_SubgroupSize" Name 24 "Buffers" MemberName 24(Buffers) 0 "f4" MemberName 24(Buffers) 1 "i4" MemberName 24(Buffers) 2 "u4" MemberName 24(Buffers) 3 "d4" Name 27 "data" Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 11 RelaxedPrecision Decorate 12(gl_SubgroupSize) RelaxedPrecision Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize Decorate 13 RelaxedPrecision Decorate 14 RelaxedPrecision Decorate 16 RelaxedPrecision MemberDecorate 24(Buffers) 0 Offset 0 MemberDecorate 24(Buffers) 1 Offset 16 MemberDecorate 24(Buffers) 2 Offset 32 MemberDecorate 24(Buffers) 3 Offset 64 Decorate 24(Buffers) Block Decorate 27(data) DescriptorSet 0 Decorate 27(data) Binding 0 Decorate 378 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 9: TypePointer Input 6(int) 10(gl_SubgroupInvocationID): 9(ptr) Variable Input 12(gl_SubgroupSize): 9(ptr) Variable Input 15: 6(int) Constant 4 17: TypeFloat 32 18: TypeVector 17(float) 4 19: TypeInt 32 1 20: TypeVector 19(int) 4 21: TypeVector 6(int) 4 22: TypeFloat 64 23: TypeVector 22(float64_t) 4 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) 25: TypeArray 24(Buffers) 15 26: TypePointer 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) 51: 19(int) Constant 2 52: TypeVector 17(float) 3 62: 19(int) Constant 3 69: TypePointer StorageBuffer 19(int) 76: TypeVector 19(int) 2 77: TypePointer StorageBuffer 20(ivec4) 87: TypeVector 19(int) 3 103: TypePointer StorageBuffer 6(int) 110: TypeVector 6(int) 2 111: TypePointer StorageBuffer 21(ivec4) 121: TypeVector 6(int) 3 137: TypePointer StorageBuffer 22(float64_t) 144: TypeVector 22(float64_t) 2 145: TypePointer StorageBuffer 23(f64vec4) 155: TypeVector 22(float64_t) 3 173: TypeBool 183: 76(ivec2) ConstantComposite 29 29 184: TypeVector 173(bool) 2 188: 76(ivec2) ConstantComposite 39 39 197: 87(ivec3) ConstantComposite 29 29 29 198: TypeVector 173(bool) 3 202: 87(ivec3) ConstantComposite 39 39 39 210: 20(ivec4) ConstantComposite 29 29 29 29 211: TypeVector 173(bool) 4 215: 20(ivec4) ConstantComposite 39 39 39 39 376: 6(int) Constant 8 377: 6(int) Constant 1 378: 121(ivec3) ConstantComposite 376 376 377 4(main): 2 Function None 3 5: Label 8(invocation): 7(ptr) Variable Function 11: 6(int) Load 10(gl_SubgroupInvocationID) 13: 6(int) Load 12(gl_SubgroupSize) 14: 6(int) IAdd 11 13 16: 6(int) UMod 14 15 Store 8(invocation) 16 28: 6(int) Load 8(invocation) 32: 31(ptr) AccessChain 27(data) 29 29 30 33: 17(float) Load 32 34: 6(int) Load 8(invocation) 36: 17(float) GroupNonUniformShuffle 35 33 34 37: 31(ptr) AccessChain 27(data) 28 29 30 Store 37 36 38: 6(int) Load 8(invocation) 42: 41(ptr) AccessChain 27(data) 39 29 43: 18(fvec4) Load 42 44: 40(fvec2) VectorShuffle 43 43 0 1 45: 6(int) Load 8(invocation) 46: 40(fvec2) GroupNonUniformShuffle 35 44 45 47: 41(ptr) AccessChain 27(data) 38 29 48: 18(fvec4) Load 47 49: 18(fvec4) VectorShuffle 48 46 4 5 2 3 Store 47 49 50: 6(int) Load 8(invocation) 53: 41(ptr) AccessChain 27(data) 51 29 54: 18(fvec4) Load 53 55: 52(fvec3) VectorShuffle 54 54 0 1 2 56: 6(int) Load 8(invocation) 57: 52(fvec3) GroupNonUniformShuffle 35 55 56 58: 41(ptr) AccessChain 27(data) 50 29 59: 18(fvec4) Load 58 60: 18(fvec4) VectorShuffle 59 57 4 5 6 3 Store 58 60 61: 6(int) Load 8(invocation) 63: 41(ptr) AccessChain 27(data) 62 29 64: 18(fvec4) Load 63 65: 6(int) Load 8(invocation) 66: 18(fvec4) GroupNonUniformShuffle 35 64 65 67: 41(ptr) AccessChain 27(data) 61 29 Store 67 66 68: 6(int) Load 8(invocation) 70: 69(ptr) AccessChain 27(data) 29 39 30 71: 19(int) Load 70 72: 6(int) Load 8(invocation) 73: 19(int) GroupNonUniformShuffle 35 71 72 74: 69(ptr) AccessChain 27(data) 68 39 30 Store 74 73 75: 6(int) Load 8(invocation) 78: 77(ptr) AccessChain 27(data) 39 39 79: 20(ivec4) Load 78 80: 76(ivec2) VectorShuffle 79 79 0 1 81: 6(int) Load 8(invocation) 82: 76(ivec2) GroupNonUniformShuffle 35 80 81 83: 77(ptr) AccessChain 27(data) 75 39 84: 20(ivec4) Load 83 85: 20(ivec4) VectorShuffle 84 82 4 5 2 3 Store 83 85 86: 6(int) Load 8(invocation) 88: 77(ptr) AccessChain 27(data) 51 39 89: 20(ivec4) Load 88 90: 87(ivec3) VectorShuffle 89 89 0 1 2 91: 6(int) Load 8(invocation) 92: 87(ivec3) GroupNonUniformShuffle 35 90 91 93: 77(ptr) AccessChain 27(data) 86 39 94: 20(ivec4) Load 93 95: 20(ivec4) VectorShuffle 94 92 4 5 6 3 Store 93 95 96: 6(int) Load 8(invocation) 97: 77(ptr) AccessChain 27(data) 62 39 98: 20(ivec4) Load 97 99: 6(int) Load 8(invocation) 100: 20(ivec4) GroupNonUniformShuffle 35 98 99 101: 77(ptr) AccessChain 27(data) 96 39 Store 101 100 102: 6(int) Load 8(invocation) 104: 103(ptr) AccessChain 27(data) 29 51 30 105: 6(int) Load 104 106: 6(int) Load 8(invocation) 107: 6(int) GroupNonUniformShuffle 35 105 106 108: 103(ptr) AccessChain 27(data) 102 51 30 Store 108 107 109: 6(int) Load 8(invocation) 112: 111(ptr) AccessChain 27(data) 39 51 113: 21(ivec4) Load 112 114: 110(ivec2) VectorShuffle 113 113 0 1 115: 6(int) Load 8(invocation) 116: 110(ivec2) GroupNonUniformShuffle 35 114 115 117: 111(ptr) AccessChain 27(data) 109 51 118: 21(ivec4) Load 117 119: 21(ivec4) VectorShuffle 118 116 4 5 2 3 Store 117 119 120: 6(int) Load 8(invocation) 122: 111(ptr) AccessChain 27(data) 51 51 123: 21(ivec4) Load 122 124: 121(ivec3) VectorShuffle 123 123 0 1 2 125: 6(int) Load 8(invocation) 126: 121(ivec3) GroupNonUniformShuffle 35 124 125 127: 111(ptr) AccessChain 27(data) 120 51 128: 21(ivec4) Load 127 129: 21(ivec4) VectorShuffle 128 126 4 5 6 3 Store 127 129 130: 6(int) Load 8(invocation) 131: 111(ptr) AccessChain 27(data) 62 51 132: 21(ivec4) Load 131 133: 6(int) Load 8(invocation) 134: 21(ivec4) GroupNonUniformShuffle 35 132 133 135: 111(ptr) AccessChain 27(data) 130 51 Store 135 134 136: 6(int) Load 8(invocation) 138: 137(ptr) AccessChain 27(data) 29 62 30 139:22(float64_t) Load 138 140: 6(int) Load 8(invocation) 141:22(float64_t) GroupNonUniformShuffle 35 139 140 142: 137(ptr) AccessChain 27(data) 136 62 30 Store 142 141 143: 6(int) Load 8(invocation) 146: 145(ptr) AccessChain 27(data) 39 62 147: 23(f64vec4) Load 146 148:144(f64vec2) VectorShuffle 147 147 0 1 149: 6(int) Load 8(invocation) 150:144(f64vec2) GroupNonUniformShuffle 35 148 149 151: 145(ptr) AccessChain 27(data) 143 62 152: 23(f64vec4) Load 151 153: 23(f64vec4) VectorShuffle 152 150 4 5 2 3 Store 151 153 154: 6(int) Load 8(invocation) 156: 145(ptr) AccessChain 27(data) 51 62 157: 23(f64vec4) Load 156 158:155(f64vec3) VectorShuffle 157 157 0 1 2 159: 6(int) Load 8(invocation) 160:155(f64vec3) GroupNonUniformShuffle 35 158 159 161: 145(ptr) AccessChain 27(data) 154 62 162: 23(f64vec4) Load 161 163: 23(f64vec4) VectorShuffle 162 160 4 5 6 3 Store 161 163 164: 6(int) Load 8(invocation) 165: 145(ptr) AccessChain 27(data) 62 62 166: 23(f64vec4) Load 165 167: 6(int) Load 8(invocation) 168: 23(f64vec4) GroupNonUniformShuffle 35 166 167 169: 145(ptr) AccessChain 27(data) 164 62 Store 169 168 170: 6(int) Load 8(invocation) 171: 69(ptr) AccessChain 27(data) 29 39 30 172: 19(int) Load 171 174: 173(bool) SLessThan 172 29 175: 6(int) Load 8(invocation) 176: 173(bool) GroupNonUniformShuffle 35 174 175 177: 19(int) Select 176 39 29 178: 69(ptr) AccessChain 27(data) 170 39 30 Store 178 177 179: 6(int) Load 8(invocation) 180: 77(ptr) AccessChain 27(data) 39 39 181: 20(ivec4) Load 180 182: 76(ivec2) VectorShuffle 181 181 0 1 185: 184(bvec2) SLessThan 182 183 186: 6(int) Load 8(invocation) 187: 184(bvec2) GroupNonUniformShuffle 35 185 186 189: 76(ivec2) Select 187 188 183 190: 77(ptr) AccessChain 27(data) 179 39 191: 20(ivec4) Load 190 192: 20(ivec4) VectorShuffle 191 189 4 5 2 3 Store 190 192 193: 6(int) Load 8(invocation) 194: 77(ptr) AccessChain 27(data) 39 39 195: 20(ivec4) Load 194 196: 87(ivec3) VectorShuffle 195 195 0 1 2 199: 198(bvec3) SLessThan 196 197 200: 6(int) Load 8(invocation) 201: 198(bvec3) GroupNonUniformShuffle 35 199 200 203: 87(ivec3) Select 201 202 197 204: 77(ptr) AccessChain 27(data) 193 39 205: 20(ivec4) Load 204 206: 20(ivec4) VectorShuffle 205 203 4 5 6 3 Store 204 206 207: 6(int) Load 8(invocation) 208: 77(ptr) AccessChain 27(data) 39 39 209: 20(ivec4) Load 208 212: 211(bvec4) SLessThan 209 210 213: 6(int) Load 8(invocation) 214: 211(bvec4) GroupNonUniformShuffle 35 212 213 216: 20(ivec4) Select 214 215 210 217: 77(ptr) AccessChain 27(data) 207 39 Store 217 216 218: 6(int) Load 8(invocation) 219: 31(ptr) AccessChain 27(data) 29 29 30 220: 17(float) Load 219 221: 6(int) Load 8(invocation) 222: 17(float) GroupNonUniformShuffleXor 35 220 221 223: 31(ptr) AccessChain 27(data) 218 29 30 Store 223 222 224: 6(int) Load 8(invocation) 225: 41(ptr) AccessChain 27(data) 39 29 226: 18(fvec4) Load 225 227: 40(fvec2) VectorShuffle 226 226 0 1 228: 6(int) Load 8(invocation) 229: 40(fvec2) GroupNonUniformShuffleXor 35 227 228 230: 41(ptr) AccessChain 27(data) 224 29 231: 18(fvec4) Load 230 232: 18(fvec4) VectorShuffle 231 229 4 5 2 3 Store 230 232 233: 6(int) Load 8(invocation) 234: 41(ptr) AccessChain 27(data) 51 29 235: 18(fvec4) Load 234 236: 52(fvec3) VectorShuffle 235 235 0 1 2 237: 6(int) Load 8(invocation) 238: 52(fvec3) GroupNonUniformShuffleXor 35 236 237 239: 41(ptr) AccessChain 27(data) 233 29 240: 18(fvec4) Load 239 241: 18(fvec4) VectorShuffle 240 238 4 5 6 3 Store 239 241 242: 6(int) Load 8(invocation) 243: 41(ptr) AccessChain 27(data) 62 29 244: 18(fvec4) Load 243 245: 6(int) Load 8(invocation) 246: 18(fvec4) GroupNonUniformShuffleXor 35 244 245 247: 41(ptr) AccessChain 27(data) 242 29 Store 247 246 248: 6(int) Load 8(invocation) 249: 69(ptr) AccessChain 27(data) 29 39 30 250: 19(int) Load 249 251: 6(int) Load 8(invocation) 252: 19(int) GroupNonUniformShuffleXor 35 250 251 253: 69(ptr) AccessChain 27(data) 248 39 30 Store 253 252 254: 6(int) Load 8(invocation) 255: 77(ptr) AccessChain 27(data) 39 39 256: 20(ivec4) Load 255 257: 76(ivec2) VectorShuffle 256 256 0 1 258: 6(int) Load 8(invocation) 259: 76(ivec2) GroupNonUniformShuffleXor 35 257 258 260: 77(ptr) AccessChain 27(data) 254 39 261: 20(ivec4) Load 260 262: 20(ivec4) VectorShuffle 261 259 4 5 2 3 Store 260 262 263: 6(int) Load 8(invocation) 264: 77(ptr) AccessChain 27(data) 51 39 265: 20(ivec4) Load 264 266: 87(ivec3) VectorShuffle 265 265 0 1 2 267: 6(int) Load 8(invocation) 268: 87(ivec3) GroupNonUniformShuffleXor 35 266 267 269: 77(ptr) AccessChain 27(data) 263 39 270: 20(ivec4) Load 269 271: 20(ivec4) VectorShuffle 270 268 4 5 6 3 Store 269 271 272: 6(int) Load 8(invocation) 273: 77(ptr) AccessChain 27(data) 62 39 274: 20(ivec4) Load 273 275: 6(int) Load 8(invocation) 276: 20(ivec4) GroupNonUniformShuffleXor 35 274 275 277: 77(ptr) AccessChain 27(data) 272 39 Store 277 276 278: 6(int) Load 8(invocation) 279: 103(ptr) AccessChain 27(data) 29 51 30 280: 6(int) Load 279 281: 6(int) Load 8(invocation) 282: 6(int) GroupNonUniformShuffleXor 35 280 281 283: 103(ptr) AccessChain 27(data) 278 51 30 Store 283 282 284: 6(int) Load 8(invocation) 285: 111(ptr) AccessChain 27(data) 39 51 286: 21(ivec4) Load 285 287: 110(ivec2) VectorShuffle 286 286 0 1 288: 6(int) Load 8(invocation) 289: 110(ivec2) GroupNonUniformShuffleXor 35 287 288 290: 111(ptr) AccessChain 27(data) 284 51 291: 21(ivec4) Load 290 292: 21(ivec4) VectorShuffle 291 289 4 5 2 3 Store 290 292 293: 6(int) Load 8(invocation) 294: 111(ptr) AccessChain 27(data) 51 51 295: 21(ivec4) Load 294 296: 121(ivec3) VectorShuffle 295 295 0 1 2 297: 6(int) Load 8(invocation) 298: 121(ivec3) GroupNonUniformShuffleXor 35 296 297 299: 111(ptr) AccessChain 27(data) 293 51 300: 21(ivec4) Load 299 301: 21(ivec4) VectorShuffle 300 298 4 5 6 3 Store 299 301 302: 6(int) Load 8(invocation) 303: 111(ptr) AccessChain 27(data) 62 51 304: 21(ivec4) Load 303 305: 6(int) Load 8(invocation) 306: 21(ivec4) GroupNonUniformShuffleXor 35 304 305 307: 111(ptr) AccessChain 27(data) 302 51 Store 307 306 308: 6(int) Load 8(invocation) 309: 137(ptr) AccessChain 27(data) 29 62 30 310:22(float64_t) Load 309 311: 6(int) Load 8(invocation) 312:22(float64_t) GroupNonUniformShuffleXor 35 310 311 313: 137(ptr) AccessChain 27(data) 308 62 30 Store 313 312 314: 6(int) Load 8(invocation) 315: 145(ptr) AccessChain 27(data) 39 62 316: 23(f64vec4) Load 315 317:144(f64vec2) VectorShuffle 316 316 0 1 318: 6(int) Load 8(invocation) 319:144(f64vec2) GroupNonUniformShuffleXor 35 317 318 320: 145(ptr) AccessChain 27(data) 314 62 321: 23(f64vec4) Load 320 322: 23(f64vec4) VectorShuffle 321 319 4 5 2 3 Store 320 322 323: 6(int) Load 8(invocation) 324: 145(ptr) AccessChain 27(data) 51 62 325: 23(f64vec4) Load 324 326:155(f64vec3) VectorShuffle 325 325 0 1 2 327: 6(int) Load 8(invocation) 328:155(f64vec3) GroupNonUniformShuffleXor 35 326 327 329: 145(ptr) AccessChain 27(data) 323 62 330: 23(f64vec4) Load 329 331: 23(f64vec4) VectorShuffle 330 328 4 5 6 3 Store 329 331 332: 6(int) Load 8(invocation) 333: 145(ptr) AccessChain 27(data) 62 62 334: 23(f64vec4) Load 333 335: 6(int) Load 8(invocation) 336: 23(f64vec4) GroupNonUniformShuffleXor 35 334 335 337: 145(ptr) AccessChain 27(data) 332 62 Store 337 336 338: 6(int) Load 8(invocation) 339: 69(ptr) AccessChain 27(data) 29 39 30 340: 19(int) Load 339 341: 173(bool) SLessThan 340 29 342: 6(int) Load 8(invocation) 343: 173(bool) GroupNonUniformShuffleXor 35 341 342 344: 19(int) Select 343 39 29 345: 69(ptr) AccessChain 27(data) 338 39 30 Store 345 344 346: 6(int) Load 8(invocation) 347: 77(ptr) AccessChain 27(data) 39 39 348: 20(ivec4) Load 347 349: 76(ivec2) VectorShuffle 348 348 0 1 350: 184(bvec2) SLessThan 349 183 351: 6(int) Load 8(invocation) 352: 184(bvec2) GroupNonUniformShuffleXor 35 350 351 353: 76(ivec2) Select 352 188 183 354: 77(ptr) AccessChain 27(data) 346 39 355: 20(ivec4) Load 354 356: 20(ivec4) VectorShuffle 355 353 4 5 2 3 Store 354 356 357: 6(int) Load 8(invocation) 358: 77(ptr) AccessChain 27(data) 39 39 359: 20(ivec4) Load 358 360: 87(ivec3) VectorShuffle 359 359 0 1 2 361: 198(bvec3) SLessThan 360 197 362: 6(int) Load 8(invocation) 363: 198(bvec3) GroupNonUniformShuffleXor 35 361 362 364: 87(ivec3) Select 363 202 197 365: 77(ptr) AccessChain 27(data) 357 39 366: 20(ivec4) Load 365 367: 20(ivec4) VectorShuffle 366 364 4 5 6 3 Store 365 367 368: 6(int) Load 8(invocation) 369: 77(ptr) AccessChain 27(data) 39 39 370: 20(ivec4) Load 369 371: 211(bvec4) SLessThan 370 210 372: 6(int) Load 8(invocation) 373: 211(bvec4) GroupNonUniformShuffleXor 35 371 372 374: 20(ivec4) Select 373 215 210 375: 77(ptr) AccessChain 27(data) 368 39 Store 375 374 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupShuffleRelative.comp.out000066400000000000000000000571701360464450000261030ustar00rootroot00000000000000spv.subgroupShuffleRelative.comp // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 379 Capability Shader Capability Float64 Capability GroupNonUniform Capability GroupNonUniformShuffleRelative 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" 10 12 ExecutionMode 4 LocalSize 8 8 1 Source GLSL 450 SourceExtension "GL_KHR_shader_subgroup_basic" SourceExtension "GL_KHR_shader_subgroup_shuffle_relative" Name 4 "main" Name 8 "invocation" Name 10 "gl_SubgroupInvocationID" Name 12 "gl_SubgroupSize" Name 24 "Buffers" MemberName 24(Buffers) 0 "f4" MemberName 24(Buffers) 1 "i4" MemberName 24(Buffers) 2 "u4" MemberName 24(Buffers) 3 "d4" Name 27 "data" Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId Decorate 11 RelaxedPrecision Decorate 12(gl_SubgroupSize) RelaxedPrecision Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize Decorate 13 RelaxedPrecision Decorate 14 RelaxedPrecision Decorate 16 RelaxedPrecision MemberDecorate 24(Buffers) 0 Offset 0 MemberDecorate 24(Buffers) 1 Offset 16 MemberDecorate 24(Buffers) 2 Offset 32 MemberDecorate 24(Buffers) 3 Offset 64 Decorate 24(Buffers) Block Decorate 27(data) DescriptorSet 0 Decorate 27(data) Binding 0 Decorate 378 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 9: TypePointer Input 6(int) 10(gl_SubgroupInvocationID): 9(ptr) Variable Input 12(gl_SubgroupSize): 9(ptr) Variable Input 15: 6(int) Constant 4 17: TypeFloat 32 18: TypeVector 17(float) 4 19: TypeInt 32 1 20: TypeVector 19(int) 4 21: TypeVector 6(int) 4 22: TypeFloat 64 23: TypeVector 22(float64_t) 4 24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) 25: TypeArray 24(Buffers) 15 26: TypePointer 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) 51: 19(int) Constant 2 52: TypeVector 17(float) 3 62: 19(int) Constant 3 69: TypePointer StorageBuffer 19(int) 76: TypeVector 19(int) 2 77: TypePointer StorageBuffer 20(ivec4) 87: TypeVector 19(int) 3 103: TypePointer StorageBuffer 6(int) 110: TypeVector 6(int) 2 111: TypePointer StorageBuffer 21(ivec4) 121: TypeVector 6(int) 3 137: TypePointer StorageBuffer 22(float64_t) 144: TypeVector 22(float64_t) 2 145: TypePointer StorageBuffer 23(f64vec4) 155: TypeVector 22(float64_t) 3 173: TypeBool 183: 76(ivec2) ConstantComposite 29 29 184: TypeVector 173(bool) 2 188: 76(ivec2) ConstantComposite 39 39 197: 87(ivec3) ConstantComposite 29 29 29 198: TypeVector 173(bool) 3 202: 87(ivec3) ConstantComposite 39 39 39 210: 20(ivec4) ConstantComposite 29 29 29 29 211: TypeVector 173(bool) 4 215: 20(ivec4) ConstantComposite 39 39 39 39 376: 6(int) Constant 8 377: 6(int) Constant 1 378: 121(ivec3) ConstantComposite 376 376 377 4(main): 2 Function None 3 5: Label 8(invocation): 7(ptr) Variable Function 11: 6(int) Load 10(gl_SubgroupInvocationID) 13: 6(int) Load 12(gl_SubgroupSize) 14: 6(int) IAdd 11 13 16: 6(int) UMod 14 15 Store 8(invocation) 16 28: 6(int) Load 8(invocation) 32: 31(ptr) AccessChain 27(data) 29 29 30 33: 17(float) Load 32 34: 6(int) Load 8(invocation) 36: 17(float) GroupNonUniformShuffleUp 35 33 34 37: 31(ptr) AccessChain 27(data) 28 29 30 Store 37 36 38: 6(int) Load 8(invocation) 42: 41(ptr) AccessChain 27(data) 39 29 43: 18(fvec4) Load 42 44: 40(fvec2) VectorShuffle 43 43 0 1 45: 6(int) Load 8(invocation) 46: 40(fvec2) GroupNonUniformShuffleUp 35 44 45 47: 41(ptr) AccessChain 27(data) 38 29 48: 18(fvec4) Load 47 49: 18(fvec4) VectorShuffle 48 46 4 5 2 3 Store 47 49 50: 6(int) Load 8(invocation) 53: 41(ptr) AccessChain 27(data) 51 29 54: 18(fvec4) Load 53 55: 52(fvec3) VectorShuffle 54 54 0 1 2 56: 6(int) Load 8(invocation) 57: 52(fvec3) GroupNonUniformShuffleUp 35 55 56 58: 41(ptr) AccessChain 27(data) 50 29 59: 18(fvec4) Load 58 60: 18(fvec4) VectorShuffle 59 57 4 5 6 3 Store 58 60 61: 6(int) Load 8(invocation) 63: 41(ptr) AccessChain 27(data) 62 29 64: 18(fvec4) Load 63 65: 6(int) Load 8(invocation) 66: 18(fvec4) GroupNonUniformShuffleUp 35 64 65 67: 41(ptr) AccessChain 27(data) 61 29 Store 67 66 68: 6(int) Load 8(invocation) 70: 69(ptr) AccessChain 27(data) 29 39 30 71: 19(int) Load 70 72: 6(int) Load 8(invocation) 73: 19(int) GroupNonUniformShuffleUp 35 71 72 74: 69(ptr) AccessChain 27(data) 68 39 30 Store 74 73 75: 6(int) Load 8(invocation) 78: 77(ptr) AccessChain 27(data) 39 39 79: 20(ivec4) Load 78 80: 76(ivec2) VectorShuffle 79 79 0 1 81: 6(int) Load 8(invocation) 82: 76(ivec2) GroupNonUniformShuffleUp 35 80 81 83: 77(ptr) AccessChain 27(data) 75 39 84: 20(ivec4) Load 83 85: 20(ivec4) VectorShuffle 84 82 4 5 2 3 Store 83 85 86: 6(int) Load 8(invocation) 88: 77(ptr) AccessChain 27(data) 51 39 89: 20(ivec4) Load 88 90: 87(ivec3) VectorShuffle 89 89 0 1 2 91: 6(int) Load 8(invocation) 92: 87(ivec3) GroupNonUniformShuffleUp 35 90 91 93: 77(ptr) AccessChain 27(data) 86 39 94: 20(ivec4) Load 93 95: 20(ivec4) VectorShuffle 94 92 4 5 6 3 Store 93 95 96: 6(int) Load 8(invocation) 97: 77(ptr) AccessChain 27(data) 62 39 98: 20(ivec4) Load 97 99: 6(int) Load 8(invocation) 100: 20(ivec4) GroupNonUniformShuffleUp 35 98 99 101: 77(ptr) AccessChain 27(data) 96 39 Store 101 100 102: 6(int) Load 8(invocation) 104: 103(ptr) AccessChain 27(data) 29 51 30 105: 6(int) Load 104 106: 6(int) Load 8(invocation) 107: 6(int) GroupNonUniformShuffleUp 35 105 106 108: 103(ptr) AccessChain 27(data) 102 51 30 Store 108 107 109: 6(int) Load 8(invocation) 112: 111(ptr) AccessChain 27(data) 39 51 113: 21(ivec4) Load 112 114: 110(ivec2) VectorShuffle 113 113 0 1 115: 6(int) Load 8(invocation) 116: 110(ivec2) GroupNonUniformShuffleUp 35 114 115 117: 111(ptr) AccessChain 27(data) 109 51 118: 21(ivec4) Load 117 119: 21(ivec4) VectorShuffle 118 116 4 5 2 3 Store 117 119 120: 6(int) Load 8(invocation) 122: 111(ptr) AccessChain 27(data) 51 51 123: 21(ivec4) Load 122 124: 121(ivec3) VectorShuffle 123 123 0 1 2 125: 6(int) Load 8(invocation) 126: 121(ivec3) GroupNonUniformShuffleUp 35 124 125 127: 111(ptr) AccessChain 27(data) 120 51 128: 21(ivec4) Load 127 129: 21(ivec4) VectorShuffle 128 126 4 5 6 3 Store 127 129 130: 6(int) Load 8(invocation) 131: 111(ptr) AccessChain 27(data) 62 51 132: 21(ivec4) Load 131 133: 6(int) Load 8(invocation) 134: 21(ivec4) GroupNonUniformShuffleUp 35 132 133 135: 111(ptr) AccessChain 27(data) 130 51 Store 135 134 136: 6(int) Load 8(invocation) 138: 137(ptr) AccessChain 27(data) 29 62 30 139:22(float64_t) Load 138 140: 6(int) Load 8(invocation) 141:22(float64_t) GroupNonUniformShuffleUp 35 139 140 142: 137(ptr) AccessChain 27(data) 136 62 30 Store 142 141 143: 6(int) Load 8(invocation) 146: 145(ptr) AccessChain 27(data) 39 62 147: 23(f64vec4) Load 146 148:144(f64vec2) VectorShuffle 147 147 0 1 149: 6(int) Load 8(invocation) 150:144(f64vec2) GroupNonUniformShuffleUp 35 148 149 151: 145(ptr) AccessChain 27(data) 143 62 152: 23(f64vec4) Load 151 153: 23(f64vec4) VectorShuffle 152 150 4 5 2 3 Store 151 153 154: 6(int) Load 8(invocation) 156: 145(ptr) AccessChain 27(data) 51 62 157: 23(f64vec4) Load 156 158:155(f64vec3) VectorShuffle 157 157 0 1 2 159: 6(int) Load 8(invocation) 160:155(f64vec3) GroupNonUniformShuffleUp 35 158 159 161: 145(ptr) AccessChain 27(data) 154 62 162: 23(f64vec4) Load 161 163: 23(f64vec4) VectorShuffle 162 160 4 5 6 3 Store 161 163 164: 6(int) Load 8(invocation) 165: 145(ptr) AccessChain 27(data) 62 62 166: 23(f64vec4) Load 165 167: 6(int) Load 8(invocation) 168: 23(f64vec4) GroupNonUniformShuffleUp 35 166 167 169: 145(ptr) AccessChain 27(data) 164 62 Store 169 168 170: 6(int) Load 8(invocation) 171: 69(ptr) AccessChain 27(data) 29 39 30 172: 19(int) Load 171 174: 173(bool) SLessThan 172 29 175: 6(int) Load 8(invocation) 176: 173(bool) GroupNonUniformShuffleUp 35 174 175 177: 19(int) Select 176 39 29 178: 69(ptr) AccessChain 27(data) 170 39 30 Store 178 177 179: 6(int) Load 8(invocation) 180: 77(ptr) AccessChain 27(data) 39 39 181: 20(ivec4) Load 180 182: 76(ivec2) VectorShuffle 181 181 0 1 185: 184(bvec2) SLessThan 182 183 186: 6(int) Load 8(invocation) 187: 184(bvec2) GroupNonUniformShuffleUp 35 185 186 189: 76(ivec2) Select 187 188 183 190: 77(ptr) AccessChain 27(data) 179 39 191: 20(ivec4) Load 190 192: 20(ivec4) VectorShuffle 191 189 4 5 2 3 Store 190 192 193: 6(int) Load 8(invocation) 194: 77(ptr) AccessChain 27(data) 39 39 195: 20(ivec4) Load 194 196: 87(ivec3) VectorShuffle 195 195 0 1 2 199: 198(bvec3) SLessThan 196 197 200: 6(int) Load 8(invocation) 201: 198(bvec3) GroupNonUniformShuffleUp 35 199 200 203: 87(ivec3) Select 201 202 197 204: 77(ptr) AccessChain 27(data) 193 39 205: 20(ivec4) Load 204 206: 20(ivec4) VectorShuffle 205 203 4 5 6 3 Store 204 206 207: 6(int) Load 8(invocation) 208: 77(ptr) AccessChain 27(data) 39 39 209: 20(ivec4) Load 208 212: 211(bvec4) SLessThan 209 210 213: 6(int) Load 8(invocation) 214: 211(bvec4) GroupNonUniformShuffleUp 35 212 213 216: 20(ivec4) Select 214 215 210 217: 77(ptr) AccessChain 27(data) 207 39 Store 217 216 218: 6(int) Load 8(invocation) 219: 31(ptr) AccessChain 27(data) 29 29 30 220: 17(float) Load 219 221: 6(int) Load 8(invocation) 222: 17(float) GroupNonUniformShuffleDown 35 220 221 223: 31(ptr) AccessChain 27(data) 218 29 30 Store 223 222 224: 6(int) Load 8(invocation) 225: 41(ptr) AccessChain 27(data) 39 29 226: 18(fvec4) Load 225 227: 40(fvec2) VectorShuffle 226 226 0 1 228: 6(int) Load 8(invocation) 229: 40(fvec2) GroupNonUniformShuffleDown 35 227 228 230: 41(ptr) AccessChain 27(data) 224 29 231: 18(fvec4) Load 230 232: 18(fvec4) VectorShuffle 231 229 4 5 2 3 Store 230 232 233: 6(int) Load 8(invocation) 234: 41(ptr) AccessChain 27(data) 51 29 235: 18(fvec4) Load 234 236: 52(fvec3) VectorShuffle 235 235 0 1 2 237: 6(int) Load 8(invocation) 238: 52(fvec3) GroupNonUniformShuffleDown 35 236 237 239: 41(ptr) AccessChain 27(data) 233 29 240: 18(fvec4) Load 239 241: 18(fvec4) VectorShuffle 240 238 4 5 6 3 Store 239 241 242: 6(int) Load 8(invocation) 243: 41(ptr) AccessChain 27(data) 62 29 244: 18(fvec4) Load 243 245: 6(int) Load 8(invocation) 246: 18(fvec4) GroupNonUniformShuffleDown 35 244 245 247: 41(ptr) AccessChain 27(data) 242 29 Store 247 246 248: 6(int) Load 8(invocation) 249: 69(ptr) AccessChain 27(data) 29 39 30 250: 19(int) Load 249 251: 6(int) Load 8(invocation) 252: 19(int) GroupNonUniformShuffleDown 35 250 251 253: 69(ptr) AccessChain 27(data) 248 39 30 Store 253 252 254: 6(int) Load 8(invocation) 255: 77(ptr) AccessChain 27(data) 39 39 256: 20(ivec4) Load 255 257: 76(ivec2) VectorShuffle 256 256 0 1 258: 6(int) Load 8(invocation) 259: 76(ivec2) GroupNonUniformShuffleDown 35 257 258 260: 77(ptr) AccessChain 27(data) 254 39 261: 20(ivec4) Load 260 262: 20(ivec4) VectorShuffle 261 259 4 5 2 3 Store 260 262 263: 6(int) Load 8(invocation) 264: 77(ptr) AccessChain 27(data) 51 39 265: 20(ivec4) Load 264 266: 87(ivec3) VectorShuffle 265 265 0 1 2 267: 6(int) Load 8(invocation) 268: 87(ivec3) GroupNonUniformShuffleDown 35 266 267 269: 77(ptr) AccessChain 27(data) 263 39 270: 20(ivec4) Load 269 271: 20(ivec4) VectorShuffle 270 268 4 5 6 3 Store 269 271 272: 6(int) Load 8(invocation) 273: 77(ptr) AccessChain 27(data) 62 39 274: 20(ivec4) Load 273 275: 6(int) Load 8(invocation) 276: 20(ivec4) GroupNonUniformShuffleDown 35 274 275 277: 77(ptr) AccessChain 27(data) 272 39 Store 277 276 278: 6(int) Load 8(invocation) 279: 103(ptr) AccessChain 27(data) 29 51 30 280: 6(int) Load 279 281: 6(int) Load 8(invocation) 282: 6(int) GroupNonUniformShuffleDown 35 280 281 283: 103(ptr) AccessChain 27(data) 278 51 30 Store 283 282 284: 6(int) Load 8(invocation) 285: 111(ptr) AccessChain 27(data) 39 51 286: 21(ivec4) Load 285 287: 110(ivec2) VectorShuffle 286 286 0 1 288: 6(int) Load 8(invocation) 289: 110(ivec2) GroupNonUniformShuffleDown 35 287 288 290: 111(ptr) AccessChain 27(data) 284 51 291: 21(ivec4) Load 290 292: 21(ivec4) VectorShuffle 291 289 4 5 2 3 Store 290 292 293: 6(int) Load 8(invocation) 294: 111(ptr) AccessChain 27(data) 51 51 295: 21(ivec4) Load 294 296: 121(ivec3) VectorShuffle 295 295 0 1 2 297: 6(int) Load 8(invocation) 298: 121(ivec3) GroupNonUniformShuffleDown 35 296 297 299: 111(ptr) AccessChain 27(data) 293 51 300: 21(ivec4) Load 299 301: 21(ivec4) VectorShuffle 300 298 4 5 6 3 Store 299 301 302: 6(int) Load 8(invocation) 303: 111(ptr) AccessChain 27(data) 62 51 304: 21(ivec4) Load 303 305: 6(int) Load 8(invocation) 306: 21(ivec4) GroupNonUniformShuffleDown 35 304 305 307: 111(ptr) AccessChain 27(data) 302 51 Store 307 306 308: 6(int) Load 8(invocation) 309: 137(ptr) AccessChain 27(data) 29 62 30 310:22(float64_t) Load 309 311: 6(int) Load 8(invocation) 312:22(float64_t) GroupNonUniformShuffleDown 35 310 311 313: 137(ptr) AccessChain 27(data) 308 62 30 Store 313 312 314: 6(int) Load 8(invocation) 315: 145(ptr) AccessChain 27(data) 39 62 316: 23(f64vec4) Load 315 317:144(f64vec2) VectorShuffle 316 316 0 1 318: 6(int) Load 8(invocation) 319:144(f64vec2) GroupNonUniformShuffleDown 35 317 318 320: 145(ptr) AccessChain 27(data) 314 62 321: 23(f64vec4) Load 320 322: 23(f64vec4) VectorShuffle 321 319 4 5 2 3 Store 320 322 323: 6(int) Load 8(invocation) 324: 145(ptr) AccessChain 27(data) 51 62 325: 23(f64vec4) Load 324 326:155(f64vec3) VectorShuffle 325 325 0 1 2 327: 6(int) Load 8(invocation) 328:155(f64vec3) GroupNonUniformShuffleDown 35 326 327 329: 145(ptr) AccessChain 27(data) 323 62 330: 23(f64vec4) Load 329 331: 23(f64vec4) VectorShuffle 330 328 4 5 6 3 Store 329 331 332: 6(int) Load 8(invocation) 333: 145(ptr) AccessChain 27(data) 62 62 334: 23(f64vec4) Load 333 335: 6(int) Load 8(invocation) 336: 23(f64vec4) GroupNonUniformShuffleDown 35 334 335 337: 145(ptr) AccessChain 27(data) 332 62 Store 337 336 338: 6(int) Load 8(invocation) 339: 69(ptr) AccessChain 27(data) 29 39 30 340: 19(int) Load 339 341: 173(bool) SLessThan 340 29 342: 6(int) Load 8(invocation) 343: 173(bool) GroupNonUniformShuffleDown 35 341 342 344: 19(int) Select 343 39 29 345: 69(ptr) AccessChain 27(data) 338 39 30 Store 345 344 346: 6(int) Load 8(invocation) 347: 77(ptr) AccessChain 27(data) 39 39 348: 20(ivec4) Load 347 349: 76(ivec2) VectorShuffle 348 348 0 1 350: 184(bvec2) SLessThan 349 183 351: 6(int) Load 8(invocation) 352: 184(bvec2) GroupNonUniformShuffleDown 35 350 351 353: 76(ivec2) Select 352 188 183 354: 77(ptr) AccessChain 27(data) 346 39 355: 20(ivec4) Load 354 356: 20(ivec4) VectorShuffle 355 353 4 5 2 3 Store 354 356 357: 6(int) Load 8(invocation) 358: 77(ptr) AccessChain 27(data) 39 39 359: 20(ivec4) Load 358 360: 87(ivec3) VectorShuffle 359 359 0 1 2 361: 198(bvec3) SLessThan 360 197 362: 6(int) Load 8(invocation) 363: 198(bvec3) GroupNonUniformShuffleDown 35 361 362 364: 87(ivec3) Select 363 202 197 365: 77(ptr) AccessChain 27(data) 357 39 366: 20(ivec4) Load 365 367: 20(ivec4) VectorShuffle 366 364 4 5 6 3 Store 365 367 368: 6(int) Load 8(invocation) 369: 77(ptr) AccessChain 27(data) 39 39 370: 20(ivec4) Load 369 371: 211(bvec4) SLessThan 370 210 372: 6(int) Load 8(invocation) 373: 211(bvec4) GroupNonUniformShuffleDown 35 371 372 374: 20(ivec4) Select 373 215 210 375: 77(ptr) AccessChain 27(data) 368 39 Store 375 374 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.subgroupVote.comp.out000066400000000000000000000361001360464450000237160ustar00rootroot00000000000000spv.subgroupVote.comp // Module Version 10300 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.subpass.frag.out000066400000000000000000000141131360464450000226530ustar00rootroot00000000000000spv.subpass.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 67 Capability Shader Capability InputAttachment 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 15 27 53 ExecutionMode 4 OriginUpperLeft Source GLSL 400 Name 4 "main" Name 11 "foo(iIPM1;" Name 10 "sb" Name 15 "icolor" Name 27 "color" Name 30 "sub" Name 35 "subMS" Name 42 "isub" Name 45 "isubMS" Name 53 "ucolor" Name 56 "usub" Name 61 "usubMS" Decorate 30(sub) DescriptorSet 0 Decorate 30(sub) Binding 0 Decorate 30(sub) InputAttachmentIndex 1 Decorate 35(subMS) DescriptorSet 0 Decorate 35(subMS) Binding 0 Decorate 35(subMS) InputAttachmentIndex 2 Decorate 42(isub) DescriptorSet 0 Decorate 42(isub) Binding 0 Decorate 42(isub) InputAttachmentIndex 3 Decorate 45(isubMS) DescriptorSet 0 Decorate 45(isubMS) Binding 0 Decorate 45(isubMS) InputAttachmentIndex 4 Decorate 56(usub) DescriptorSet 0 Decorate 56(usub) Binding 0 Decorate 56(usub) InputAttachmentIndex 5 Decorate 61(usubMS) DescriptorSet 0 Decorate 61(usubMS) Binding 0 Decorate 61(usubMS) InputAttachmentIndex 6 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeImage 6(int) SubpassData multi-sampled nonsampled format:Unknown 8: TypePointer UniformConstant 7 9: TypeFunction 2 8(ptr) 13: TypeVector 6(int) 4 14: TypePointer Output 13(ivec4) 15(icolor): 14(ptr) Variable Output 17: 6(int) Constant 3 18: 6(int) Constant 0 19: TypeVector 6(int) 2 20: 19(ivec2) ConstantComposite 18 18 24: TypeFloat 32 25: TypeVector 24(float) 4 26: TypePointer Output 25(fvec4) 27(color): 26(ptr) Variable Output 28: TypeImage 24(float) SubpassData nonsampled format:Unknown 29: TypePointer UniformConstant 28 30(sub): 29(ptr) Variable UniformConstant 33: TypeImage 24(float) SubpassData multi-sampled nonsampled format:Unknown 34: TypePointer UniformConstant 33 35(subMS): 34(ptr) Variable UniformConstant 40: TypeImage 6(int) SubpassData nonsampled format:Unknown 41: TypePointer UniformConstant 40 42(isub): 41(ptr) Variable UniformConstant 45(isubMS): 8(ptr) Variable UniformConstant 50: TypeInt 32 0 51: TypeVector 50(int) 4 52: TypePointer Output 51(ivec4) 53(ucolor): 52(ptr) Variable Output 54: TypeImage 50(int) SubpassData nonsampled format:Unknown 55: TypePointer UniformConstant 54 56(usub): 55(ptr) Variable UniformConstant 59: TypeImage 50(int) SubpassData multi-sampled nonsampled format:Unknown 60: TypePointer UniformConstant 59 61(usubMS): 60(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 31: 28 Load 30(sub) 32: 25(fvec4) ImageRead 31 20 Store 27(color) 32 36: 33 Load 35(subMS) 37: 25(fvec4) ImageRead 36 20 Sample 17 38: 25(fvec4) Load 27(color) 39: 25(fvec4) FAdd 38 37 Store 27(color) 39 43: 40 Load 42(isub) 44: 13(ivec4) ImageRead 43 20 Store 15(icolor) 44 46: 7 Load 45(isubMS) 47: 13(ivec4) ImageRead 46 20 Sample 17 48: 13(ivec4) Load 15(icolor) 49: 13(ivec4) IAdd 48 47 Store 15(icolor) 49 57: 54 Load 56(usub) 58: 51(ivec4) ImageRead 57 20 Store 53(ucolor) 58 62: 59 Load 61(usubMS) 63: 51(ivec4) ImageRead 62 20 Sample 17 64: 51(ivec4) Load 53(ucolor) 65: 51(ivec4) IAdd 64 63 Store 53(ucolor) 65 66: 2 FunctionCall 11(foo(iIPM1;) 45(isubMS) Return FunctionEnd 11(foo(iIPM1;): 2 Function None 9 10(sb): 8(ptr) FunctionParameter 12: Label 16: 7 Load 10(sb) 21: 13(ivec4) ImageRead 16 20 Sample 17 22: 13(ivec4) Load 15(icolor) 23: 13(ivec4) IAdd 22 21 Store 15(icolor) 23 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.switch.frag.out000066400000000000000000000634031360464450000225020ustar00rootroot00000000000000spv.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): 80008 // Id's are bound by 269 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 62 75 129 227 233 ExecutionMode 4 OriginUpperLeft Source ESSL 310 Name 4 "main" Name 15 "foo1(vf4;vf4;i1;" Name 12 "v1" Name 13 "v2" Name 14 "i1" Name 20 "foo2(vf4;vf4;i1;" Name 17 "v1" Name 18 "v2" Name 19 "i1" Name 60 "local" Name 62 "c" Name 73 "f" Name 75 "x" Name 129 "d" Name 155 "i" Name 175 "j" Name 227 "color" Name 233 "v" Name 234 "param" Name 236 "param" Name 238 "param" Name 246 "param" Name 248 "param" Name 250 "param" Decorate 15(foo1(vf4;vf4;i1;) RelaxedPrecision Decorate 12(v1) RelaxedPrecision Decorate 13(v2) RelaxedPrecision Decorate 14(i1) RelaxedPrecision Decorate 20(foo2(vf4;vf4;i1;) RelaxedPrecision Decorate 17(v1) RelaxedPrecision Decorate 18(v2) RelaxedPrecision Decorate 19(i1) RelaxedPrecision Decorate 22 RelaxedPrecision Decorate 27 RelaxedPrecision Decorate 29 RelaxedPrecision Decorate 31 RelaxedPrecision Decorate 32 RelaxedPrecision Decorate 33 RelaxedPrecision Decorate 40 RelaxedPrecision Decorate 46 RelaxedPrecision Decorate 51 RelaxedPrecision Decorate 53 RelaxedPrecision Decorate 54 RelaxedPrecision Decorate 55 RelaxedPrecision Decorate 60(local) RelaxedPrecision Decorate 62(c) RelaxedPrecision Decorate 62(c) Flat Decorate 63 RelaxedPrecision Decorate 64 RelaxedPrecision Decorate 66 RelaxedPrecision Decorate 67 RelaxedPrecision Decorate 73(f) RelaxedPrecision Decorate 75(x) RelaxedPrecision Decorate 76 RelaxedPrecision Decorate 77 RelaxedPrecision Decorate 79 RelaxedPrecision Decorate 80 RelaxedPrecision Decorate 82 RelaxedPrecision Decorate 83 RelaxedPrecision Decorate 85 RelaxedPrecision Decorate 90 RelaxedPrecision Decorate 91 RelaxedPrecision Decorate 92 RelaxedPrecision Decorate 93 RelaxedPrecision Decorate 94 RelaxedPrecision Decorate 95 RelaxedPrecision Decorate 96 RelaxedPrecision Decorate 97 RelaxedPrecision Decorate 99 RelaxedPrecision Decorate 100 RelaxedPrecision Decorate 101 RelaxedPrecision Decorate 102 RelaxedPrecision Decorate 104 RelaxedPrecision Decorate 108 RelaxedPrecision Decorate 109 RelaxedPrecision Decorate 110 RelaxedPrecision Decorate 111 RelaxedPrecision Decorate 113 RelaxedPrecision Decorate 114 RelaxedPrecision Decorate 115 RelaxedPrecision Decorate 116 RelaxedPrecision Decorate 119 RelaxedPrecision Decorate 124 RelaxedPrecision Decorate 125 RelaxedPrecision Decorate 126 RelaxedPrecision Decorate 127 RelaxedPrecision Decorate 129(d) RelaxedPrecision Decorate 129(d) Flat Decorate 130 RelaxedPrecision Decorate 134 RelaxedPrecision Decorate 135 RelaxedPrecision Decorate 136 RelaxedPrecision Decorate 137 RelaxedPrecision Decorate 138 RelaxedPrecision Decorate 139 RelaxedPrecision Decorate 140 RelaxedPrecision Decorate 142 RelaxedPrecision Decorate 143 RelaxedPrecision Decorate 144 RelaxedPrecision Decorate 145 RelaxedPrecision Decorate 146 RelaxedPrecision Decorate 150 RelaxedPrecision Decorate 151 RelaxedPrecision Decorate 152 RelaxedPrecision Decorate 153 RelaxedPrecision Decorate 155(i) RelaxedPrecision Decorate 162 RelaxedPrecision Decorate 166 RelaxedPrecision Decorate 171 RelaxedPrecision Decorate 172 RelaxedPrecision Decorate 173 RelaxedPrecision Decorate 174 RelaxedPrecision Decorate 175(j) RelaxedPrecision Decorate 182 RelaxedPrecision Decorate 185 RelaxedPrecision Decorate 186 RelaxedPrecision Decorate 187 RelaxedPrecision Decorate 193 RelaxedPrecision Decorate 194 RelaxedPrecision Decorate 196 RelaxedPrecision Decorate 197 RelaxedPrecision Decorate 198 RelaxedPrecision Decorate 199 RelaxedPrecision Decorate 202 RelaxedPrecision Decorate 203 RelaxedPrecision Decorate 204 RelaxedPrecision Decorate 205 RelaxedPrecision Decorate 207 RelaxedPrecision Decorate 213 RelaxedPrecision Decorate 214 RelaxedPrecision Decorate 215 RelaxedPrecision Decorate 219 RelaxedPrecision Decorate 220 RelaxedPrecision Decorate 221 RelaxedPrecision Decorate 222 RelaxedPrecision Decorate 227(color) RelaxedPrecision Decorate 228 RelaxedPrecision Decorate 229 RelaxedPrecision Decorate 230 RelaxedPrecision Decorate 231 RelaxedPrecision Decorate 233(v) RelaxedPrecision Decorate 235 RelaxedPrecision Decorate 237 RelaxedPrecision Decorate 239 RelaxedPrecision Decorate 240 RelaxedPrecision Decorate 243 RelaxedPrecision Decorate 244 RelaxedPrecision Decorate 245 RelaxedPrecision Decorate 247 RelaxedPrecision Decorate 249 RelaxedPrecision Decorate 251 RelaxedPrecision Decorate 252 RelaxedPrecision Decorate 254 RelaxedPrecision Decorate 255 RelaxedPrecision Decorate 256 RelaxedPrecision Decorate 257 RelaxedPrecision Decorate 264 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeInt 32 1 10: TypePointer Function 9(int) 11: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr) 36: 6(float) Constant 0 37: 7(fvec4) ConstantComposite 36 36 36 36 48: 6(float) Constant 1065353216 49: 7(fvec4) ConstantComposite 48 48 48 48 61: TypePointer Input 9(int) 62(c): 61(ptr) Variable Input 65: 9(int) Constant 1 72: TypePointer Function 6(float) 74: TypePointer Input 6(float) 75(x): 74(ptr) Variable Input 129(d): 61(ptr) Variable Input 156: 9(int) Constant 0 163: 9(int) Constant 10 164: TypeBool 176: 9(int) Constant 20 183: 9(int) Constant 30 188: 6(float) Constant 1120429670 208: 6(float) Constant 1079739679 226: TypePointer Output 6(float) 227(color): 226(ptr) Variable Output 232: TypePointer Input 7(fvec4) 233(v): 232(ptr) Variable Input 241: TypeInt 32 0 242: 241(int) Constant 1 253: 241(int) Constant 2 4(main): 2 Function None 3 5: Label 60(local): 10(ptr) Variable Function 73(f): 72(ptr) Variable Function 155(i): 10(ptr) Variable Function 175(j): 10(ptr) Variable Function 234(param): 8(ptr) Variable Function 236(param): 8(ptr) Variable Function 238(param): 10(ptr) Variable Function 246(param): 8(ptr) Variable Function 248(param): 8(ptr) Variable Function 250(param): 10(ptr) Variable Function 63: 9(int) Load 62(c) Store 60(local) 63 64: 9(int) Load 60(local) 66: 9(int) IAdd 64 65 Store 60(local) 66 67: 9(int) Load 62(c) SelectionMerge 71 None Switch 67 70 case 1: 68 case 2: 69 70: Label 82: 6(float) Load 75(x) 83: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 82 Store 73(f) 83 Branch 71 68: Label 76: 6(float) Load 75(x) 77: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 76 Store 73(f) 77 Branch 71 69: Label 79: 6(float) Load 75(x) 80: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 79 Store 73(f) 80 Branch 71 71: Label 85: 9(int) Load 62(c) SelectionMerge 89 None Switch 85 88 case 1: 86 case 2: 87 88: Label 99: 6(float) Load 75(x) 100: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 99 101: 6(float) Load 73(f) 102: 6(float) FAdd 101 100 Store 73(f) 102 Branch 89 86: Label 90: 6(float) Load 75(x) 91: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 90 92: 6(float) Load 73(f) 93: 6(float) FAdd 92 91 Store 73(f) 93 Branch 87 87: Label 94: 6(float) Load 75(x) 95: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 94 96: 6(float) Load 73(f) 97: 6(float) FAdd 96 95 Store 73(f) 97 Branch 89 89: Label 104: 9(int) Load 62(c) SelectionMerge 107 None Switch 104 107 case 1: 105 case 2: 106 105: Label 108: 6(float) Load 75(x) 109: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 108 110: 6(float) Load 73(f) 111: 6(float) FAdd 110 109 Store 73(f) 111 Branch 107 106: Label 113: 6(float) Load 75(x) 114: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 113 115: 6(float) Load 73(f) 116: 6(float) FAdd 115 114 Store 73(f) 116 Branch 107 107: Label 119: 9(int) Load 62(c) SelectionMerge 123 None Switch 119 122 case 1: 120 case 2: 121 122: Label 150: 6(float) Load 75(x) 151: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 150 152: 6(float) Load 73(f) 153: 6(float) FAdd 152 151 Store 73(f) 153 Branch 123 120: Label 124: 6(float) Load 75(x) 125: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 124 126: 6(float) Load 73(f) 127: 6(float) FAdd 126 125 Store 73(f) 127 Branch 123 121: Label 130: 9(int) Load 129(d) SelectionMerge 133 None Switch 130 133 case 1: 131 case 2: 132 131: Label 134: 6(float) Load 75(x) 135: 6(float) Load 75(x) 136: 6(float) FMul 134 135 137: 6(float) Load 75(x) 138: 6(float) FMul 136 137 139: 6(float) Load 73(f) 140: 6(float) FAdd 139 138 Store 73(f) 140 Branch 133 132: Label 142: 6(float) Load 75(x) 143: 6(float) Load 75(x) 144: 6(float) FMul 142 143 145: 6(float) Load 73(f) 146: 6(float) FAdd 145 144 Store 73(f) 146 Branch 133 133: Label Branch 123 123: Label Store 155(i) 156 Branch 157 157: Label LoopMerge 159 160 None Branch 161 161: Label 162: 9(int) Load 155(i) 165: 164(bool) SLessThan 162 163 BranchConditional 165 158 159 158: Label 166: 9(int) Load 62(c) SelectionMerge 170 None Switch 166 169 case 1: 167 case 2: 168 169: Label 202: 6(float) Load 75(x) 203: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 202 204: 6(float) Load 73(f) 205: 6(float) FAdd 204 203 Store 73(f) 205 Branch 170 167: Label 171: 6(float) Load 75(x) 172: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 171 173: 6(float) Load 73(f) 174: 6(float) FAdd 173 172 Store 73(f) 174 Store 175(j) 176 Branch 177 177: Label LoopMerge 179 180 None Branch 181 181: Label 182: 9(int) Load 175(j) 184: 164(bool) SLessThan 182 183 BranchConditional 184 178 179 178: Label 185: 6(float) Load 73(f) 186: 6(float) FAdd 185 48 Store 73(f) 186 187: 6(float) Load 73(f) 189: 164(bool) FOrdLessThan 187 188 SelectionMerge 191 None BranchConditional 189 190 191 190: Label Branch 179 191: Label Branch 180 180: Label 193: 9(int) Load 175(j) 194: 9(int) IAdd 193 65 Store 175(j) 194 Branch 177 179: Label Branch 170 168: Label 196: 6(float) Load 75(x) 197: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 196 198: 6(float) Load 73(f) 199: 6(float) FAdd 198 197 Store 73(f) 199 Branch 170 170: Label 207: 6(float) Load 73(f) 209: 164(bool) FOrdLessThan 207 208 SelectionMerge 211 None BranchConditional 209 210 211 210: Label Branch 159 211: Label Branch 160 160: Label 213: 9(int) Load 155(i) 214: 9(int) IAdd 213 65 Store 155(i) 214 Branch 157 159: Label 215: 9(int) Load 62(c) SelectionMerge 218 None Switch 215 218 case 1: 216 case 2: 217 216: Label 219: 6(float) Load 75(x) 220: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 219 221: 6(float) Load 73(f) 222: 6(float) FAdd 221 220 Store 73(f) 222 Branch 218 217: Label Branch 218 218: Label 228: 6(float) Load 73(f) 229: 9(int) Load 60(local) 230: 6(float) ConvertSToF 229 231: 6(float) FAdd 228 230 Store 227(color) 231 235: 7(fvec4) Load 233(v) Store 234(param) 235 237: 7(fvec4) Load 233(v) Store 236(param) 237 239: 9(int) Load 62(c) Store 238(param) 239 240: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 234(param) 236(param) 238(param) 243: 6(float) CompositeExtract 240 1 244: 6(float) Load 227(color) 245: 6(float) FAdd 244 243 Store 227(color) 245 247: 7(fvec4) Load 233(v) Store 246(param) 247 249: 7(fvec4) Load 233(v) Store 248(param) 249 251: 9(int) Load 62(c) Store 250(param) 251 252: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 246(param) 248(param) 250(param) 254: 6(float) CompositeExtract 252 2 255: 6(float) Load 227(color) 256: 6(float) FAdd 255 254 Store 227(color) 256 257: 9(int) Load 62(c) SelectionMerge 260 None Switch 257 259 case 0: 258 259: Label Branch 260 258: Label Branch 260 260: Label 264: 9(int) Load 62(c) SelectionMerge 266 None Switch 264 265 265: Label Branch 266 266: Label Return FunctionEnd 15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11 12(v1): 8(ptr) FunctionParameter 13(v2): 8(ptr) FunctionParameter 14(i1): 10(ptr) FunctionParameter 16: Label 22: 9(int) Load 14(i1) SelectionMerge 26 None Switch 22 26 case 0: 23 case 2: 24 case 1: 24 case 3: 25 23: Label 27: 7(fvec4) Load 12(v1) ReturnValue 27 24: Label 29: 7(fvec4) Load 13(v2) ReturnValue 29 25: Label 31: 7(fvec4) Load 12(v1) 32: 7(fvec4) Load 13(v2) 33: 7(fvec4) FMul 31 32 ReturnValue 33 26: Label ReturnValue 37 FunctionEnd 20(foo2(vf4;vf4;i1;): 7(fvec4) Function None 11 17(v1): 8(ptr) FunctionParameter 18(v2): 8(ptr) FunctionParameter 19(i1): 10(ptr) FunctionParameter 21: Label 40: 9(int) Load 19(i1) SelectionMerge 45 None Switch 40 45 case 0: 41 case 2: 42 case 1: 43 case 3: 44 41: Label 46: 7(fvec4) Load 17(v1) ReturnValue 46 42: Label ReturnValue 49 43: Label 51: 7(fvec4) Load 18(v2) ReturnValue 51 44: Label 53: 7(fvec4) Load 17(v1) 54: 7(fvec4) Load 18(v2) 55: 7(fvec4) FMul 53 54 ReturnValue 55 45: Label ReturnValue 37 FunctionEnd glslang-8.13.3559/Test/baseResults/spv.swizzle.frag.out000066400000000000000000000173041360464450000227070ustar00rootroot00000000000000spv.swizzle.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 108 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 14 30 69 107 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 8 "blendscale" Name 12 "w" Name 14 "u" Name 16 "w_dep" Name 18 "w_reorder" Name 20 "w2" Name 22 "w_flow" Name 30 "t" Name 49 "w_undef" Name 56 "p" Name 69 "gl_FragColor" Name 81 "c" Name 83 "rep" Name 107 "blend" Decorate 69(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 9: 6(float) Constant 1071971828 10: TypeVector 6(float) 4 11: TypePointer Function 10(fvec4) 13: TypePointer Input 10(fvec4) 14(u): 13(ptr) Variable Input 25: TypeInt 32 0 26: 25(int) Constant 2 28: TypeVector 6(float) 2 29: TypePointer Input 28(fvec2) 30(t): 29(ptr) Variable Input 35: 25(int) Constant 0 40: 25(int) Constant 1 54: TypeBool 55: TypePointer Private 54(bool) 56(p): 55(ptr) Variable Private 60: TypePointer Input 6(float) 68: TypePointer Output 10(fvec4) 69(gl_FragColor): 68(ptr) Variable Output 80: TypePointer Function 28(fvec2) 84: 6(float) Constant 0 85: 6(float) Constant 1065353216 86: 10(fvec4) ConstantComposite 84 84 84 85 92: 6(float) Constant 3212836864 102: 6(float) Constant 1079613850 107(blend): 60(ptr) Variable Input 4(main): 2 Function None 3 5: Label 8(blendscale): 7(ptr) Variable Function 12(w): 11(ptr) Variable Function 16(w_dep): 11(ptr) Variable Function 18(w_reorder): 11(ptr) Variable Function 20(w2): 11(ptr) Variable Function 22(w_flow): 11(ptr) Variable Function 49(w_undef): 11(ptr) Variable Function 81(c): 80(ptr) Variable Function 83(rep): 11(ptr) Variable Function Store 8(blendscale) 9 15: 10(fvec4) Load 14(u) Store 12(w) 15 17: 10(fvec4) Load 14(u) Store 16(w_dep) 17 19: 10(fvec4) Load 14(u) Store 18(w_reorder) 19 21: 10(fvec4) Load 14(u) Store 20(w2) 21 23: 10(fvec4) Load 14(u) Store 22(w_flow) 23 24: 6(float) Load 8(blendscale) 27: 7(ptr) AccessChain 18(w_reorder) 26 Store 27 24 31: 28(fvec2) Load 30(t) 32: 10(fvec4) Load 12(w) 33: 10(fvec4) VectorShuffle 32 31 0 5 2 4 Store 12(w) 33 34: 6(float) Load 8(blendscale) 36: 7(ptr) AccessChain 18(w_reorder) 35 Store 36 34 37: 10(fvec4) Load 14(u) 38: 10(fvec4) VectorShuffle 37 37 2 3 0 1 Store 20(w2) 38 39: 6(float) Load 8(blendscale) 41: 7(ptr) AccessChain 18(w_reorder) 40 Store 41 39 42: 10(fvec4) Load 20(w2) 43: 28(fvec2) VectorShuffle 42 42 0 2 44: 10(fvec4) Load 16(w_dep) 45: 10(fvec4) VectorShuffle 44 43 4 5 2 3 Store 16(w_dep) 45 46: 28(fvec2) Load 30(t) 47: 10(fvec4) Load 16(w_dep) 48: 10(fvec4) VectorShuffle 47 46 0 1 4 5 Store 16(w_dep) 48 50: 10(fvec4) Load 14(u) 51: 28(fvec2) VectorShuffle 50 50 2 3 52: 10(fvec4) Load 49(w_undef) 53: 10(fvec4) VectorShuffle 52 51 4 5 2 3 Store 49(w_undef) 53 57: 54(bool) Load 56(p) SelectionMerge 59 None BranchConditional 57 58 64 58: Label 61: 60(ptr) AccessChain 30(t) 35 62: 6(float) Load 61 63: 7(ptr) AccessChain 22(w_flow) 35 Store 63 62 Branch 59 64: Label 65: 60(ptr) AccessChain 30(t) 40 66: 6(float) Load 65 67: 7(ptr) AccessChain 22(w_flow) 35 Store 67 66 Branch 59 59: Label 70: 10(fvec4) Load 18(w_reorder) 71: 10(fvec4) Load 49(w_undef) 72: 10(fvec4) Load 12(w) 73: 10(fvec4) Load 20(w2) 74: 10(fvec4) FMul 72 73 75: 10(fvec4) Load 16(w_dep) 76: 10(fvec4) FMul 74 75 77: 10(fvec4) Load 22(w_flow) 78: 10(fvec4) FMul 76 77 79: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 70 71 78 Store 69(gl_FragColor) 79 82: 28(fvec2) Load 30(t) Store 81(c) 82 Store 83(rep) 86 87: 7(ptr) AccessChain 81(c) 35 88: 6(float) Load 87 89: 54(bool) FOrdLessThan 88 84 SelectionMerge 91 None BranchConditional 89 90 91 90: Label 93: 7(ptr) AccessChain 81(c) 35 94: 6(float) Load 93 95: 6(float) FMul 94 92 96: 7(ptr) AccessChain 81(c) 35 Store 96 95 Branch 91 91: Label 97: 7(ptr) AccessChain 81(c) 35 98: 6(float) Load 97 99: 54(bool) FOrdLessThanEqual 98 85 SelectionMerge 101 None BranchConditional 99 100 101 100: Label 103: 7(ptr) AccessChain 83(rep) 35 Store 103 102 Branch 101 101: Label 104: 10(fvec4) Load 83(rep) 105: 10(fvec4) Load 69(gl_FragColor) 106: 10(fvec4) FAdd 105 104 Store 69(gl_FragColor) 106 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.swizzleInversion.frag.out000066400000000000000000000074041360464450000246040ustar00rootroot00000000000000spv.swizzleInversion.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 46 Capability Shader Capability InterpolationFunction 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 12 37 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "v43" Name 12 "in4" Name 17 "v42" Name 23 "v44" Name 29 "v41" Name 35 "v33" Name 37 "in3" Name 40 "v32" Name 43 "v31" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8: TypePointer Function 7(fvec3) 10: TypeVector 6(float) 4 11: TypePointer Input 10(fvec4) 12(in4): 11(ptr) Variable Input 15: TypeVector 6(float) 2 16: TypePointer Function 15(fvec2) 18: TypeInt 32 1 19: 18(int) Constant 1 22: TypePointer Function 10(fvec4) 24: 6(float) Constant 1073741824 25: 15(fvec2) ConstantComposite 24 24 28: TypePointer Function 6(float) 30: TypeInt 32 0 31: 30(int) Constant 1 32: TypePointer Input 6(float) 36: TypePointer Input 7(fvec3) 37(in3): 36(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(v43): 8(ptr) Variable Function 17(v42): 16(ptr) Variable Function 23(v44): 22(ptr) Variable Function 29(v41): 28(ptr) Variable Function 35(v33): 8(ptr) Variable Function 40(v32): 16(ptr) Variable Function 43(v31): 28(ptr) Variable Function 13: 10(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 12(in4) 14: 7(fvec3) VectorShuffle 13 13 3 2 0 Store 9(v43) 14 20: 10(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 12(in4) 19 21: 15(fvec2) VectorShuffle 20 20 2 0 Store 17(v42) 21 26: 10(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 12(in4) 25 27: 10(fvec4) VectorShuffle 26 26 2 1 0 3 Store 23(v44) 27 33: 32(ptr) AccessChain 12(in4) 31 34: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33 25 Store 29(v41) 34 38: 7(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 37(in3) 39: 7(fvec3) VectorShuffle 38 38 1 2 0 Store 35(v33) 39 41: 7(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 37(in3) 19 42: 15(fvec2) VectorShuffle 41 41 2 0 Store 40(v32) 42 44: 32(ptr) AccessChain 12(in4) 31 45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 44 25 Store 43(v31) 45 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.test.frag.out000066400000000000000000000103631360464450000221550ustar00rootroot00000000000000spv.test.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 33(texSampler3D) DescriptorSet 0 Decorate 33(texSampler3D) Binding 0 Decorate 43(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 9: 6(float) Constant 1071971828 10: TypeVector 6(float) 4 11: TypePointer Function 10(fvec4) 13: TypeImage 6(float) 2D sampled format:Unknown 14: TypeSampledImage 13 15: TypePointer UniformConstant 14 16(texSampler2D): 15(ptr) Variable UniformConstant 18: TypeVector 6(float) 2 19: TypePointer Input 18(fvec2) 20(t): 19(ptr) Variable Input 22(scale): 19(ptr) Variable Input 30: TypeImage 6(float) 3D sampled format:Unknown 31: TypeSampledImage 30 32: TypePointer UniformConstant 31 33(texSampler3D): 32(ptr) Variable UniformConstant 35: TypeVector 6(float) 3 36: TypePointer Input 35(fvec3) 37(coords): 36(ptr) Variable Input 42: TypePointer Output 10(fvec4) 43(gl_FragColor): 42(ptr) Variable Output 45: TypePointer Input 10(fvec4) 46(u): 45(ptr) Variable Input 48: TypePointer Input 6(float) 49(blend): 48(ptr) Variable Input 4(main): 2 Function None 3 5: Label 8(blendscale): 7(ptr) Variable Function 12(v): 11(ptr) Variable Function 29(w): 11(ptr) Variable Function Store 8(blendscale) 9 17: 14 Load 16(texSampler2D) 21: 18(fvec2) Load 20(t) 23: 18(fvec2) Load 22(scale) 24: 18(fvec2) FAdd 21 23 25: 18(fvec2) Load 22(scale) 26: 18(fvec2) FDiv 24 25 27: 10(fvec4) ImageSampleImplicitLod 17 26 28: 10(fvec4) VectorShuffle 27 27 3 2 1 0 Store 12(v) 28 34: 31 Load 33(texSampler3D) 38: 35(fvec3) Load 37(coords) 39: 10(fvec4) ImageSampleImplicitLod 34 38 40: 10(fvec4) Load 12(v) 41: 10(fvec4) FAdd 39 40 Store 29(w) 41 44: 10(fvec4) Load 29(w) 47: 10(fvec4) Load 46(u) 50: 6(float) Load 49(blend) 51: 6(float) Load 8(blendscale) 52: 6(float) FMul 50 51 53: 10(fvec4) CompositeConstruct 52 52 52 52 54: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 44 47 53 Store 43(gl_FragColor) 54 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.test.vert.out000066400000000000000000000040421360464450000222130ustar00rootroot00000000000000spv.test.vert WARNING: 0:5: attribute deprecated in version 130; may be removed in future release // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 24 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 9 11 15 18 21 Source GLSL 140 Name 4 "main" Name 9 "uv" Name 11 "uv_in" Name 15 "gl_Position" Name 18 "transform" Name 21 "position" Decorate 15(gl_Position) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 2 8: TypePointer Output 7(fvec2) 9(uv): 8(ptr) Variable Output 10: TypePointer Input 7(fvec2) 11(uv_in): 10(ptr) Variable Input 13: TypeVector 6(float) 4 14: TypePointer Output 13(fvec4) 15(gl_Position): 14(ptr) Variable Output 16: TypeMatrix 13(fvec4) 4 17: TypePointer Input 16 18(transform): 17(ptr) Variable Input 20: TypePointer Input 13(fvec4) 21(position): 20(ptr) Variable Input 4(main): 2 Function None 3 5: Label 12: 7(fvec2) Load 11(uv_in) Store 9(uv) 12 19: 16 Load 18(transform) 22: 13(fvec4) Load 21(position) 23: 13(fvec4) MatrixTimesVector 19 22 Store 15(gl_Position) 23 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.texture.frag.out000066400000000000000000000510031360464450000226720ustar00rootroot00000000000000spv.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): 80008 // 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 76(texSampler2D) DescriptorSet 0 Decorate 76(texSampler2D) Binding 0 Decorate 104(texSampler3D) DescriptorSet 0 Decorate 104(texSampler3D) Binding 0 Decorate 130(texSamplerCube) DescriptorSet 0 Decorate 130(texSamplerCube) Binding 0 Decorate 145(shadowSampler1D) DescriptorSet 0 Decorate 145(shadowSampler1D) Binding 0 Decorate 164(shadowSampler2D) DescriptorSet 0 Decorate 164(shadowSampler2D) Binding 0 Decorate 291(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 9: 6(float) Constant 1071971828 11: 6(float) Constant 1073741824 13: 6(float) Constant 1077936128 16: TypeVector 6(float) 3 17: TypePointer Function 16(fvec3) 19: 6(float) Constant 1076753334 20: 6(float) Constant 1079836148 21: 16(fvec3) ConstantComposite 9 19 20 22: TypeVector 6(float) 4 23: TypePointer Function 22(fvec4) 25: 22(fvec4) ConstantComposite 9 19 20 11 27: 6(float) Constant 0 28: 22(fvec4) ConstantComposite 27 27 27 27 29: TypeImage 6(float) 1D sampled format:Unknown 30: TypeSampledImage 29 31: TypePointer UniformConstant 30 32(texSampler1D): 31(ptr) Variable UniformConstant 45: TypeVector 6(float) 2 46: TypePointer Input 45(fvec2) 47(coords2D): 46(ptr) Variable Input 73: TypeImage 6(float) 2D sampled format:Unknown 74: TypeSampledImage 73 75: TypePointer UniformConstant 74 76(texSampler2D): 75(ptr) Variable UniformConstant 101: TypeImage 6(float) 3D sampled format:Unknown 102: TypeSampledImage 101 103: TypePointer UniformConstant 102 104(texSampler3D): 103(ptr) Variable UniformConstant 127: TypeImage 6(float) Cube sampled format:Unknown 128: TypeSampledImage 127 129: TypePointer UniformConstant 128 130(texSamplerCube): 129(ptr) Variable UniformConstant 142: TypeImage 6(float) 1D depth sampled format:Unknown 143: TypeSampledImage 142 144: TypePointer UniformConstant 143 145(shadowSampler1D): 144(ptr) Variable UniformConstant 161: TypeImage 6(float) 2D depth sampled format:Unknown 162: TypeSampledImage 161 163: TypePointer UniformConstant 162 164(shadowSampler2D): 163(ptr) Variable UniformConstant 218: TypeInt 32 1 219: TypeVector 218(int) 2 220: TypePointer Function 219(ivec2) 222: 218(int) Constant 0 223: 218(int) Constant 5 224: 219(ivec2) ConstantComposite 222 223 225: TypePointer Function 218(int) 227: 218(int) Constant 1 235: TypePointer Function 45(fvec2) 264: 218(int) Constant 3 265: 218(int) Constant 4294967289 266: 219(ivec2) ConstantComposite 264 265 290: TypePointer Output 22(fvec4) 291(gl_FragColor): 290(ptr) Variable Output 293: TypePointer Input 22(fvec4) 294(u): 293(ptr) Variable Input 296: TypePointer Input 6(float) 297(blend): 296(ptr) Variable Input 303(scale): 46(ptr) Variable Input 304(t): 46(ptr) Variable Input 4(main): 2 Function None 3 5: Label 8(blendscale): 7(ptr) Variable Function 10(bias): 7(ptr) Variable Function 12(lod): 7(ptr) Variable Function 14(proj): 7(ptr) Variable Function 15(coords1D): 7(ptr) Variable Function 18(coords3D): 17(ptr) Variable Function 24(coords4D): 23(ptr) Variable Function 26(color): 23(ptr) Variable Function 221(iCoords2D): 220(ptr) Variable Function 226(iLod): 225(ptr) Variable Function 236(gradX): 235(ptr) Variable Function 239(gradY): 235(ptr) Variable Function Store 8(blendscale) 9 Store 10(bias) 11 Store 12(lod) 13 Store 14(proj) 11 Store 15(coords1D) 9 Store 18(coords3D) 21 Store 24(coords4D) 25 Store 26(color) 28 33: 30 Load 32(texSampler1D) 34: 6(float) Load 15(coords1D) 35: 22(fvec4) ImageSampleImplicitLod 33 34 36: 22(fvec4) Load 26(color) 37: 22(fvec4) FAdd 36 35 Store 26(color) 37 38: 30 Load 32(texSampler1D) 39: 6(float) Load 15(coords1D) 40: 6(float) Load 10(bias) 41: 22(fvec4) ImageSampleImplicitLod 38 39 Bias 40 42: 22(fvec4) Load 26(color) 43: 22(fvec4) FAdd 42 41 Store 26(color) 43 44: 30 Load 32(texSampler1D) 48: 45(fvec2) Load 47(coords2D) 49: 22(fvec4) ImageSampleProjImplicitLod 44 48 50: 22(fvec4) Load 26(color) 51: 22(fvec4) FAdd 50 49 Store 26(color) 51 52: 30 Load 32(texSampler1D) 53: 22(fvec4) Load 24(coords4D) 54: 6(float) CompositeExtract 53 3 55: 22(fvec4) CompositeInsert 54 53 1 56: 22(fvec4) ImageSampleProjImplicitLod 52 55 57: 22(fvec4) Load 26(color) 58: 22(fvec4) FAdd 57 56 Store 26(color) 58 59: 30 Load 32(texSampler1D) 60: 45(fvec2) Load 47(coords2D) 61: 6(float) Load 10(bias) 62: 22(fvec4) ImageSampleProjImplicitLod 59 60 Bias 61 63: 22(fvec4) Load 26(color) 64: 22(fvec4) FAdd 63 62 Store 26(color) 64 65: 30 Load 32(texSampler1D) 66: 22(fvec4) Load 24(coords4D) 67: 6(float) Load 10(bias) 68: 6(float) CompositeExtract 66 3 69: 22(fvec4) CompositeInsert 68 66 1 70: 22(fvec4) ImageSampleProjImplicitLod 65 69 Bias 67 71: 22(fvec4) Load 26(color) 72: 22(fvec4) FAdd 71 70 Store 26(color) 72 77: 74 Load 76(texSampler2D) 78: 45(fvec2) Load 47(coords2D) 79: 22(fvec4) ImageSampleImplicitLod 77 78 80: 22(fvec4) Load 26(color) 81: 22(fvec4) FAdd 80 79 Store 26(color) 81 82: 74 Load 76(texSampler2D) 83: 45(fvec2) Load 47(coords2D) 84: 6(float) Load 10(bias) 85: 22(fvec4) ImageSampleImplicitLod 82 83 Bias 84 86: 22(fvec4) Load 26(color) 87: 22(fvec4) FAdd 86 85 Store 26(color) 87 88: 74 Load 76(texSampler2D) 89: 16(fvec3) Load 18(coords3D) 90: 22(fvec4) ImageSampleProjImplicitLod 88 89 91: 22(fvec4) Load 26(color) 92: 22(fvec4) FAdd 91 90 Store 26(color) 92 93: 74 Load 76(texSampler2D) 94: 22(fvec4) Load 24(coords4D) 95: 6(float) Load 10(bias) 96: 6(float) CompositeExtract 94 3 97: 22(fvec4) CompositeInsert 96 94 2 98: 22(fvec4) ImageSampleProjImplicitLod 93 97 Bias 95 99: 22(fvec4) Load 26(color) 100: 22(fvec4) FAdd 99 98 Store 26(color) 100 105: 102 Load 104(texSampler3D) 106: 16(fvec3) Load 18(coords3D) 107: 22(fvec4) ImageSampleImplicitLod 105 106 108: 22(fvec4) Load 26(color) 109: 22(fvec4) FAdd 108 107 Store 26(color) 109 110: 102 Load 104(texSampler3D) 111: 16(fvec3) Load 18(coords3D) 112: 6(float) Load 10(bias) 113: 22(fvec4) ImageSampleImplicitLod 110 111 Bias 112 114: 22(fvec4) Load 26(color) 115: 22(fvec4) FAdd 114 113 Store 26(color) 115 116: 102 Load 104(texSampler3D) 117: 22(fvec4) Load 24(coords4D) 118: 22(fvec4) ImageSampleProjImplicitLod 116 117 119: 22(fvec4) Load 26(color) 120: 22(fvec4) FAdd 119 118 Store 26(color) 120 121: 102 Load 104(texSampler3D) 122: 22(fvec4) Load 24(coords4D) 123: 6(float) Load 10(bias) 124: 22(fvec4) ImageSampleProjImplicitLod 121 122 Bias 123 125: 22(fvec4) Load 26(color) 126: 22(fvec4) FAdd 125 124 Store 26(color) 126 131: 128 Load 130(texSamplerCube) 132: 16(fvec3) Load 18(coords3D) 133: 22(fvec4) ImageSampleImplicitLod 131 132 134: 22(fvec4) Load 26(color) 135: 22(fvec4) FAdd 134 133 Store 26(color) 135 136: 128 Load 130(texSamplerCube) 137: 16(fvec3) Load 18(coords3D) 138: 6(float) Load 10(bias) 139: 22(fvec4) ImageSampleImplicitLod 136 137 Bias 138 140: 22(fvec4) Load 26(color) 141: 22(fvec4) FAdd 140 139 Store 26(color) 141 146: 143 Load 145(shadowSampler1D) 147: 16(fvec3) Load 18(coords3D) 148: 6(float) CompositeExtract 147 2 149: 6(float) ImageSampleDrefImplicitLod 146 147 148 150: 22(fvec4) Load 26(color) 151: 22(fvec4) CompositeConstruct 149 149 149 149 152: 22(fvec4) FAdd 150 151 Store 26(color) 152 153: 143 Load 145(shadowSampler1D) 154: 16(fvec3) Load 18(coords3D) 155: 6(float) Load 10(bias) 156: 6(float) CompositeExtract 154 2 157: 6(float) ImageSampleDrefImplicitLod 153 154 156 Bias 155 158: 22(fvec4) Load 26(color) 159: 22(fvec4) CompositeConstruct 157 157 157 157 160: 22(fvec4) FAdd 158 159 Store 26(color) 160 165: 162 Load 164(shadowSampler2D) 166: 16(fvec3) Load 18(coords3D) 167: 6(float) CompositeExtract 166 2 168: 6(float) ImageSampleDrefImplicitLod 165 166 167 169: 22(fvec4) Load 26(color) 170: 22(fvec4) CompositeConstruct 168 168 168 168 171: 22(fvec4) FAdd 169 170 Store 26(color) 171 172: 162 Load 164(shadowSampler2D) 173: 16(fvec3) Load 18(coords3D) 174: 6(float) Load 10(bias) 175: 6(float) CompositeExtract 173 2 176: 6(float) ImageSampleDrefImplicitLod 172 173 175 Bias 174 177: 22(fvec4) Load 26(color) 178: 22(fvec4) CompositeConstruct 176 176 176 176 179: 22(fvec4) FAdd 177 178 Store 26(color) 179 180: 143 Load 145(shadowSampler1D) 181: 22(fvec4) Load 24(coords4D) 182: 6(float) CompositeExtract 181 2 183: 6(float) CompositeExtract 181 3 184: 22(fvec4) CompositeInsert 183 181 1 185: 6(float) ImageSampleProjDrefImplicitLod 180 184 182 186: 22(fvec4) Load 26(color) 187: 22(fvec4) CompositeConstruct 185 185 185 185 188: 22(fvec4) FAdd 186 187 Store 26(color) 188 189: 143 Load 145(shadowSampler1D) 190: 22(fvec4) Load 24(coords4D) 191: 6(float) Load 10(bias) 192: 6(float) CompositeExtract 190 2 193: 6(float) CompositeExtract 190 3 194: 22(fvec4) CompositeInsert 193 190 1 195: 6(float) ImageSampleProjDrefImplicitLod 189 194 192 Bias 191 196: 22(fvec4) Load 26(color) 197: 22(fvec4) CompositeConstruct 195 195 195 195 198: 22(fvec4) FAdd 196 197 Store 26(color) 198 199: 162 Load 164(shadowSampler2D) 200: 22(fvec4) Load 24(coords4D) 201: 6(float) CompositeExtract 200 2 202: 6(float) CompositeExtract 200 3 203: 22(fvec4) CompositeInsert 202 200 2 204: 6(float) ImageSampleProjDrefImplicitLod 199 203 201 205: 22(fvec4) Load 26(color) 206: 22(fvec4) CompositeConstruct 204 204 204 204 207: 22(fvec4) FAdd 205 206 Store 26(color) 207 208: 162 Load 164(shadowSampler2D) 209: 22(fvec4) Load 24(coords4D) 210: 6(float) Load 10(bias) 211: 6(float) CompositeExtract 209 2 212: 6(float) CompositeExtract 209 3 213: 22(fvec4) CompositeInsert 212 209 2 214: 6(float) ImageSampleProjDrefImplicitLod 208 213 211 Bias 210 215: 22(fvec4) Load 26(color) 216: 22(fvec4) CompositeConstruct 214 214 214 214 217: 22(fvec4) FAdd 215 216 Store 26(color) 217 Store 221(iCoords2D) 224 Store 226(iLod) 227 228: 74 Load 76(texSampler2D) 229: 219(ivec2) Load 221(iCoords2D) 230: 218(int) Load 226(iLod) 231: 73 Image 228 232: 22(fvec4) ImageFetch 231 229 Lod 230 233: 22(fvec4) Load 26(color) 234: 22(fvec4) FAdd 233 232 Store 26(color) 234 237: 45(fvec2) Load 47(coords2D) 238: 45(fvec2) DPdx 237 Store 236(gradX) 238 240: 45(fvec2) Load 47(coords2D) 241: 45(fvec2) DPdy 240 Store 239(gradY) 241 242: 74 Load 76(texSampler2D) 243: 45(fvec2) Load 47(coords2D) 244: 45(fvec2) Load 236(gradX) 245: 45(fvec2) Load 239(gradY) 246: 22(fvec4) ImageSampleExplicitLod 242 243 Grad 244 245 247: 22(fvec4) Load 26(color) 248: 22(fvec4) FAdd 247 246 Store 26(color) 248 249: 74 Load 76(texSampler2D) 250: 45(fvec2) Load 47(coords2D) 251: 6(float) Load 14(proj) 252: 6(float) CompositeExtract 250 0 253: 6(float) CompositeExtract 250 1 254: 16(fvec3) CompositeConstruct 252 253 251 255: 45(fvec2) Load 236(gradX) 256: 45(fvec2) Load 239(gradY) 257: 22(fvec4) ImageSampleProjExplicitLod 249 254 Grad 255 256 258: 22(fvec4) Load 26(color) 259: 22(fvec4) FAdd 258 257 Store 26(color) 259 260: 74 Load 76(texSampler2D) 261: 45(fvec2) Load 47(coords2D) 262: 45(fvec2) Load 236(gradX) 263: 45(fvec2) Load 239(gradY) 267: 22(fvec4) ImageSampleExplicitLod 260 261 Grad ConstOffset 262 263 266 268: 22(fvec4) Load 26(color) 269: 22(fvec4) FAdd 268 267 Store 26(color) 269 270: 74 Load 76(texSampler2D) 271: 16(fvec3) Load 18(coords3D) 272: 45(fvec2) Load 236(gradX) 273: 45(fvec2) Load 239(gradY) 274: 22(fvec4) ImageSampleProjExplicitLod 270 271 Grad ConstOffset 272 273 266 275: 22(fvec4) Load 26(color) 276: 22(fvec4) FAdd 275 274 Store 26(color) 276 277: 162 Load 164(shadowSampler2D) 278: 45(fvec2) Load 47(coords2D) 279: 6(float) Load 12(lod) 280: 6(float) CompositeExtract 278 0 281: 6(float) CompositeExtract 278 1 282: 16(fvec3) CompositeConstruct 280 281 279 283: 45(fvec2) Load 236(gradX) 284: 45(fvec2) Load 239(gradY) 285: 6(float) CompositeExtract 282 2 286: 6(float) ImageSampleDrefExplicitLod 277 282 285 Grad 283 284 287: 22(fvec4) Load 26(color) 288: 22(fvec4) CompositeConstruct 286 286 286 286 289: 22(fvec4) FAdd 287 288 Store 26(color) 289 292: 22(fvec4) Load 26(color) 295: 22(fvec4) Load 294(u) 298: 6(float) Load 297(blend) 299: 6(float) Load 8(blendscale) 300: 6(float) FMul 298 299 301: 22(fvec4) CompositeConstruct 300 300 300 300 302: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 292 295 301 Store 291(gl_FragColor) 302 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.texture.sampler.transform.frag.out000066400000000000000000000034071360464450000263530ustar00rootroot00000000000000spv.texture.sampler.transform.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 20 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 9 17 ExecutionMode 4 OriginUpperLeft Source GLSL 440 Name 4 "main" Name 9 "color" Name 13 "tex" Name 17 "coord" Decorate 13(tex) DescriptorSet 0 Decorate 13(tex) 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: 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 glslang-8.13.3559/Test/baseResults/spv.texture.vert.out000066400000000000000000000252401360464450000227370ustar00rootroot00000000000000spv.texture.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 56(texSampler2D) DescriptorSet 0 Decorate 56(texSampler2D) Binding 0 Decorate 80(texSampler3D) DescriptorSet 0 Decorate 80(texSampler3D) Binding 0 Decorate 96(texSamplerCube) DescriptorSet 0 Decorate 96(texSamplerCube) Binding 0 Decorate 106(shadowSampler1D) DescriptorSet 0 Decorate 106(shadowSampler1D) Binding 0 Decorate 118(shadowSampler2D) DescriptorSet 0 Decorate 118(shadowSampler2D) Binding 0 Decorate 148(gl_Position) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 9: 6(float) Constant 1077936128 11: 6(float) Constant 1071971828 12: TypeVector 6(float) 3 13: TypePointer Function 12(fvec3) 15: 6(float) Constant 1076753334 16: 6(float) Constant 1079836148 17: 12(fvec3) ConstantComposite 11 15 16 18: TypeVector 6(float) 4 19: TypePointer Function 18(fvec4) 21: 6(float) Constant 1073741824 22: 18(fvec4) ConstantComposite 11 15 16 21 24: 6(float) Constant 0 25: 18(fvec4) ConstantComposite 24 24 24 24 26: TypeImage 6(float) 1D sampled format:Unknown 27: TypeSampledImage 26 28: TypePointer UniformConstant 27 29(texSampler1D): 28(ptr) Variable UniformConstant 37: TypeVector 6(float) 2 38: TypePointer Input 37(fvec2) 39(coords2D): 38(ptr) Variable Input 53: TypeImage 6(float) 2D sampled format:Unknown 54: TypeSampledImage 53 55: TypePointer UniformConstant 54 56(texSampler2D): 55(ptr) Variable UniformConstant 77: TypeImage 6(float) 3D sampled format:Unknown 78: TypeSampledImage 77 79: TypePointer UniformConstant 78 80(texSampler3D): 79(ptr) Variable UniformConstant 93: TypeImage 6(float) Cube sampled format:Unknown 94: TypeSampledImage 93 95: TypePointer UniformConstant 94 96(texSamplerCube): 95(ptr) Variable UniformConstant 103: TypeImage 6(float) 1D depth sampled format:Unknown 104: TypeSampledImage 103 105: TypePointer UniformConstant 104 106(shadowSampler1D): 105(ptr) Variable UniformConstant 115: TypeImage 6(float) 2D depth sampled format:Unknown 116: TypeSampledImage 115 117: TypePointer UniformConstant 116 118(shadowSampler2D): 117(ptr) Variable UniformConstant 147: TypePointer Output 18(fvec4) 148(gl_Position): 147(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(lod): 7(ptr) Variable Function 10(coords1D): 7(ptr) Variable Function 14(coords3D): 13(ptr) Variable Function 20(coords4D): 19(ptr) Variable Function 23(color): 19(ptr) Variable Function Store 8(lod) 9 Store 10(coords1D) 11 Store 14(coords3D) 17 Store 20(coords4D) 22 Store 23(color) 25 30: 27 Load 29(texSampler1D) 31: 6(float) Load 10(coords1D) 32: 6(float) Load 8(lod) 33: 18(fvec4) ImageSampleExplicitLod 30 31 Lod 32 34: 18(fvec4) Load 23(color) 35: 18(fvec4) FAdd 34 33 Store 23(color) 35 36: 27 Load 29(texSampler1D) 40: 37(fvec2) Load 39(coords2D) 41: 6(float) Load 8(lod) 42: 18(fvec4) ImageSampleProjExplicitLod 36 40 Lod 41 43: 18(fvec4) Load 23(color) 44: 18(fvec4) FAdd 43 42 Store 23(color) 44 45: 27 Load 29(texSampler1D) 46: 18(fvec4) Load 20(coords4D) 47: 6(float) Load 8(lod) 48: 6(float) CompositeExtract 46 3 49: 18(fvec4) CompositeInsert 48 46 1 50: 18(fvec4) ImageSampleProjExplicitLod 45 49 Lod 47 51: 18(fvec4) Load 23(color) 52: 18(fvec4) FAdd 51 50 Store 23(color) 52 57: 54 Load 56(texSampler2D) 58: 37(fvec2) Load 39(coords2D) 59: 6(float) Load 8(lod) 60: 18(fvec4) ImageSampleExplicitLod 57 58 Lod 59 61: 18(fvec4) Load 23(color) 62: 18(fvec4) FAdd 61 60 Store 23(color) 62 63: 54 Load 56(texSampler2D) 64: 12(fvec3) Load 14(coords3D) 65: 6(float) Load 8(lod) 66: 18(fvec4) ImageSampleProjExplicitLod 63 64 Lod 65 67: 18(fvec4) Load 23(color) 68: 18(fvec4) FAdd 67 66 Store 23(color) 68 69: 54 Load 56(texSampler2D) 70: 18(fvec4) Load 20(coords4D) 71: 6(float) Load 8(lod) 72: 6(float) CompositeExtract 70 3 73: 18(fvec4) CompositeInsert 72 70 2 74: 18(fvec4) ImageSampleProjExplicitLod 69 73 Lod 71 75: 18(fvec4) Load 23(color) 76: 18(fvec4) FAdd 75 74 Store 23(color) 76 81: 78 Load 80(texSampler3D) 82: 12(fvec3) Load 14(coords3D) 83: 6(float) Load 8(lod) 84: 18(fvec4) ImageSampleExplicitLod 81 82 Lod 83 85: 18(fvec4) Load 23(color) 86: 18(fvec4) FAdd 85 84 Store 23(color) 86 87: 78 Load 80(texSampler3D) 88: 18(fvec4) Load 20(coords4D) 89: 6(float) Load 8(lod) 90: 18(fvec4) ImageSampleProjExplicitLod 87 88 Lod 89 91: 18(fvec4) Load 23(color) 92: 18(fvec4) FAdd 91 90 Store 23(color) 92 97: 94 Load 96(texSamplerCube) 98: 12(fvec3) Load 14(coords3D) 99: 6(float) Load 8(lod) 100: 18(fvec4) ImageSampleExplicitLod 97 98 Lod 99 101: 18(fvec4) Load 23(color) 102: 18(fvec4) FAdd 101 100 Store 23(color) 102 107: 104 Load 106(shadowSampler1D) 108: 12(fvec3) Load 14(coords3D) 109: 6(float) Load 8(lod) 110: 6(float) CompositeExtract 108 2 111: 6(float) ImageSampleDrefExplicitLod 107 108 110 Lod 109 112: 18(fvec4) Load 23(color) 113: 18(fvec4) CompositeConstruct 111 111 111 111 114: 18(fvec4) FAdd 112 113 Store 23(color) 114 119: 116 Load 118(shadowSampler2D) 120: 12(fvec3) Load 14(coords3D) 121: 6(float) Load 8(lod) 122: 6(float) CompositeExtract 120 2 123: 6(float) ImageSampleDrefExplicitLod 119 120 122 Lod 121 124: 18(fvec4) Load 23(color) 125: 18(fvec4) CompositeConstruct 123 123 123 123 126: 18(fvec4) FAdd 124 125 Store 23(color) 126 127: 104 Load 106(shadowSampler1D) 128: 18(fvec4) Load 20(coords4D) 129: 6(float) Load 8(lod) 130: 6(float) CompositeExtract 128 2 131: 6(float) CompositeExtract 128 3 132: 18(fvec4) CompositeInsert 131 128 1 133: 6(float) ImageSampleProjDrefExplicitLod 127 132 130 Lod 129 134: 18(fvec4) Load 23(color) 135: 18(fvec4) CompositeConstruct 133 133 133 133 136: 18(fvec4) FAdd 134 135 Store 23(color) 136 137: 116 Load 118(shadowSampler2D) 138: 18(fvec4) Load 20(coords4D) 139: 6(float) Load 8(lod) 140: 6(float) CompositeExtract 138 2 141: 6(float) CompositeExtract 138 3 142: 18(fvec4) CompositeInsert 141 138 2 143: 6(float) ImageSampleProjDrefExplicitLod 137 142 140 Lod 139 144: 18(fvec4) Load 23(color) 145: 18(fvec4) CompositeConstruct 143 143 143 143 146: 18(fvec4) FAdd 144 145 Store 23(color) 146 149: 18(fvec4) Load 23(color) Store 148(gl_Position) 149 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.textureBuffer.vert.out000066400000000000000000000065241360464450000240750ustar00rootroot00000000000000spv.textureBuffer.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 0 Decorate 23(sBuf) DescriptorSet 0 Decorate 23(sBuf) Binding 0 Decorate 32(utBuf) DescriptorSet 0 Decorate 32(utBuf) Binding 0 Decorate 38(itBuf) DescriptorSet 0 Decorate 38(itBuf) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeImage 6(float) Buffer sampled format:Unknown 8: TypePointer UniformConstant 7 9(tBuf): 8(ptr) Variable UniformConstant 11: TypeSampler 12: TypePointer UniformConstant 11 13(s): 12(ptr) Variable UniformConstant 15: TypeSampledImage 7 17: TypeInt 32 1 18: 17(int) Constant 13 20: TypeVector 6(float) 4 22: TypePointer UniformConstant 15 23(sBuf): 22(ptr) Variable UniformConstant 29: TypeInt 32 0 30: TypeImage 29(int) Buffer sampled format:Unknown 31: TypePointer UniformConstant 30 32(utBuf): 31(ptr) Variable UniformConstant 34: TypeVector 29(int) 4 36: TypeImage 17(int) Buffer sampled format:Unknown 37: TypePointer UniformConstant 36 38(itBuf): 37(ptr) Variable UniformConstant 40: TypeVector 17(int) 4 4(main): 2 Function None 3 5: Label 10: 7 Load 9(tBuf) 14: 11 Load 13(s) 16: 15 SampledImage 10 14 19: 7 Image 16 21: 20(fvec4) ImageFetch 19 18 24: 15 Load 23(sBuf) 25: 7 Image 24 26: 20(fvec4) ImageFetch 25 18 27: 7 Load 9(tBuf) 28: 20(fvec4) ImageFetch 27 18 33: 30 Load 32(utBuf) 35: 34(ivec4) ImageFetch 33 18 39: 36 Load 38(itBuf) 41: 40(ivec4) ImageFetch 39 18 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.textureGatherBiasLod.frag.out000066400000000000000000000456621360464450000253010ustar00rootroot00000000000000spv.textureGatherBiasLod.frag Validation failed // Module Version 10000 // Generated by (magic number): 80008 // 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 33(s2DArray) DescriptorSet 0 Decorate 33(s2DArray) Binding 0 Decorate 47(sCube) DescriptorSet 0 Decorate 47(sCube) Binding 0 Decorate 58(sCubeArray) DescriptorSet 0 Decorate 58(sCubeArray) Binding 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 glslang-8.13.3559/Test/baseResults/spv.types.frag.out000066400000000000000000000372421360464450000223470ustar00rootroot00000000000000spv.types.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 260 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 96 98 105 107 114 116 123 125 132 134 141 143 150 152 159 161 165 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 8 "b" Name 10 "u_b" Name 12 "i_b" Name 17 "b2" Name 19 "u_b2" Name 24 "i_b2" Name 38 "b3" Name 40 "u_b3" Name 43 "i_b3" Name 63 "b4" Name 65 "u_b4" Name 68 "i_b4" Name 94 "i" Name 96 "u_i" Name 98 "i_i" Name 103 "i2" Name 105 "u_i2" Name 107 "i_i2" Name 112 "i3" Name 114 "u_i3" Name 116 "i_i3" Name 121 "i4" Name 123 "u_i4" Name 125 "i_i4" Name 130 "f" Name 132 "u_f" Name 134 "i_f" Name 139 "f2" Name 141 "u_f2" Name 143 "i_f2" Name 148 "f3" Name 150 "u_f3" Name 152 "i_f3" Name 157 "f4" Name 159 "u_f4" Name 161 "i_f4" Name 165 "gl_FragColor" Decorate 96(u_i) Flat Decorate 98(i_i) Flat Decorate 105(u_i2) Flat Decorate 107(i_i2) Flat Decorate 114(u_i3) Flat Decorate 116(i_i3) Flat Decorate 123(u_i4) Flat Decorate 125(i_i4) Flat Decorate 165(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeBool 7: TypePointer Function 6(bool) 9: TypePointer Private 6(bool) 10(u_b): 9(ptr) Variable Private 12(i_b): 9(ptr) Variable Private 15: TypeVector 6(bool) 2 16: TypePointer Function 15(bvec2) 18: TypePointer Private 15(bvec2) 19(u_b2): 18(ptr) Variable Private 20: TypeInt 32 0 21: 20(int) Constant 0 24(i_b2): 18(ptr) Variable Private 28: 20(int) Constant 1 36: TypeVector 6(bool) 3 37: TypePointer Function 36(bvec3) 39: TypePointer Private 36(bvec3) 40(u_b3): 39(ptr) Variable Private 43(i_b3): 39(ptr) Variable Private 53: 20(int) Constant 2 61: TypeVector 6(bool) 4 62: TypePointer Function 61(bvec4) 64: TypePointer Private 61(bvec4) 65(u_b4): 64(ptr) Variable Private 68(i_b4): 64(ptr) Variable Private 84: 20(int) Constant 3 92: TypeInt 32 1 93: TypePointer Function 92(int) 95: TypePointer Input 92(int) 96(u_i): 95(ptr) Variable Input 98(i_i): 95(ptr) Variable Input 101: TypeVector 92(int) 2 102: TypePointer Function 101(ivec2) 104: TypePointer Input 101(ivec2) 105(u_i2): 104(ptr) Variable Input 107(i_i2): 104(ptr) Variable Input 110: TypeVector 92(int) 3 111: TypePointer Function 110(ivec3) 113: TypePointer Input 110(ivec3) 114(u_i3): 113(ptr) Variable Input 116(i_i3): 113(ptr) Variable Input 119: TypeVector 92(int) 4 120: TypePointer Function 119(ivec4) 122: TypePointer Input 119(ivec4) 123(u_i4): 122(ptr) Variable Input 125(i_i4): 122(ptr) Variable Input 128: TypeFloat 32 129: TypePointer Function 128(float) 131: TypePointer Input 128(float) 132(u_f): 131(ptr) Variable Input 134(i_f): 131(ptr) Variable Input 137: TypeVector 128(float) 2 138: TypePointer Function 137(fvec2) 140: TypePointer Input 137(fvec2) 141(u_f2): 140(ptr) Variable Input 143(i_f2): 140(ptr) Variable Input 146: TypeVector 128(float) 3 147: TypePointer Function 146(fvec3) 149: TypePointer Input 146(fvec3) 150(u_f3): 149(ptr) Variable Input 152(i_f3): 149(ptr) Variable Input 155: TypeVector 128(float) 4 156: TypePointer Function 155(fvec4) 158: TypePointer Input 155(fvec4) 159(u_f4): 158(ptr) Variable Input 161(i_f4): 158(ptr) Variable Input 164: TypePointer Output 155(fvec4) 165(gl_FragColor): 164(ptr) Variable Output 257: 128(float) Constant 1065353216 258: 155(fvec4) ConstantComposite 257 257 257 257 4(main): 2 Function None 3 5: Label 8(b): 7(ptr) Variable Function 17(b2): 16(ptr) Variable Function 38(b3): 37(ptr) Variable Function 63(b4): 62(ptr) Variable Function 94(i): 93(ptr) Variable Function 103(i2): 102(ptr) Variable Function 112(i3): 111(ptr) Variable Function 121(i4): 120(ptr) Variable Function 130(f): 129(ptr) Variable Function 139(f2): 138(ptr) Variable Function 148(f3): 147(ptr) Variable Function 157(f4): 156(ptr) Variable Function 194: 156(ptr) Variable Function 11: 6(bool) Load 10(u_b) 13: 6(bool) Load 12(i_b) 14: 6(bool) LogicalAnd 11 13 Store 8(b) 14 22: 9(ptr) AccessChain 19(u_b2) 21 23: 6(bool) Load 22 25: 9(ptr) AccessChain 24(i_b2) 21 26: 6(bool) Load 25 27: 6(bool) LogicalAnd 23 26 29: 9(ptr) AccessChain 19(u_b2) 28 30: 6(bool) Load 29 31: 6(bool) LogicalAnd 27 30 32: 9(ptr) AccessChain 24(i_b2) 28 33: 6(bool) Load 32 34: 6(bool) LogicalAnd 31 33 35: 15(bvec2) CompositeConstruct 34 34 Store 17(b2) 35 41: 9(ptr) AccessChain 40(u_b3) 21 42: 6(bool) Load 41 44: 9(ptr) AccessChain 43(i_b3) 21 45: 6(bool) Load 44 46: 6(bool) LogicalAnd 42 45 47: 9(ptr) AccessChain 40(u_b3) 28 48: 6(bool) Load 47 49: 6(bool) LogicalAnd 46 48 50: 9(ptr) AccessChain 43(i_b3) 28 51: 6(bool) Load 50 52: 6(bool) LogicalAnd 49 51 54: 9(ptr) AccessChain 40(u_b3) 53 55: 6(bool) Load 54 56: 6(bool) LogicalAnd 52 55 57: 9(ptr) AccessChain 43(i_b3) 53 58: 6(bool) Load 57 59: 6(bool) LogicalAnd 56 58 60: 36(bvec3) CompositeConstruct 59 59 59 Store 38(b3) 60 66: 9(ptr) AccessChain 65(u_b4) 21 67: 6(bool) Load 66 69: 9(ptr) AccessChain 68(i_b4) 21 70: 6(bool) Load 69 71: 6(bool) LogicalAnd 67 70 72: 9(ptr) AccessChain 65(u_b4) 28 73: 6(bool) Load 72 74: 6(bool) LogicalAnd 71 73 75: 9(ptr) AccessChain 68(i_b4) 28 76: 6(bool) Load 75 77: 6(bool) LogicalAnd 74 76 78: 9(ptr) AccessChain 65(u_b4) 53 79: 6(bool) Load 78 80: 6(bool) LogicalAnd 77 79 81: 9(ptr) AccessChain 68(i_b4) 53 82: 6(bool) Load 81 83: 6(bool) LogicalAnd 80 82 85: 9(ptr) AccessChain 65(u_b4) 84 86: 6(bool) Load 85 87: 6(bool) LogicalAnd 83 86 88: 9(ptr) AccessChain 68(i_b4) 84 89: 6(bool) Load 88 90: 6(bool) LogicalAnd 87 89 91: 61(bvec4) CompositeConstruct 90 90 90 90 Store 63(b4) 91 97: 92(int) Load 96(u_i) 99: 92(int) Load 98(i_i) 100: 92(int) IAdd 97 99 Store 94(i) 100 106: 101(ivec2) Load 105(u_i2) 108: 101(ivec2) Load 107(i_i2) 109: 101(ivec2) IAdd 106 108 Store 103(i2) 109 115: 110(ivec3) Load 114(u_i3) 117: 110(ivec3) Load 116(i_i3) 118: 110(ivec3) IAdd 115 117 Store 112(i3) 118 124: 119(ivec4) Load 123(u_i4) 126: 119(ivec4) Load 125(i_i4) 127: 119(ivec4) IAdd 124 126 Store 121(i4) 127 133: 128(float) Load 132(u_f) 135: 128(float) Load 134(i_f) 136: 128(float) FAdd 133 135 Store 130(f) 136 142: 137(fvec2) Load 141(u_f2) 144: 137(fvec2) Load 143(i_f2) 145: 137(fvec2) FAdd 142 144 Store 139(f2) 145 151: 146(fvec3) Load 150(u_f3) 153: 146(fvec3) Load 152(i_f3) 154: 146(fvec3) FAdd 151 153 Store 148(f3) 154 160: 155(fvec4) Load 159(u_f4) 162: 155(fvec4) Load 161(i_f4) 163: 155(fvec4) FAdd 160 162 Store 157(f4) 163 166: 6(bool) Load 8(b) 167: 7(ptr) AccessChain 17(b2) 21 168: 6(bool) Load 167 169: 6(bool) LogicalOr 166 168 170: 7(ptr) AccessChain 17(b2) 28 171: 6(bool) Load 170 172: 6(bool) LogicalOr 169 171 173: 7(ptr) AccessChain 38(b3) 21 174: 6(bool) Load 173 175: 6(bool) LogicalOr 172 174 176: 7(ptr) AccessChain 38(b3) 28 177: 6(bool) Load 176 178: 6(bool) LogicalOr 175 177 179: 7(ptr) AccessChain 38(b3) 53 180: 6(bool) Load 179 181: 6(bool) LogicalOr 178 180 182: 7(ptr) AccessChain 63(b4) 21 183: 6(bool) Load 182 184: 6(bool) LogicalOr 181 183 185: 7(ptr) AccessChain 63(b4) 28 186: 6(bool) Load 185 187: 6(bool) LogicalOr 184 186 188: 7(ptr) AccessChain 63(b4) 53 189: 6(bool) Load 188 190: 6(bool) LogicalOr 187 189 191: 7(ptr) AccessChain 63(b4) 84 192: 6(bool) Load 191 193: 6(bool) LogicalOr 190 192 SelectionMerge 196 None BranchConditional 193 195 256 195: Label 197: 92(int) Load 94(i) 198: 93(ptr) AccessChain 103(i2) 21 199: 92(int) Load 198 200: 92(int) IAdd 197 199 201: 93(ptr) AccessChain 103(i2) 28 202: 92(int) Load 201 203: 92(int) IAdd 200 202 204: 93(ptr) AccessChain 112(i3) 21 205: 92(int) Load 204 206: 92(int) IAdd 203 205 207: 93(ptr) AccessChain 112(i3) 28 208: 92(int) Load 207 209: 92(int) IAdd 206 208 210: 93(ptr) AccessChain 112(i3) 53 211: 92(int) Load 210 212: 92(int) IAdd 209 211 213: 93(ptr) AccessChain 121(i4) 21 214: 92(int) Load 213 215: 92(int) IAdd 212 214 216: 93(ptr) AccessChain 121(i4) 28 217: 92(int) Load 216 218: 92(int) IAdd 215 217 219: 93(ptr) AccessChain 121(i4) 53 220: 92(int) Load 219 221: 92(int) IAdd 218 220 222: 93(ptr) AccessChain 121(i4) 84 223: 92(int) Load 222 224: 92(int) IAdd 221 223 225: 128(float) ConvertSToF 224 226: 128(float) Load 130(f) 227: 128(float) FAdd 225 226 228: 129(ptr) AccessChain 139(f2) 21 229: 128(float) Load 228 230: 128(float) FAdd 227 229 231: 129(ptr) AccessChain 139(f2) 28 232: 128(float) Load 231 233: 128(float) FAdd 230 232 234: 129(ptr) AccessChain 148(f3) 21 235: 128(float) Load 234 236: 128(float) FAdd 233 235 237: 129(ptr) AccessChain 148(f3) 28 238: 128(float) Load 237 239: 128(float) FAdd 236 238 240: 129(ptr) AccessChain 148(f3) 53 241: 128(float) Load 240 242: 128(float) FAdd 239 241 243: 129(ptr) AccessChain 157(f4) 21 244: 128(float) Load 243 245: 128(float) FAdd 242 244 246: 129(ptr) AccessChain 157(f4) 28 247: 128(float) Load 246 248: 128(float) FAdd 245 247 249: 129(ptr) AccessChain 157(f4) 53 250: 128(float) Load 249 251: 128(float) FAdd 248 250 252: 129(ptr) AccessChain 157(f4) 84 253: 128(float) Load 252 254: 128(float) FAdd 251 253 255: 155(fvec4) CompositeConstruct 254 254 254 254 Store 194 255 Branch 196 256: Label Store 194 258 Branch 196 196: Label 259: 155(fvec4) Load 194 Store 165(gl_FragColor) 259 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.uint.frag.out000066400000000000000000000532461360464450000221640ustar00rootroot00000000000000spv.uint.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 213 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 15 68 77 206 208 210 ExecutionMode 4 OriginUpperLeft Source ESSL 310 Name 4 "main" Name 8 "count" Name 12 "u" Name 15 "t" Name 55 "shiftedii" Name 57 "shiftedui" Name 59 "shiftediu" Name 60 "shifteduu" Name 68 "c" Name 72 "usampler" Name 77 "tc" Name 111 "af" Name 115 "ab" Name 118 "ai" Name 152 "mask1" Name 154 "mask2" Name 156 "mask3" Name 160 "mask4" Name 206 "f" Name 208 "v" Name 210 "i" Name 212 "b" Decorate 8(count) RelaxedPrecision Decorate 12(u) RelaxedPrecision Decorate 15(t) RelaxedPrecision Decorate 15(t) Flat Decorate 19 RelaxedPrecision Decorate 21 RelaxedPrecision Decorate 27 RelaxedPrecision Decorate 28 RelaxedPrecision Decorate 32 RelaxedPrecision Decorate 33 RelaxedPrecision Decorate 38 RelaxedPrecision Decorate 39 RelaxedPrecision Decorate 43 RelaxedPrecision Decorate 44 RelaxedPrecision Decorate 48 RelaxedPrecision Decorate 49 RelaxedPrecision Decorate 53 RelaxedPrecision Decorate 54 RelaxedPrecision Decorate 55(shiftedii) RelaxedPrecision Decorate 57(shiftedui) RelaxedPrecision Decorate 59(shiftediu) RelaxedPrecision Decorate 60(shifteduu) RelaxedPrecision Decorate 61 RelaxedPrecision Decorate 62 RelaxedPrecision Decorate 68(c) RelaxedPrecision Decorate 72(usampler) RelaxedPrecision Decorate 72(usampler) DescriptorSet 0 Decorate 72(usampler) Binding 0 Decorate 73 RelaxedPrecision Decorate 77(tc) RelaxedPrecision Decorate 78 RelaxedPrecision Decorate 79 RelaxedPrecision Decorate 80 RelaxedPrecision Decorate 81 RelaxedPrecision Decorate 85 RelaxedPrecision Decorate 86 RelaxedPrecision Decorate 88 RelaxedPrecision Decorate 89 RelaxedPrecision Decorate 90 RelaxedPrecision Decorate 91 RelaxedPrecision Decorate 92 RelaxedPrecision Decorate 97 RelaxedPrecision Decorate 98 RelaxedPrecision Decorate 101 RelaxedPrecision Decorate 102 RelaxedPrecision Decorate 105 RelaxedPrecision Decorate 111(af) RelaxedPrecision Decorate 112 RelaxedPrecision Decorate 113 RelaxedPrecision Decorate 116 RelaxedPrecision Decorate 118(ai) RelaxedPrecision Decorate 119 RelaxedPrecision Decorate 120 RelaxedPrecision Decorate 121 RelaxedPrecision Decorate 122 RelaxedPrecision Decorate 124 RelaxedPrecision Decorate 125 RelaxedPrecision Decorate 126 RelaxedPrecision Decorate 127 RelaxedPrecision Decorate 128 RelaxedPrecision Decorate 129 RelaxedPrecision Decorate 130 RelaxedPrecision Decorate 131 RelaxedPrecision Decorate 135 RelaxedPrecision Decorate 136 RelaxedPrecision Decorate 140 RelaxedPrecision Decorate 141 RelaxedPrecision Decorate 145 RelaxedPrecision Decorate 146 RelaxedPrecision Decorate 150 RelaxedPrecision Decorate 151 RelaxedPrecision Decorate 152(mask1) RelaxedPrecision Decorate 154(mask2) RelaxedPrecision Decorate 156(mask3) RelaxedPrecision Decorate 157 RelaxedPrecision Decorate 159 RelaxedPrecision Decorate 160(mask4) RelaxedPrecision Decorate 162 RelaxedPrecision Decorate 163 RelaxedPrecision Decorate 167 RelaxedPrecision Decorate 168 RelaxedPrecision Decorate 169 RelaxedPrecision Decorate 170 RelaxedPrecision Decorate 171 RelaxedPrecision Decorate 175 RelaxedPrecision Decorate 176 RelaxedPrecision Decorate 177 RelaxedPrecision Decorate 178 RelaxedPrecision Decorate 179 RelaxedPrecision Decorate 180 RelaxedPrecision Decorate 184 RelaxedPrecision Decorate 185 RelaxedPrecision Decorate 186 RelaxedPrecision Decorate 187 RelaxedPrecision Decorate 188 RelaxedPrecision Decorate 192 RelaxedPrecision Decorate 193 RelaxedPrecision Decorate 194 RelaxedPrecision Decorate 195 RelaxedPrecision Decorate 196 RelaxedPrecision Decorate 197 RelaxedPrecision Decorate 198 RelaxedPrecision Decorate 202 RelaxedPrecision Decorate 203 RelaxedPrecision Decorate 206(f) RelaxedPrecision Decorate 208(v) RelaxedPrecision Decorate 208(v) Flat Decorate 210(i) RelaxedPrecision Decorate 210(i) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 9: 6(int) Constant 1 10: TypeInt 32 0 11: TypePointer Function 10(int) 13: TypeVector 10(int) 2 14: TypePointer Input 13(ivec2) 15(t): 14(ptr) Variable Input 16: 10(int) Constant 1 17: TypePointer Input 10(int) 20: 10(int) Constant 3 22: TypeBool 23: 22(bool) ConstantTrue 26: 6(int) Constant 2 31: 6(int) Constant 3 34: 22(bool) ConstantFalse 37: 6(int) Constant 5 42: 6(int) Constant 7 47: 6(int) Constant 11 52: 6(int) Constant 13 56: 6(int) Constant 4294967295 58: 10(int) Constant 4194303 66: TypeVector 10(int) 4 67: TypePointer Output 66(ivec4) 68(c): 67(ptr) Variable Output 69: TypeImage 10(int) 2D sampled format:Unknown 70: TypeSampledImage 69 71: TypePointer UniformConstant 70 72(usampler): 71(ptr) Variable UniformConstant 74: TypeFloat 32 75: TypeVector 74(float) 2 76: TypePointer Input 75(fvec2) 77(tc): 76(ptr) Variable Input 87: 74(float) Constant 1065353216 99: 74(float) Constant 1073741824 100: 75(fvec2) ConstantComposite 99 99 103: 10(int) Constant 0 106: 10(int) Constant 4 110: TypePointer Function 74(float) 114: TypePointer Function 22(bool) 134: 6(int) Constant 17 139: 6(int) Constant 19 144: 6(int) Constant 23 149: 6(int) Constant 27 153: 10(int) Constant 161 155: 10(int) Constant 2576 158: 6(int) Constant 4 161: 10(int) Constant 2737 199: 10(int) Constant 4294967295 200: TypePointer Output 10(int) 205: TypePointer Input 74(float) 206(f): 205(ptr) Variable Input 207: TypePointer Input 66(ivec4) 208(v): 207(ptr) Variable Input 209: TypePointer Input 6(int) 210(i): 209(ptr) Variable Input 211: TypePointer Private 22(bool) 212(b): 211(ptr) Variable Private 4(main): 2 Function None 3 5: Label 8(count): 7(ptr) Variable Function 12(u): 11(ptr) Variable Function 55(shiftedii): 7(ptr) Variable Function 57(shiftedui): 11(ptr) Variable Function 59(shiftediu): 7(ptr) Variable Function 60(shifteduu): 11(ptr) Variable Function 111(af): 110(ptr) Variable Function 115(ab): 114(ptr) Variable Function 118(ai): 7(ptr) Variable Function 152(mask1): 11(ptr) Variable Function 154(mask2): 11(ptr) Variable Function 156(mask3): 11(ptr) Variable Function 160(mask4): 11(ptr) Variable Function Store 8(count) 9 18: 17(ptr) AccessChain 15(t) 16 19: 10(int) Load 18 21: 10(int) IAdd 19 20 Store 12(u) 21 SelectionMerge 25 None BranchConditional 23 24 25 24: Label 27: 6(int) Load 8(count) 28: 6(int) IMul 27 26 Store 8(count) 28 Branch 25 25: Label SelectionMerge 30 None BranchConditional 23 29 30 29: Label 32: 6(int) Load 8(count) 33: 6(int) IMul 32 31 Store 8(count) 33 Branch 30 30: Label SelectionMerge 36 None BranchConditional 34 35 36 35: Label 38: 6(int) Load 8(count) 39: 6(int) IMul 38 37 Store 8(count) 39 Branch 36 36: Label SelectionMerge 41 None BranchConditional 23 40 41 40: Label 43: 6(int) Load 8(count) 44: 6(int) IMul 43 42 Store 8(count) 44 Branch 41 41: Label SelectionMerge 46 None BranchConditional 23 45 46 45: Label 48: 6(int) Load 8(count) 49: 6(int) IMul 48 47 Store 8(count) 49 Branch 46 46: Label SelectionMerge 51 None BranchConditional 34 50 51 50: Label 53: 6(int) Load 8(count) 54: 6(int) IMul 53 52 Store 8(count) 54 Branch 51 51: Label Store 55(shiftedii) 56 Store 57(shiftedui) 58 Store 59(shiftediu) 56 Store 60(shifteduu) 58 61: 6(int) Load 55(shiftedii) 62: 6(int) Load 59(shiftediu) 63: 22(bool) IEqual 61 62 SelectionMerge 65 None BranchConditional 63 64 65 64: Label 73: 70 Load 72(usampler) 78: 75(fvec2) Load 77(tc) 79: 66(ivec4) ImageSampleImplicitLod 73 78 Store 68(c) 79 Branch 65 65: Label 80: 10(int) Load 57(shiftedui) 81: 10(int) Load 60(shifteduu) 82: 22(bool) IEqual 80 81 SelectionMerge 84 None BranchConditional 82 83 84 83: Label 85: 70 Load 72(usampler) 86: 75(fvec2) Load 77(tc) 88: 75(fvec2) CompositeConstruct 87 87 89: 75(fvec2) FAdd 86 88 90: 66(ivec4) ImageSampleImplicitLod 85 89 Store 68(c) 90 Branch 84 84: Label 91: 6(int) Load 55(shiftedii) 92: 10(int) Load 57(shiftedui) 93: 6(int) Bitcast 92 94: 22(bool) IEqual 91 93 SelectionMerge 96 None BranchConditional 94 95 96 95: Label 97: 70 Load 72(usampler) 98: 75(fvec2) Load 77(tc) 101: 75(fvec2) FSub 98 100 102: 66(ivec4) ImageSampleImplicitLod 97 101 Store 68(c) 102 Branch 96 96: Label 104: 17(ptr) AccessChain 15(t) 103 105: 10(int) Load 104 107: 22(bool) UGreaterThan 105 106 SelectionMerge 109 None BranchConditional 107 108 109 108: Label 112: 10(int) Load 12(u) 113: 74(float) ConvertUToF 112 Store 111(af) 113 116: 10(int) Load 12(u) 117: 22(bool) INotEqual 116 103 Store 115(ab) 117 119: 10(int) Load 12(u) 120: 6(int) Bitcast 119 Store 118(ai) 120 121: 74(float) Load 111(af) 122: 10(int) ConvertFToU 121 123: 22(bool) Load 115(ab) 124: 10(int) Select 123 16 103 125: 6(int) Load 118(ai) 126: 10(int) Bitcast 125 127: 6(int) Load 8(count) 128: 10(int) Bitcast 127 129: 66(ivec4) CompositeConstruct 122 124 126 128 130: 66(ivec4) Load 68(c) 131: 66(ivec4) IAdd 130 129 Store 68(c) 131 Branch 109 109: Label SelectionMerge 133 None BranchConditional 23 132 133 132: Label 135: 6(int) Load 8(count) 136: 6(int) IMul 135 134 Store 8(count) 136 Branch 133 133: Label SelectionMerge 138 None BranchConditional 34 137 138 137: Label 140: 6(int) Load 8(count) 141: 6(int) IMul 140 139 Store 8(count) 141 Branch 138 138: Label SelectionMerge 143 None BranchConditional 23 142 143 142: Label 145: 6(int) Load 8(count) 146: 6(int) IMul 145 144 Store 8(count) 146 Branch 143 143: Label SelectionMerge 148 None BranchConditional 23 147 148 147: Label 150: 6(int) Load 8(count) 151: 6(int) IMul 150 149 Store 8(count) 151 Branch 148 148: Label Store 152(mask1) 153 Store 154(mask2) 155 157: 10(int) Load 152(mask1) 159: 10(int) ShiftLeftLogical 157 158 Store 156(mask3) 159 Store 160(mask4) 161 162: 10(int) Load 156(mask3) 163: 10(int) Load 154(mask2) 164: 22(bool) IEqual 162 163 SelectionMerge 166 None BranchConditional 164 165 166 165: Label 167: 6(int) Load 8(count) 168: 6(int) IMul 167 26 Store 8(count) 168 Branch 166 166: Label 169: 10(int) Load 156(mask3) 170: 10(int) Load 152(mask1) 171: 10(int) BitwiseAnd 169 170 172: 22(bool) INotEqual 171 103 SelectionMerge 174 None BranchConditional 172 173 174 173: Label 175: 6(int) Load 8(count) 176: 6(int) IMul 175 31 Store 8(count) 176 Branch 174 174: Label 177: 10(int) Load 152(mask1) 178: 10(int) Load 156(mask3) 179: 10(int) BitwiseOr 177 178 180: 10(int) Load 160(mask4) 181: 22(bool) IEqual 179 180 SelectionMerge 183 None BranchConditional 181 182 183 182: Label 184: 6(int) Load 8(count) 185: 6(int) IMul 184 37 Store 8(count) 185 Branch 183 183: Label 186: 10(int) Load 152(mask1) 187: 10(int) Load 160(mask4) 188: 10(int) BitwiseXor 186 187 189: 22(bool) IEqual 188 155 SelectionMerge 191 None BranchConditional 189 190 191 190: Label 192: 6(int) Load 8(count) 193: 6(int) IMul 192 42 Store 8(count) 193 Branch 191 191: Label 194: 6(int) Load 8(count) 195: 10(int) Bitcast 194 196: 66(ivec4) CompositeConstruct 195 195 195 195 197: 66(ivec4) Load 68(c) 198: 66(ivec4) IAdd 197 196 Store 68(c) 198 201: 200(ptr) AccessChain 68(c) 103 202: 10(int) Load 201 203: 10(int) IAdd 202 199 204: 200(ptr) AccessChain 68(c) 103 Store 204 203 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.uniformArray.frag.out000066400000000000000000000072741360464450000236630ustar00rootroot00000000000000spv.uniformArray.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 53 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 14 25 35 47 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "texColor" Name 14 "color" Name 25 "inColor" Name 35 "alpha" Name 47 "gl_FragColor" Name 52 "texSampler2D" Decorate 47(gl_FragColor) Location 0 Decorate 52(texSampler2D) DescriptorSet 0 Decorate 52(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 32: 10(int) Constant 16 33: TypeArray 6(float) 32 34: TypePointer Input 33 35(alpha): 34(ptr) Variable Input 36: 15(int) Constant 12 37: TypePointer Input 6(float) 40: 10(int) Constant 3 41: TypePointer Function 6(float) 46: TypePointer Output 7(fvec4) 47(gl_FragColor): 46(ptr) Variable Output 49: TypeImage 6(float) 2D sampled format:Unknown 50: TypeSampledImage 49 51: TypePointer UniformConstant 50 52(texSampler2D): 51(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(texColor): 8(ptr) Variable Function 18: 17(ptr) AccessChain 14(color) 16 19: 7(fvec4) Load 18 20: 17(ptr) AccessChain 14(color) 16 21: 7(fvec4) Load 20 22: 7(fvec4) FAdd 19 21 Store 9(texColor) 22 26: 23(fvec3) Load 25(inColor) 27: 7(fvec4) Load 9(texColor) 28: 23(fvec3) VectorShuffle 27 27 0 1 2 29: 23(fvec3) FAdd 28 26 30: 7(fvec4) Load 9(texColor) 31: 7(fvec4) VectorShuffle 30 29 4 5 6 3 Store 9(texColor) 31 38: 37(ptr) AccessChain 35(alpha) 36 39: 6(float) Load 38 42: 41(ptr) AccessChain 9(texColor) 40 43: 6(float) Load 42 44: 6(float) FAdd 43 39 45: 41(ptr) AccessChain 9(texColor) 40 Store 45 44 48: 7(fvec4) Load 9(texColor) Store 47(gl_FragColor) 48 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.unit1.frag.out000066400000000000000000000272361360464450000222450ustar00rootroot00000000000000spv.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): 80008 // 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 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 glslang-8.13.3559/Test/baseResults/spv.variableArrayIndex.frag.out000066400000000000000000000162761360464450000247630ustar00rootroot00000000000000spv.variableArrayIndex.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 93 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 10 20 34 36 54 63 ExecutionMode 4 OriginUpperLeft Source GLSL 400 Name 4 "main" Name 8 "iLocal" Name 10 "Count" Name 13 "lunarStruct1" MemberName 13(lunarStruct1) 0 "i" MemberName 13(lunarStruct1) 1 "f" Name 14 "lunarStruct2" MemberName 14(lunarStruct2) 0 "i" MemberName 14(lunarStruct2) 1 "f" MemberName 14(lunarStruct2) 2 "s1_1" Name 18 "lunarStruct3" MemberName 18(lunarStruct3) 0 "s2_1" MemberName 18(lunarStruct3) 1 "i" MemberName 18(lunarStruct3) 2 "f" MemberName 18(lunarStruct3) 3 "s1_1" Name 20 "foo3" Name 30 "scale" Name 34 "foo2" Name 36 "foo" Name 54 "gl_FragColor" Name 59 "samp2D" Name 63 "coord" Name 69 "constructed" Decorate 10(Count) Flat Decorate 20(foo3) Flat Decorate 34(foo2) Flat Decorate 36(foo) Flat Decorate 54(gl_FragColor) Location 0 Decorate 59(samp2D) DescriptorSet 0 Decorate 59(samp2D) Binding 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 glslang-8.13.3559/Test/baseResults/spv.varyingArray.frag.out000066400000000000000000000101261360464450000236510ustar00rootroot00000000000000spv.varyingArray.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 45(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypeImage 6(float) 2D sampled format:Unknown 11: TypeSampledImage 10 12: TypePointer UniformConstant 11 13(texSampler2D): 12(ptr) Variable UniformConstant 15: TypeInt 32 0 16: 15(int) Constant 6 17: TypeArray 7(fvec4) 16 18: TypePointer Input 17 19(TexCoord): 18(ptr) Variable Input 20: TypeInt 32 1 21: 20(int) Constant 4 22: TypePointer Input 7(fvec4) 25: 20(int) Constant 5 29: TypeVector 6(float) 2 34(color): 22(ptr) Variable Input 38: TypePointer Input 6(float) 39(alpha): 38(ptr) Variable Input 41: 15(int) Constant 3 42: TypePointer Function 6(float) 44: TypePointer Output 7(fvec4) 45(gl_FragColor): 44(ptr) Variable Output 46: TypeArray 7(fvec4) 41 47: TypePointer Input 46 48(foo): 47(ptr) Variable Input 49: 20(int) Constant 1 52: 20(int) Constant 0 4(main): 2 Function None 3 5: Label 9(texColor): 8(ptr) Variable Function 14: 11 Load 13(texSampler2D) 23: 22(ptr) AccessChain 19(TexCoord) 21 24: 7(fvec4) Load 23 26: 22(ptr) AccessChain 19(TexCoord) 25 27: 7(fvec4) Load 26 28: 7(fvec4) FAdd 24 27 30: 6(float) CompositeExtract 28 0 31: 6(float) CompositeExtract 28 1 32: 29(fvec2) CompositeConstruct 30 31 33: 7(fvec4) ImageSampleImplicitLod 14 32 Store 9(texColor) 33 35: 7(fvec4) Load 34(color) 36: 7(fvec4) Load 9(texColor) 37: 7(fvec4) FAdd 36 35 Store 9(texColor) 37 40: 6(float) Load 39(alpha) 43: 42(ptr) AccessChain 9(texColor) 41 Store 43 40 50: 22(ptr) AccessChain 48(foo) 49 51: 7(fvec4) Load 50 53: 22(ptr) AccessChain 19(TexCoord) 52 54: 7(fvec4) Load 53 55: 7(fvec4) FAdd 51 54 56: 22(ptr) AccessChain 19(TexCoord) 21 57: 7(fvec4) Load 56 58: 7(fvec4) FAdd 55 57 59: 7(fvec4) Load 9(texColor) 60: 7(fvec4) FAdd 58 59 Store 45(gl_FragColor) 60 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.varyingArrayIndirect.frag.out000066400000000000000000000112701360464450000253340ustar00rootroot00000000000000spv.varyingArrayIndirect.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 22(b) Flat Decorate 31(a) Flat Decorate 56(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypeImage 6(float) 2D sampled format:Unknown 11: TypeSampledImage 10 12: TypePointer UniformConstant 11 13(texSampler2D): 12(ptr) Variable UniformConstant 15: TypeInt 32 0 16: 15(int) Constant 2 17: TypeArray 7(fvec4) 16 18: TypePointer Input 17 19(userIn): 18(ptr) Variable Input 20: TypeInt 32 1 21: TypePointer Input 20(int) 22(b): 21(ptr) Variable Input 24: TypePointer Input 7(fvec4) 27: 15(int) Constant 6 28: TypeArray 7(fvec4) 27 29: TypePointer Input 28 30(TexCoord): 29(ptr) Variable Input 31(a): 21(ptr) Variable Input 36: 20(int) Constant 5 40: TypeVector 6(float) 2 45(color): 24(ptr) Variable Input 49: TypePointer Input 6(float) 50(alpha): 49(ptr) Variable Input 52: 15(int) Constant 3 53: TypePointer Function 6(float) 55: TypePointer Output 7(fvec4) 56(gl_FragColor): 55(ptr) Variable Output 57: 20(int) Constant 0 4(main): 2 Function None 3 5: Label 9(texColor): 8(ptr) Variable Function 14: 11 Load 13(texSampler2D) 23: 20(int) Load 22(b) 25: 24(ptr) AccessChain 19(userIn) 23 26: 7(fvec4) Load 25 32: 20(int) Load 31(a) 33: 24(ptr) AccessChain 30(TexCoord) 32 34: 7(fvec4) Load 33 35: 7(fvec4) FAdd 26 34 37: 24(ptr) AccessChain 30(TexCoord) 36 38: 7(fvec4) Load 37 39: 7(fvec4) FAdd 35 38 41: 6(float) CompositeExtract 39 0 42: 6(float) CompositeExtract 39 1 43: 40(fvec2) CompositeConstruct 41 42 44: 7(fvec4) ImageSampleImplicitLod 14 43 Store 9(texColor) 44 46: 7(fvec4) Load 45(color) 47: 7(fvec4) Load 9(texColor) 48: 7(fvec4) FAdd 47 46 Store 9(texColor) 48 51: 6(float) Load 50(alpha) 54: 53(ptr) AccessChain 9(texColor) 52 Store 54 51 58: 24(ptr) AccessChain 30(TexCoord) 57 59: 7(fvec4) Load 58 60: 20(int) Load 22(b) 61: 24(ptr) AccessChain 30(TexCoord) 60 62: 7(fvec4) Load 61 63: 7(fvec4) FAdd 59 62 64: 7(fvec4) Load 9(texColor) 65: 7(fvec4) FAdd 63 64 66: 20(int) Load 31(a) 67: 24(ptr) AccessChain 19(userIn) 66 68: 7(fvec4) Load 67 69: 7(fvec4) FAdd 65 68 Store 56(gl_FragColor) 69 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.vecMatConstruct.frag.out000066400000000000000000000102031360464450000243130ustar00rootroot00000000000000spv.vecMatConstruct.frag // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.viewportArray2.tesc.out000066400000000000000000000057431360464450000241630ustar00rootroot00000000000000spv.viewportArray2.tesc Validation failed // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 25 Capability Geometry Capability Tessellation Capability MultiViewport Capability ShaderViewportIndexLayerNV Capability ShaderViewportMaskNV Extension "SPV_EXT_shader_viewport_index_layer" Extension "SPV_NV_viewport_array2" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationControl 4 "main" 14 16 22 24 ExecutionMode 4 OutputVertices 4 Source GLSL 450 SourceExtension "GL_NV_viewport_array2" Name 4 "main" Name 10 "gl_PerVertex" MemberName 10(gl_PerVertex) 0 "gl_ViewportMask" Name 14 "gl_out" Name 16 "gl_InvocationID" Name 22 "gl_ViewportIndex" Name 24 "gl_Layer" MemberDecorate 10(gl_PerVertex) 0 BuiltIn ViewportMaskNV Decorate 10(gl_PerVertex) Block Decorate 16(gl_InvocationID) BuiltIn InvocationId Decorate 22(gl_ViewportIndex) BuiltIn ViewportIndex Decorate 24(gl_Layer) BuiltIn Layer Decorate 24(gl_Layer) ViewportRelativeNV 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeInt 32 0 8: 7(int) Constant 2 9: TypeArray 6(int) 8 10(gl_PerVertex): TypeStruct 9 11: 7(int) Constant 4 12: TypeArray 10(gl_PerVertex) 11 13: TypePointer Output 12 14(gl_out): 13(ptr) Variable Output 15: TypePointer Input 6(int) 16(gl_InvocationID): 15(ptr) Variable Input 18: 6(int) Constant 0 19: 6(int) Constant 1 20: TypePointer Output 6(int) 22(gl_ViewportIndex): 20(ptr) Variable Output 23: 6(int) Constant 2 24(gl_Layer): 20(ptr) Variable Output 4(main): 2 Function None 3 5: Label 17: 6(int) Load 16(gl_InvocationID) 21: 20(ptr) AccessChain 14(gl_out) 17 18 18 Store 21 19 Store 22(gl_ViewportIndex) 23 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.viewportArray2.vert.out000066400000000000000000000045371360464450000242050ustar00rootroot00000000000000spv.viewportArray2.vert // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 19 Capability Shader Capability Geometry Capability MultiViewport Capability ShaderViewportIndexLayerNV Capability ShaderViewportMaskNV Extension "SPV_EXT_shader_viewport_index_layer" Extension "SPV_NV_viewport_array2" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 11 16 18 Source GLSL 450 SourceExtension "GL_ARB_shader_viewport_layer_array" SourceExtension "GL_NV_viewport_array2" Name 4 "main" Name 11 "gl_ViewportMask" Name 16 "gl_ViewportIndex" Name 18 "gl_Layer" Decorate 11(gl_ViewportMask) BuiltIn ViewportMaskNV Decorate 16(gl_ViewportIndex) BuiltIn ViewportIndex Decorate 18(gl_Layer) BuiltIn Layer Decorate 18(gl_Layer) ViewportRelativeNV 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeInt 32 0 8: 7(int) Constant 1 9: TypeArray 6(int) 8 10: TypePointer Output 9 11(gl_ViewportMask): 10(ptr) Variable Output 12: 6(int) Constant 0 13: 6(int) Constant 1 14: TypePointer Output 6(int) 16(gl_ViewportIndex): 14(ptr) Variable Output 17: 6(int) Constant 2 18(gl_Layer): 14(ptr) Variable Output 4(main): 2 Function None 3 5: Label 15: 14(ptr) AccessChain 11(gl_ViewportMask) 12 Store 15 13 Store 16(gl_ViewportIndex) 17 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.voidFunction.frag.out000066400000000000000000000063771360464450000236570ustar00rootroot00000000000000spv.voidFunction.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 43 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 24 37 40 42 ExecutionMode 4 OriginUpperLeft Source GLSL 400 Name 4 "main" Name 6 "foo(" Name 8 "foo2(" Name 12 "bar" Name 22 "outColor" Name 24 "bigColor" Name 37 "gl_FragColor" Name 40 "BaseColor" Name 42 "d" Decorate 37(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 11: TypePointer Private 10(float) 12(bar): 11(ptr) Variable Private 13: 10(float) Constant 1073741824 15: 10(float) Constant 1065353216 20: TypeVector 10(float) 4 21: TypePointer Function 20(fvec4) 23: TypePointer Input 20(fvec4) 24(bigColor): 23(ptr) Variable Input 29: TypeInt 32 0 30: 29(int) Constant 0 31: TypePointer Function 10(float) 36: TypePointer Output 20(fvec4) 37(gl_FragColor): 36(ptr) Variable Output 40(BaseColor): 23(ptr) Variable Input 41: TypePointer Input 10(float) 42(d): 41(ptr) Variable Input 4(main): 2 Function None 3 5: Label 22(outColor): 21(ptr) Variable Function Store 12(bar) 13 25: 20(fvec4) Load 24(bigColor) Store 22(outColor) 25 26: 2 FunctionCall 6(foo() 27: 2 FunctionCall 8(foo2() 28: 10(float) Load 12(bar) 32: 31(ptr) AccessChain 22(outColor) 30 33: 10(float) Load 32 34: 10(float) FAdd 33 28 35: 31(ptr) AccessChain 22(outColor) 30 Store 35 34 38: 20(fvec4) Load 22(outColor) Store 37(gl_FragColor) 38 Return FunctionEnd 6(foo(): 2 Function None 3 7: Label 14: 10(float) Load 12(bar) 16: 10(float) FAdd 14 15 Store 12(bar) 16 Return FunctionEnd 8(foo2(): 2 Function None 3 9: Label 18: 10(float) Load 12(bar) 19: 10(float) FAdd 18 15 Store 12(bar) 19 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.volatileAtomic.comp.out000066400000000000000000000035041360464450000241700ustar00rootroot00000000000000spv.volatileAtomic.comp // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.vulkan100.subgroupArithmetic.comp.out000066400000000000000000000360211360464450000266140ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.vulkan100.subgroupPartitioned.comp.out000066400000000000000000000401011360464450000267770ustar00rootroot00000000000000spv.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 glslang-8.13.3559/Test/baseResults/spv.vulkan110.int16.frag.out000066400000000000000000001070471360464450000236660ustar00rootroot00000000000000spv.vulkan110.int16.frag // Module Version 10300 // Generated by (magic number): 80008 // Id's are bound by 523 Capability Shader Capability Float16 Capability Float64 Capability Int64 Capability Int16 Capability Int8 Capability StorageUniform16 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_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 518 "Block" MemberName 518(Block) 0 "i16" MemberName 518(Block) 1 "i16v2" MemberName 518(Block) 2 "i16v3" MemberName 518(Block) 3 "i16v4" MemberName 518(Block) 4 "u16" MemberName 518(Block) 5 "u16v2" MemberName 518(Block) 6 "u16v3" MemberName 518(Block) 7 "u16v4" Name 520 "block" Name 521 "si16" Name 522 "su16" MemberDecorate 24(Uniforms) 0 Offset 0 Decorate 24(Uniforms) Block Decorate 26 DescriptorSet 0 Decorate 26 Binding 0 MemberDecorate 518(Block) 0 Offset 0 MemberDecorate 518(Block) 1 Offset 4 MemberDecorate 518(Block) 2 Offset 8 MemberDecorate 518(Block) 3 Offset 16 MemberDecorate 518(Block) 4 Offset 24 MemberDecorate 518(Block) 5 Offset 28 MemberDecorate 518(Block) 6 Offset 32 MemberDecorate 518(Block) 7 Offset 40 Decorate 518(Block) Block Decorate 520(block) DescriptorSet 0 Decorate 520(block) Binding 1 Decorate 521(si16) SpecId 100 Decorate 522(su16) SpecId 101 2: TypeVoid 3: TypeFunction 2 14: TypeInt 16 1 15: TypePointer Function 14(int16_t) 17: TypeInt 32 0 18: 17(int) Constant 3 19: TypeArray 14(int16_t) 18 20: 14(int16_t) Constant 4294962927 21: 14(int16_t) Constant 4294967295 22: 14(int16_t) Constant 16384 23: 19 ConstantComposite 20 21 22 24(Uniforms): TypeStruct 17(int) 25: TypePointer Uniform 24(Uniforms) 26: 25(ptr) Variable Uniform 27: TypeInt 32 1 28: 27(int) Constant 0 29: TypePointer Uniform 17(int) 32: TypePointer Function 19 36: TypeInt 16 0 37: TypePointer Function 36(int16_t) 39: TypeArray 36(int16_t) 18 40: 36(int16_t) Constant 65535 41: 36(int16_t) Constant 32767 42: 39 ConstantComposite 40 40 41 45: TypePointer Function 39 49: TypeVector 27(int) 2 50: TypePointer Function 49(ivec2) 52: TypeVector 14(int16_t) 2 53: TypePointer Function 52(i16vec2) 57: TypeVector 36(int16_t) 2 58: TypePointer Function 57(i16vec2) 61: TypeVector 17(int) 2 66: TypePointer Function 61(ivec2) 71: TypeInt 64 1 72: TypeVector 71(int64_t) 2 73: TypePointer Function 72(i64vec2) 77: TypeInt 64 0 78: TypeVector 77(int64_t) 2 79: TypePointer Function 78(i64vec2) 91: TypeFloat 16 92: TypeVector 91(float16_t) 2 93: TypePointer Function 92(f16vec2) 97: TypeFloat 32 98: TypeVector 97(float) 2 99: TypePointer Function 98(fvec2) 103: TypeFloat 64 104: TypeVector 103(float64_t) 2 105: TypePointer Function 104(f64vec2) 151: TypeInt 8 1 152: TypeVector 151(int8_t) 2 153: TypePointer Function 152(i8vec2) 158: TypeInt 8 0 159: TypeVector 158(int8_t) 2 162: TypePointer Function 159(i8vec2) 173: TypeBool 174: TypeVector 173(bool) 2 175: TypePointer Function 174(bvec2) 178: 14(int16_t) Constant 0 179: 14(int16_t) Constant 1 180: 52(i16vec2) ConstantComposite 178 178 181: 52(i16vec2) ConstantComposite 179 179 184: 36(int16_t) Constant 0 185: 36(int16_t) Constant 1 186: 57(i16vec2) ConstantComposite 184 184 187: 57(i16vec2) ConstantComposite 185 185 193: TypeVector 36(int16_t) 3 194: TypePointer Function 193(i16vec3) 197: TypeVector 14(int16_t) 3 219: TypePointer Function 27(int) 225: TypeVector 17(int) 3 226: TypePointer Function 225(ivec3) 242: TypePointer Function 71(int64_t) 264: 17(int) Constant 1 270: 17(int) Constant 2 276: TypeVector 27(int) 3 280: TypePointer Function 173(bool) 282: 17(int) Constant 0 296: TypePointer Function 17(int) 354: 52(i16vec2) ConstantComposite 21 21 363:193(i16vec3) ConstantComposite 184 184 184 405: 173(bool) ConstantTrue 412: 173(bool) ConstantFalse 413: 174(bvec2) ConstantComposite 412 412 425: TypeVector 173(bool) 3 426: 425(bvec3) ConstantComposite 412 412 412 432: TypeVector 14(int16_t) 4 433: TypePointer Function 432(i16vec4) 441: TypePointer Function 77(int64_t) 443: TypeVector 36(int16_t) 4 444: TypePointer Function 443(i16vec4) 456: TypePointer Function 425(bvec3) 518(Block): TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4) 519: TypePointer Uniform 518(Block) 520(block): 519(ptr) Variable Uniform 521(si16): 14(int16_t) SpecConstant 4294967286 522(su16): 36(int16_t) SpecConstant 20 4(main): 2 Function None 3 5: Label Return FunctionEnd 6(literal(): 2 Function None 3 7: Label 16(i16): 15(ptr) Variable Function 33(indexable): 32(ptr) Variable Function 38(u16): 37(ptr) Variable Function 46(indexable): 45(ptr) Variable Function 30: 29(ptr) AccessChain 26 28 31: 17(int) Load 30 Store 33(indexable) 23 34: 15(ptr) AccessChain 33(indexable) 31 35: 14(int16_t) Load 34 Store 16(i16) 35 43: 29(ptr) AccessChain 26 28 44: 17(int) Load 43 Store 46(indexable) 42 47: 37(ptr) AccessChain 46(indexable) 44 48: 36(int16_t) Load 47 Store 38(u16) 48 Return FunctionEnd 8(typeCast16(): 2 Function None 3 9: Label 51(i32v): 50(ptr) Variable Function 54(i16v): 53(ptr) Variable Function 59(u16v): 58(ptr) Variable Function 67(u32v): 66(ptr) Variable Function 74(i64v): 73(ptr) Variable Function 80(u64v): 79(ptr) Variable Function 94(f16v): 93(ptr) Variable Function 100(f32v): 99(ptr) Variable Function 106(f64v): 105(ptr) Variable Function 154(i8v): 153(ptr) Variable Function 163(u8v): 162(ptr) Variable Function 176(bv): 175(ptr) Variable Function 55: 52(i16vec2) Load 54(i16v) 56: 49(ivec2) SConvert 55 Store 51(i32v) 56 60: 57(i16vec2) Load 59(u16v) 62: 61(ivec2) UConvert 60 63: 49(ivec2) Bitcast 62 Store 51(i32v) 63 64: 52(i16vec2) Load 54(i16v) 65: 57(i16vec2) Bitcast 64 Store 59(u16v) 65 68: 52(i16vec2) Load 54(i16v) 69: 49(ivec2) SConvert 68 70: 61(ivec2) Bitcast 69 Store 67(u32v) 70 75: 52(i16vec2) Load 54(i16v) 76: 72(i64vec2) SConvert 75 Store 74(i64v) 76 81: 52(i16vec2) Load 54(i16v) 82: 72(i64vec2) SConvert 81 83: 78(i64vec2) Bitcast 82 Store 80(u64v) 83 84: 57(i16vec2) Load 59(u16v) 85: 61(ivec2) UConvert 84 Store 67(u32v) 85 86: 57(i16vec2) Load 59(u16v) 87: 78(i64vec2) UConvert 86 88: 72(i64vec2) Bitcast 87 Store 74(i64v) 88 89: 57(i16vec2) Load 59(u16v) 90: 78(i64vec2) UConvert 89 Store 80(u64v) 90 95: 52(i16vec2) Load 54(i16v) 96: 92(f16vec2) ConvertSToF 95 Store 94(f16v) 96 101: 52(i16vec2) Load 54(i16v) 102: 98(fvec2) ConvertSToF 101 Store 100(f32v) 102 107: 52(i16vec2) Load 54(i16v) 108:104(f64vec2) ConvertSToF 107 Store 106(f64v) 108 109: 57(i16vec2) Load 59(u16v) 110: 92(f16vec2) ConvertUToF 109 Store 94(f16v) 110 111: 57(i16vec2) Load 59(u16v) 112: 98(fvec2) ConvertUToF 111 Store 100(f32v) 112 113: 57(i16vec2) Load 59(u16v) 114:104(f64vec2) ConvertUToF 113 Store 106(f64v) 114 115: 52(i16vec2) Load 54(i16v) 116: 49(ivec2) SConvert 115 Store 51(i32v) 116 117: 57(i16vec2) Load 59(u16v) 118: 61(ivec2) UConvert 117 119: 49(ivec2) Bitcast 118 Store 51(i32v) 119 120: 52(i16vec2) Load 54(i16v) 121: 57(i16vec2) Bitcast 120 Store 59(u16v) 121 122: 52(i16vec2) Load 54(i16v) 123: 49(ivec2) SConvert 122 124: 61(ivec2) Bitcast 123 Store 67(u32v) 124 125: 52(i16vec2) Load 54(i16v) 126: 72(i64vec2) SConvert 125 Store 74(i64v) 126 127: 52(i16vec2) Load 54(i16v) 128: 72(i64vec2) SConvert 127 129: 78(i64vec2) Bitcast 128 Store 80(u64v) 129 130: 57(i16vec2) Load 59(u16v) 131: 61(ivec2) UConvert 130 Store 67(u32v) 131 132: 57(i16vec2) Load 59(u16v) 133: 78(i64vec2) UConvert 132 134: 72(i64vec2) Bitcast 133 Store 74(i64v) 134 135: 57(i16vec2) Load 59(u16v) 136: 78(i64vec2) UConvert 135 137: 72(i64vec2) Bitcast 136 138: 78(i64vec2) Bitcast 137 Store 80(u64v) 138 139: 52(i16vec2) Load 54(i16v) 140: 92(f16vec2) ConvertSToF 139 Store 94(f16v) 140 141: 52(i16vec2) Load 54(i16v) 142: 98(fvec2) ConvertSToF 141 Store 100(f32v) 142 143: 52(i16vec2) Load 54(i16v) 144:104(f64vec2) ConvertSToF 143 Store 106(f64v) 144 145: 57(i16vec2) Load 59(u16v) 146: 92(f16vec2) ConvertUToF 145 Store 94(f16v) 146 147: 57(i16vec2) Load 59(u16v) 148: 98(fvec2) ConvertUToF 147 Store 100(f32v) 148 149: 57(i16vec2) Load 59(u16v) 150:104(f64vec2) ConvertUToF 149 Store 106(f64v) 150 155: 52(i16vec2) Load 54(i16v) 156: 152(i8vec2) SConvert 155 Store 154(i8v) 156 157: 57(i16vec2) Load 59(u16v) 160: 159(i8vec2) UConvert 157 161: 152(i8vec2) Bitcast 160 Store 154(i8v) 161 164: 52(i16vec2) Load 54(i16v) 165: 152(i8vec2) SConvert 164 166: 159(i8vec2) Bitcast 165 Store 163(u8v) 166 167: 57(i16vec2) Load 59(u16v) 168: 159(i8vec2) UConvert 167 Store 163(u8v) 168 169: 57(i16vec2) Load 59(u16v) 170: 159(i8vec2) UConvert 169 171: 57(i16vec2) UConvert 170 172: 52(i16vec2) Bitcast 171 Store 54(i16v) 172 177: 174(bvec2) Load 176(bv) 182: 52(i16vec2) Select 177 181 180 Store 54(i16v) 182 183: 174(bvec2) Load 176(bv) 188: 57(i16vec2) Select 183 187 186 Store 59(u16v) 188 189: 52(i16vec2) Load 54(i16v) 190: 174(bvec2) INotEqual 189 186 Store 176(bv) 190 191: 57(i16vec2) Load 59(u16v) 192: 174(bvec2) INotEqual 191 186 Store 176(bv) 192 Return FunctionEnd 10(operators(): 2 Function None 3 11: Label 195(u16v): 194(ptr) Variable Function 200(i16): 15(ptr) Variable Function 220(i): 219(ptr) Variable Function 227(uv): 226(ptr) Variable Function 243(i64): 242(ptr) Variable Function 281(b): 280(ptr) Variable Function 196:193(i16vec3) Load 195(u16v) 198:197(i16vec3) CompositeConstruct 179 179 179 199:193(i16vec3) IAdd 196 198 Store 195(u16v) 199 201: 14(int16_t) Load 200(i16) 202: 14(int16_t) ISub 201 179 Store 200(i16) 202 203: 14(int16_t) Load 200(i16) 204: 14(int16_t) IAdd 203 179 Store 200(i16) 204 205:193(i16vec3) Load 195(u16v) 206:197(i16vec3) CompositeConstruct 179 179 179 207:193(i16vec3) ISub 205 206 Store 195(u16v) 207 208:193(i16vec3) Load 195(u16v) 209:193(i16vec3) Not 208 Store 195(u16v) 209 210: 14(int16_t) Load 200(i16) Store 200(i16) 210 211:193(i16vec3) Load 195(u16v) 212:193(i16vec3) SNegate 211 Store 195(u16v) 212 213: 14(int16_t) Load 200(i16) 214: 14(int16_t) Load 200(i16) 215: 14(int16_t) IAdd 214 213 Store 200(i16) 215 216:193(i16vec3) Load 195(u16v) 217:193(i16vec3) Load 195(u16v) 218:193(i16vec3) ISub 217 216 Store 195(u16v) 218 221: 14(int16_t) Load 200(i16) 222: 27(int) SConvert 221 223: 27(int) Load 220(i) 224: 27(int) IMul 223 222 Store 220(i) 224 228:193(i16vec3) Load 195(u16v) 229: 225(ivec3) UConvert 228 230: 225(ivec3) Load 227(uv) 231: 225(ivec3) UDiv 230 229 Store 227(uv) 231 232: 14(int16_t) Load 200(i16) 233: 27(int) SConvert 232 234: 17(int) Bitcast 233 235: 225(ivec3) Load 227(uv) 236: 225(ivec3) CompositeConstruct 234 234 234 237: 225(ivec3) UMod 235 236 Store 227(uv) 237 238:193(i16vec3) Load 195(u16v) 239: 225(ivec3) UConvert 238 240: 225(ivec3) Load 227(uv) 241: 225(ivec3) IAdd 239 240 Store 227(uv) 241 244: 14(int16_t) Load 200(i16) 245: 71(int64_t) SConvert 244 246: 71(int64_t) Load 243(i64) 247: 71(int64_t) ISub 245 246 Store 243(i64) 247 248:193(i16vec3) Load 195(u16v) 249: 225(ivec3) UConvert 248 250: 225(ivec3) Load 227(uv) 251: 225(ivec3) IMul 249 250 Store 227(uv) 251 252: 14(int16_t) Load 200(i16) 253: 71(int64_t) SConvert 252 254: 71(int64_t) Load 243(i64) 255: 71(int64_t) IMul 253 254 Store 243(i64) 255 256: 14(int16_t) Load 200(i16) 257: 27(int) SConvert 256 258: 27(int) Load 220(i) 259: 27(int) SMod 257 258 Store 220(i) 259 260: 14(int16_t) Load 200(i16) 261:193(i16vec3) Load 195(u16v) 262:197(i16vec3) CompositeConstruct 260 260 260 263:193(i16vec3) ShiftLeftLogical 261 262 Store 195(u16v) 263 265: 37(ptr) AccessChain 195(u16v) 264 266: 36(int16_t) Load 265 267: 14(int16_t) Load 200(i16) 268: 14(int16_t) ShiftRightArithmetic 267 266 Store 200(i16) 268 269: 14(int16_t) Load 200(i16) 271: 37(ptr) AccessChain 195(u16v) 270 272: 36(int16_t) Load 271 273: 14(int16_t) ShiftLeftLogical 269 272 Store 200(i16) 273 274:193(i16vec3) Load 195(u16v) 275: 27(int) Load 220(i) 277: 276(ivec3) CompositeConstruct 275 275 275 278:193(i16vec3) ShiftLeftLogical 274 277 279: 225(ivec3) UConvert 278 Store 227(uv) 279 283: 37(ptr) AccessChain 195(u16v) 282 284: 36(int16_t) Load 283 285: 14(int16_t) Load 200(i16) 286: 36(int16_t) Bitcast 285 287: 173(bool) INotEqual 284 286 Store 281(b) 287 288: 14(int16_t) Load 200(i16) 289: 36(int16_t) Bitcast 288 290: 37(ptr) AccessChain 195(u16v) 282 291: 36(int16_t) Load 290 292: 173(bool) IEqual 289 291 Store 281(b) 292 293: 37(ptr) AccessChain 195(u16v) 282 294: 36(int16_t) Load 293 295: 17(int) UConvert 294 297: 296(ptr) AccessChain 227(uv) 264 298: 17(int) Load 297 299: 173(bool) UGreaterThan 295 298 Store 281(b) 299 300: 14(int16_t) Load 200(i16) 301: 27(int) SConvert 300 302: 27(int) Load 220(i) 303: 173(bool) SLessThan 301 302 Store 281(b) 303 304: 37(ptr) AccessChain 195(u16v) 264 305: 36(int16_t) Load 304 306: 17(int) UConvert 305 307: 296(ptr) AccessChain 227(uv) 282 308: 17(int) Load 307 309: 173(bool) UGreaterThanEqual 306 308 Store 281(b) 309 310: 14(int16_t) Load 200(i16) 311: 27(int) SConvert 310 312: 27(int) Load 220(i) 313: 173(bool) SLessThanEqual 311 312 Store 281(b) 313 314: 14(int16_t) Load 200(i16) 315: 27(int) SConvert 314 316: 17(int) Bitcast 315 317: 225(ivec3) Load 227(uv) 318: 225(ivec3) CompositeConstruct 316 316 316 319: 225(ivec3) BitwiseOr 317 318 Store 227(uv) 319 320: 14(int16_t) Load 200(i16) 321: 27(int) SConvert 320 322: 27(int) Load 220(i) 323: 27(int) BitwiseOr 321 322 Store 220(i) 323 324: 14(int16_t) Load 200(i16) 325: 71(int64_t) SConvert 324 326: 71(int64_t) Load 243(i64) 327: 71(int64_t) BitwiseAnd 326 325 Store 243(i64) 327 328:193(i16vec3) Load 195(u16v) 329: 225(ivec3) UConvert 328 330: 225(ivec3) Load 227(uv) 331: 225(ivec3) BitwiseAnd 329 330 Store 227(uv) 331 332: 14(int16_t) Load 200(i16) 333: 27(int) SConvert 332 334: 17(int) Bitcast 333 335: 225(ivec3) Load 227(uv) 336: 225(ivec3) CompositeConstruct 334 334 334 337: 225(ivec3) BitwiseXor 335 336 Store 227(uv) 337 338:193(i16vec3) Load 195(u16v) 339: 14(int16_t) Load 200(i16) 340: 36(int16_t) Bitcast 339 341:193(i16vec3) CompositeConstruct 340 340 340 342:193(i16vec3) BitwiseXor 338 341 Store 195(u16v) 342 Return FunctionEnd 12(builtinFuncs(): 2 Function None 3 13: Label 343(i16v): 53(ptr) Variable Function 346(i16): 15(ptr) Variable Function 356(u16v): 194(ptr) Variable Function 358(u16): 37(ptr) Variable Function 428(i32): 219(ptr) Variable Function 431(i64): 242(ptr) Variable Function 434(i16v4): 433(ptr) Variable Function 437(u32): 296(ptr) Variable Function 438(u16v2): 58(ptr) Variable Function 442(u64): 441(ptr) Variable Function 445(u16v4): 444(ptr) Variable Function 457(bv): 456(ptr) Variable Function 344: 52(i16vec2) Load 343(i16v) 345: 52(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 344 Store 343(i16v) 345 347: 14(int16_t) Load 346(i16) 348: 14(int16_t) ExtInst 1(GLSL.std.450) 7(SSign) 347 Store 346(i16) 348 349: 52(i16vec2) Load 343(i16v) 350: 14(int16_t) Load 346(i16) 351: 52(i16vec2) CompositeConstruct 350 350 352: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 349 351 Store 343(i16v) 352 353: 52(i16vec2) Load 343(i16v) 355: 52(i16vec2) ExtInst 1(GLSL.std.450) 39(SMin) 353 354 Store 343(i16v) 355 357:193(i16vec3) Load 356(u16v) 359: 36(int16_t) Load 358(u16) 360:193(i16vec3) CompositeConstruct 359 359 359 361:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 357 360 Store 356(u16v) 361 362:193(i16vec3) Load 356(u16v) 364:193(i16vec3) ExtInst 1(GLSL.std.450) 38(UMin) 362 363 Store 356(u16v) 364 365: 52(i16vec2) Load 343(i16v) 366: 14(int16_t) Load 346(i16) 367: 52(i16vec2) CompositeConstruct 366 366 368: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 365 367 Store 343(i16v) 368 369: 52(i16vec2) Load 343(i16v) 370: 52(i16vec2) ExtInst 1(GLSL.std.450) 42(SMax) 369 354 Store 343(i16v) 370 371:193(i16vec3) Load 356(u16v) 372: 36(int16_t) Load 358(u16) 373:193(i16vec3) CompositeConstruct 372 372 372 374:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 371 373 Store 356(u16v) 374 375:193(i16vec3) Load 356(u16v) 376:193(i16vec3) ExtInst 1(GLSL.std.450) 41(UMax) 375 363 Store 356(u16v) 376 377: 52(i16vec2) Load 343(i16v) 378: 14(int16_t) Load 346(i16) 379: 14(int16_t) SNegate 378 380: 14(int16_t) Load 346(i16) 381: 52(i16vec2) CompositeConstruct 379 379 382: 52(i16vec2) CompositeConstruct 380 380 383: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 377 381 382 Store 343(i16v) 383 384: 52(i16vec2) Load 343(i16v) 385: 52(i16vec2) Load 343(i16v) 386: 52(i16vec2) SNegate 385 387: 52(i16vec2) Load 343(i16v) 388: 52(i16vec2) ExtInst 1(GLSL.std.450) 45(SClamp) 384 386 387 Store 343(i16v) 388 389:193(i16vec3) Load 356(u16v) 390: 36(int16_t) Load 358(u16) 391: 36(int16_t) SNegate 390 392: 36(int16_t) Load 358(u16) 393:193(i16vec3) CompositeConstruct 391 391 391 394:193(i16vec3) CompositeConstruct 392 392 392 395:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 389 393 394 Store 356(u16v) 395 396:193(i16vec3) Load 356(u16v) 397:193(i16vec3) Load 356(u16v) 398:193(i16vec3) SNegate 397 399:193(i16vec3) Load 356(u16v) 400:193(i16vec3) ExtInst 1(GLSL.std.450) 44(UClamp) 396 398 399 Store 356(u16v) 400 401: 15(ptr) AccessChain 343(i16v) 282 402: 14(int16_t) Load 401 403: 15(ptr) AccessChain 343(i16v) 264 404: 14(int16_t) Load 403 406: 14(int16_t) Select 405 404 402 Store 346(i16) 406 407: 14(int16_t) Load 346(i16) 408: 52(i16vec2) CompositeConstruct 407 407 409: 14(int16_t) Load 346(i16) 410: 14(int16_t) SNegate 409 411: 52(i16vec2) CompositeConstruct 410 410 414: 52(i16vec2) Select 413 411 408 Store 343(i16v) 414 415: 37(ptr) AccessChain 356(u16v) 282 416: 36(int16_t) Load 415 417: 37(ptr) AccessChain 356(u16v) 264 418: 36(int16_t) Load 417 419: 36(int16_t) Select 405 418 416 Store 358(u16) 419 420: 36(int16_t) Load 358(u16) 421:193(i16vec3) CompositeConstruct 420 420 420 422: 36(int16_t) Load 358(u16) 423: 36(int16_t) SNegate 422 424:193(i16vec3) CompositeConstruct 423 423 423 427:193(i16vec3) Select 426 424 421 Store 356(u16v) 427 429: 52(i16vec2) Load 343(i16v) 430: 27(int) Bitcast 429 Store 428(i32) 430 435:432(i16vec4) Load 434(i16v4) 436: 71(int64_t) Bitcast 435 Store 431(i64) 436 439: 57(i16vec2) Load 438(u16v2) 440: 17(int) Bitcast 439 Store 437(u32) 440 446:443(i16vec4) Load 445(u16v4) 447: 77(int64_t) Bitcast 446 Store 442(u64) 447 448: 27(int) Load 428(i32) 449: 52(i16vec2) Bitcast 448 Store 343(i16v) 449 450: 71(int64_t) Load 431(i64) 451:432(i16vec4) Bitcast 450 Store 434(i16v4) 451 452: 17(int) Load 437(u32) 453: 57(i16vec2) Bitcast 452 Store 438(u16v2) 453 454: 77(int64_t) Load 442(u64) 455:443(i16vec4) Bitcast 454 Store 445(u16v4) 455 458:193(i16vec3) Load 356(u16v) 459: 36(int16_t) Load 358(u16) 460:193(i16vec3) CompositeConstruct 459 459 459 461: 425(bvec3) ULessThan 458 460 Store 457(bv) 461 462: 52(i16vec2) Load 343(i16v) 463: 14(int16_t) Load 346(i16) 464: 52(i16vec2) CompositeConstruct 463 463 465: 174(bvec2) SLessThan 462 464 466: 425(bvec3) Load 457(bv) 467: 425(bvec3) VectorShuffle 466 465 3 4 2 Store 457(bv) 467 468:193(i16vec3) Load 356(u16v) 469: 36(int16_t) Load 358(u16) 470:193(i16vec3) CompositeConstruct 469 469 469 471: 425(bvec3) ULessThanEqual 468 470 Store 457(bv) 471 472: 52(i16vec2) Load 343(i16v) 473: 14(int16_t) Load 346(i16) 474: 52(i16vec2) CompositeConstruct 473 473 475: 174(bvec2) SLessThanEqual 472 474 476: 425(bvec3) Load 457(bv) 477: 425(bvec3) VectorShuffle 476 475 3 4 2 Store 457(bv) 477 478:193(i16vec3) Load 356(u16v) 479: 36(int16_t) Load 358(u16) 480:193(i16vec3) CompositeConstruct 479 479 479 481: 425(bvec3) UGreaterThan 478 480 Store 457(bv) 481 482: 52(i16vec2) Load 343(i16v) 483: 14(int16_t) Load 346(i16) 484: 52(i16vec2) CompositeConstruct 483 483 485: 174(bvec2) SGreaterThan 482 484 486: 425(bvec3) Load 457(bv) 487: 425(bvec3) VectorShuffle 486 485 3 4 2 Store 457(bv) 487 488:193(i16vec3) Load 356(u16v) 489: 36(int16_t) Load 358(u16) 490:193(i16vec3) CompositeConstruct 489 489 489 491: 425(bvec3) UGreaterThanEqual 488 490 Store 457(bv) 491 492: 52(i16vec2) Load 343(i16v) 493: 14(int16_t) Load 346(i16) 494: 52(i16vec2) CompositeConstruct 493 493 495: 174(bvec2) SGreaterThanEqual 492 494 496: 425(bvec3) Load 457(bv) 497: 425(bvec3) VectorShuffle 496 495 3 4 2 Store 457(bv) 497 498:193(i16vec3) Load 356(u16v) 499: 36(int16_t) Load 358(u16) 500:193(i16vec3) CompositeConstruct 499 499 499 501: 425(bvec3) IEqual 498 500 Store 457(bv) 501 502: 52(i16vec2) Load 343(i16v) 503: 14(int16_t) Load 346(i16) 504: 52(i16vec2) CompositeConstruct 503 503 505: 174(bvec2) IEqual 502 504 506: 425(bvec3) Load 457(bv) 507: 425(bvec3) VectorShuffle 506 505 3 4 2 Store 457(bv) 507 508:193(i16vec3) Load 356(u16v) 509: 36(int16_t) Load 358(u16) 510:193(i16vec3) CompositeConstruct 509 509 509 511: 425(bvec3) INotEqual 508 510 Store 457(bv) 511 512: 52(i16vec2) Load 343(i16v) 513: 14(int16_t) Load 346(i16) 514: 52(i16vec2) CompositeConstruct 513 513 515: 174(bvec2) INotEqual 512 514 516: 425(bvec3) Load 457(bv) 517: 425(bvec3) VectorShuffle 516 515 3 4 2 Store 457(bv) 517 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.vulkan110.storageBuffer.vert.out000066400000000000000000000067331360464450000255640ustar00rootroot00000000000000spv.vulkan110.storageBuffer.vert // Module Version 10300 // Generated by (magic number): 80008 // 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 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypeInt 32 0 9: 8(int) Constant 1 10: TypeArray 6(float) 9 11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 12: TypePointer Output 11(gl_PerVertex) 13: 12(ptr) Variable Output 14: TypeInt 32 1 15: 14(int) Constant 0 16(ub): TypeStruct 7(fvec4) 17: TypePointer Uniform 16(ub) 18(ubi): 17(ptr) Variable Uniform 19: TypePointer Uniform 7(fvec4) 22(bb): TypeStruct 7(fvec4) 23: TypePointer StorageBuffer 22(bb) 24(bbi): 23(ptr) Variable StorageBuffer 25: TypePointer StorageBuffer 7(fvec4) 29: TypePointer Output 7(fvec4) 4(main): 2 Function None 3 5: Label 20: 19(ptr) AccessChain 18(ubi) 15 21: 7(fvec4) Load 20 26: 25(ptr) AccessChain 24(bbi) 15 27: 7(fvec4) Load 26 28: 7(fvec4) FAdd 21 27 30: 29(ptr) AccessChain 13 15 Store 30 28 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.while-continue-break.vert.out000066400000000000000000000061221360464450000252510ustar00rootroot00000000000000spv.while-continue-break.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.while-simple.vert.out000066400000000000000000000033131360464450000236330ustar00rootroot00000000000000spv.while-simple.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.whileLoop.frag.out000066400000000000000000000054001360464450000231340ustar00rootroot00000000000000spv.whileLoop.frag // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 35 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 11 24 28 33 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" Name 9 "color" Name 11 "BaseColor" Name 24 "d" Name 28 "bigColor" Name 33 "gl_FragColor" Decorate 33(gl_FragColor) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 10: TypePointer Input 7(fvec4) 11(BaseColor): 10(ptr) Variable Input 18: TypeInt 32 0 19: 18(int) Constant 0 20: TypePointer Function 6(float) 23: TypePointer Input 6(float) 24(d): 23(ptr) Variable Input 26: TypeBool 28(bigColor): 10(ptr) Variable Input 32: TypePointer Output 7(fvec4) 33(gl_FragColor): 32(ptr) Variable Output 4(main): 2 Function None 3 5: Label 9(color): 8(ptr) Variable Function 12: 7(fvec4) Load 11(BaseColor) Store 9(color) 12 Branch 13 13: Label LoopMerge 15 16 None Branch 17 17: Label 21: 20(ptr) AccessChain 9(color) 19 22: 6(float) Load 21 25: 6(float) Load 24(d) 27: 26(bool) FOrdLessThan 22 25 BranchConditional 27 14 15 14: Label 29: 7(fvec4) Load 28(bigColor) 30: 7(fvec4) Load 9(color) 31: 7(fvec4) FAdd 30 29 Store 9(color) 31 Branch 16 16: Label Branch 13 15: Label 34: 7(fvec4) Load 9(color) Store 33(gl_FragColor) 34 Return FunctionEnd glslang-8.13.3559/Test/baseResults/spv.xfb.vert.out000066400000000000000000000052411360464450000220150ustar00rootroot00000000000000spv.xfb.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.xfb2.vert.out000066400000000000000000000066461360464450000221110ustar00rootroot00000000000000spv.xfb2.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.xfb3.vert.out000066400000000000000000000066461360464450000221120ustar00rootroot00000000000000spv.xfb3.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out000066400000000000000000000076761360464450000300160ustar00rootroot00000000000000spv.xfbOffsetOnBlockMembersAssignment.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out000066400000000000000000000112621360464450000302320ustar00rootroot00000000000000spv.xfbOffsetOnStructMembersAssignment.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out000066400000000000000000000111061360464450000310320ustar00rootroot00000000000000spv.xfbOverlapOffsetCheckWithBlockAndMember.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/spv.xfbStrideJustOnce.vert.out000066400000000000000000000074451360464450000246530ustar00rootroot00000000000000spv.xfbStrideJustOnce.vert // Module Version 10000 // Generated by (magic number): 80008 // 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 glslang-8.13.3559/Test/baseResults/stringToDouble.vert.out000066400000000000000000001041261360464450000233750ustar00rootroot00000000000000stringToDouble.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) glslang-8.13.3559/Test/baseResults/structAssignment.frag.out000066400000000000000000000155031360464450000237450ustar00rootroot00000000000000structAssignment.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}) glslang-8.13.3559/Test/baseResults/structDeref.frag.out000066400000000000000000000513341360464450000226640ustar00rootroot00000000000000structDeref.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}) glslang-8.13.3559/Test/baseResults/structure.frag.out000066400000000000000000000252001360464450000224230ustar00rootroot00000000000000structure.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}) glslang-8.13.3559/Test/baseResults/switch.frag.out000066400000000000000000000621601360464450000216720ustar00rootroot00000000000000switch.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) glslang-8.13.3559/Test/baseResults/swizzle.frag.out000066400000000000000000000422231360464450000220760ustar00rootroot00000000000000swizzle.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) glslang-8.13.3559/Test/baseResults/syntaxError.frag.out000066400000000000000000000012261360464450000227250ustar00rootroot00000000000000syntaxError.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) glslang-8.13.3559/Test/baseResults/test.conf000066400000000000000000000054761360464450000205570ustar00rootroot00000000000000MaxLights 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 nonInductiveForLoops 1 whileLoops 1 doWhileLoops 1 generalUniformIndexing 1 generalAttributeMatrixVectorIndexing 1 generalVaryingIndexing 1 generalSamplerIndexing 1 generalVariableIndexing 1 generalConstantMatrixVectorIndexing 1 glslang-8.13.3559/Test/baseResults/test.frag.out000066400000000000000000000116401360464450000213450ustar00rootroot00000000000000test.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) glslang-8.13.3559/Test/baseResults/texture.frag.out000066400000000000000000000707621360464450000221000ustar00rootroot00000000000000texture.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) glslang-8.13.3559/Test/baseResults/tokenLength.vert.out000066400000000000000000000531051360464450000227130ustar00rootroot00000000000000tokenLength.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) glslang-8.13.3559/Test/baseResults/tokenPaste.vert.out000066400000000000000000000133061360464450000225450ustar00rootroot00000000000000tokenPaste.vert ERROR: 0:38: '##' : unexpected location ERROR: 0:40: '##' : unexpected location; end of replacement list ERROR: 0:49: '##' : combined tokens are too long ERROR: 0:52: '##' : not supported for these tokens ERROR: 0:69: '##' : combined token is invalid ERROR: 0:82: 'macro expansion' : Too few args in Macro rec ERROR: 0:82: '##' : unexpected location ERROR: 0:82: '##' : unexpected location ERROR: 0:86: '##' : unexpected location; end of argument ERROR: 9 compilation errors. No code generated. Shader version: 450 ERROR: node is still EOpNull! 0:52 Sequence 0:52 move second child to first child ( temp int) 0:52 'a' ( global int) 0:52 Constant: 0:52 11 (const int) 0:58 Sequence 0:58 move second child to first child ( temp int) 0:58 'cop' ( global int) 0:58 Constant: 0:58 160 (const int) 0:59 Sequence 0:59 move second child to first child ( temp bool) 0:59 'dop' ( global bool) 0:59 Constant: 0:59 true (const bool) 0:63 Function Definition: ShouldntExpandToThis( ( global void) 0:63 Function Parameters: 0:65 Sequence 0:65 Sequence 0:65 move second child to first child ( temp int) 0:65 'e' ( temp int) 0:65 Constant: 0:65 16 (const int) 0:66 right shift second child into first child ( temp int) 0:66 'e' ( temp int) 0:66 Constant: 0:66 2 (const int) 0:69 Sequence 0:69 move second child to first child ( temp bool) 0:69 'f' ( temp bool) 0:69 Compare Greater Than ( temp bool) 0:69 'e' ( temp int) 0:69 Constant: 0:69 5 (const int) 0:? Linker Objects 0:? 'SecondExpansion' ( global int) 0:? 'PostPasteExpansion' ( global int) 0:? 'foo27' ( global float) 0:? 'foo155' ( uniform float) 0:? 'foo719' ( global float) 0:? 'barfoo' ( uniform float) 0:? 'argless' ( global float) 0:? 'dc1' ( global float) 0:? 'dc2' ( global float) 0:? 'foo875' ( uniform float) 0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345' ( global float) 0:? 'a' ( global int) 0:? 'aop' ( const int) 0:? 10 (const int) 0:? 'bop' ( const int) 0:? 4 (const int) 0:? 'cop' ( global int) 0:? 'dop' ( global bool) 0:? 'argPaste2' ( uniform int) 0:? 'argPaste20suff' ( uniform int) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) Linked vertex stage: ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point Shader version: 450 ERROR: node is still EOpNull! 0:52 Sequence 0:52 move second child to first child ( temp int) 0:52 'a' ( global int) 0:52 Constant: 0:52 11 (const int) 0:58 Sequence 0:58 move second child to first child ( temp int) 0:58 'cop' ( global int) 0:58 Constant: 0:58 160 (const int) 0:59 Sequence 0:59 move second child to first child ( temp bool) 0:59 'dop' ( global bool) 0:59 Constant: 0:59 true (const bool) 0:? Linker Objects 0:? 'SecondExpansion' ( global int) 0:? 'PostPasteExpansion' ( global int) 0:? 'foo27' ( global float) 0:? 'foo155' ( uniform float) 0:? 'foo719' ( global float) 0:? 'barfoo' ( uniform float) 0:? 'argless' ( global float) 0:? 'dc1' ( global float) 0:? 'dc2' ( global float) 0:? 'foo875' ( uniform float) 0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345' ( global float) 0:? 'a' ( global int) 0:? 'aop' ( const int) 0:? 10 (const int) 0:? 'bop' ( const int) 0:? 4 (const int) 0:? 'cop' ( global int) 0:? 'dop' ( global bool) 0:? 'argPaste2' ( uniform int) 0:? 'argPaste20suff' ( uniform int) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) glslang-8.13.3559/Test/baseResults/types.frag.out000066400000000000000000001026531360464450000215370ustar00rootroot00000000000000types.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) glslang-8.13.3559/Test/baseResults/uint.frag.out000066400000000000000000000601431360464450000213470ustar00rootroot00000000000000uint.frag ERROR: 0:2: 'uint' : must be qualified as flat in ERROR: 0:6: 'in' : cannot be bool ERROR: 0:20: 'const' : non-matching or non-convertible constant type for const initializer ERROR: 0:24: 'const' : non-matching or non-convertible constant type for const initializer ERROR: 0:34: 'const' : non-matching or non-convertible constant type for const initializer ERROR: 0:37: 'const' : non-matching or non-convertible constant type for const initializer ERROR: 0:48: '=' : cannot convert from ' const int' to ' temp mediump uint' ERROR: 0:51: '=' : cannot convert from ' const int' to ' temp mediump uint' ERROR: 0:63: 'float' : type requires declaration of default precision qualifier ERROR: 9 compilation errors. No code generated. Shader version: 300 ERROR: node is still EOpNull! 0:15 Function Definition: main( ( global void) 0:15 Function Parameters: 0:17 Sequence 0:17 Sequence 0:17 move second child to first child ( temp mediump int) 0:17 'count' ( temp mediump int) 0:17 Constant: 0:17 1 (const int) 0:19 Sequence 0:19 move second child to first child ( temp mediump uint) 0:19 'u' ( temp mediump uint) 0:19 add ( temp mediump uint) 0:19 direct index ( temp mediump uint) 0:19 't' ( flat in mediump 2-component vector of uint) 0:19 Constant: 0:19 1 (const int) 0:19 Constant: 0:19 3 (const uint) 0:27 Test condition and select ( temp void) 0:27 Condition 0:27 Constant: 0:27 true (const bool) 0:27 true case 0:28 multiply second child into first child ( temp mediump int) 0:28 'count' ( temp mediump int) 0:28 Constant: 0:28 2 (const int) 0:29 Test condition and select ( temp void) 0:29 Condition 0:29 Constant: 0:29 true (const bool) 0:29 true case 0:30 multiply second child into first child ( temp mediump int) 0:30 'count' ( temp mediump int) 0:30 Constant: 0:30 3 (const int) 0:31 Test condition and select ( temp void) 0:31 Condition 0:31 Constant: 0:31 false (const bool) 0:31 true case 0:32 multiply second child into first child ( temp mediump int) 0:32 'count' ( temp mediump int) 0:32 Constant: 0:32 5 (const int) 0:41 Test condition and select ( temp void) 0:41 Condition 0:41 Constant: 0:41 true (const bool) 0:41 true case 0:42 multiply second child into first child ( temp mediump int) 0:42 'count' ( temp mediump int) 0:42 Constant: 0:42 7 (const int) 0:43 Test condition and select ( temp void) 0:43 Condition 0:43 Constant: 0:43 true (const bool) 0:43 true case 0:44 multiply second child into first child ( temp mediump int) 0:44 'count' ( temp mediump int) 0:44 Constant: 0:44 11 (const int) 0:45 Test condition and select ( temp void) 0:45 Condition 0:45 Constant: 0:45 false (const bool) 0:45 true case 0:46 multiply second child into first child ( temp mediump int) 0:46 'count' ( temp mediump int) 0:46 Constant: 0:46 13 (const int) 0:49 Sequence 0:49 move second child to first child ( temp mediump int) 0:49 'shiftedii' ( temp mediump int) 0:49 Constant: 0:49 -1 (const int) 0:50 Sequence 0:50 move second child to first child ( temp mediump uint) 0:50 'shiftedui' ( temp mediump uint) 0:50 Constant: 0:50 4194303 (const uint) 0:52 Sequence 0:52 move second child to first child ( temp mediump int) 0:52 'shiftediu' ( temp mediump int) 0:52 Constant: 0:52 -1 (const int) 0:53 Sequence 0:53 move second child to first child ( temp mediump uint) 0:53 'shifteduu' ( temp mediump uint) 0:53 Constant: 0:53 4194303 (const uint) 0:55 Test condition and select ( temp void) 0:55 Condition 0:55 Compare Equal ( temp bool) 0:55 'shiftedii' ( temp mediump int) 0:55 'shiftediu' ( temp mediump int) 0:55 true case 0:56 move second child to first child ( temp mediump 4-component vector of uint) 0:56 'c' ( out mediump 4-component vector of uint) 0:56 texture ( global lowp 4-component vector of uint, operation at highp) 0:56 'usampler' ( uniform lowp usampler2D) 0:56 'tc' ( smooth in highp 2-component vector of float) 0:57 Test condition and select ( temp void) 0:57 Condition 0:57 Compare Equal ( temp bool) 0:57 'shiftedui' ( temp mediump uint) 0:57 'shifteduu' ( temp mediump uint) 0:57 true case 0:58 move second child to first child ( temp mediump 4-component vector of uint) 0:58 'c' ( out mediump 4-component vector of uint) 0:58 texture ( global lowp 4-component vector of uint, operation at highp) 0:58 'usampler' ( uniform lowp usampler2D) 0:58 add ( temp highp 2-component vector of float) 0:58 'tc' ( smooth in highp 2-component vector of float) 0:58 Constant: 0:58 1.000000 0:59 Test condition and select ( temp void) 0:59 Condition 0:59 Compare Equal ( temp bool) 0:59 'shiftedii' ( temp mediump int) 0:59 Convert uint to int ( temp int) 0:59 'shiftedui' ( temp mediump uint) 0:59 true case 0:60 move second child to first child ( temp mediump 4-component vector of uint) 0:60 'c' ( out mediump 4-component vector of uint) 0:60 texture ( global lowp 4-component vector of uint, operation at highp) 0:60 'usampler' ( uniform lowp usampler2D) 0:60 subtract ( temp highp 2-component vector of float) 0:60 'tc' ( smooth in highp 2-component vector of float) 0:60 Constant: 0:60 2.000000 0:60 2.000000 0:62 Test condition and select ( temp void) 0:62 Condition 0:62 Compare Greater Than ( temp bool) 0:62 direct index ( temp mediump uint) 0:62 't' ( flat in mediump 2-component vector of uint) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: 0:62 4 (const uint) 0:62 true case 0:63 Sequence 0:63 Sequence 0:63 move second child to first child ( temp mediump float) 0:63 'af' ( temp mediump float) 0:63 Convert uint to float ( temp mediump float) 0:63 'u' ( temp mediump uint) 0:64 Sequence 0:64 move second child to first child ( temp bool) 0:64 'ab' ( temp bool) 0:64 Convert uint to bool ( temp bool) 0:64 'u' ( temp mediump uint) 0:65 Sequence 0:65 move second child to first child ( temp mediump int) 0:65 'ai' ( temp mediump int) 0:65 Convert uint to int ( temp mediump int) 0:65 'u' ( temp mediump uint) 0:67 add second child into first child ( temp mediump 4-component vector of uint) 0:67 'c' ( out mediump 4-component vector of uint) 0:67 Construct uvec4 ( temp mediump 4-component vector of uint) 0:67 Convert float to uint ( temp mediump uint) 0:67 'af' ( temp mediump float) 0:67 Convert bool to uint ( temp mediump uint) 0:67 'ab' ( temp bool) 0:67 Convert int to uint ( temp mediump uint) 0:67 'ai' ( temp mediump int) 0:67 Convert int to uint ( temp mediump uint) 0:67 'count' ( temp mediump int) 0:75 Test condition and select ( temp void) 0:75 Condition 0:75 Constant: 0:75 true (const bool) 0:75 true case 0:76 multiply second child into first child ( temp mediump int) 0:76 'count' ( temp mediump int) 0:76 Constant: 0:76 17 (const int) 0:78 Test condition and select ( temp void) 0:78 Condition 0:78 Constant: 0:78 false (const bool) 0:78 true case 0:79 multiply second child into first child ( temp mediump int) 0:79 'count' ( temp mediump int) 0:79 Constant: 0:79 19 (const int) 0:81 Test condition and select ( temp void) 0:81 Condition 0:81 Constant: 0:81 true (const bool) 0:81 true case 0:82 multiply second child into first child ( temp mediump int) 0:82 'count' ( temp mediump int) 0:82 Constant: 0:82 23 (const int) 0:84 Test condition and select ( temp void) 0:84 Condition 0:84 Constant: 0:84 true (const bool) 0:84 true case 0:85 multiply second child into first child ( temp mediump int) 0:85 'count' ( temp mediump int) 0:85 Constant: 0:85 27 (const int) 0:87 Sequence 0:87 move second child to first child ( temp mediump uint) 0:87 'mask1' ( temp mediump uint) 0:87 Constant: 0:87 161 (const uint) 0:88 Sequence 0:88 move second child to first child ( temp mediump uint) 0:88 'mask2' ( temp mediump uint) 0:88 Constant: 0:88 2576 (const uint) 0:89 Sequence 0:89 move second child to first child ( temp mediump uint) 0:89 'mask3' ( temp mediump uint) 0:89 left-shift ( temp mediump uint) 0:89 'mask1' ( temp mediump uint) 0:89 Constant: 0:89 4 (const int) 0:90 Sequence 0:90 move second child to first child ( temp mediump uint) 0:90 'mask4' ( temp mediump uint) 0:90 Constant: 0:90 2737 (const uint) 0:92 Test condition and select ( temp void) 0:92 Condition 0:92 Compare Equal ( temp bool) 0:92 'mask3' ( temp mediump uint) 0:92 'mask2' ( temp mediump uint) 0:92 true case 0:93 multiply second child into first child ( temp mediump int) 0:93 'count' ( temp mediump int) 0:93 Constant: 0:93 100 (const int) 0:95 Test condition and select ( temp void) 0:95 Condition 0:95 Compare Not Equal ( temp bool) 0:95 bitwise and ( temp mediump uint) 0:95 'mask3' ( temp mediump uint) 0:95 'mask1' ( temp mediump uint) 0:95 Constant: 0:95 0 (const uint) 0:95 true case 0:96 multiply second child into first child ( temp mediump int) 0:96 'count' ( temp mediump int) 0:96 Constant: 0:96 101 (const int) 0:98 Test condition and select ( temp void) 0:98 Condition 0:98 Compare Equal ( temp bool) 0:98 inclusive-or ( temp mediump uint) 0:98 'mask1' ( temp mediump uint) 0:98 'mask3' ( temp mediump uint) 0:98 'mask4' ( temp mediump uint) 0:98 true case 0:99 multiply second child into first child ( temp mediump int) 0:99 'count' ( temp mediump int) 0:99 Constant: 0:99 102 (const int) 0:101 Test condition and select ( temp void) 0:101 Condition 0:101 Compare Equal ( temp bool) 0:101 exclusive-or ( temp mediump uint) 0:101 'mask1' ( temp mediump uint) 0:101 'mask4' ( temp mediump uint) 0:101 Constant: 0:101 2576 (const uint) 0:101 true case 0:102 multiply second child into first child ( temp mediump int) 0:102 'count' ( temp mediump int) 0:102 Constant: 0:102 103 (const int) 0:104 add second child into first child ( temp mediump 4-component vector of uint) 0:104 'c' ( out mediump 4-component vector of uint) 0:104 Construct uvec4 ( temp mediump 4-component vector of uint) 0:104 Convert int to uint ( temp mediump uint) 0:104 'count' ( temp mediump int) 0:? Linker Objects 0:? 'badu' ( smooth in mediump 2-component vector of uint) 0:? 't' ( flat in mediump 2-component vector of uint) 0:? 'f' ( smooth in highp float) 0:? 'tc' ( smooth in highp 2-component vector of float) 0:? 'bad' ( smooth in bool) 0:? 'v' ( uniform mediump 4-component vector of uint) 0:? 'i' ( uniform mediump int) 0:? 'b' ( uniform bool) 0:? 'c' ( out mediump 4-component vector of uint) 0:? 'usampler' ( uniform lowp usampler2D) Linked fragment stage: Shader version: 300 ERROR: node is still EOpNull! 0:15 Function Definition: main( ( global void) 0:15 Function Parameters: 0:17 Sequence 0:17 Sequence 0:17 move second child to first child ( temp mediump int) 0:17 'count' ( temp mediump int) 0:17 Constant: 0:17 1 (const int) 0:19 Sequence 0:19 move second child to first child ( temp mediump uint) 0:19 'u' ( temp mediump uint) 0:19 add ( temp mediump uint) 0:19 direct index ( temp mediump uint) 0:19 't' ( flat in mediump 2-component vector of uint) 0:19 Constant: 0:19 1 (const int) 0:19 Constant: 0:19 3 (const uint) 0:27 Test condition and select ( temp void) 0:27 Condition 0:27 Constant: 0:27 true (const bool) 0:27 true case 0:28 multiply second child into first child ( temp mediump int) 0:28 'count' ( temp mediump int) 0:28 Constant: 0:28 2 (const int) 0:29 Test condition and select ( temp void) 0:29 Condition 0:29 Constant: 0:29 true (const bool) 0:29 true case 0:30 multiply second child into first child ( temp mediump int) 0:30 'count' ( temp mediump int) 0:30 Constant: 0:30 3 (const int) 0:31 Test condition and select ( temp void) 0:31 Condition 0:31 Constant: 0:31 false (const bool) 0:31 true case 0:32 multiply second child into first child ( temp mediump int) 0:32 'count' ( temp mediump int) 0:32 Constant: 0:32 5 (const int) 0:41 Test condition and select ( temp void) 0:41 Condition 0:41 Constant: 0:41 true (const bool) 0:41 true case 0:42 multiply second child into first child ( temp mediump int) 0:42 'count' ( temp mediump int) 0:42 Constant: 0:42 7 (const int) 0:43 Test condition and select ( temp void) 0:43 Condition 0:43 Constant: 0:43 true (const bool) 0:43 true case 0:44 multiply second child into first child ( temp mediump int) 0:44 'count' ( temp mediump int) 0:44 Constant: 0:44 11 (const int) 0:45 Test condition and select ( temp void) 0:45 Condition 0:45 Constant: 0:45 false (const bool) 0:45 true case 0:46 multiply second child into first child ( temp mediump int) 0:46 'count' ( temp mediump int) 0:46 Constant: 0:46 13 (const int) 0:49 Sequence 0:49 move second child to first child ( temp mediump int) 0:49 'shiftedii' ( temp mediump int) 0:49 Constant: 0:49 -1 (const int) 0:50 Sequence 0:50 move second child to first child ( temp mediump uint) 0:50 'shiftedui' ( temp mediump uint) 0:50 Constant: 0:50 4194303 (const uint) 0:52 Sequence 0:52 move second child to first child ( temp mediump int) 0:52 'shiftediu' ( temp mediump int) 0:52 Constant: 0:52 -1 (const int) 0:53 Sequence 0:53 move second child to first child ( temp mediump uint) 0:53 'shifteduu' ( temp mediump uint) 0:53 Constant: 0:53 4194303 (const uint) 0:55 Test condition and select ( temp void) 0:55 Condition 0:55 Compare Equal ( temp bool) 0:55 'shiftedii' ( temp mediump int) 0:55 'shiftediu' ( temp mediump int) 0:55 true case 0:56 move second child to first child ( temp mediump 4-component vector of uint) 0:56 'c' ( out mediump 4-component vector of uint) 0:56 texture ( global lowp 4-component vector of uint, operation at highp) 0:56 'usampler' ( uniform lowp usampler2D) 0:56 'tc' ( smooth in highp 2-component vector of float) 0:57 Test condition and select ( temp void) 0:57 Condition 0:57 Compare Equal ( temp bool) 0:57 'shiftedui' ( temp mediump uint) 0:57 'shifteduu' ( temp mediump uint) 0:57 true case 0:58 move second child to first child ( temp mediump 4-component vector of uint) 0:58 'c' ( out mediump 4-component vector of uint) 0:58 texture ( global lowp 4-component vector of uint, operation at highp) 0:58 'usampler' ( uniform lowp usampler2D) 0:58 add ( temp highp 2-component vector of float) 0:58 'tc' ( smooth in highp 2-component vector of float) 0:58 Constant: 0:58 1.000000 0:59 Test condition and select ( temp void) 0:59 Condition 0:59 Compare Equal ( temp bool) 0:59 'shiftedii' ( temp mediump int) 0:59 Convert uint to int ( temp int) 0:59 'shiftedui' ( temp mediump uint) 0:59 true case 0:60 move second child to first child ( temp mediump 4-component vector of uint) 0:60 'c' ( out mediump 4-component vector of uint) 0:60 texture ( global lowp 4-component vector of uint, operation at highp) 0:60 'usampler' ( uniform lowp usampler2D) 0:60 subtract ( temp highp 2-component vector of float) 0:60 'tc' ( smooth in highp 2-component vector of float) 0:60 Constant: 0:60 2.000000 0:60 2.000000 0:62 Test condition and select ( temp void) 0:62 Condition 0:62 Compare Greater Than ( temp bool) 0:62 direct index ( temp mediump uint) 0:62 't' ( flat in mediump 2-component vector of uint) 0:62 Constant: 0:62 0 (const int) 0:62 Constant: 0:62 4 (const uint) 0:62 true case 0:63 Sequence 0:63 Sequence 0:63 move second child to first child ( temp mediump float) 0:63 'af' ( temp mediump float) 0:63 Convert uint to float ( temp mediump float) 0:63 'u' ( temp mediump uint) 0:64 Sequence 0:64 move second child to first child ( temp bool) 0:64 'ab' ( temp bool) 0:64 Convert uint to bool ( temp bool) 0:64 'u' ( temp mediump uint) 0:65 Sequence 0:65 move second child to first child ( temp mediump int) 0:65 'ai' ( temp mediump int) 0:65 Convert uint to int ( temp mediump int) 0:65 'u' ( temp mediump uint) 0:67 add second child into first child ( temp mediump 4-component vector of uint) 0:67 'c' ( out mediump 4-component vector of uint) 0:67 Construct uvec4 ( temp mediump 4-component vector of uint) 0:67 Convert float to uint ( temp mediump uint) 0:67 'af' ( temp mediump float) 0:67 Convert bool to uint ( temp mediump uint) 0:67 'ab' ( temp bool) 0:67 Convert int to uint ( temp mediump uint) 0:67 'ai' ( temp mediump int) 0:67 Convert int to uint ( temp mediump uint) 0:67 'count' ( temp mediump int) 0:75 Test condition and select ( temp void) 0:75 Condition 0:75 Constant: 0:75 true (const bool) 0:75 true case 0:76 multiply second child into first child ( temp mediump int) 0:76 'count' ( temp mediump int) 0:76 Constant: 0:76 17 (const int) 0:78 Test condition and select ( temp void) 0:78 Condition 0:78 Constant: 0:78 false (const bool) 0:78 true case 0:79 multiply second child into first child ( temp mediump int) 0:79 'count' ( temp mediump int) 0:79 Constant: 0:79 19 (const int) 0:81 Test condition and select ( temp void) 0:81 Condition 0:81 Constant: 0:81 true (const bool) 0:81 true case 0:82 multiply second child into first child ( temp mediump int) 0:82 'count' ( temp mediump int) 0:82 Constant: 0:82 23 (const int) 0:84 Test condition and select ( temp void) 0:84 Condition 0:84 Constant: 0:84 true (const bool) 0:84 true case 0:85 multiply second child into first child ( temp mediump int) 0:85 'count' ( temp mediump int) 0:85 Constant: 0:85 27 (const int) 0:87 Sequence 0:87 move second child to first child ( temp mediump uint) 0:87 'mask1' ( temp mediump uint) 0:87 Constant: 0:87 161 (const uint) 0:88 Sequence 0:88 move second child to first child ( temp mediump uint) 0:88 'mask2' ( temp mediump uint) 0:88 Constant: 0:88 2576 (const uint) 0:89 Sequence 0:89 move second child to first child ( temp mediump uint) 0:89 'mask3' ( temp mediump uint) 0:89 left-shift ( temp mediump uint) 0:89 'mask1' ( temp mediump uint) 0:89 Constant: 0:89 4 (const int) 0:90 Sequence 0:90 move second child to first child ( temp mediump uint) 0:90 'mask4' ( temp mediump uint) 0:90 Constant: 0:90 2737 (const uint) 0:92 Test condition and select ( temp void) 0:92 Condition 0:92 Compare Equal ( temp bool) 0:92 'mask3' ( temp mediump uint) 0:92 'mask2' ( temp mediump uint) 0:92 true case 0:93 multiply second child into first child ( temp mediump int) 0:93 'count' ( temp mediump int) 0:93 Constant: 0:93 100 (const int) 0:95 Test condition and select ( temp void) 0:95 Condition 0:95 Compare Not Equal ( temp bool) 0:95 bitwise and ( temp mediump uint) 0:95 'mask3' ( temp mediump uint) 0:95 'mask1' ( temp mediump uint) 0:95 Constant: 0:95 0 (const uint) 0:95 true case 0:96 multiply second child into first child ( temp mediump int) 0:96 'count' ( temp mediump int) 0:96 Constant: 0:96 101 (const int) 0:98 Test condition and select ( temp void) 0:98 Condition 0:98 Compare Equal ( temp bool) 0:98 inclusive-or ( temp mediump uint) 0:98 'mask1' ( temp mediump uint) 0:98 'mask3' ( temp mediump uint) 0:98 'mask4' ( temp mediump uint) 0:98 true case 0:99 multiply second child into first child ( temp mediump int) 0:99 'count' ( temp mediump int) 0:99 Constant: 0:99 102 (const int) 0:101 Test condition and select ( temp void) 0:101 Condition 0:101 Compare Equal ( temp bool) 0:101 exclusive-or ( temp mediump uint) 0:101 'mask1' ( temp mediump uint) 0:101 'mask4' ( temp mediump uint) 0:101 Constant: 0:101 2576 (const uint) 0:101 true case 0:102 multiply second child into first child ( temp mediump int) 0:102 'count' ( temp mediump int) 0:102 Constant: 0:102 103 (const int) 0:104 add second child into first child ( temp mediump 4-component vector of uint) 0:104 'c' ( out mediump 4-component vector of uint) 0:104 Construct uvec4 ( temp mediump 4-component vector of uint) 0:104 Convert int to uint ( temp mediump uint) 0:104 'count' ( temp mediump int) 0:? Linker Objects 0:? 'badu' ( smooth in mediump 2-component vector of uint) 0:? 't' ( flat in mediump 2-component vector of uint) 0:? 'f' ( smooth in highp float) 0:? 'tc' ( smooth in highp 2-component vector of float) 0:? 'bad' ( smooth in bool) 0:? 'v' ( uniform mediump 4-component vector of uint) 0:? 'i' ( uniform mediump int) 0:? 'b' ( uniform bool) 0:? 'c' ( out mediump 4-component vector of uint) 0:? 'usampler' ( uniform lowp usampler2D) glslang-8.13.3559/Test/baseResults/uniformArray.frag.out000066400000000000000000000100421360464450000230370ustar00rootroot00000000000000uniformArray.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) glslang-8.13.3559/Test/baseResults/variableArrayIndex.frag.out000066400000000000000000000332071360464450000241450ustar00rootroot00000000000000variableArrayIndex.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) glslang-8.13.3559/Test/baseResults/varyingArray.frag.out000066400000000000000000000141071360464450000230450ustar00rootroot00000000000000varyingArray.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) glslang-8.13.3559/Test/baseResults/varyingArrayIndirect.frag.out000066400000000000000000000151351360464450000245310ustar00rootroot00000000000000varyingArrayIndirect.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) glslang-8.13.3559/Test/baseResults/versionsClean.frag.out000066400000000000000000000031371360464450000232030ustar00rootroot00000000000000versionsClean.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) glslang-8.13.3559/Test/baseResults/versionsClean.vert.out000066400000000000000000000101351360464450000232400ustar00rootroot00000000000000versionsClean.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) glslang-8.13.3559/Test/baseResults/versionsErrors.frag.out000066400000000000000000000031141360464450000234300ustar00rootroot00000000000000versionsErrors.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) glslang-8.13.3559/Test/baseResults/versionsErrors.vert.out000066400000000000000000000110201360464450000234640ustar00rootroot00000000000000versionsErrors.vert WARNING: 0:38: attribute deprecated in version 130; may be removed in future release ERROR: 0:38: 'attribute' : no longer supported in core profile; removed in version 420 ERROR: 0:45: 'discard' : not supported in this stage: vertex ERROR: 2 compilation errors. No code generated. Shader version: 420 Requested GL_ARB_texture_rectangle ERROR: node is still EOpNull! 0:42 Function Definition: main( ( global void) 0:42 Function Parameters: 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of float) 0:44 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) 0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:44 Constant: 0:44 0 (const uint) 0:44 Construct vec4 ( temp 4-component vector of float) 0:44 'color' ( in 3-component vector of float) 0:44 Constant: 0:44 142.000000 0:45 Branch: Kill 0:? Linker Objects 0:? 'color' ( in 3-component vector of float) 0:? 'foo' ( uniform sampler2DRect) 0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) Linked vertex stage: Shader version: 420 Requested GL_ARB_texture_rectangle ERROR: node is still EOpNull! 0:42 Function Definition: main( ( global void) 0:42 Function Parameters: 0:44 Sequence 0:44 move second child to first child ( temp 4-component vector of float) 0:44 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position) 0:44 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:44 Constant: 0:44 0 (const uint) 0:44 Construct vec4 ( temp 4-component vector of float) 0:44 'color' ( in 3-component vector of float) 0:44 Constant: 0:44 142.000000 0:45 Branch: Kill 0:? Linker Objects 0:? 'color' ( in 3-component vector of float) 0:? 'foo' ( uniform sampler2DRect) 0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:? 'gl_VertexID' ( gl_VertexId int VertexId) 0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId) glslang-8.13.3559/Test/baseResults/voidFunction.frag.out000066400000000000000000000063421360464450000230400ustar00rootroot00000000000000voidFunction.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) glslang-8.13.3559/Test/baseResults/vulkan.ast.vert.out000066400000000000000000000357271360464450000225310ustar00rootroot00000000000000vulkan.ast.vert Shader version: 450 0:? Sequence 0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:9 Sequence 0:9 Convert float to bool ( temp bool) 0:9 'scf1' ( specialization-constant const highp float) 0:9 1.000000 0:10 Construct bool ( specialization-constant const bool) 0:10 'scbt' ( specialization-constant const bool) 0:10 true (const bool) 0:11 Convert int to bool ( specialization-constant const bool) 0:11 'sci2' ( specialization-constant const highp int) 0:11 2 (const int) 0:13 Construct float ( temp float) 0:13 'scf1' ( specialization-constant const highp float) 0:13 1.000000 0:14 Convert bool to float ( temp float) 0:14 'scbt' ( specialization-constant const bool) 0:14 true (const bool) 0:15 Convert int to float ( temp float) 0:15 'sci2' ( specialization-constant const highp int) 0:15 2 (const int) 0:17 Convert float to int ( temp int) 0:17 'scf1' ( specialization-constant const highp float) 0:17 1.000000 0:18 Convert bool to int ( specialization-constant const int) 0:18 'scbt' ( specialization-constant const bool) 0:18 true (const bool) 0:19 Construct int ( specialization-constant const int) 0:19 'sci2' ( specialization-constant const highp int) 0:19 2 (const int) 0:21 component-wise multiply ( temp highp float) 0:21 'scf1' ( specialization-constant const highp float) 0:21 1.000000 0:21 'scf1' ( specialization-constant const highp float) 0:21 1.000000 0:22 logical-or ( specialization-constant const bool) 0:22 'scbt' ( specialization-constant const bool) 0:22 true (const bool) 0:22 'scbt' ( specialization-constant const bool) 0:22 true (const bool) 0:23 component-wise multiply ( specialization-constant const highp int) 0:23 'sci2' ( specialization-constant const highp int) 0:23 2 (const int) 0:23 'sci2' ( specialization-constant const highp int) 0:23 2 (const int) 0:24 add ( temp highp float) 0:24 'scf1' ( specialization-constant const highp float) 0:24 1.000000 0:24 Convert int to float ( temp highp float) 0:24 'sci2' ( specialization-constant const highp int) 0:24 2 (const int) 0:26 Negate value ( temp highp float) 0:26 'scf1' ( specialization-constant const highp float) 0:26 1.000000 0:27 Negate conditional ( specialization-constant const bool) 0:27 'scbt' ( specialization-constant const bool) 0:27 true (const bool) 0:28 Negate value ( specialization-constant const highp int) 0:28 'sci2' ( specialization-constant const highp int) 0:28 2 (const int) 0:30 Compare Greater Than ( temp bool) 0:30 'scf1' ( specialization-constant const highp float) 0:30 1.000000 0:30 'scf1' ( specialization-constant const highp float) 0:30 1.000000 0:31 Compare Greater Than ( specialization-constant const bool) 0:31 'sci2' ( specialization-constant const highp int) 0:31 2 (const int) 0:31 'sci2' ( specialization-constant const highp int) 0:31 2 (const int) 0:33 Compare Not Equal ( temp bool) 0:33 'scf1' ( specialization-constant const highp float) 0:33 1.000000 0:33 'scf1' ( specialization-constant const highp float) 0:33 1.000000 0:34 Compare Not Equal ( specialization-constant const bool) 0:34 'scbt' ( specialization-constant const bool) 0:34 true (const bool) 0:34 'scbt' ( specialization-constant const bool) 0:34 true (const bool) 0:35 Compare Not Equal ( specialization-constant const bool) 0:35 'sci2' ( specialization-constant const highp int) 0:35 2 (const int) 0:35 'sci2' ( specialization-constant const highp int) 0:35 2 (const int) 0:37 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:37 'sci2' ( specialization-constant const highp int) 0:37 2 (const int) 0:37 'sci2' ( specialization-constant const highp int) 0:37 2 (const int) 0:38 Construct ivec2 ( temp 2-element array of 2-component vector of int) 0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:38 'sci2' ( specialization-constant const highp int) 0:38 2 (const int) 0:38 'sci2' ( specialization-constant const highp int) 0:38 2 (const int) 0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:38 'sci2' ( specialization-constant const highp int) 0:38 2 (const int) 0:38 'sci2' ( specialization-constant const highp int) 0:38 2 (const int) 0:40 Construct vec2 ( temp 2-component vector of float) 0:40 'scf1' ( specialization-constant const highp float) 0:40 1.000000 0:40 'scf1' ( specialization-constant const highp float) 0:40 1.000000 0:41 Construct vec2 ( temp 2-element array of 2-component vector of float) 0:41 Construct vec2 ( temp 2-component vector of float) 0:41 'scf1' ( specialization-constant const highp float) 0:41 1.000000 0:41 'scf1' ( specialization-constant const highp float) 0:41 1.000000 0:41 Construct vec2 ( temp 2-component vector of float) 0:41 'scf1' ( specialization-constant const highp float) 0:41 1.000000 0:41 'scf1' ( specialization-constant const highp float) 0:41 1.000000 0:? Linker Objects 0:? 'scf1' ( specialization-constant const highp float) 0:? 1.000000 0:? 'scbt' ( specialization-constant const bool) 0:? true (const bool) 0:? 'sci2' ( specialization-constant const highp int) 0:? 2 (const int) Linked vertex stage: Shader version: 450 0:? Sequence 0:7 Function Definition: main( ( global void) 0:7 Function Parameters: 0:9 Sequence 0:9 Convert float to bool ( temp bool) 0:9 'scf1' ( specialization-constant const highp float) 0:9 1.000000 0:10 Construct bool ( specialization-constant const bool) 0:10 'scbt' ( specialization-constant const bool) 0:10 true (const bool) 0:11 Convert int to bool ( specialization-constant const bool) 0:11 'sci2' ( specialization-constant const highp int) 0:11 2 (const int) 0:13 Construct float ( temp float) 0:13 'scf1' ( specialization-constant const highp float) 0:13 1.000000 0:14 Convert bool to float ( temp float) 0:14 'scbt' ( specialization-constant const bool) 0:14 true (const bool) 0:15 Convert int to float ( temp float) 0:15 'sci2' ( specialization-constant const highp int) 0:15 2 (const int) 0:17 Convert float to int ( temp int) 0:17 'scf1' ( specialization-constant const highp float) 0:17 1.000000 0:18 Convert bool to int ( specialization-constant const int) 0:18 'scbt' ( specialization-constant const bool) 0:18 true (const bool) 0:19 Construct int ( specialization-constant const int) 0:19 'sci2' ( specialization-constant const highp int) 0:19 2 (const int) 0:21 component-wise multiply ( temp highp float) 0:21 'scf1' ( specialization-constant const highp float) 0:21 1.000000 0:21 'scf1' ( specialization-constant const highp float) 0:21 1.000000 0:22 logical-or ( specialization-constant const bool) 0:22 'scbt' ( specialization-constant const bool) 0:22 true (const bool) 0:22 'scbt' ( specialization-constant const bool) 0:22 true (const bool) 0:23 component-wise multiply ( specialization-constant const highp int) 0:23 'sci2' ( specialization-constant const highp int) 0:23 2 (const int) 0:23 'sci2' ( specialization-constant const highp int) 0:23 2 (const int) 0:24 add ( temp highp float) 0:24 'scf1' ( specialization-constant const highp float) 0:24 1.000000 0:24 Convert int to float ( temp highp float) 0:24 'sci2' ( specialization-constant const highp int) 0:24 2 (const int) 0:26 Negate value ( temp highp float) 0:26 'scf1' ( specialization-constant const highp float) 0:26 1.000000 0:27 Negate conditional ( specialization-constant const bool) 0:27 'scbt' ( specialization-constant const bool) 0:27 true (const bool) 0:28 Negate value ( specialization-constant const highp int) 0:28 'sci2' ( specialization-constant const highp int) 0:28 2 (const int) 0:30 Compare Greater Than ( temp bool) 0:30 'scf1' ( specialization-constant const highp float) 0:30 1.000000 0:30 'scf1' ( specialization-constant const highp float) 0:30 1.000000 0:31 Compare Greater Than ( specialization-constant const bool) 0:31 'sci2' ( specialization-constant const highp int) 0:31 2 (const int) 0:31 'sci2' ( specialization-constant const highp int) 0:31 2 (const int) 0:33 Compare Not Equal ( temp bool) 0:33 'scf1' ( specialization-constant const highp float) 0:33 1.000000 0:33 'scf1' ( specialization-constant const highp float) 0:33 1.000000 0:34 Compare Not Equal ( specialization-constant const bool) 0:34 'scbt' ( specialization-constant const bool) 0:34 true (const bool) 0:34 'scbt' ( specialization-constant const bool) 0:34 true (const bool) 0:35 Compare Not Equal ( specialization-constant const bool) 0:35 'sci2' ( specialization-constant const highp int) 0:35 2 (const int) 0:35 'sci2' ( specialization-constant const highp int) 0:35 2 (const int) 0:37 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:37 'sci2' ( specialization-constant const highp int) 0:37 2 (const int) 0:37 'sci2' ( specialization-constant const highp int) 0:37 2 (const int) 0:38 Construct ivec2 ( temp 2-element array of 2-component vector of int) 0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:38 'sci2' ( specialization-constant const highp int) 0:38 2 (const int) 0:38 'sci2' ( specialization-constant const highp int) 0:38 2 (const int) 0:38 Construct ivec2 ( specialization-constant const 2-component vector of int) 0:38 'sci2' ( specialization-constant const highp int) 0:38 2 (const int) 0:38 'sci2' ( specialization-constant const highp int) 0:38 2 (const int) 0:40 Construct vec2 ( temp 2-component vector of float) 0:40 'scf1' ( specialization-constant const highp float) 0:40 1.000000 0:40 'scf1' ( specialization-constant const highp float) 0:40 1.000000 0:41 Construct vec2 ( temp 2-element array of 2-component vector of float) 0:41 Construct vec2 ( temp 2-component vector of float) 0:41 'scf1' ( specialization-constant const highp float) 0:41 1.000000 0:41 'scf1' ( specialization-constant const highp float) 0:41 1.000000 0:41 Construct vec2 ( temp 2-component vector of float) 0:41 'scf1' ( specialization-constant const highp float) 0:41 1.000000 0:41 'scf1' ( specialization-constant const highp float) 0:41 1.000000 0:? Linker Objects 0:? 'scf1' ( specialization-constant const highp float) 0:? 1.000000 0:? 'scbt' ( specialization-constant const bool) 0:? true (const bool) 0:? 'sci2' ( specialization-constant const highp int) 0:? 2 (const int) // Module Version 10000 // Generated by (magic number): 80008 // Id's are bound by 50 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Source GLSL 450 Name 4 "main" Name 7 "scf1" Name 11 "scbt" Name 13 "sci2" Decorate 7(scf1) SpecId 200 Decorate 11(scbt) SpecId 201 Decorate 13(sci2) SpecId 202 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7(scf1): 6(float) SpecConstant 1065353216 8: TypeBool 9: 6(float) Constant 0 11(scbt): 8(bool) SpecConstantTrue 12: TypeInt 32 1 13(sci2): 12(int) SpecConstant 2 14: TypeInt 32 0 15: 14(int) Constant 0 16: 8(bool) SpecConstantOp 171 13(sci2) 15 17: 6(float) Constant 1065353216 21: 12(int) Constant 0 22: 12(int) Constant 1 23: 12(int) SpecConstantOp 169 11(scbt) 22 21 25: 8(bool) SpecConstantOp 166 11(scbt) 11(scbt) 26: 12(int) SpecConstantOp 132 13(sci2) 13(sci2) 30: 8(bool) SpecConstantOp 168 11(scbt) 31: 12(int) SpecConstantOp 126 13(sci2) 33: 8(bool) SpecConstantOp 173 13(sci2) 13(sci2) 35: 8(bool) SpecConstantOp 165 11(scbt) 11(scbt) 36: 8(bool) SpecConstantOp 171 13(sci2) 13(sci2) 37: TypeVector 12(int) 2 38: 37(ivec2) SpecConstantComposite 13(sci2) 13(sci2) 39: 37(ivec2) SpecConstantComposite 13(sci2) 13(sci2) 40: 37(ivec2) SpecConstantComposite 13(sci2) 13(sci2) 41: 14(int) Constant 2 42: TypeArray 37(ivec2) 41 44: TypeVector 6(float) 2 48: TypeArray 44(fvec2) 41 4(main): 2 Function None 3 5: Label 10: 8(bool) FOrdNotEqual 7(scf1) 9 18: 6(float) Select 11(scbt) 17 9 19: 6(float) ConvertSToF 13(sci2) 20: 12(int) ConvertFToS 7(scf1) 24: 6(float) FMul 7(scf1) 7(scf1) 27: 6(float) ConvertSToF 13(sci2) 28: 6(float) FAdd 7(scf1) 27 29: 6(float) FNegate 7(scf1) 32: 8(bool) FOrdGreaterThan 7(scf1) 7(scf1) 34: 8(bool) FOrdNotEqual 7(scf1) 7(scf1) 43: 42 CompositeConstruct 39 40 45: 44(fvec2) CompositeConstruct 7(scf1) 7(scf1) 46: 44(fvec2) CompositeConstruct 7(scf1) 7(scf1) 47: 44(fvec2) CompositeConstruct 7(scf1) 7(scf1) 49: 48 CompositeConstruct 46 47 Return FunctionEnd glslang-8.13.3559/Test/baseResults/vulkan.comp.out000066400000000000000000000002601360464450000217010ustar00rootroot00000000000000vulkan.comp ERROR: 0:5: 'local_size' : cannot change previously set size ERROR: 1 compilation errors. No code generated. SPIR-V is not generated for failed compile or link glslang-8.13.3559/Test/baseResults/vulkan.frag.out000066400000000000000000000110021360464450000216560ustar00rootroot00000000000000vulkan.frag ERROR: 0:3: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:4: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:5: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:6: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:8: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:9: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:10: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:14: 'sampler2D' : sampler-constructor requires two arguments ERROR: 0:15: 'sampler2D' : sampler-constructor first argument must be a scalar textureXXX type ERROR: 0:16: 'sampler2D' : sampler-constructor first argument must be a scalar textureXXX type ERROR: 0:17: 'sampler2D' : sampler-constructor second argument must be a scalar type 'sampler' ERROR: 0:18: 'sampler2D' : sampler-constructor second argument must be a scalar type 'sampler' ERROR: 0:19: 'sampler2D' : sampler-constructor second argument must be a scalar type 'sampler' ERROR: 0:21: 'sampler3D' : sampler-constructor cannot make an array of samplers ERROR: 0:22: 'sampler2D' : sampler-constructor first argument must be a scalar textureXXX type ERROR: 0:23: 'sampler2D' : sampler-constructor first argument must match type and dimensionality of constructor type ERROR: 0:28: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: s2D ERROR: 0:29: 'sampler3D' : sampler-constructor cannot make an array of samplers ERROR: 0:29: 'sampler3D' : sampler/image types can only be used in uniform variables or function parameters: s3d ERROR: 0:29: '=' : cannot convert from ' const float' to ' global 4-element array of highp sampler3D' ERROR: 0:31: 'location' : SPIR-V requires location for user input/output ERROR: 0:39: 'push_constant' : can only be used with a uniform ERROR: 0:43: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan ERROR: 0:43: 'push_constant' : can only be used with a block ERROR: 0:45: 'push_constant' : cannot declare a default, can only be used on a block ERROR: 0:51: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:52: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:52: 'input_attachment_index' : can only be used with a subpass ERROR: 0:53: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:53: 'input_attachment_index' : can only be used with a subpass ERROR: 0:54: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:54: 'subpass' : requires an input_attachment_index layout qualifier ERROR: 0:55: 'binding' : sampler/texture/image requires layout(binding=X) ERROR: 0:60: 'subpassLoadMS' : no matching overloaded function found ERROR: 0:61: 'subpassLoad' : no matching overloaded function found ERROR: 0:63: 'subpassLoadMS' : no matching overloaded function found ERROR: 0:66: 'subroutine' : not allowed when generating SPIR-V ERROR: 0:66: 'subroutine' : feature not yet implemented ERROR: 0:67: 'subroutine' : not allowed when generating SPIR-V ERROR: 0:67: 'subroutine' : feature not yet implemented ERROR: 0:69: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan ERROR: 0:73: 'texture' : no matching overloaded function found ERROR: 0:74: 'imageStore' : no matching overloaded function found WARNING: 0:82: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: "precision mediump int; precision highp float;" ERROR: 0:91: 'call argument' : sampler constructor must appear at point of use ERROR: 0:92: 'call argument' : sampler constructor must appear at point of use ERROR: 0:93: ',' : sampler constructor must appear at point of use ERROR: 0:94: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type ' temp sampler2D' and a right operand of type ' temp sampler2D' (or there is no acceptable conversion) ERROR: 0:94: 'call argument' : sampler constructor must appear at point of use ERROR: 0:96: 'gl_NumSamples' : undeclared identifier ERROR: 0:101: 'noise1' : no matching overloaded function found ERROR: 0:102: 'noise2' : no matching overloaded function found ERROR: 0:103: 'noise3' : no matching overloaded function found ERROR: 0:104: 'noise4' : no matching overloaded function found ERROR: 53 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 glslang-8.13.3559/Test/baseResults/vulkan.vert.out000066400000000000000000000073751360464450000217410ustar00rootroot00000000000000vulkan.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 glslang-8.13.3559/Test/baseResults/web.array.frag.out000066400000000000000000000104431360464450000222600ustar00rootroot00000000000000; 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 glslang-8.13.3559/Test/baseResults/web.basic.vert.out000066400000000000000000000051001360464450000222560ustar00rootroot00000000000000; 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 glslang-8.13.3559/Test/baseResults/web.builtins.frag.out000066400000000000000000000143121360464450000227720ustar00rootroot00000000000000; 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 glslang-8.13.3559/Test/baseResults/web.builtins.vert.out000066400000000000000000000051041360464450000230320ustar00rootroot00000000000000; 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 glslang-8.13.3559/Test/baseResults/web.comp.out000066400000000000000000000170021360464450000211600ustar00rootroot00000000000000; 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 glslang-8.13.3559/Test/baseResults/web.controlFlow.frag.out000066400000000000000000000312561360464450000234570ustar00rootroot00000000000000; 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 glslang-8.13.3559/Test/baseResults/web.operations.frag.out000066400000000000000000000325711360464450000233330ustar00rootroot00000000000000; 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 = OpFOrdNotEqual %v4bool %72 %73 %76 = OpAny %bool %75 %77 = OpCompositeExtract %v4float %69 1 %78 = OpCompositeExtract %v4float %70 1 %79 = OpFOrdNotEqual %v4bool %77 %78 %80 = OpAny %bool %79 %81 = OpLogicalOr %bool %76 %80 %82 = OpCompositeExtract %v4float %69 2 %83 = OpCompositeExtract %v4float %70 2 %84 = OpFOrdNotEqual %v4bool %82 %83 %85 = OpAny %bool %84 %86 = OpLogicalOr %bool %81 %85 %87 = OpCompositeExtract %v4float %69 3 %88 = OpCompositeExtract %v4float %70 3 %89 = OpFOrdNotEqual %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 glslang-8.13.3559/Test/baseResults/web.separate.frag.out000066400000000000000000000201601360464450000227430ustar00rootroot00000000000000; 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 glslang-8.13.3559/Test/baseResults/web.texture.frag.out000066400000000000000000000433701360464450000226470ustar00rootroot00000000000000; 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 glslang-8.13.3559/Test/baseResults/whileLoop.frag.out000066400000000000000000000050731360464450000223330ustar00rootroot00000000000000whileLoop.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) glslang-8.13.3559/Test/bump000077500000000000000000000000641360464450000153120ustar00rootroot00000000000000#!/usr/bin/env bash cp localResults/* baseResults/ glslang-8.13.3559/Test/comment.frag000066400000000000000000000003751360464450000167310ustar00rootroot00000000000000 // /* 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() {} glslang-8.13.3559/Test/compoundsuffix.frag.hlsl000066400000000000000000000001141360464450000212700ustar00rootroot00000000000000void main(out float4 fragColor : SV_TARGET0) { fragColor = 1; } glslang-8.13.3559/Test/compoundsuffix.vert.glsl000066400000000000000000000000571360464450000213360ustar00rootroot00000000000000void main() { gl_Position = vec4(1.0); }glslang-8.13.3559/Test/conditionalDiscard.frag000066400000000000000000000003161360464450000210570ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/constErrors.frag000066400000000000000000000014601360464450000176060ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/constFold.frag000066400000000000000000000115771360464450000172300ustar00rootroot00000000000000#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); 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)); glslang-8.13.3559/Test/constFoldIntMin.frag000066400000000000000000000006221360464450000203340ustar00rootroot00000000000000#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 }glslang-8.13.3559/Test/constantUnaryConversion.comp000066400000000000000000000025521360464450000222230ustar00rootroot00000000000000#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); #define TYPE_TO_TYPE(x, y) \ const x y##_to_##x = x(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); void main() {} glslang-8.13.3559/Test/conversion.frag000066400000000000000000000042271360464450000174540ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/cppBad.vert000066400000000000000000000000771360464450000165200ustar00rootroot00000000000000#define n#0# #define m #0# #if m #endif #define n() int n"glslang-8.13.3559/Test/cppBad2.vert000066400000000000000000000000401360464450000165700ustar00rootroot00000000000000#define a b( #define b(x) b(a)glslang-8.13.3559/Test/cppBad3.vert000066400000000000000000000000401360464450000165710ustar00rootroot00000000000000#define f =y(. #define y(m) y(f)glslang-8.13.3559/Test/cppBad4.vert000077500000000000000000000000521360464450000166000ustar00rootroot00000000000000int,i= #define f g(#g(y #define g(m) g(f) glslang-8.13.3559/Test/cppBad5.vert000077500000000000000000000000521360464450000166010ustar00rootroot00000000000000int,i= #define f g($g(y #define g(m) g(f) glslang-8.13.3559/Test/cppComplexExpr.vert000066400000000000000000000133311360464450000202750ustar00rootroot00000000000000#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, EOFglslang-8.13.3559/Test/cppDeepNest.frag000066400000000000000000000011211360464450000174670ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/cppIndent.vert000066400000000000000000000015051360464450000172500ustar00rootroot00000000000000#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 ) glslang-8.13.3559/Test/cppIntMinOverNegativeOne.frag000066400000000000000000000002711360464450000221440ustar00rootroot00000000000000#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. #endifglslang-8.13.3559/Test/cppMerge.frag000077500000000000000000000012671360464450000170350ustar00rootroot00000000000000#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() { }glslang-8.13.3559/Test/cppNest.vert000066400000000000000000000042341360464450000167420ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/cppPassMacroName.frag000066400000000000000000000012351360464450000204570ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/cppRelaxSkipTokensErrors.vert000066400000000000000000000002221360464450000223050ustar00rootroot00000000000000#version 110 #if 0 3.5L 3.5h 2034h 1.#INF 0x1234567812345L 12323394203923879234L 0123s; 123s; 0123456712345671234L "string" #endif glslang-8.13.3559/Test/cppSimple.vert000066400000000000000000000126111360464450000172600ustar00rootroot00000000000000#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 #endifglslang-8.13.3559/Test/dataOut.frag000066400000000000000000000001301360464450000166550ustar00rootroot00000000000000#version 130 varying vec4 Color; void main() { gl_FragData[1] = Color; } glslang-8.13.3559/Test/dataOutIndirect.frag000066400000000000000000000001521360464450000203430ustar00rootroot00000000000000#version 130 varying vec4 Color; uniform int i; void main() { gl_FragData[i] = Color; } glslang-8.13.3559/Test/dce.frag000066400000000000000000000020431360464450000160140ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/decls.frag000066400000000000000000000026321360464450000163570ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/deepRvalue.frag000066400000000000000000000016131360464450000173570ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/depthOut.frag000066400000000000000000000002061360464450000170540ustar00rootroot00000000000000#version 130 varying vec4 Color; varying float Depth; void main() { gl_FragDepth = Depth; gl_FragColor = Color; } glslang-8.13.3559/Test/discard-dce.frag000066400000000000000000000012321360464450000174220ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/doWhileLoop.frag000066400000000000000000000003461360464450000175120ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/earlyReturnDiscard.frag000066400000000000000000000036101360464450000210700ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/empty.frag000066400000000000000000000000001360464450000164060ustar00rootroot00000000000000glslang-8.13.3559/Test/empty2.frag000066400000000000000000000000011360464450000164710ustar00rootroot00000000000000 glslang-8.13.3559/Test/empty3.frag000066400000000000000000000000151360464450000164770ustar00rootroot00000000000000#version 110 glslang-8.13.3559/Test/errors.frag000066400000000000000000000000441360464450000165740ustar00rootroot00000000000000int main(int foo) { return 1; } glslang-8.13.3559/Test/es-link1.frag000066400000000000000000000001431360464450000167030ustar00rootroot00000000000000#version 100 mediump vec4 calculateColor(); void main() { gl_FragColor = calculateColor(); } glslang-8.13.3559/Test/es-link2.frag000066400000000000000000000001631360464450000167060ustar00rootroot00000000000000#version 100 varying mediump vec4 varyingColor; mediump vec4 calculateColor() { return varyingColor * 0.5; } glslang-8.13.3559/Test/findFunction.frag000066400000000000000000000016421360464450000177130ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/flowControl.frag000066400000000000000000000005511360464450000175730ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/foo.h000066400000000000000000000000351360464450000153530ustar00rootroot00000000000000#error should not be includedglslang-8.13.3559/Test/forLoop.frag000066400000000000000000000012401360464450000166770ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/forwardRef.frag000066400000000000000000000007001360464450000173600ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/functionCall.frag000066400000000000000000000012031360464450000176770ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/functionSemantics.frag000066400000000000000000000030521360464450000207560ustar00rootroot00000000000000#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 }glslang-8.13.3559/Test/glsl.-D-U.frag000066400000000000000000000005711360464450000166670ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/glsl.450.subgroup.frag000066400000000000000000000266231360464450000204100ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.450.subgroup.geom000066400000000000000000000266611360464450000204220ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.450.subgroup.tesc000066400000000000000000000266151360464450000204300ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.450.subgroup.tese000066400000000000000000000266121360464450000204270ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.450.subgroup.vert000066400000000000000000000265631360464450000204540ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.450.subgroupArithmetic.comp000066400000000000000000000500561360464450000224360ustar00rootroot00000000000000#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)))); } glslang-8.13.3559/Test/glsl.450.subgroupBallot.comp000066400000000000000000000101401360464450000215500ustar00rootroot00000000000000#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)))); } } glslang-8.13.3559/Test/glsl.450.subgroupBallotNeg.comp000066400000000000000000000020311360464450000222020ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/glsl.450.subgroupBasic.comp000066400000000000000000000270421360464450000213650ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.450.subgroupClustered.comp000066400000000000000000000167371360464450000223070ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/glsl.450.subgroupClusteredNeg.comp000066400000000000000000000026171360464450000227310ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/glsl.450.subgroupPartitioned.comp000066400000000000000000000670031360464450000226270ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/glsl.450.subgroupQuad.comp000066400000000000000000000144631360464450000212410ustar00rootroot00000000000000#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)))); } glslang-8.13.3559/Test/glsl.450.subgroupShuffle.comp000066400000000000000000000071761360464450000217460ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/glsl.450.subgroupShuffleRelative.comp000066400000000000000000000073031360464450000234320ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/glsl.450.subgroupVote.comp000066400000000000000000000035771360464450000212700ustar00rootroot00000000000000#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))))); } } glslang-8.13.3559/Test/glsl.460.subgroup.mesh000066400000000000000000000321341360464450000204200ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.460.subgroup.rahit000066400000000000000000000272531360464450000206010ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.460.subgroup.rcall000066400000000000000000000264351360464450000205700ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.460.subgroup.rchit000066400000000000000000000274121360464450000206000ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.460.subgroup.rgen000066400000000000000000000270241360464450000204210ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.460.subgroup.rint000066400000000000000000000270721360464450000204450ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.460.subgroup.rmiss000066400000000000000000000270751360464450000206310ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.460.subgroup.task000066400000000000000000000305231360464450000204260ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/glsl.entryPointRename.vert000066400000000000000000000001571360464450000215710ustar00rootroot00000000000000#version 460 void bar() { gl_Position = vec4(1); } void main() { gl_Position = vec4(1); } glslang-8.13.3559/Test/glsl.entryPointRename2.vert000066400000000000000000000000761360464450000216530ustar00rootroot00000000000000#version 460 void bar() { gl_Position = vec4(1); } glslang-8.13.3559/Test/glsl.es320.subgroup.frag000066400000000000000000000003011360464450000207150ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/glsl.es320.subgroup.geom000066400000000000000000000004721360464450000207360ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/glsl.es320.subgroup.tesc000066400000000000000000000004261360464450000207440ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/glsl.es320.subgroup.tese000066400000000000000000000004231360464450000207430ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/glsl.es320.subgroup.vert000066400000000000000000000003721360464450000207660ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/glsl.es320.subgroupArithmetic.comp000066400000000000000000000354431360464450000227650ustar00rootroot00000000000000#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)))); } glslang-8.13.3559/Test/glsl.es320.subgroupBallot.comp000066400000000000000000000063231360464450000221040ustar00rootroot00000000000000#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)))); } } glslang-8.13.3559/Test/glsl.es320.subgroupBallotNeg.comp000066400000000000000000000017401360464450000225340ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/glsl.es320.subgroupBasic.comp000066400000000000000000000010441360464450000217030ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/glsl.es320.subgroupClustered.comp000066400000000000000000000133101360464450000226130ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/glsl.es320.subgroupClusteredNeg.comp000066400000000000000000000022051360464450000232460ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/glsl.es320.subgroupPartitioned.comp000066400000000000000000000515751360464450000231620ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/glsl.es320.subgroupQuad.comp000066400000000000000000000111641360464450000215600ustar00rootroot00000000000000#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)))); } glslang-8.13.3559/Test/glsl.es320.subgroupShuffle.comp000066400000000000000000000053331360464450000222630ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/glsl.es320.subgroupShuffleRelative.comp000066400000000000000000000054241360464450000237600ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/glsl.es320.subgroupVote.comp000066400000000000000000000027031360464450000216020ustar00rootroot00000000000000#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))))); } } glslang-8.13.3559/Test/glslangValidator000077500000000000000000000000751360464450000176460ustar00rootroot00000000000000#!/usr/bin/env bash ../build/install/bin/glslangValidator $* glslang-8.13.3559/Test/glspv.esversion.vert000066400000000000000000000000461360464450000204720ustar00rootroot00000000000000#version 310 es void main() { } glslang-8.13.3559/Test/glspv.frag000066400000000000000000000012121360464450000164110ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/glspv.version.frag000066400000000000000000000000611360464450000200760ustar00rootroot00000000000000#version 330 compatibility void main() { } glslang-8.13.3559/Test/glspv.version.vert000066400000000000000000000000431360464450000201370ustar00rootroot00000000000000#version 150 void main() { } glslang-8.13.3559/Test/glspv.vert000066400000000000000000000013211360464450000164530ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/hlsl.-D-U.frag000066400000000000000000000005351360464450000166700ustar00rootroot00000000000000 #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 } glslang-8.13.3559/Test/hlsl.PointSize.geom000066400000000000000000000003471360464450000201630ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.PointSize.vert000066400000000000000000000001011360464450000202000ustar00rootroot00000000000000[[vk::builtin("PointSize")]] float main() { return 2.3; }glslang-8.13.3559/Test/hlsl.aliasOpaque.frag000066400000000000000000000007041360464450000204700ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.amend.frag000066400000000000000000000002611360464450000173060ustar00rootroot00000000000000float4 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;glslang-8.13.3559/Test/hlsl.array.flatten.frag000066400000000000000000000020301360464450000207700ustar00rootroot00000000000000 // 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); } glslang-8.13.3559/Test/hlsl.array.frag000066400000000000000000000010301360464450000173330ustar00rootroot00000000000000float4 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; } glslang-8.13.3559/Test/hlsl.array.implicit-size.frag000066400000000000000000000014171360464450000221250ustar00rootroot00000000000000 // 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]; } glslang-8.13.3559/Test/hlsl.array.multidim.frag000066400000000000000000000005301360464450000211620ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.assoc.frag000066400000000000000000000002701360464450000173320ustar00rootroot00000000000000float4 PixelShaderFunction( float4 a1, float4 a2, float4 a3, float4 a4, float4 a5 ) : COLOR0 { a1 = a2 = a3 = a4 = a5; return a1 + a2 + a3 + a4 + a5; } glslang-8.13.3559/Test/hlsl.attribute.expression.comp000066400000000000000000000003361360464450000224450ustar00rootroot00000000000000 uniform int bound; #define FOO 3 #define BAR 2 [numthreads(2+2, 2*3, (1+FOO)*BAR)] float4 main() : SV_TARGET { [unroll(5*2 + 1) ] for (int x=0; x buffer1; [[vk::binding(3, 2)]] StructuredBuffer buffer3; [[vk::input_attachment_index(4)]] Texture2D attach; [[vk::constant_id(13)]] const int ci = 11; [[vk::push_constant]] cbuffer pcBuf { int a; }; [[vk::location(7)]] float4 main([[vk::location(8)]] float4 input: A) : B { return input + attach.Load(float2(0.5));// * a; } glslang-8.13.3559/Test/hlsl.attributeGlobalBuffer.frag000066400000000000000000000001651360464450000225030ustar00rootroot00000000000000[[vk::global_cbuffer_binding(5, 2)]] float4 u1; float4 u2; float4 main() : SV_Target0 { return u1 + u2; }glslang-8.13.3559/Test/hlsl.automap.frag000066400000000000000000000020001360464450000176610ustar00rootroot00000000000000// 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; } glslang-8.13.3559/Test/hlsl.basic.comp000066400000000000000000000001721360464450000173230ustar00rootroot00000000000000groupshared float4 a[100]; void main(int dti : SV_DispatchThreadID, int gti : SV_GroupThreadID) { dti - gti; } glslang-8.13.3559/Test/hlsl.basic.geom000066400000000000000000000011401360464450000173100ustar00rootroot00000000000000struct 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(); } glslang-8.13.3559/Test/hlsl.boolConv.vert000066400000000000000000000003741360464450000200510ustar00rootroot00000000000000static 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; } glslang-8.13.3559/Test/hlsl.buffer.frag000066400000000000000000000020251360464450000174730ustar00rootroot00000000000000cbuffer 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; } glslang-8.13.3559/Test/hlsl.calculatelod.dx10.frag000066400000000000000000000026401360464450000214340ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.calculatelodunclamped.dx10.frag000066400000000000000000000027611360464450000233310ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.cast.frag000066400000000000000000000001561360464450000171570ustar00rootroot00000000000000float4 PixelShaderFunction(float4 input) : COLOR0 { return (float4)input + (int4)input + (float4)1.198; } glslang-8.13.3559/Test/hlsl.cbuffer-identifier.vert000066400000000000000000000012271360464450000220220ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.charLit.vert000066400000000000000000000004331360464450000176520ustar00rootroot00000000000000float4 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; } glslang-8.13.3559/Test/hlsl.clip.frag000066400000000000000000000002011360464450000171430ustar00rootroot00000000000000 float GetEntitySelectClip() { return 1.0f; } float4 main() : SV_TARGET { clip(GetEntitySelectClip()); return 0; } glslang-8.13.3559/Test/hlsl.clipdistance-1.frag000066400000000000000000000002631360464450000210240ustar00rootroot00000000000000float4 main(in float4 pos : SV_Position, in float clip : SV_ClipDistance, in float cull : SV_CullDistance) : SV_Target0 { return pos + clip + cull; } glslang-8.13.3559/Test/hlsl.clipdistance-1.geom000066400000000000000000000007151360464450000210360ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.clipdistance-1.vert000066400000000000000000000003371360464450000210670ustar00rootroot00000000000000void 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; } glslang-8.13.3559/Test/hlsl.clipdistance-2.frag000066400000000000000000000004101360464450000210170ustar00rootroot00000000000000float4 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]; } glslang-8.13.3559/Test/hlsl.clipdistance-2.geom000066400000000000000000000007401360464450000210350ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.clipdistance-2.vert000066400000000000000000000006161360464450000210700ustar00rootroot00000000000000void 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; } glslang-8.13.3559/Test/hlsl.clipdistance-3.frag000066400000000000000000000003751360464450000210320ustar00rootroot00000000000000float4 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]; } glslang-8.13.3559/Test/hlsl.clipdistance-3.geom000066400000000000000000000011101360464450000210260ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.clipdistance-3.vert000066400000000000000000000004501360464450000210650ustar00rootroot00000000000000void 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; } glslang-8.13.3559/Test/hlsl.clipdistance-4.frag000066400000000000000000000003601360464450000210250ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.clipdistance-4.geom000066400000000000000000000011501360464450000210330ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.clipdistance-4.vert000066400000000000000000000007111360464450000210660ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.clipdistance-5.frag000066400000000000000000000004201360464450000210230ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.clipdistance-5.vert000066400000000000000000000007361360464450000210760ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.clipdistance-6.frag000066400000000000000000000005121360464450000210260ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.clipdistance-6.vert000066400000000000000000000010351360464450000210700ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.clipdistance-7.frag000066400000000000000000000005021360464450000210260ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.clipdistance-7.vert000066400000000000000000000010261360464450000210710ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.clipdistance-8.frag000066400000000000000000000005011360464450000210260ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.clipdistance-8.vert000066400000000000000000000007411360464450000210750ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.clipdistance-9.frag000066400000000000000000000004211360464450000210300ustar00rootroot00000000000000 // 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; } glslang-8.13.3559/Test/hlsl.clipdistance-9.vert000066400000000000000000000007021360464450000210730ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.color.hull.tesc000066400000000000000000000034731360464450000203320ustar00rootroot00000000000000///////////// // 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; } glslang-8.13.3559/Test/hlsl.comparison.vec.frag000066400000000000000000000010671360464450000211550ustar00rootroot00000000000000uniform 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; } glslang-8.13.3559/Test/hlsl.conditional.frag000066400000000000000000000017071360464450000205330ustar00rootroot00000000000000float4 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); } glslang-8.13.3559/Test/hlsl.constantbuffer.frag000066400000000000000000000005241360464450000212470ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.constructArray.vert000066400000000000000000000004431360464450000213100ustar00rootroot00000000000000float4 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; } glslang-8.13.3559/Test/hlsl.constructexpr.frag000066400000000000000000000006251360464450000211510ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.constructimat.frag000066400000000000000000000041401360464450000211210ustar00rootroot00000000000000int 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; } glslang-8.13.3559/Test/hlsl.coverage.frag000066400000000000000000000004721360464450000200210ustar00rootroot00000000000000 // 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; } glslang-8.13.3559/Test/hlsl.dashI.vert000066400000000000000000000006171360464450000173200ustar00rootroot00000000000000// 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; } glslang-8.13.3559/Test/hlsl.deadFunctionMissingBody.vert000066400000000000000000000003071360464450000230370ustar00rootroot00000000000000float4 main(): SV_Target0 { return 0; } struct Surface { float3 albedo; }; Surface surfaceShader(float fade); Surface surfaceShaderExec() { float fade = 0; return surfaceShader(0); } glslang-8.13.3559/Test/hlsl.depthGreater.frag000066400000000000000000000001261360464450000206400ustar00rootroot00000000000000void PixelShaderFunction(out float depth : SV_DepthGreaterEqual) { depth = 0.2; } glslang-8.13.3559/Test/hlsl.depthLess.frag000066400000000000000000000001041360464450000201510ustar00rootroot00000000000000float PixelShaderFunction() : SV_DepthLessEqual { return 0.2; } glslang-8.13.3559/Test/hlsl.discard.frag000066400000000000000000000002551360464450000176360ustar00rootroot00000000000000void 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; } glslang-8.13.3559/Test/hlsl.doLoop.frag000066400000000000000000000007631360464450000174650ustar00rootroot00000000000000void 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; } glslang-8.13.3559/Test/hlsl.domain.1.tese000066400000000000000000000010771360464450000176570ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.domain.2.tese000066400000000000000000000013511360464450000176530ustar00rootroot00000000000000// 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; } glslang-8.13.3559/Test/hlsl.domain.3.tese000066400000000000000000000012141360464450000176520ustar00rootroot00000000000000// 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; } glslang-8.13.3559/Test/hlsl.earlydepthstencil.frag000066400000000000000000000004251360464450000217470ustar00rootroot00000000000000RWTexture2D 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; } glslang-8.13.3559/Test/hlsl.emptystruct.init.vert000066400000000000000000000002011360464450000216220ustar00rootroot00000000000000struct Test { }; static const Test Test_Empty; float4 main(in uint vertexIndex : VERTEXID) : VS_OUT_POSITION { return 0; } glslang-8.13.3559/Test/hlsl.emptystructreturn.frag000066400000000000000000000001541360464450000220660ustar00rootroot00000000000000struct ps_in { }; struct ps_out { }; ps_out main (ps_in i) { ps_out o; return o; } glslang-8.13.3559/Test/hlsl.emptystructreturn.vert000066400000000000000000000001371360464450000221300ustar00rootroot00000000000000struct vs_in { }; struct vs_out { }; vs_out main (vs_in i) { vs_out o; return o; } glslang-8.13.3559/Test/hlsl.entry-in.frag000066400000000000000000000005061360464450000177710ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.entry-out.frag000066400000000000000000000005671360464450000202010ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.entry.rename.frag000066400000000000000000000003061360464450000206310ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.explicitDescriptorSet.frag000066400000000000000000000003751360464450000225640ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.flatten.return.frag000066400000000000000000000004071360464450000211770ustar00rootroot00000000000000 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(); } glslang-8.13.3559/Test/hlsl.flattenOpaque.frag000066400000000000000000000011601360464450000210310ustar00rootroot00000000000000struct 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)); } glslang-8.13.3559/Test/hlsl.flattenOpaqueInit.vert000066400000000000000000000011351360464450000217200ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.flattenOpaqueInitMix.vert000066400000000000000000000005431360464450000224000ustar00rootroot00000000000000struct 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); }glslang-8.13.3559/Test/hlsl.flattenSubset.frag000066400000000000000000000007311360464450000210470ustar00rootroot00000000000000struct 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)); } glslang-8.13.3559/Test/hlsl.flattenSubset2.frag000066400000000000000000000010061360464450000211250ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.float1.frag000066400000000000000000000002661360464450000174150ustar00rootroot00000000000000static float1 f1 = float1(1.0); static float scalar = 2.0; float1 ShaderFunction(float1 inFloat1 : COLOR, float inScalar) : COLOR0 { return f1 * scalar + inFloat1 * inScalar; } glslang-8.13.3559/Test/hlsl.float4.frag000066400000000000000000000004731360464450000174200ustar00rootroot00000000000000float4 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; } glslang-8.13.3559/Test/hlsl.forLoop.frag000066400000000000000000000020211360464450000176360ustar00rootroot00000000000000void 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; } glslang-8.13.3559/Test/hlsl.format.rwtexture.frag000066400000000000000000000054451360464450000215730ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.frag000066400000000000000000000005401360464450000162230ustar00rootroot00000000000000float4 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); } glslang-8.13.3559/Test/hlsl.fraggeom.frag000066400000000000000000000005351360464450000200150ustar00rootroot00000000000000// 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; } glslang-8.13.3559/Test/hlsl.function.frag000066400000000000000000000004661360464450000200560ustar00rootroot00000000000000float4 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; }glslang-8.13.3559/Test/hlsl.gather.array.dx10.frag000066400000000000000000000021771360464450000213740ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.gather.basic.dx10.frag000066400000000000000000000022451360464450000213330ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.gather.basic.dx10.vert000066400000000000000000000021731360464450000213740ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.gather.offset.dx10.frag000066400000000000000000000017421360464450000215410ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.gather.offsetarray.dx10.frag000066400000000000000000000015221360464450000225740ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.gatherRGBA.array.dx10.frag000066400000000000000000000042071360464450000220240ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.gatherRGBA.basic.dx10.frag000066400000000000000000000043071360464450000217700ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.gatherRGBA.offset.dx10.frag000066400000000000000000000107131360464450000221730ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.gatherRGBA.offsetarray.dx10.frag000066400000000000000000000106431360464450000232340ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.gathercmpRGBA.array.dx10.frag000066400000000000000000000050701360464450000225230ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.gathercmpRGBA.basic.dx10.frag000066400000000000000000000055321360464450000224710ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.gathercmpRGBA.offset.dx10.frag000066400000000000000000000131671360464450000227010ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag000066400000000000000000000122351360464450000237330ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.getdimensions.dx10.frag000066400000000000000000000227221360464450000216530ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.getdimensions.dx10.vert000066400000000000000000000011101360464450000217000ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.getdimensions.rw.dx10.frag000066400000000000000000000044721360464450000223040ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.getsampleposition.dx10.frag000066400000000000000000000007001360464450000225410ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.global-const-init.frag000066400000000000000000000005231360464450000215500ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.groupid.comp000066400000000000000000000004241360464450000177130ustar00rootroot00000000000000RWTexture2D < 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); } glslang-8.13.3559/Test/hlsl.gs-hs-mix.tesc000066400000000000000000000057551360464450000200720ustar00rootroot00000000000000cbuffer 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(); } glslang-8.13.3559/Test/hlsl.hlslOffset.vert000066400000000000000000000005141360464450000203750ustar00rootroot00000000000000cbuffer 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() {} glslang-8.13.3559/Test/hlsl.hull.1.tesc000066400000000000000000000012271360464450000173470ustar00rootroot00000000000000// *** // 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; } glslang-8.13.3559/Test/hlsl.hull.2.tesc000066400000000000000000000012121360464450000173420ustar00rootroot00000000000000// *** // 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; } glslang-8.13.3559/Test/hlsl.hull.3.tesc000066400000000000000000000012071360464450000173470ustar00rootroot00000000000000// *** // 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; } glslang-8.13.3559/Test/hlsl.hull.4.tesc000066400000000000000000000020741360464450000173530ustar00rootroot00000000000000 // 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 ; } glslang-8.13.3559/Test/hlsl.hull.5.tesc000066400000000000000000000020401360464450000173450ustar00rootroot00000000000000 // 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 ; } glslang-8.13.3559/Test/hlsl.hull.ctrlpt-1.tesc000066400000000000000000000015631360464450000206600ustar00rootroot00000000000000// *** // 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; } glslang-8.13.3559/Test/hlsl.hull.ctrlpt-2.tesc000066400000000000000000000017541360464450000206630ustar00rootroot00000000000000// *** // 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; } glslang-8.13.3559/Test/hlsl.hull.void.tesc000066400000000000000000000007511360464450000201510ustar00rootroot00000000000000// *** // 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() { } glslang-8.13.3559/Test/hlsl.identifier.sample.frag000066400000000000000000000007361360464450000216330ustar00rootroot00000000000000 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. } glslang-8.13.3559/Test/hlsl.if.frag000066400000000000000000000011731360464450000166230ustar00rootroot00000000000000float4 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; } glslang-8.13.3559/Test/hlsl.imagefetch-subvec4.comp000066400000000000000000000002411360464450000217040ustar00rootroot00000000000000Texture3D IN: register(t0); RWTexture3D OUT: register(u1); [numthreads(8,8,8)] void main(uint3 tid: SV_DispatchThreadID) { OUT[tid] = IN[tid]; } glslang-8.13.3559/Test/hlsl.implicitBool.frag000066400000000000000000000010561360464450000206530ustar00rootroot00000000000000float 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; }glslang-8.13.3559/Test/hlsl.include.vert000066400000000000000000000002101360464450000177000ustar00rootroot00000000000000#include "bar.h" #include "./inc1/bar.h" #include "inc2\bar.h" float4 main() : SV_Position { return i1 + i2 + i3 + i4 + i5 + i6; } glslang-8.13.3559/Test/hlsl.includeNegative.vert000066400000000000000000000001631360464450000213720ustar00rootroot00000000000000#include "foo.h" #include "inc2/../foo.h" #include "inc1/badInc.h" float4 main() : SV_Position { #error in main } glslang-8.13.3559/Test/hlsl.inf.vert000066400000000000000000000004071360464450000170410ustar00rootroot00000000000000float4 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); }glslang-8.13.3559/Test/hlsl.init.frag000066400000000000000000000017011360464450000171650ustar00rootroot00000000000000static 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; }; glslang-8.13.3559/Test/hlsl.init2.frag000066400000000000000000000027741360464450000172620ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.inoutquals.frag000066400000000000000000000007611360464450000204330ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.int.dot.frag000066400000000000000000000004041360464450000176000ustar00rootroot00000000000000float4 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; }glslang-8.13.3559/Test/hlsl.intrinsic.frexp.frag000066400000000000000000000014151360464450000213510ustar00rootroot00000000000000 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; }; glslang-8.13.3559/Test/hlsl.intrinsic.frexp.vert000066400000000000000000000010431360464450000214070ustar00rootroot00000000000000float 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); glslang-8.13.3559/Test/hlsl.intrinsics.barriers.comp000066400000000000000000000003661360464450000222440ustar00rootroot00000000000000 float ComputeShaderFunction() { AllMemoryBarrier(); AllMemoryBarrierWithGroupSync(); DeviceMemoryBarrier(); DeviceMemoryBarrierWithGroupSync(); GroupMemoryBarrier(); GroupMemoryBarrierWithGroupSync(); return 0.0; } glslang-8.13.3559/Test/hlsl.intrinsics.comp000066400000000000000000000076301360464450000204350ustar00rootroot00000000000000 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); } glslang-8.13.3559/Test/hlsl.intrinsics.d3dcolortoubyte4.frag000066400000000000000000000001271360464450000236200ustar00rootroot00000000000000 uniform float4 col4; int4 main() : SV_Target0 { return D3DCOLORtoUBYTE4(col4); } glslang-8.13.3559/Test/hlsl.intrinsics.double.frag000066400000000000000000000004601360464450000216610ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.intrinsics.evalfns.frag000066400000000000000000000004761360464450000220540ustar00rootroot00000000000000 void main(float inF1, float2 inF2, float3 inF3, float4 inF4, int2 inI2) : COLOR { EvaluateAttributeSnapped(inF1, int2(8,15)); EvaluateAttributeSnapped(inF2, int2(0,1)); EvaluateAttributeSnapped(inF3, int2(3,10)); EvaluateAttributeSnapped(inF4, int2(7,8)); EvaluateAttributeSnapped(inF1, inI2); } glslang-8.13.3559/Test/hlsl.intrinsics.f1632.frag000066400000000000000000000006221360464450000211500ustar00rootroot00000000000000float 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; } glslang-8.13.3559/Test/hlsl.intrinsics.f3216.frag000066400000000000000000000006221360464450000211500ustar00rootroot00000000000000uint 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; } glslang-8.13.3559/Test/hlsl.intrinsics.frag000077500000000000000000000402731360464450000204210ustar00rootroot00000000000000 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; }; glslang-8.13.3559/Test/hlsl.intrinsics.lit.frag000066400000000000000000000001561360464450000212010ustar00rootroot00000000000000void PixelShaderFunction(float n_dot_l, float n_dot_h, float m) { float4 r0 = lit(n_dot_l, n_dot_h, m); } glslang-8.13.3559/Test/hlsl.intrinsics.negative.comp000066400000000000000000000366071360464450000222440ustar00rootroot00000000000000float ComputeShaderFunctionS(float inF0, float inF1, float inF2, int inI0) { uint out_u1; // AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list // AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list // asdouble(inF0, inF1); // expected error: only integer inputs // CheckAccessFullyMapped(3.0); // expected error: only valid on integers // clip(inF0); // expected error: only valid in pixel stage // countbits(inF0); // expected error: only integer inputs // cross(inF0, inF1); // expected error: only on float3 inputs // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs // ddx(inF0); // expected error: only valid in pixel stage // ddx_coarse(inF0); // expected error: only valid in pixel stage // ddx_fine(inF0); // expected error: only valid in pixel stage // ddy(inF0); // expected error: only valid in pixel stage // ddy_coarse(inF0); // expected error: only valid in pixel stage // ddy_fine(inF0); // expected error: only valid in pixel stage // determinant(inF0); // expected error: only valid on mats // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant // f16tof32(inF0); // expected error: only integer inputs // firstbithigh(inF0); // expected error: only integer inputs // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC // fwidth(inF0); // expected error: only valid in pixel stage // InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage // InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage // InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage // InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage // InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage // InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage // InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage // InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage // InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage // InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage // InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage // InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage // InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage // InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage // length(inF0); // expect error: invalid on scalars // msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs // normalize(inF0); // expect error: invalid on scalars // reflect(inF0, inF1); // expect error: invalid on scalars // refract(inF0, inF1, inF2); // expect error: invalid on scalars // refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar // reversebits(inF0); // expected error: only integer inputs // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. return 0.0; } float1 ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) { // TODO: ... add when float1 prototypes are generated // GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs return 0.0; } float2 ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) { uint2 out_u2; // asdouble(inF0, inF1); // expected error: only integer inputs // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars // countbits(inF0); // expected error: only integer inputs // cross(inF0, inF1); // expected error: only on float3 inputs // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs // ddx(inF0); // only valid in pixel stage // ddx_coarse(inF0); // only valid in pixel stage // ddx_fine(inF0); // only valid in pixel stage // ddy(inF0); // only valid in pixel stage // ddy_coarse(inF0); // only valid in pixel stage // ddy_fine(inF0); // only valid in pixel stage // determinant(inF0); // expect error: only valid on mats // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant // f16tof32(inF0); // expected error: only integer inputs // firstbithigh(inF0); // expected error: only integer inputs // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC // fwidth(inF0); // expected error: only valid in pixel stage // InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage // InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage // InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage // InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage // InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage // InterlockedExchange(gs_ua2, gs_ub2, out_u2);// expected error: only valid in pixel stage // InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage // InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage // InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage // InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage // InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage // InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage // InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage // InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage // noise(inF0); // expected error: only valid in pixel stage // reversebits(inF0); // expected error: only integer inputs // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. return float2(1,2); } float3 ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) { uint3 out_u3; // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars // countbits(inF0); // expected error: only integer inputs // ddx(inF0); // only valid in pixel stage // ddx_coarse(inF0); // only valid in pixel stage // ddx_fine(inF0); // only valid in pixel stage // ddy(inF0); // only valid in pixel stage // ddy_coarse(inF0); // only valid in pixel stage // ddy_fine(inF0); // only valid in pixel stage // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs // determinant(inF0); // expect error: only valid on mats // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant // f16tof32(inF0); // expected error: only integer inputs // firstbithigh(inF0); // expected error: only integer inputs // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC // fwidth(inF0); // expected error: only valid in pixel stage // InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage // InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage // InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage // InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage // InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage // InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage // InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage // InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage // InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage // InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage // InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage // InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage // InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage // InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage // noise(inF0); // expected error: only valid in pixel stage // reversebits(inF0); // expected error: only integer inputs // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. return float3(1,2,3); } float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) { uint4 out_u4; // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars // countbits(inF0); // expected error: only integer inputs // cross(inF0, inF1); // expected error: only on float3 inputs // determinant(inF0); // expect error: only valid on mats // ddx(inF0); // only valid in pixel stage // ddx_coarse(inF0); // only valid in pixel stage // ddx_fine(inF0); // only valid in pixel stage // ddy(inF0); // only valid in pixel stage // ddy_coarse(inF0); // only valid in pixel stage // ddy_fine(inF0); // only valid in pixel stage // EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage // EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage // f16tof32(inF0); // expected error: only integer inputs // firstbithigh(inF0); // expected error: only integer inputs // firstbitlow(inF0); // expected error: only integer inputs // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC // fwidth(inF0); // expected error: only valid in pixel stage // InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage // InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage // InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage // InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage // InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage // InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage // InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage // InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage // InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage // InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage // InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage // InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage // InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage // InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage // noise(inF0); // expected error: only valid in pixel stage // reversebits(inF0); // expected error: only integer inputs // transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. return float4(1,2,3,4); } glslang-8.13.3559/Test/hlsl.intrinsics.negative.frag000066400000000000000000000160351360464450000222160ustar00rootroot00000000000000float 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); } glslang-8.13.3559/Test/hlsl.intrinsics.negative.vert000066400000000000000000000432171360464450000222610ustar00rootroot00000000000000static 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); } glslang-8.13.3559/Test/hlsl.intrinsics.promote.down.frag000066400000000000000000000004651360464450000230470ustar00rootroot00000000000000 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; }; glslang-8.13.3559/Test/hlsl.intrinsics.promote.frag000066400000000000000000000032751360464450000221030ustar00rootroot00000000000000 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; }; glslang-8.13.3559/Test/hlsl.intrinsics.promote.outputs.frag000066400000000000000000000015601360464450000236200ustar00rootroot00000000000000 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; }; glslang-8.13.3559/Test/hlsl.intrinsics.vert000066400000000000000000000242661360464450000204630ustar00rootroot00000000000000float 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); } glslang-8.13.3559/Test/hlsl.isfinite.frag000066400000000000000000000003331360464450000200340ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.layout.frag000066400000000000000000000006431360464450000175430ustar00rootroot00000000000000layout(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; } glslang-8.13.3559/Test/hlsl.layoutOverride.vert000066400000000000000000000002401360464450000212750ustar00rootroot00000000000000layout(set=2,binding=0) Texture2D tex : register(t16); SamplerState samp; float4 main() : SV_Position { return tex.Sample(samp, float2(0.2, 0.3)); }glslang-8.13.3559/Test/hlsl.load.2dms.dx10.frag000066400000000000000000000020721360464450000205620ustar00rootroot00000000000000SamplerState g_sSamp : register(s0); Texture2DMS g_tTex2dmsf4; Texture2DMS g_tTex2dmsi4; Texture2DMS g_tTex2dmsu4; Texture2DMSArray g_tTex2dmsf4a; Texture2DMSArray g_tTex2dmsi4a; Texture2DMSArray g_tTex2dmsu4a; struct PS_OUTPUT { float4 Color : SV_Target0; float Depth : SV_Depth; }; uniform int c1; uniform int2 c2; uniform int3 c3; uniform int4 c4; uniform int o1; uniform int2 o2; uniform int3 o3; uniform int4 o4; PS_OUTPUT main() { PS_OUTPUT psout; // 2DMS, no offset g_tTex2dmsf4.Load(c2, 3); g_tTex2dmsi4.Load(c2, 3); g_tTex2dmsu4.Load(c2, 3); // 2DMS, offset g_tTex2dmsf4.Load(c2, 3, o2); g_tTex2dmsi4.Load(c2, 3, o2); g_tTex2dmsu4.Load(c2, 3, o2); // 2DMSArray, no offset g_tTex2dmsf4a.Load(c3, 3); g_tTex2dmsi4a.Load(c3, 3); g_tTex2dmsu4a.Load(c3, 3); // 2DMSArray, offset g_tTex2dmsf4a.Load(c3, 3, o2); g_tTex2dmsi4a.Load(c3, 3, o2); g_tTex2dmsu4a.Load(c3, 3, o2); psout.Color = 1.0; psout.Depth = 1.0; return psout; } glslang-8.13.3559/Test/hlsl.load.array.dx10.frag000066400000000000000000000026121360464450000210330ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.load.basic.dx10.frag000066400000000000000000000027141360464450000210010ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.load.basic.dx10.vert000066400000000000000000000025351360464450000210430ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.load.buffer.dx10.frag000066400000000000000000000012771360464450000211740ustar00rootroot00000000000000uniform 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; } glslang-8.13.3559/Test/hlsl.load.buffer.float.dx10.frag000066400000000000000000000012421360464450000222700ustar00rootroot00000000000000uniform 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; } glslang-8.13.3559/Test/hlsl.load.offset.dx10.frag000066400000000000000000000027601360464450000212070ustar00rootroot00000000000000SamplerState g_sSamp : register(s0); uniform Texture1D g_tTex1df4 : register(t0); Texture1D g_tTex1di4; Texture1D g_tTex1du4; Texture2D g_tTex2df4; Texture2D g_tTex2di4; Texture2D g_tTex2du4; Texture3D g_tTex3df4; Texture3D g_tTex3di4; Texture3D g_tTex3du4; TextureCube g_tTexcdf4; TextureCube g_tTexcdi4; TextureCube g_tTexcdu4; Texture1DArray g_tTex1df4a; Texture1DArray g_tTex1di4a; Texture1DArray g_tTex1du4a; Texture2DArray g_tTex2df4a; Texture2DArray g_tTex2di4a; Texture2DArray g_tTex2du4a; TextureCubeArray g_tTexcdf4a; TextureCubeArray g_tTexcdi4a; TextureCubeArray g_tTexcdu4a; struct PS_OUTPUT { float4 Color : SV_Target0; float Depth : SV_Depth; }; uniform int c1; uniform int2 c2; uniform int3 c3; uniform int4 c4; uniform int o1; uniform int2 o2; uniform int3 o3; uniform int4 o4; PS_OUTPUT main() { PS_OUTPUT psout; // 1D g_tTex1df4.Load(c2, o1); g_tTex1di4.Load(c2, o1); g_tTex1du4.Load(c2, o1); // 2D g_tTex2df4.Load(c3, o2); g_tTex2di4.Load(c3, o2); g_tTex2du4.Load(c3, o2); // 3D g_tTex3df4.Load(c4, o3); g_tTex3di4.Load(c4, o3); g_tTex3du4.Load(c4, o3); // Offset has no Cube or CubeArray forms // TODO: // Load, SampleIndex // Load, SampleIndex, Offset psout.Color = 1.0; psout.Depth = 1.0; return psout; } glslang-8.13.3559/Test/hlsl.load.offsetarray.dx10.frag000066400000000000000000000025651360464450000222510ustar00rootroot00000000000000SamplerState g_sSamp : register(s0); uniform Texture1D g_tTex1df4 : register(t0); Texture1D g_tTex1di4; Texture1D g_tTex1du4; Texture2D g_tTex2df4; Texture2D g_tTex2di4; Texture2D g_tTex2du4; Texture3D g_tTex3df4; Texture3D g_tTex3di4; Texture3D g_tTex3du4; TextureCube g_tTexcdf4; TextureCube g_tTexcdi4; TextureCube g_tTexcdu4; Texture1DArray g_tTex1df4a; Texture1DArray g_tTex1di4a; Texture1DArray g_tTex1du4a; Texture2DArray g_tTex2df4a; Texture2DArray g_tTex2di4a; Texture2DArray g_tTex2du4a; TextureCubeArray g_tTexcdf4a; TextureCubeArray g_tTexcdi4a; TextureCubeArray g_tTexcdu4a; struct PS_OUTPUT { float4 Color : SV_Target0; float Depth : SV_Depth; }; uniform int c1; uniform int2 c2; uniform int3 c3; uniform int4 c4; uniform int o1; uniform int2 o2; uniform int3 o3; uniform int4 o4; PS_OUTPUT main() { PS_OUTPUT psout; // 1DArray g_tTex1df4a.Load(c3, o1); g_tTex1di4a.Load(c3, o1); g_tTex1du4a.Load(c3, o1); // 2DArray g_tTex2df4a.Load(c4, o2); g_tTex2di4a.Load(c4, o2); g_tTex2du4a.Load(c4, o2); // TODO: // Load, SampleIndex // Load, SampleIndex, Offset psout.Color = 1.0; psout.Depth = 1.0; return psout; } glslang-8.13.3559/Test/hlsl.load.rwbuffer.dx10.frag000066400000000000000000000006631360464450000215430ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.load.rwtexture.array.dx10.frag000066400000000000000000000021121360464450000230760ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.load.rwtexture.dx10.frag000066400000000000000000000022261360464450000217670ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.localStructuredBuffer.comp000066400000000000000000000001401360464450000225460ustar00rootroot00000000000000RWStructuredBuffer srt0; void main() { RWStructuredBuffer srt0Local = srt0; }glslang-8.13.3559/Test/hlsl.logical.binary.frag000066400000000000000000000004211360464450000211150ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.logical.binary.vec.frag000066400000000000000000000007771360464450000217070ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.logical.unary.frag000066400000000000000000000006231360464450000207730ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.logicalConvert.frag000066400000000000000000000006221360464450000211760ustar00rootroot00000000000000float4 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; }glslang-8.13.3559/Test/hlsl.loopattr.frag000066400000000000000000000003331360464450000200660ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.matNx1.frag000066400000000000000000000011221360464450000173670ustar00rootroot00000000000000 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; }; glslang-8.13.3559/Test/hlsl.matType.bool.frag000066400000000000000000000021501360464450000205760ustar00rootroot00000000000000 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; }; glslang-8.13.3559/Test/hlsl.matType.frag000066400000000000000000000003061360464450000176450ustar00rootroot00000000000000float1 f1 = float1(1.0); float1x1 fmat11; float4x1 fmat41; float1x2 fmat12; double2x3 dmat23; int4x4 int44; float1 ShaderFunction(float1 inFloat1, float inScalar) : COLOR0 { return inFloat1; } glslang-8.13.3559/Test/hlsl.matType.int.frag000066400000000000000000000037641360464450000204510ustar00rootroot00000000000000 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; }; glslang-8.13.3559/Test/hlsl.matpack-1.frag000066400000000000000000000006631360464450000200060ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.matpack-pragma.frag000066400000000000000000000012041360464450000211050ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/hlsl.matrixSwizzle.vert000066400000000000000000000014541360464450000211640ustar00rootroot00000000000000void 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; } glslang-8.13.3559/Test/hlsl.matrixindex.frag000066400000000000000000000033421360464450000205610ustar00rootroot00000000000000uniform 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; } glslang-8.13.3559/Test/hlsl.max.frag000066400000000000000000000001461360464450000170110ustar00rootroot00000000000000float4 PixelShaderFunction(float4 input1, float4 input2) : COLOR0 { return max(input1, input2); } glslang-8.13.3559/Test/hlsl.memberFunCall.frag000066400000000000000000000006231360464450000207400ustar00rootroot00000000000000float 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(); } glslang-8.13.3559/Test/hlsl.mintypes.frag000066400000000000000000000015001360464450000200670ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.mip.negative.frag000066400000000000000000000002311360464450000206050ustar00rootroot00000000000000Texture2D g_tTex2df4; float4 main() : SV_Target0 { g_tTex2df4.mips.mips[2][uint2(3, 4)]; // error to chain like this return 0; } glslang-8.13.3559/Test/hlsl.mip.negative2.frag000066400000000000000000000002311360464450000206670ustar00rootroot00000000000000Texture2D g_tTex2df4; float4 main() : SV_Target0 { g_tTex2df4.r[2][uint2(3, 4)]; // '.r' not valid on texture object return 0; } glslang-8.13.3559/Test/hlsl.mip.operator.frag000066400000000000000000000007541360464450000206500ustar00rootroot00000000000000Texture2DArray 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 ]; } glslang-8.13.3559/Test/hlsl.mul-truncate.frag000066400000000000000000000022171360464450000206450ustar00rootroot00000000000000 // 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]; } glslang-8.13.3559/Test/hlsl.multiDescriptorSet.frag000066400000000000000000000016071360464450000220740ustar00rootroot00000000000000Texture2D 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; } glslang-8.13.3559/Test/hlsl.multiEntry.vert000066400000000000000000000003551360464450000204430ustar00rootroot00000000000000Buffer Position; float4 FakeEntrypoint(uint Index : SV_VERTEXID) : SV_POSITION { return Position.Load(Index); } float4 RealEntrypoint(uint Index : SV_VERTEXID) : SV_POSITION { return FakeEntrypoint(Index); }glslang-8.13.3559/Test/hlsl.multiReturn.frag000066400000000000000000000002421360464450000205530ustar00rootroot00000000000000struct S { float f; float3 v; float3x3 m; }; cbuffer bufName { S s; }; S foo() { return s; } void main() { foo(); } glslang-8.13.3559/Test/hlsl.namespace.frag000066400000000000000000000007071360464450000201630ustar00rootroot00000000000000static float4 v1; static float4 v2; namespace N1 { float4 getVec() { return v1; } } namespace N2 { static float gf; float4 getVec() { return v2; } namespace N3 { float4 getVec() { return v2; } class C1 { float4 getVec() { return v2; } }; } } float4 main() : SV_Target0 { return N1::getVec() + N2::getVec() + N2::N3::getVec() + N2::N3::C1::getVec() * N2::gf; } glslang-8.13.3559/Test/hlsl.noSemantic.functionality1.comp000066400000000000000000000001671360464450000233160ustar00rootroot00000000000000AppendStructuredBuffer Buf : register(u0); [numthreads(1, 1, 1)] void main() { Buf.Append(1.0f.xxxx); }glslang-8.13.3559/Test/hlsl.nonint-index.frag000066400000000000000000000004151360464450000206350ustar00rootroot00000000000000static 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]; } glslang-8.13.3559/Test/hlsl.nonstaticMemberFunction.frag000066400000000000000000000012411360464450000230610ustar00rootroot00000000000000static 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; } glslang-8.13.3559/Test/hlsl.numericsuffixes.frag000066400000000000000000000013261360464450000214440ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.numthreads.comp000066400000000000000000000002201360464450000204060ustar00rootroot00000000000000 [numthreads(8,8,1)] void main(uint3 tid : SV_DispatchThreadID ) { } [numthreads(1,4,8)] void main_aux2(uint3 tid : SV_DispatchThreadID ) { } glslang-8.13.3559/Test/hlsl.opaque-type-bug.frag000066400000000000000000000005621360464450000212520ustar00rootroot00000000000000 Texture2D MyTexture : register(t0); //---------------------------------------------------------------------------------------- void TexFunc(in const Texture2D t2D, out float3 RGB) { RGB = 0; } //----------------------------------------------------------------------------------- void main() { float3 final_RGB; TexFunc(MyTexture, final_RGB); } glslang-8.13.3559/Test/hlsl.overload.frag000066400000000000000000000042361360464450000200430ustar00rootroot00000000000000// 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; } glslang-8.13.3559/Test/hlsl.params.default.frag000066400000000000000000000021521360464450000211310ustar00rootroot00000000000000uniform 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 } glslang-8.13.3559/Test/hlsl.params.default.negative.frag000066400000000000000000000022651360464450000227370ustar00rootroot00000000000000uniform 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 } glslang-8.13.3559/Test/hlsl.partialFlattenLocal.vert000066400000000000000000000010051360464450000222050ustar00rootroot00000000000000Texture2D 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); }glslang-8.13.3559/Test/hlsl.partialFlattenMixed.vert000066400000000000000000000003351360464450000222260ustar00rootroot00000000000000Texture2D 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; }glslang-8.13.3559/Test/hlsl.partialInit.frag000066400000000000000000000010771360464450000205100ustar00rootroot00000000000000struct 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; glslang-8.13.3559/Test/hlsl.pp.expand.frag000066400000000000000000000007611360464450000201240ustar00rootroot00000000000000#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" } glslang-8.13.3559/Test/hlsl.pp.line.frag000066400000000000000000000004551360464450000175740ustar00rootroot00000000000000 #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; } glslang-8.13.3559/Test/hlsl.pp.line2.frag000066400000000000000000000011671360464450000176570ustar00rootroot00000000000000#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 ; } glslang-8.13.3559/Test/hlsl.pp.line3.frag000066400000000000000000000010421360464450000176500ustar00rootroot00000000000000Texture2D 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 ; } glslang-8.13.3559/Test/hlsl.pp.line4.frag000066400000000000000000000013211360464450000176510ustar00rootroot00000000000000#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 ; } glslang-8.13.3559/Test/hlsl.pp.tokenpasting.frag000066400000000000000000000004131360464450000213450ustar00rootroot00000000000000 #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); } glslang-8.13.3559/Test/hlsl.pp.vert000066400000000000000000000002321360464450000167000ustar00rootroot00000000000000#define A defined(B) #if A int badGlobal1; #else int goodGlobal1; #endif #define B #if A int goodGlobal2; #else int badGlobal2; #endif void main() {} glslang-8.13.3559/Test/hlsl.precedence.frag000066400000000000000000000002501360464450000203150ustar00rootroot00000000000000float4 PixelShaderFunction( float4 a1, float4 a2, float4 a3, float4 a4 ) : COLOR0 { return a1 + a2 * a3 + a4 + float4(a1.rgb * a2.rgb, a3.a); } glslang-8.13.3559/Test/hlsl.precedence2.frag000066400000000000000000000002231360464450000203770ustar00rootroot00000000000000int PixelShaderFunction( int a1, int a2, int a3, int a4 ) : COLOR0 { return (a1 * a2 + a3 << a4) + (a1 << a2 + a3 * a4); } glslang-8.13.3559/Test/hlsl.precise.frag000066400000000000000000000004131360464450000176530ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.preprocessor.frag000066400000000000000000000005121360464450000207470ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/hlsl.promote.atomic.frag000066400000000000000000000006611360464450000211660ustar00rootroot00000000000000 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); } glslang-8.13.3559/Test/hlsl.promote.binary.frag000066400000000000000000000005751360464450000212020ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.promote.vec1.frag000066400000000000000000000004041360464450000205430ustar00rootroot00000000000000 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); } glslang-8.13.3559/Test/hlsl.promotions.frag000066400000000000000000000113501360464450000204340ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.reflection.binding.frag000066400000000000000000000012001360464450000217570ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.reflection.vert000066400000000000000000000045451360464450000204260ustar00rootroot00000000000000 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]; } glslang-8.13.3559/Test/hlsl.rw.atomics.frag000066400000000000000000000214271360464450000203170ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.rw.bracket.frag000066400000000000000000000057001360464450000202670ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.rw.register.frag000066400000000000000000000004431360464450000204770ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.rw.scalar.bracket.frag000066400000000000000000000055361360464450000215420ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.rw.swizzle.frag000066400000000000000000000020231360464450000203560ustar00rootroot00000000000000RWTexture2D 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; } glslang-8.13.3559/Test/hlsl.rw.vec2.bracket.frag000066400000000000000000000056371360464450000211360ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.sample.array.dx10.frag000066400000000000000000000024241360464450000213760ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.sample.basic.dx10.frag000066400000000000000000000057121360464450000213440ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.sample.dx9.frag000066400000000000000000000020401360464450000202030ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.sample.dx9.vert000066400000000000000000000006331360464450000202520ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.sample.offset.dx10.frag000066400000000000000000000026311360464450000215460ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.sample.offsetarray.dx10.frag000066400000000000000000000020141360464450000226000ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.sample.sub-vec4.dx10.frag000066400000000000000000000010151360464450000217030ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplebias.array.dx10.frag000066400000000000000000000025451360464450000222410ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplebias.basic.dx10.frag000066400000000000000000000031031360464450000221730ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplebias.offset.dx10.frag000066400000000000000000000027521360464450000224110ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplebias.offsetarray.dx10.frag000066400000000000000000000021021360464450000234350ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplecmp.array.dx10.frag000066400000000000000000000033031360464450000220730ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.samplecmp.basic.dx10.frag000066400000000000000000000032121360464450000220350ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.samplecmp.dualmode.frag000066400000000000000000000005571360464450000220040ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplecmp.negative.frag000066400000000000000000000005341360464450000220070ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.samplecmp.negative2.frag000066400000000000000000000003301360464450000220630ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.samplecmp.offset.dx10.frag000066400000000000000000000040331360464450000222440ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.samplecmp.offsetarray.dx10.frag000066400000000000000000000041711360464450000233060ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.samplecmplevelzero.array.dx10.frag000066400000000000000000000034241360464450000240270ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.samplecmplevelzero.basic.dx10.frag000066400000000000000000000033441360464450000237730ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.samplecmplevelzero.offset.dx10.frag000066400000000000000000000041571360464450000242030ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag000066400000000000000000000043231360464450000252350ustar00rootroot00000000000000SamplerComparisonState 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; } glslang-8.13.3559/Test/hlsl.samplegrad.array.dx10.frag000066400000000000000000000031141360464450000222310ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplegrad.basic.dx10.frag000066400000000000000000000036451360464450000222050ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplegrad.basic.dx10.vert000066400000000000000000000035731360464450000222460ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplegrad.offset.dx10.frag000066400000000000000000000033211360464450000224010ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplegrad.offsetarray.dx10.frag000066400000000000000000000023651360464450000234470ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplelevel.array.dx10.frag000066400000000000000000000026101360464450000224230ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplelevel.basic.dx10.frag000066400000000000000000000032011360464450000223630ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplelevel.basic.dx10.vert000066400000000000000000000030611360464450000224300ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplelevel.offset.dx10.frag000066400000000000000000000027741360464450000226060ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.samplelevel.offsetarray.dx10.frag000066400000000000000000000021161360464450000236330ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.scalar-length.frag000066400000000000000000000001351360464450000207460ustar00rootroot00000000000000float4 main() : SV_Target0 { float4 test = { 0, 1, 2, 3 }; return length(test.a); } glslang-8.13.3559/Test/hlsl.scalar2matrix.frag000066400000000000000000000014171360464450000210020ustar00rootroot00000000000000 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]; } glslang-8.13.3559/Test/hlsl.scalarCast.vert000066400000000000000000000013541360464450000203470ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.scope.frag000066400000000000000000000006011360464450000173310ustar00rootroot00000000000000void 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); } glslang-8.13.3559/Test/hlsl.self_cast.frag000066400000000000000000000004661360464450000201740ustar00rootroot00000000000000struct 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; } } glslang-8.13.3559/Test/hlsl.semantic-1.vert000066400000000000000000000006341360464450000202300ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/hlsl.semantic.geom000066400000000000000000000006061360464450000200400ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.semantic.vert000066400000000000000000000003511360464450000200660ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.semicolons.frag000066400000000000000000000004121360464450000203730ustar00rootroot00000000000000 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; }; glslang-8.13.3559/Test/hlsl.shapeConv.frag000066400000000000000000000012101360464450000201430ustar00rootroot00000000000000float4 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; } glslang-8.13.3559/Test/hlsl.shapeConvRet.frag000066400000000000000000000001171360464450000206230ustar00rootroot00000000000000int3 foo() { return 13; } float4 main(float f) { return f; } glslang-8.13.3559/Test/hlsl.shift.per-set.frag000066400000000000000000000023011360464450000207120ustar00rootroot00000000000000// 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; } glslang-8.13.3559/Test/hlsl.sin.frag000066400000000000000000000001151360464450000170110ustar00rootroot00000000000000float4 PixelShaderFunction(float4 input) : COLOR0 { return sin(input); } glslang-8.13.3559/Test/hlsl.snorm.uav.comp000066400000000000000000000005701360464450000201740ustar00rootroot00000000000000 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]; } glslang-8.13.3559/Test/hlsl.specConstant.frag000077500000000000000000000004211360464450000206670ustar00rootroot00000000000000[[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; } glslang-8.13.3559/Test/hlsl.staticFuncInit.frag000066400000000000000000000003651360464450000211560ustar00rootroot00000000000000static 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); } glslang-8.13.3559/Test/hlsl.staticMemberFunction.frag000066400000000000000000000006571360464450000223600ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.store.rwbyteaddressbuffer.type.comp000066400000000000000000000002541360464450000244320ustar00rootroot00000000000000RWByteAddressBuffer buffer; [numthreads(64, 1, 1)] void main( uint3 dispatchThreadID : SV_DispatchThreadID) { if(dispatchThreadID.x == 0) buffer.Store(0, 2); }glslang-8.13.3559/Test/hlsl.string.frag000066400000000000000000000005241360464450000175320ustar00rootroot00000000000000string 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; }glslang-8.13.3559/Test/hlsl.stringtoken.frag000066400000000000000000000005231360464450000205720ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.struct.frag000066400000000000000000000015161360464450000175520ustar00rootroot00000000000000struct { }; 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; } glslang-8.13.3559/Test/hlsl.struct.split-1.vert000066400000000000000000000006631360464450000211050ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.struct.split.array.geom000066400000000000000000000006571360464450000220360ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.struct.split.assign.frag000066400000000000000000000002271360464450000221650ustar00rootroot00000000000000struct S { float f; float4 pos : SV_Position; }; float4 main(int i, S input[3]) : COLOR0 { S a[3]; input = a; return a[1].pos; } glslang-8.13.3559/Test/hlsl.struct.split.call.vert000066400000000000000000000010411360464450000216500ustar00rootroot00000000000000// 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; } glslang-8.13.3559/Test/hlsl.struct.split.nested.geom000066400000000000000000000012251360464450000221720ustar00rootroot00000000000000 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); } glslang-8.13.3559/Test/hlsl.struct.split.trivial.geom000066400000000000000000000004471360464450000223670ustar00rootroot00000000000000 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); } } glslang-8.13.3559/Test/hlsl.struct.split.trivial.vert000066400000000000000000000006611360464450000224160ustar00rootroot00000000000000 // 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; } glslang-8.13.3559/Test/hlsl.structIoFourWay.frag000066400000000000000000000006621360464450000213600ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.structStructName.frag000066400000000000000000000001141360464450000215510ustar00rootroot00000000000000struct S { int s; }; int main() { struct S t; return t.s; } glslang-8.13.3559/Test/hlsl.structarray.flatten.frag000066400000000000000000000012111360464450000222350ustar00rootroot00000000000000SamplerState 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); } glslang-8.13.3559/Test/hlsl.structarray.flatten.geom000066400000000000000000000007301360464450000222520ustar00rootroot00000000000000 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); } glslang-8.13.3559/Test/hlsl.structbuffer.append.fn.frag000066400000000000000000000007351360464450000226160ustar00rootroot00000000000000 // 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); } glslang-8.13.3559/Test/hlsl.structbuffer.append.frag000066400000000000000000000003561360464450000222130ustar00rootroot00000000000000AppendStructuredBuffer 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(); } glslang-8.13.3559/Test/hlsl.structbuffer.atomics.frag000066400000000000000000000012111360464450000223720ustar00rootroot00000000000000 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); } glslang-8.13.3559/Test/hlsl.structbuffer.byte.frag000066400000000000000000000003761360464450000217110ustar00rootroot00000000000000 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); } glslang-8.13.3559/Test/hlsl.structbuffer.coherent.frag000066400000000000000000000006351360464450000225530ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.structbuffer.floatidx.comp000066400000000000000000000006071360464450000225740ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.structbuffer.fn.frag000066400000000000000000000007251360464450000213470ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.structbuffer.fn2.comp000066400000000000000000000005461360464450000214510ustar00rootroot00000000000000ByteAddressBuffer 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; } glslang-8.13.3559/Test/hlsl.structbuffer.frag000066400000000000000000000007031360464450000207410ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.structbuffer.incdec.frag000066400000000000000000000006621360464450000221710ustar00rootroot00000000000000RWStructuredBuffer 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); } glslang-8.13.3559/Test/hlsl.structbuffer.rw.frag000066400000000000000000000005731360464450000213750ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.structbuffer.rwbyte.frag000066400000000000000000000004561360464450000222610ustar00rootroot00000000000000 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); } glslang-8.13.3559/Test/hlsl.structin.vert000066400000000000000000000005241360464450000201400ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.subpass.frag000066400000000000000000000100511360464450000177000ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.switch.frag000066400000000000000000000013261360464450000175260ustar00rootroot00000000000000float4 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; } glslang-8.13.3559/Test/hlsl.swizzle.frag000066400000000000000000000002251360464450000177310ustar00rootroot00000000000000static float4 AmbientColor = float4(1, 0.5, 0, 1); float4 ShaderFunction(float4 input) : COLOR0 { return input.wwyx * float4(AmbientColor.z); } glslang-8.13.3559/Test/hlsl.synthesizeInput.frag000066400000000000000000000002561360464450000214530ustar00rootroot00000000000000struct PSInput { float interp; uint no_interp; }; float4 main(PSInput input : INPUT) : SV_TARGET { return float4(float(input.no_interp), input.interp, 0, 1); }glslang-8.13.3559/Test/hlsl.target.frag000066400000000000000000000002741360464450000175140ustar00rootroot00000000000000struct 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; }glslang-8.13.3559/Test/hlsl.targetStruct1.frag000066400000000000000000000005331360464450000210000ustar00rootroot00000000000000struct 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; }glslang-8.13.3559/Test/hlsl.targetStruct2.frag000066400000000000000000000005501360464450000210000ustar00rootroot00000000000000struct 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; }glslang-8.13.3559/Test/hlsl.templatetypes.frag000066400000000000000000000033041360464450000211230ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.templatetypes.negative.frag000066400000000000000000000014531360464450000227270ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.texture.struct.frag000066400000000000000000000023061360464450000212470ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.texture.subvec4.frag000066400000000000000000000021401360464450000212720ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.texturebuffer.frag000066400000000000000000000003651360464450000211210ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.this.frag000066400000000000000000000007631360464450000172000ustar00rootroot00000000000000static 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); } glslang-8.13.3559/Test/hlsl.tristream-append.geom000066400000000000000000000007021360464450000215110ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.tx.bracket.frag000066400000000000000000000026671360464450000203030ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/hlsl.tx.overload.frag000066400000000000000000000006731360464450000204760ustar00rootroot00000000000000 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); } glslang-8.13.3559/Test/hlsl.type.half.frag000066400000000000000000000007351360464450000201220ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.type.identifier.frag000066400000000000000000000011131360464450000213210ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/hlsl.type.type.conversion.all.frag000066400000000000000000000461651360464450000231330ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/hlsl.type.type.conversion.valid.frag000066400000000000000000000125021360464450000234460ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/hlsl.typeGraphCopy.vert000066400000000000000000000003311360464450000210570ustar00rootroot00000000000000struct 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; } glslang-8.13.3559/Test/hlsl.typedef.frag000066400000000000000000000003521360464450000176630ustar00rootroot00000000000000typedef 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); } glslang-8.13.3559/Test/hlsl.void.frag000066400000000000000000000001721360464450000171640ustar00rootroot00000000000000void foo1() {} void foo2(void) {} void PixelShaderFunction(float4 input) : COLOR0 { foo1(); foo2(); return; }glslang-8.13.3559/Test/hlsl.wavebroadcast.comp000066400000000000000000000037371360464450000211010ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.waveprefix.comp000066400000000000000000000037241360464450000204300ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.wavequad.comp000066400000000000000000000146631360464450000200710ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.wavequery.comp000066400000000000000000000002361360464450000202730ustar00rootroot00000000000000RWStructuredBuffer data; [numthreads(32, 16, 1)] void CSMain() { data[WaveGetLaneIndex()] = (WaveIsFirstLane()) ? WaveGetLaneCount() : 0; } glslang-8.13.3559/Test/hlsl.wavequery.frag000066400000000000000000000002671360464450000202600ustar00rootroot00000000000000float4 PixelShaderFunction() : COLOR0 { if (WaveIsFirstLane()) { return float4(1, 2, 3, 4); } else { return float4(4, 3, 2, 1); } } glslang-8.13.3559/Test/hlsl.wavereduction.comp000066400000000000000000000116541360464450000211300ustar00rootroot00000000000000struct 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); } glslang-8.13.3559/Test/hlsl.wavevote.comp000066400000000000000000000005701360464450000201040ustar00rootroot00000000000000RWStructuredBuffer 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)); } glslang-8.13.3559/Test/hlsl.whileLoop.frag000066400000000000000000000002631360464450000201660ustar00rootroot00000000000000float4 PixelShaderFunction(float4 input) : COLOR0 { while (any(input != input)) { return input; } while (false) ; [unroll] while (false) { } while ((false)) { } } glslang-8.13.3559/Test/hlsl.y-negate-1.vert000066400000000000000000000001521360464450000201310ustar00rootroot00000000000000 // Test Y negation from entry point return float4 pos; float4 main() : SV_Position { return pos; } glslang-8.13.3559/Test/hlsl.y-negate-2.vert000066400000000000000000000002051360464450000201310ustar00rootroot00000000000000// Test Y negation from entry point out parameter float4 pos; void main(out float4 position : SV_Position) { position = pos; } glslang-8.13.3559/Test/hlsl.y-negate-3.vert000066400000000000000000000003761360464450000201430ustar00rootroot00000000000000// 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; } glslang-8.13.3559/Test/i1.h000066400000000000000000000000301360464450000150740ustar00rootroot00000000000000 u = g_nDataIdx; glslang-8.13.3559/Test/implicitInnerAtomicUint.frag000066400000000000000000000000741360464450000220660ustar00rootroot00000000000000#version 460 layout(binding = 0) uniform atomic_uint c[1][];glslang-8.13.3559/Test/inc1/000077500000000000000000000000001360464450000152535ustar00rootroot00000000000000glslang-8.13.3559/Test/inc1/badInc.h000066400000000000000000000000251360464450000166010ustar00rootroot00000000000000#include "parentBad" glslang-8.13.3559/Test/inc1/bar.h000066400000000000000000000000351360464450000161660ustar00rootroot00000000000000float4 i2; #include "foo.h" glslang-8.13.3559/Test/inc1/foo.h000066400000000000000000000000401360464450000162010ustar00rootroot00000000000000#include "parent.h" float4 i3; glslang-8.13.3559/Test/inc1/path1/000077500000000000000000000000001360464450000162705ustar00rootroot00000000000000glslang-8.13.3559/Test/inc1/path1/bar.h000066400000000000000000000000161360464450000172020ustar00rootroot00000000000000float4 i9991; glslang-8.13.3559/Test/inc1/path1/local.h000066400000000000000000000000131360464450000175250ustar00rootroot00000000000000float4 p2; glslang-8.13.3559/Test/inc1/path1/notHere.h000066400000000000000000000000631360464450000200440ustar00rootroot00000000000000float4 p1; #include "local.h" #include "remote.h" glslang-8.13.3559/Test/inc1/path2/000077500000000000000000000000001360464450000162715ustar00rootroot00000000000000glslang-8.13.3559/Test/inc1/path2/bar.h000066400000000000000000000000161360464450000172030ustar00rootroot00000000000000float4 i9991; glslang-8.13.3559/Test/inc1/path2/notHere.h000066400000000000000000000000171360464450000200440ustar00rootroot00000000000000float4 paoeu1; glslang-8.13.3559/Test/inc1/path2/remote.h000066400000000000000000000000131360464450000177270ustar00rootroot00000000000000float4 p3; glslang-8.13.3559/Test/inc2/000077500000000000000000000000001360464450000152545ustar00rootroot00000000000000glslang-8.13.3559/Test/inc2/bar.h000066400000000000000000000000341360464450000161660ustar00rootroot00000000000000#include "foo.h" float4 i5; glslang-8.13.3559/Test/inc2/foo.h000066400000000000000000000000121360464450000162010ustar00rootroot00000000000000float4 i6;glslang-8.13.3559/Test/include.vert000066400000000000000000000003361360464450000167500ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/invalidSwizzle.vert000066400000000000000000000003361360464450000203430ustar00rootroot00000000000000#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 }glslang-8.13.3559/Test/length.frag000066400000000000000000000003651360464450000165470ustar00rootroot00000000000000#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()); } glslang-8.13.3559/Test/lineContinuation.vert000066400000000000000000000030671360464450000206530ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/lineContinuation100.vert000066400000000000000000000014451360464450000210720ustar00rootroot00000000000000#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" glslang-8.13.3559/Test/link1.frag000066400000000000000000000010771360464450000163050ustar00rootroot00000000000000#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); glslang-8.13.3559/Test/link1.vk.frag000066400000000000000000000006231360464450000167200ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/link2.frag000066400000000000000000000011271360464450000163020ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/link2.vk.frag000066400000000000000000000006451360464450000167250ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/link3.frag000066400000000000000000000003051360464450000163000ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/localAggregates.frag000066400000000000000000000021261360464450000203470ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/loops.frag000066400000000000000000000141401360464450000164160ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/loopsArtificial.frag000066400000000000000000000036301360464450000204100ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/mains.frag000066400000000000000000000000731360464450000163710ustar00rootroot00000000000000#version 300 es void main() { } void main() { } glslang-8.13.3559/Test/mains1.frag000066400000000000000000000000431360464450000164470ustar00rootroot00000000000000#version 110 void main() { } glslang-8.13.3559/Test/mains2.frag000066400000000000000000000000431360464450000164500ustar00rootroot00000000000000#version 110 void main() { } glslang-8.13.3559/Test/makeDoc000066400000000000000000000001271360464450000157070ustar00rootroot00000000000000#!/usr/bin/env bash ./glslangValidator -p > instDesc asciidoc --backend=html5 instDesc glslang-8.13.3559/Test/matrix.frag000066400000000000000000000021661360464450000165730ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/matrix2.frag000066400000000000000000000017731360464450000166600ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/matrixError.vert000066400000000000000000000012131360464450000176360ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/maxClipDistances.vert000066400000000000000000000001351360464450000205550ustar00rootroot00000000000000#version 130 out float gl_ClipDistance[8]; // OK, 8 is gl_MaxClipDistances void main() { } glslang-8.13.3559/Test/max_vertices_0.geom000066400000000000000000000003341360464450000202020ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/missingBodies.vert000066400000000000000000000004411360464450000201210ustar00rootroot00000000000000#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(); glslang-8.13.3559/Test/mixedArrayDecls.frag000066400000000000000000000006641360464450000203500ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/negativeArraySize.comp000066400000000000000000000002131360464450000207310ustar00rootroot00000000000000#version 310 es #ifdef GL_ES precision mediump float; #endif void main() { float f[-2]; // cannot declare arrays with negative size } glslang-8.13.3559/Test/newTexture.frag000066400000000000000000000040711360464450000174360ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/noMain.vert000066400000000000000000000000451360464450000165430ustar00rootroot00000000000000#version 300 es void foo() { } glslang-8.13.3559/Test/noMain1.geom000066400000000000000000000000671360464450000165770ustar00rootroot00000000000000#version 110 void foo() { } layout(points) out;glslang-8.13.3559/Test/noMain2.geom000066400000000000000000000000751360464450000165770ustar00rootroot00000000000000#version 150 void bar() { } layout(line_strip) out; glslang-8.13.3559/Test/nonSquare.vert000066400000000000000000000010231360464450000172720ustar00rootroot00000000000000#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]); } glslang-8.13.3559/Test/nonVulkan.frag000066400000000000000000000004461360464450000172410ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/nonuniform.frag000066400000000000000000000017651360464450000174650ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/nosuffix000066400000000000000000000000571360464450000162070ustar00rootroot00000000000000void main() { gl_Position = vec4(1.0); }glslang-8.13.3559/Test/numeral.frag000066400000000000000000000052441360464450000167320ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/nvShaderNoperspectiveInterpolation.frag000066400000000000000000000003471360464450000243570ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/overlongLiteral.frag000066400000000000000000000020031360464450000204250ustar00rootroot000000000000000x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; glslang-8.13.3559/Test/parent.h000066400000000000000000000000131360464450000160550ustar00rootroot00000000000000float4 i4; glslang-8.13.3559/Test/parentBad000066400000000000000000000000351360464450000162420ustar00rootroot00000000000000int a; #error bad parent glslang-8.13.3559/Test/pointCoord.frag000066400000000000000000000003541360464450000174040ustar00rootroot00000000000000precision 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; } glslang-8.13.3559/Test/precise.tesc000066400000000000000000000052671360464450000167450ustar00rootroot00000000000000#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(){} glslang-8.13.3559/Test/precise_struct_block.vert000066400000000000000000000043401360464450000215340ustar00rootroot00000000000000#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(){} glslang-8.13.3559/Test/precision.frag000066400000000000000000000035641360464450000172650ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/precision.vert000066400000000000000000000011211360464450000173110ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/prepost.frag000066400000000000000000000013531360464450000167600ustar00rootroot00000000000000#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) } glslang-8.13.3559/Test/preprocessor.bad_arg.vert000066400000000000000000000002531360464450000214270ustar00rootroot00000000000000#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))), ); glslang-8.13.3559/Test/preprocessor.cpp_style___FILE__.vert000066400000000000000000000005431360464450000234470ustar00rootroot00000000000000#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__ glslang-8.13.3559/Test/preprocessor.cpp_style_line_directive.vert000066400000000000000000000010011360464450000251070ustar00rootroot00000000000000#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" glslang-8.13.3559/Test/preprocessor.defined.vert000066400000000000000000000001251360464450000214440ustar00rootroot00000000000000#define defined_not_really #define defined // ERROR: "defined" can't be (un)defined: glslang-8.13.3559/Test/preprocessor.edge_cases.vert000066400000000000000000000003431360464450000221320ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/preprocessor.eof_missing.vert000066400000000000000000000000051360464450000223450ustar00rootroot00000000000000noEOFglslang-8.13.3559/Test/preprocessor.errors.vert000066400000000000000000000004221360464450000213620ustar00rootroot00000000000000#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() { } glslang-8.13.3559/Test/preprocessor.extensions.vert000066400000000000000000000004011360464450000222420ustar00rootroot00000000000000#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() { } glslang-8.13.3559/Test/preprocessor.function_macro.vert000066400000000000000000000007271360464450000230640ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/preprocessor.include.disabled.vert000066400000000000000000000001301360464450000232330ustar00rootroot00000000000000#line 8000 #include #include 123 #include "foo" #include "foo" garbage #include "no-eol"glslang-8.13.3559/Test/preprocessor.include.enabled.vert000066400000000000000000000046151360464450000230720ustar00rootroot00000000000000#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"glslang-8.13.3559/Test/preprocessor.line.frag000066400000000000000000000000731360464450000207360ustar00rootroot00000000000000#version 310 es #line 1 2 #pragma something void main() {} glslang-8.13.3559/Test/preprocessor.line.vert000066400000000000000000000004741360464450000210040ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/preprocessor.many.endif.vert000066400000000000000000000000741360464450000221010ustar00rootroot00000000000000#endif #endif #endif #endif #endif #endif #endif #if #else glslang-8.13.3559/Test/preprocessor.pragma.vert000066400000000000000000000002541360464450000213200ustar00rootroot00000000000000#version 310 es #pragma optimize(on) #pragma optimize(off) #pragma debug(on) #pragma debug(off) #pragma undefined_pragma(x, 4) #pragma once int main() { } glslang-8.13.3559/Test/preprocessor.simple.vert000066400000000000000000000017171360464450000213470ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/preprocessor.success_if_parse_would_fail.vert000066400000000000000000000000601360464450000255710ustar00rootroot00000000000000int x() { something that shouldnt compile; } glslang-8.13.3559/Test/recurse1.frag000066400000000000000000000015311360464450000170130ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/recurse1.vert000066400000000000000000000010171360464450000170530ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/recurse2.frag000066400000000000000000000005401360464450000170130ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/reflection.frag000066400000000000000000000001211360464450000174060ustar00rootroot00000000000000#version 440 core in float inval; void main() { float f = inval; } glslang-8.13.3559/Test/reflection.linked.frag000066400000000000000000000005161360464450000206630ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/reflection.linked.vert000066400000000000000000000005141360464450000207220ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/reflection.options.geom000066400000000000000000000007451360464450000211240ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/reflection.options.vert000066400000000000000000000025171360464450000211540ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/reflection.vert000066400000000000000000000113001360464450000174500ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/remap.basic.dcefunc.frag000066400000000000000000000001721360464450000210540ustar00rootroot00000000000000#version 450 in float inf; out vec4 outf4; vec3 dead_fn() { return vec3(0); } void main() { outf4 = vec4(inf); } glslang-8.13.3559/Test/remap.basic.everything.frag000066400000000000000000000001721360464450000216310ustar00rootroot00000000000000#version 450 in float inf; out vec4 outf4; vec3 dead_fn() { return vec3(0); } void main() { outf4 = vec4(inf); } glslang-8.13.3559/Test/remap.basic.none.frag000066400000000000000000000001721360464450000204040ustar00rootroot00000000000000#version 450 in float inf; out vec4 outf4; vec3 dead_fn() { return vec3(0); } void main() { outf4 = vec4(inf); } glslang-8.13.3559/Test/remap.basic.strip.frag000066400000000000000000000001721360464450000206060ustar00rootroot00000000000000#version 450 in float inf; out vec4 outf4; vec3 dead_fn() { return vec3(0); } void main() { outf4 = vec4(inf); } glslang-8.13.3559/Test/remap.hlsl.sample.basic.everything.frag000066400000000000000000000057121360464450000240570ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/remap.hlsl.sample.basic.none.frag000066400000000000000000000057121360464450000226320ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/remap.hlsl.sample.basic.strip.frag000066400000000000000000000057121360464450000230340ustar00rootroot00000000000000SamplerState 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; } glslang-8.13.3559/Test/remap.hlsl.templatetypes.everything.frag000066400000000000000000000033121360464450000244100ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/remap.hlsl.templatetypes.none.frag000066400000000000000000000033121360464450000231630ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/remap.if.everything.frag000066400000000000000000000002271360464450000211470ustar00rootroot00000000000000#version 450 in float inf; out vec4 outf4; void main() { if (inf > 2.0) outf4 = vec4(inf); else outf4 = vec4(inf + -.5); } glslang-8.13.3559/Test/remap.if.none.frag000066400000000000000000000002271360464450000177220ustar00rootroot00000000000000#version 450 in float inf; out vec4 outf4; void main() { if (inf > 2.0) outf4 = vec4(inf); else outf4 = vec4(inf + -.5); } glslang-8.13.3559/Test/remap.invalid-spirv-1.spv000066400000000000000000000003331360464450000212020ustar00rootroot00000000000000# @!+6ø÷û  øùø ùøý8glslang-8.13.3559/Test/remap.invalid-spirv-2.spv000066400000000000000000000003241360464450000212030ustar00rootroot00000000000000# @+6ø÷û  øùø ùøý8glslang-8.13.3559/Test/remap.literal64.everything.spv000066400000000000000000000003341360464450000222470ustar00rootroot00000000000000# @!+6ø÷û  øùø ùøý8glslang-8.13.3559/Test/remap.literal64.none.spv000066400000000000000000000003341360464450000210220ustar00rootroot00000000000000# @!+6ø÷û  øùø ùøý8glslang-8.13.3559/Test/remap.similar_1a.everything.frag000066400000000000000000000007031360464450000225710ustar00rootroot00000000000000#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))); } glslang-8.13.3559/Test/remap.similar_1a.none.frag000066400000000000000000000007031360464450000213440ustar00rootroot00000000000000#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))); } glslang-8.13.3559/Test/remap.similar_1b.everything.frag000066400000000000000000000007311360464450000225730ustar00rootroot00000000000000#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))); } glslang-8.13.3559/Test/remap.similar_1b.none.frag000066400000000000000000000007311360464450000213460ustar00rootroot00000000000000#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))); } glslang-8.13.3559/Test/remap.specconst.comp000066400000000000000000000002711360464450000204050ustar00rootroot00000000000000#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 () {} glslang-8.13.3559/Test/remap.switch.everything.frag000066400000000000000000000005341360464450000220530ustar00rootroot00000000000000#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); } } glslang-8.13.3559/Test/remap.switch.none.frag000066400000000000000000000005341360464450000206260ustar00rootroot00000000000000#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); } } glslang-8.13.3559/Test/remap.uniformarray.everything.frag000066400000000000000000000003601360464450000232650ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/remap.uniformarray.none.frag000066400000000000000000000003601360464450000220400ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/runtests000077500000000000000000000325751360464450000162520ustar00rootroot00000000000000#!/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 if [ -a localtestlist ] then while read t; do echo Running $t... b=`basename $t` $EXE -i -l $t > $TARGETDIR/$b.out diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1 done < localtestlist fi rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv # # special tests # $EXE badMacroArgs.frag > $TARGETDIR/badMacroArgs.frag.out diff -b $BASEDIR/badMacroArgs.frag.out $TARGETDIR/badMacroArgs.frag.out || HASERROR=1 # # reflection tests # echo Running reflection... $EXE -l -q -C reflection.vert > $TARGETDIR/reflection.vert.out diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1 $EXE -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 reflection.options.vert > $TARGETDIR/reflection.options.vert.out diff -b $BASEDIR/reflection.options.vert.out $TARGETDIR/reflection.options.vert.out || HASERROR=1 $EXE -l -q -C reflection.frag > $TARGETDIR/reflection.frag.out diff -b $BASEDIR/reflection.frag.out $TARGETDIR/reflection.frag.out || HASERROR=1 $EXE -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 reflection.frag > $TARGETDIR/reflection.options.frag.out diff -b $BASEDIR/reflection.options.frag.out $TARGETDIR/reflection.options.frag.out || HASERROR=1 $EXE -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 reflection.options.geom > $TARGETDIR/reflection.options.geom.out diff -b $BASEDIR/reflection.options.geom.out $TARGETDIR/reflection.options.geom.out || HASERROR=1 $EXE -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 $EXE -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 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 $EXE -D -Od -e flizv -l -q -C -V -Od hlsl.reflection.vert > $TARGETDIR/hlsl.reflection.vert.out diff -b $BASEDIR/hlsl.reflection.vert.out $TARGETDIR/hlsl.reflection.vert.out || HASERROR=1 $EXE -D -Od -e main -l -q -C -V -Od hlsl.reflection.binding.frag > $TARGETDIR/hlsl.reflection.binding.frag.out diff -b $BASEDIR/hlsl.reflection.binding.frag.out $TARGETDIR/hlsl.reflection.binding.frag.out || HASERROR=1 $EXE -D -Od -e main -l -q --hlsl-iomap --auto-map-bindings --stb 10 --sbb 20 --ssb 30 --suavb 40 --scb 50 -D -V -e main -Od hlsl.automap.frag > $TARGETDIR/hlsl.automap.frag.out diff -b $BASEDIR/hlsl.automap.frag.out $TARGETDIR/hlsl.automap.frag.out || HASERROR=1 # # multi-threaded test # echo Comparing single thread to multithread for all tests in current directory... $EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp > $TARGETDIR/singleThread.out $EXE -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 $EXE -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 $EXE -D -Od -e main -H -Od hlsl.deadFunctionMissingBody.vert > $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out diff -b $BASEDIR/hlsl.deadFunctionMissingBody.vert.out $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out || HASERROR=1 if [ $HASERROR -eq 0 ] then echo Tests Succeeded. else echo Tests Failed. fi # # Testing -S and compound suffixes # echo Running explicit stage test and compound suffix tests $EXE -Od -i -S vert nosuffix > $TARGETDIR/nosuffix.out diff -b $BASEDIR/nosuffix.out $TARGETDIR/nosuffix.out || HASERROR=1 $EXE -Od -i compoundsuffix.vert.glsl > $TARGETDIR/compoundsuffix.vert.glsl diff -b $BASEDIR/compoundsuffix.vert.glsl $TARGETDIR/compoundsuffix.vert.glsl || HASERROR=1 $EXE -Od -e main -H compoundsuffix.frag.hlsl > $TARGETDIR/compoundsuffix.frag.hlsl diff -b $BASEDIR/compoundsuffix.frag.hlsl $TARGETDIR/compoundsuffix.frag.hlsl || HASERROR=1 # # Testing --hlsl-offsets # echo Running hlsl offsets $EXE -i --hlsl-offsets -H spv.hlslOffsets.vert > $TARGETDIR/spv.hlslOffsets.vert.out diff -b $BASEDIR/spv.hlslOffsets.vert.out $TARGETDIR/spv.hlslOffsets.vert.out || HASERROR=1 echo Running hlsl offsets $EXE -i --hlsl-offsets -D -Od -e main -H -Od hlsl.hlslOffset.vert > $TARGETDIR/hlsl.hlslOffset.vert.out diff -b $BASEDIR/hlsl.hlslOffset.vert.out $TARGETDIR/hlsl.hlslOffset.vert.out || HASERROR=1 # # Testing --resource-set-binding # echo Configuring HLSL descriptor set and binding number manually $EXE -V -D -Od -e main -H -Od hlsl.multiDescriptorSet.frag --rsb frag t0 0 0 t1 1 0 s0 0 1 s1 1 1 b0 2 0 b1 2 1 b2 2 2 > $TARGETDIR/hlsl.multiDescriptorSet.frag.out diff -b $BASEDIR/hlsl.multiDescriptorSet.frag.out $TARGETDIR/hlsl.multiDescriptorSet.frag.out || HASERROR=1 $EXE -V -D -Od -e main -H -Od hlsl.explicitDescriptorSet.frag --hlsl-iomap --amb --ssb 10 --stb 20 --rsb 4 > $TARGETDIR/hlsl.explicitDescriptorSet.frag.out diff -b $BASEDIR/hlsl.explicitDescriptorSet.frag.out $TARGETDIR/hlsl.explicitDescriptorSet.frag.out || HASERROR=1 $EXE -V -D -Od -e main -H -Od hlsl.explicitDescriptorSet.frag --hlsl-iomap --amb --ssb 10 --stb 20 --rsb frag 3 > $TARGETDIR/hlsl.explicitDescriptorSet-2.frag.out diff -b $BASEDIR/hlsl.explicitDescriptorSet-2.frag.out $TARGETDIR/hlsl.explicitDescriptorSet-2.frag.out || HASERROR=1 # # Testing per-descriptor-set IO map shift # echo 'Testing per-descriptor-set IO map shift' $EXE -e main --hlsl-iomap --ssb 10 1 15 2 --stb 20 --stb 25 2 --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 $EXE -V -C spv.noLocation.vert > $TARGETDIR/spv.noLocation.vert.out diff -b $BASEDIR/spv.noLocation.vert.out $TARGETDIR/spv.noLocation.vert.out || HASERROR=1 $EXE -G -H --aml spv.noBuiltInLoc.vert > $TARGETDIR/spv.noBuiltInLoc.vert.out diff -b $BASEDIR/spv.noBuiltInLoc.vert.out $TARGETDIR/spv.noBuiltInLoc.vert.out || HASERROR=1 $EXE -G spv.looseUniformNoLoc.vert > $TARGETDIR/spv.looseUniformNoLoc.vert.out diff -b $BASEDIR/spv.looseUniformNoLoc.vert.out $TARGETDIR/spv.looseUniformNoLoc.vert.out || HASERROR=1 # # Testing debug information # echo Testing SPV Debug Information $EXE -g --relaxed-errors --suppress-warnings --aml --amb --hlsl-offsets --nsf --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 $EXE -g -Od --target-env vulkan1.1 --relaxed-errors --suppress-warnings --aml --amb --hlsl-offsets --nsf --spirv-val \ -G -H spv.debugInfo.frag --rsb frag 3 > $TARGETDIR/spv.debugInfo.1.1.frag.out diff -b $BASEDIR/spv.debugInfo.1.1.frag.out $TARGETDIR/spv.debugInfo.1.1.frag.out || HASERROR=1 $EXE -g -D -Od -e newMain -g --amb --aml --fua --hlsl-iomap --nsf --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 $EXE -D -Od -e main -H -Od ../Test/hlsl.include.vert > $TARGETDIR/hlsl.include.vert.out diff -b $BASEDIR/hlsl.include.vert.out $TARGETDIR/hlsl.include.vert.out || HASERROR=1 $EXE -D -Od -e main -H -Od hlsl.includeNegative.vert > $TARGETDIR/hlsl.includeNegative.vert.out diff -b $BASEDIR/hlsl.includeNegative.vert.out $TARGETDIR/hlsl.includeNegative.vert.out || HASERROR=1 $EXE -l -i include.vert > $TARGETDIR/include.vert.out diff -b $BASEDIR/include.vert.out $TARGETDIR/include.vert.out || HASERROR=1 $EXE -D -Od -e main -H -Od -Iinc1/path1 -Iinc1/path2 hlsl.dashI.vert > $TARGETDIR/hlsl.dashI.vert.out diff -b $BASEDIR/hlsl.dashI.vert.out $TARGETDIR/hlsl.dashI.vert.out || HASERROR=1 $EXE -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 -D and -U # echo "Testing -D and -U" $EXE -DUNDEFED -UIN_SHADER -DFOO=200 -i -l -UUNDEFED -DMUL=FOO*2 glsl.-D-U.frag > $TARGETDIR/glsl.-D-U.frag.out diff -b $BASEDIR/glsl.-D-U.frag.out $TARGETDIR/glsl.-D-U.frag.out || HASERROR=1 $EXE -D -Od -e main -V -i -DUNDEFED -UIN_SHADER -DFOO=200 -UUNDEFED -Od hlsl.-D-U.frag > $TARGETDIR/hlsl.-D-U.frag.out diff -b $BASEDIR/hlsl.-D-U.frag.out $TARGETDIR/hlsl.-D-U.frag.out || HASERROR=1 # # Test --client and --target-env # echo "Testing --client and --target-env" $EXE --client vulkan100 spv.targetVulkan.vert || HASERROR=1 $EXE --client opengl100 spv.targetOpenGL.vert || HASERROR=1 $EXE --target-env vulkan1.0 spv.targetVulkan.vert || HASERROR=1 $EXE --target-env vulkan1.1 spv.targetVulkan.vert || HASERROR=1 $EXE --target-env opengl spv.targetOpenGL.vert || HASERROR=1 $EXE -V100 spv.targetVulkan.vert || HASERROR=1 $EXE -G100 spv.targetOpenGL.vert || HASERROR=1 $EXE --target-env spirv1.2 -V spv.targetVulkan.vert || HASERROR=1 # # Testing GLSL entry point rename # echo "Testing GLSL entry point rename" $EXE -H -e foo --source-entrypoint main glsl.entryPointRename.vert > $TARGETDIR/glsl.entryPointRename.vert.out diff -b $BASEDIR/glsl.entryPointRename.vert.out $TARGETDIR/glsl.entryPointRename.vert.out || HASERROR=1 $EXE -H -e foo --source-entrypoint bar glsl.entryPointRename.vert > $TARGETDIR/glsl.entryPointRename.vert.bad.out diff -b $BASEDIR/glsl.entryPointRename.vert.bad.out $TARGETDIR/glsl.entryPointRename.vert.bad.out || HASERROR=1 $EXE -H -e foo --source-entrypoint main glsl.entryPointRename2.vert > $TARGETDIR/glsl.entryPointRename2.vert.out diff -b $BASEDIR/glsl.entryPointRename2.vert.out $TARGETDIR/glsl.entryPointRename2.vert.out || HASERROR=1 # # Testing remapper error handling # echo "Testing remapper error handling" $REMAPEXE --do-everything -i remap.invalid-spirv-1.spv -o $TARGETDIR > $TARGETDIR/remap.invalid-spirv-1.out && HASERROR=1 diff -b $BASEDIR/remap.invalid-spirv-1.out $TARGETDIR/remap.invalid-spirv-1.out || HASERROR=1 $REMAPEXE --do-everything -i remap.invalid-spirv-2.spv -o $TARGETDIR > $TARGETDIR/remap.invalid-spirv-2.out && HASERROR=1 diff -b $BASEDIR/remap.invalid-spirv-2.out $TARGETDIR/remap.invalid-spirv-2.out || HASERROR=1 # # Testing position Y inversion # echo "Testing position Y inversion" $EXE -H -e main -V -D -Od -H -i --iy hlsl.y-negate-1.vert > $TARGETDIR/hlsl.y-negate-1.vert.out diff -b $BASEDIR/hlsl.y-negate-1.vert.out $TARGETDIR/hlsl.y-negate-1.vert.out || HASERROR=1 $EXE -H -e main -V -D -Od -H -i --invert-y hlsl.y-negate-2.vert > $TARGETDIR/hlsl.y-negate-2.vert.out diff -b $BASEDIR/hlsl.y-negate-2.vert.out $TARGETDIR/hlsl.y-negate-2.vert.out || HASERROR=1 $EXE -H -e main -V -D -Od -H -i --invert-y hlsl.y-negate-3.vert > $TARGETDIR/hlsl.y-negate-3.vert.out diff -b $BASEDIR/hlsl.y-negate-3.vert.out $TARGETDIR/hlsl.y-negate-3.vert.out || HASERROR=1 # # Testing hlsl_functionality1 # echo "Testing hlsl_functionality1" $EXE -H -e main -D -Od -fhlsl_functionality1 hlsl.structbuffer.incdec.frag > \ $TARGETDIR/hlsl.structbuffer.incdec.frag.hlslfun1.out diff -b $BASEDIR/hlsl.structbuffer.incdec.frag.hlslfun1.out $TARGETDIR/hlsl.structbuffer.incdec.frag.hlslfun1.out || HASERROR=1 $EXE -H -e main -D -Od -fhlsl_functionality1 hlsl.noSemantic.functionality1.comp > \ $TARGETDIR/hlsl.noSemantic.functionality1.comp.out diff -b $BASEDIR/hlsl.noSemantic.functionality1.comp.out $TARGETDIR/hlsl.noSemantic.functionality1.comp.out || HASERROR=1 # # Testing HLSL-specific PP feature expansion # echo "Testing HLSL-specific PP feature expansion" $EXE -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" $EXE --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 # # 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 glslang-8.13.3559/Test/runtimeArray.vert000066400000000000000000000055051360464450000200120ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/sample.frag000066400000000000000000000032611360464450000165450ustar00rootroot00000000000000// //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); } glslang-8.13.3559/Test/sample.frag.out000066400000000000000000000010231360464450000173450ustar00rootroot00000000000000#### 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 #### glslang-8.13.3559/Test/sample.vert000066400000000000000000000033541360464450000166110ustar00rootroot00000000000000// //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; } glslang-8.13.3559/Test/sample.vert.out000066400000000000000000000014571360464450000174210ustar00rootroot00000000000000#### 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 #### glslang-8.13.3559/Test/samplerlessTextureFunctions.frag000066400000000000000000000024151360464450000230700ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/simpleFunctionCall.frag000066400000000000000000000002561360464450000210600ustar00rootroot00000000000000#version 150 uniform vec4 bigColor; varying vec4 BaseColor; uniform float d; vec4 foo() { return BaseColor; } void main() { gl_FragColor = foo(); } glslang-8.13.3559/Test/specExamples.frag000066400000000000000000000163601360464450000177210ustar00rootroot00000000000000#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; } } glslang-8.13.3559/Test/specExamples.vert000066400000000000000000000150031360464450000177530ustar00rootroot00000000000000#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 } } glslang-8.13.3559/Test/spv.1.3.8bitstorage-ssbo.vert000066400000000000000000000003771360464450000216400ustar00rootroot00000000000000#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])); } glslang-8.13.3559/Test/spv.1.3.8bitstorage-ubo.vert000066400000000000000000000004031360464450000214450ustar00rootroot00000000000000#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])); } glslang-8.13.3559/Test/spv.1.3.coopmat.comp000066400000000000000000000012561360464450000200560ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.1.4.LoopControl.frag000066400000000000000000000013361360464450000206470ustar00rootroot00000000000000#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) { } } glslang-8.13.3559/Test/spv.1.4.NonWritable.frag000077500000000000000000000003541360464450000206230ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.1.4.OpCopyLogical.comp000066400000000000000000000012171360464450000211160ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.1.4.OpCopyLogical.funcall.frag000066400000000000000000000005331360464450000225220ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.1.4.OpCopyLogicalBool.comp000066400000000000000000000012171360464450000217320ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.1.4.OpEntryPoint.frag000066400000000000000000000010001360464450000207730ustar00rootroot00000000000000#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(binding = 2, 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; } glslang-8.13.3559/Test/spv.1.4.OpSelect.frag000077500000000000000000000015561360464450000201220ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/spv.1.4.constructComposite.comp000066400000000000000000000003531360464450000223210ustar00rootroot00000000000000#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() { } glslang-8.13.3559/Test/spv.1.4.image.frag000066400000000000000000000017631360464450000174630ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.1.4.sparseTexture.frag000066400000000000000000000025321360464450000212520ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.1.4.texture.frag000066400000000000000000000011571360464450000200760ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.100ops.frag000066400000000000000000000006021360464450000171110ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.130.frag000066400000000000000000000042141360464450000163750ustar00rootroot00000000000000#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(); }glslang-8.13.3559/Test/spv.140.frag000066400000000000000000000015171360464450000164010ustar00rootroot00000000000000#version 140 in vec4 k; out vec4 o; in float gl_ClipDistance[5]; layout(row_major) uniform; uniform sampler2D samp2Da[3]; layout(std140) uniform bn { layout(row_major) mat4 matra[4]; layout(column_major) mat4 matca[4]; layout(row_major) mat4 matr; layout(column_major) mat4 matc; layout(align=512, offset=1024) mat4 matrdef; }; uniform sampler2DRect sampR; uniform isamplerBuffer sampB; float foo(); void main() { o.y = gl_ClipDistance[2]; o.z = gl_ClipDistance[int(k)]; o.w = float(textureSize(sampR) + textureSize(sampB)) / 100.0; o.z = foo(); } // Test extra-function initializers float i1 = gl_FrontFacing ? -2.0 : 2.0; float i2 = 102; float foo() { return i1 + i2; } // test arrayed block layout(std140) uniform bi { vec3 v[2]; } bname[4]; glslang-8.13.3559/Test/spv.150.geom000066400000000000000000000014141360464450000164060ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.150.vert000066400000000000000000000010411360464450000164330ustar00rootroot00000000000000#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]; glslang-8.13.3559/Test/spv.16bitstorage-int.frag000066400000000000000000000030471360464450000211770ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.16bitstorage-uint.frag000066400000000000000000000030701360464450000213600ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.16bitstorage.frag000066400000000000000000000031031360464450000204000ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.16bitstorage_Error-int.frag000066400000000000000000000027051360464450000223500ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/spv.16bitstorage_Error-uint.frag000066400000000000000000000027301360464450000225330ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/spv.16bitstorage_Error.frag000066400000000000000000000030141360464450000215520ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/spv.16bitxfb.vert000066400000000000000000000015301360464450000175560ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.300BuiltIns.vert000066400000000000000000000003611360464450000201060ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.300layout.frag000066400000000000000000000004201360464450000176250ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.300layout.vert000066400000000000000000000020531360464450000176720ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.300layoutp.vert000066400000000000000000000020121360464450000200450ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.310.bitcast.frag000066400000000000000000000020311360464450000200200ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.310.comp000066400000000000000000000013051360464450000164120ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.320.meshShaderUserDefined.mesh000066400000000000000000000024641360464450000226200ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.330.geom000066400000000000000000000007461360464450000164150ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.400.frag000066400000000000000000000206731360464450000164040ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.400.tesc000066400000000000000000000021121360464450000164070ustar00rootroot00000000000000#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[]; glslang-8.13.3559/Test/spv.400.tese000066400000000000000000000022321360464450000164140ustar00rootroot00000000000000#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]; glslang-8.13.3559/Test/spv.420.geom000066400000000000000000000013561360464450000164130ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.430.frag000066400000000000000000000002161360464450000163760ustar00rootroot00000000000000#version 430 core out vec4 color; void main() { color = vec4(1.0); color *= gl_Layer; color *= gl_ViewportIndex; } glslang-8.13.3559/Test/spv.430.vert000066400000000000000000000015141360464450000164410ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/spv.450.geom000066400000000000000000000003631360464450000164130ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.450.noRedecl.tesc000066400000000000000000000001751360464450000201550ustar00rootroot00000000000000#version 450 core layout(vertices = 4) out; patch out vec4 patchOut; void main() { gl_in[0].gl_PointSize; } glslang-8.13.3559/Test/spv.450.tesc000066400000000000000000000016441360464450000164250ustar00rootroot00000000000000#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 };glslang-8.13.3559/Test/spv.460.comp000066400000000000000000000002171360464450000164210ustar00rootroot00000000000000#version 460 void main() { bool b1; b1 = anyInvocation(b1); b1 = allInvocations(b1); b1 = allInvocationsEqual(b1); } glslang-8.13.3559/Test/spv.460.frag000066400000000000000000000006241360464450000164040ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.460.vert000066400000000000000000000001351360464450000164420ustar00rootroot00000000000000#version 460 void main() { int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; } glslang-8.13.3559/Test/spv.8bit-16bit-construction.frag000066400000000000000000000007251360464450000224160ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.8bitstorage-int.frag000066400000000000000000000030151360464450000211130ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.8bitstorage-ssbo.vert000066400000000000000000000003771360464450000213400ustar00rootroot00000000000000#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])); } glslang-8.13.3559/Test/spv.8bitstorage-ubo.vert000066400000000000000000000004031360464450000211450ustar00rootroot00000000000000#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])); } glslang-8.13.3559/Test/spv.8bitstorage-uint.frag000066400000000000000000000030361360464450000213030ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.8bitstorage_Error-int.frag000066400000000000000000000026561360464450000222760ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/spv.8bitstorage_Error-uint.frag000066400000000000000000000027011360464450000224520ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/spv.AnyHitShader.rahit000066400000000000000000000012461360464450000206070ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.AnyHitShader_Errors.rahit000066400000000000000000000010071360464450000221360ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/spv.AofA.frag000066400000000000000000000012031360464450000166730ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.ClosestHitShader.rchit000066400000000000000000000014051360464450000214730ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.ClosestHitShader_Errors.rchit000066400000000000000000000006511360464450000230310ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.GeometryShaderPassthrough.geom000066400000000000000000000003761360464450000232610ustar00rootroot00000000000000#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() { }glslang-8.13.3559/Test/spv.IntersectShader.rint000066400000000000000000000010621360464450000212140ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.IntersectShader_Errors.rint000066400000000000000000000011441360464450000225510ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/spv.MissShader.rmiss000066400000000000000000000010671360464450000203550ustar00rootroot00000000000000#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; 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); } glslang-8.13.3559/Test/spv.MissShader_Errors.rmiss000066400000000000000000000022061360464450000217050ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/spv.OVR_multiview.vert000066400000000000000000000002171360464450000207050ustar00rootroot00000000000000#version 330 #extension GL_OVR_multiview : enable layout(num_views = 2) in; void main() { gl_Position = vec4(gl_ViewID_OVR, 0, 0, 0); } glslang-8.13.3559/Test/spv.Operations.frag000066400000000000000000000051641360464450000202220ustar00rootroot00000000000000#version 450 flat in ivec4 uiv4; in vec4 uv4; bool ub; bvec4 ub41, ub42; in float uf; flat in int ui; flat in uvec4 uuv4; flat in uint uui; out vec4 FragColor; void main() { vec4 v; float f; bool b; bvec4 bv4; int i; uint u; // floating point v = radians(uv4); v += degrees(v); v += (i = ui*ui, sin(v)); v += cos(v); v += tan(v); v += asin(v); v += acos(v); v += atan(v); v += sinh(v); v += cosh(v); v += tanh(v); v += asinh(v); v += acosh(v); v += atanh(v); v += pow(v, v); v += exp(v); v += log(v); v += exp2(v); v += log2(v); v += sqrt(v); v += inversesqrt(v); v += abs(v); v += sign(v); v += floor(v); v += trunc(v); v += round(v); v += roundEven(v); v += ceil(v); v += fract(v); v += mod(v, v); v += mod(v, v.x); v += modf(v, v); v += min(v, uv4); v += max(v, uv4); v += clamp(v, uv4, uv4); v += mix(v,v,v); v += mix(v,v,ub41); v += mix(v,v,f); //spv v += intBitsToFloat(ui); // v += uintBitsToFloat(uui); // i += floatBitsToInt(f); // u += floatBitsToUint(f); v += fma(v, uv4, v); v += step(v,v); v += smoothstep(v,v,v); v += step(uf,v); v += smoothstep(uf,uf,v); v += normalize(v); v += faceforward(v, v, v); v += reflect(v, v); v += refract(v, v, uf); v += dFdx(v); v += dFdy(v); v += fwidth(v); // signed integer i += abs(ui); i += sign(i); i += min(i, ui); i += max(i, ui); i += clamp(i, ui, ui); // unsigned integer u += min(u, uui); u += max(u, uui); u += clamp(u, uui, uui); //// bool b = isnan(uf); b = isinf(f); b = any(lessThan(v, uv4)); b = (b && any(lessThanEqual(v, uv4))); b = (b && any(greaterThan(v, uv4))); b = (b && any(greaterThanEqual(v, uv4))); b = (b && any(equal(ub41, ub42))); b = (b && any(notEqual(ub41, ub42))); b = (b && any(ub41)); b = (b && all(ub41)); b = (b && any(not(ub41))); i = ((i + ui) * i - ui) / i; i = i % ui; if (i == ui || i != ui && i == ui ^^ i != 2) ++i; f = ((uf + uf) * uf - uf) / uf; f += length(v); f += distance(v, v); f += dot(v, v); f += dot(f, uf); f += cross(v.xyz, v.xyz).x; if (f == uf || f != uf && f != 2.0) ++f; i &= ui; i |= 0x42; i ^= ui; i %= 17; i >>= 2; i <<= ui; i = ~i; b = !b; FragColor = b ? vec4(i) + vec4(f) + v : v; mat4 m1 = mat4(1.0), m2 = mat4(0.0); FragColor += (b ? m1 : m2)[1]; } glslang-8.13.3559/Test/spv.RayCallable.rcall000066400000000000000000000004271360464450000204250ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.RayCallable_Errors.rcall000066400000000000000000000040431360464450000217570ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/spv.RayConstants.rgen000066400000000000000000000012771360464450000205440ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.RayGenShader.rgen000066400000000000000000000010201360464450000204120ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.RayGenShader11.rgen000066400000000000000000000006761360464450000205740ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.RayGenShaderArray.rgen000066400000000000000000000013551360464450000214240ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.RayGenShader_Errors.rgen000066400000000000000000000050401360464450000217540ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/spv.accessChain.frag000066400000000000000000000030641360464450000203000ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.aggOps.frag000066400000000000000000000015041360464450000173110ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.always-discard.frag000066400000000000000000000012231360464450000207760ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.always-discard2.frag000066400000000000000000000004601360464450000210620ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.arbPostDepthCoverage.frag000066400000000000000000000006421360464450000221460ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.arbPostDepthCoverage_Error.frag000066400000000000000000000005231360464450000233150ustar00rootroot00000000000000#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 () { } glslang-8.13.3559/Test/spv.atomic.comp000066400000000000000000000020431360464450000173630ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.atomicInt64.comp000066400000000000000000000031771360464450000202210ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.barrier.vert000066400000000000000000000003621360464450000175610ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.bitCast.frag000066400000000000000000000017741360464450000174730ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.bool.vert000066400000000000000000000003351360464450000170660ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.boolInBlock.frag000066400000000000000000000007601360464450000202710ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.branch-return.vert000066400000000000000000000003041360464450000207010ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.buffer.autoassign.frag000066400000000000000000000005651360464450000215240ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/spv.bufferhandle1.frag000066400000000000000000000011061360464450000205750ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.bufferhandle10.frag000066400000000000000000000006571360464450000206670ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.bufferhandle11.frag000066400000000000000000000011361360464450000206610ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.bufferhandle12.frag000066400000000000000000000025311360464450000206620ustar00rootroot00000000000000#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)); }glslang-8.13.3559/Test/spv.bufferhandle13.frag000066400000000000000000000007621360464450000206670ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.bufferhandle14.frag000066400000000000000000000012011360464450000206550ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.bufferhandle15.frag000066400000000000000000000011311360464450000206600ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.bufferhandle16.frag000066400000000000000000000012241360464450000206640ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.bufferhandle17_Errors.frag000066400000000000000000000005351360464450000222250ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.bufferhandle18.frag000066400000000000000000000025411360464450000206710ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.bufferhandle19_Errors.frag000066400000000000000000000007211360464450000222240ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.bufferhandle2.frag000066400000000000000000000010011360464450000205700ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.bufferhandle3.frag000066400000000000000000000006261360464450000206050ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.bufferhandle4.frag000066400000000000000000000007001360464450000205770ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.bufferhandle5.frag000066400000000000000000000004111360464450000205770ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.bufferhandle6.frag000066400000000000000000000021241360464450000206030ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.bufferhandle7.frag000066400000000000000000000007201360464450000206040ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.bufferhandle8.frag000066400000000000000000000011741360464450000206110ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.bufferhandle9.frag000066400000000000000000000012501360464450000206050ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.bufferhandleUvec2.frag000066400000000000000000000012771360464450000214320ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.bufferhandle_Error.frag000066400000000000000000000020021360464450000216610ustar00rootroot00000000000000#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(); } 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; }; glslang-8.13.3559/Test/spv.builtInXFB.vert000066400000000000000000000003741360464450000201040ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.computeShaderDerivatives.comp000066400000000000000000000052011360464450000231170ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.computeShaderDerivatives2.comp000066400000000000000000000052051360464450000232050ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.conditionalDemote.frag000066400000000000000000000005631360464450000215360ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.conditionalDiscard.frag000066400000000000000000000003071360464450000216660ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.constConstruct.vert000066400000000000000000000116671360464450000212000ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.constStruct.vert000066400000000000000000000003671360464450000204730ustar00rootroot00000000000000#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))); } glslang-8.13.3559/Test/spv.constructComposite.comp000066400000000000000000000003531360464450000220200ustar00rootroot00000000000000#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() { } glslang-8.13.3559/Test/spv.controlFlowAttributes.frag000066400000000000000000000030421360464450000224470ustar00rootroot00000000000000#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) { } } glslang-8.13.3559/Test/spv.conversion.frag000066400000000000000000000040261360464450000202600ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.coopmat.comp000066400000000000000000000064441360464450000175620ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.coopmat_Error.comp000066400000000000000000000036021360464450000207240ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.dataOut.frag000066400000000000000000000001231360464450000174660ustar00rootroot00000000000000#version 140 in vec4 Color; void main() { gl_FragData[1] = Color; } glslang-8.13.3559/Test/spv.dataOutIndirect.frag000066400000000000000000000002121360464450000211470ustar00rootroot00000000000000#version 140 in vec4 Color; out vec4 fcolor[4]; uniform b { int i; } bName; void main() { fcolor[bName.i] = Color; } glslang-8.13.3559/Test/spv.dataOutIndirect.vert000066400000000000000000000002641360464450000212170ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.dead-after-continue.vert000066400000000000000000000002621360464450000217500ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.dead-after-discard.frag000066400000000000000000000001751360464450000214770ustar00rootroot00000000000000#version 450 layout(location =0 ) in float c; layout(location =0 ) out int o; void main() { o = 1; discard; o = 3; } glslang-8.13.3559/Test/spv.dead-after-loop-break.vert000066400000000000000000000003521360464450000221570ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.dead-after-return.vert000066400000000000000000000001721360464450000214430ustar00rootroot00000000000000#version 450 layout(location =0 ) in int c; layout(location =0 ) out int o; void main() { o = 1; return; o = 3; } glslang-8.13.3559/Test/spv.dead-after-switch-break.vert000066400000000000000000000002761360464450000225140ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.dead-complex-continue-after-return.vert000066400000000000000000000006251360464450000247350ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.dead-complex-merge-after-return.vert000066400000000000000000000004441360464450000242070ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.debugInfo.frag000066400000000000000000000013211360464450000177700ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.deepRvalue.frag000066400000000000000000000016071360464450000201710ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.demoteDisabled.frag000066400000000000000000000001621360464450000207750ustar00rootroot00000000000000#version 460 core void main (void) { { int demote = 0; demote; } demote; } glslang-8.13.3559/Test/spv.depthOut.frag000066400000000000000000000002221360464450000176610ustar00rootroot00000000000000#version 450 in vec4 Color; in float Depth; layout(depth_greater) out float gl_FragDepth; void main() { gl_FragDepth = Depth; } glslang-8.13.3559/Test/spv.deviceGroup.frag000066400000000000000000000002031360464450000203400ustar00rootroot00000000000000#version 450 #extension GL_EXT_device_group : enable out vec4 color; void main() { color = vec4(gl_DeviceIndex, 0, 0, 0); } glslang-8.13.3559/Test/spv.discard-dce.frag000066400000000000000000000012251360464450000202330ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.do-simple.vert000066400000000000000000000001161360464450000200210ustar00rootroot00000000000000#version 310 es void main() { int i = 0; do { i++; } while(i<10); } glslang-8.13.3559/Test/spv.do-while-continue-break.vert000066400000000000000000000004111360464450000225420ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.doWhileLoop.frag000066400000000000000000000003271360464450000203200ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.double.comp000066400000000000000000000011401360464450000173560ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.drawParams.vert000066400000000000000000000003211360464450000202270ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.earlyReturnDiscard.frag000066400000000000000000000035231360464450000217020ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.explicittypes.frag000066400000000000000000000253471360464450000210120ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/spv.extPostDepthCoverage.frag000066400000000000000000000002351360464450000222000ustar00rootroot00000000000000#version 310 es #extension GL_EXT_post_depth_coverage : enable layout(post_depth_coverage) in; layout(early_fragment_tests) in; void main () { } glslang-8.13.3559/Test/spv.extPostDepthCoverage_Error.frag000066400000000000000000000004111360464450000233450ustar00rootroot00000000000000#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 () { } glslang-8.13.3559/Test/spv.float16.frag000066400000000000000000000201741360464450000173510ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.float16Fetch.frag000066400000000000000000001644411360464450000203310ustar00rootroot00000000000000#version 450 core #extension GL_ARB_sparse_texture2: enable #extension GL_ARB_sparse_texture_clamp: enable #extension GL_AMD_gpu_shader_half_float: enable #extension GL_AMD_gpu_shader_half_float_fetch: enable #extension GL_AMD_texture_gather_bias_lod: enable layout(set = 0, binding = 0) uniform f16sampler1D s1D; layout(set = 0, binding = 1) uniform f16sampler2D s2D; layout(set = 0, binding = 2) uniform f16sampler3D s3D; layout(set = 0, binding = 3) uniform f16sampler2DRect s2DRect; layout(set = 0, binding = 4) uniform f16samplerCube sCube; layout(set = 0, binding = 5) uniform f16samplerBuffer sBuffer; layout(set = 0, binding = 6) uniform f16sampler2DMS s2DMS; layout(set = 0, binding = 7) uniform f16sampler1DArray s1DArray; layout(set = 0, binding = 8) uniform f16sampler2DArray s2DArray; layout(set = 0, binding = 9) uniform f16samplerCubeArray sCubeArray; layout(set = 0, binding = 10) uniform f16sampler2DMSArray s2DMSArray; layout(set = 0, binding = 11) uniform f16sampler1DShadow s1DShadow; layout(set = 0, binding = 12) uniform f16sampler2DShadow s2DShadow; layout(set = 0, binding = 13) uniform f16sampler2DRectShadow s2DRectShadow; layout(set = 0, binding = 14) uniform f16samplerCubeShadow sCubeShadow; layout(set = 0, binding = 15) uniform f16sampler1DArrayShadow s1DArrayShadow; layout(set = 0, binding = 16) uniform f16sampler2DArrayShadow s2DArrayShadow; layout(set = 0, binding = 17) uniform f16samplerCubeArrayShadow sCubeArrayShadow; layout(set = 1, binding = 0) layout(rgba16f) uniform f16image1D i1D; layout(set = 1, binding = 1) layout(rgba16f) uniform f16image2D i2D; layout(set = 1, binding = 2) layout(rgba16f) uniform f16image3D i3D; layout(set = 1, binding = 3) layout(rgba16f) uniform f16image2DRect i2DRect; layout(set = 1, binding = 4) layout(rgba16f) uniform f16imageCube iCube; layout(set = 1, binding = 5) layout(rgba16f) uniform f16image1DArray i1DArray; layout(set = 1, binding = 6) layout(rgba16f) uniform f16image2DArray i2DArray; layout(set = 1, binding = 7) layout(rgba16f) uniform f16imageCubeArray iCubeArray; layout(set = 1, binding = 8) layout(rgba16f) uniform f16imageBuffer iBuffer; layout(set = 1, binding = 9) layout(rgba16f) uniform f16image2DMS i2DMS; layout(set = 1, binding = 10) layout(rgba16f) uniform f16image2DMSArray i2DMSArray; layout(set = 2, binding = 0) uniform f16texture1D t1D; layout(set = 2, binding = 1) uniform f16texture2D t2D; layout(set = 2, binding = 2) uniform f16texture3D t3D; layout(set = 2, binding = 3) uniform f16texture2DRect t2DRect; layout(set = 2, binding = 4) uniform f16textureCube tCube; layout(set = 2, binding = 5) uniform f16texture1DArray t1DArray; layout(set = 2, binding = 6) uniform f16texture2DArray t2DArray; layout(set = 2, binding = 7) uniform f16textureCubeArray tCubeArray; layout(set = 2, binding = 8) uniform f16textureBuffer tBuffer; layout(set = 2, binding = 9) uniform f16texture2DMS t2DMS; layout(set = 2, binding = 10) uniform f16texture2DMSArray t2DMSArray; layout(set = 2, binding = 11) uniform sampler s; layout(set = 2, binding = 12) uniform samplerShadow sShadow; layout(set = 3, binding = 0, input_attachment_index = 0) uniform f16subpassInput subpass; layout(set = 3, binding = 1, input_attachment_index = 0) uniform f16subpassInputMS subpassMS; layout(location = 0) in float c1; layout(location = 1) in vec2 c2; layout(location = 2) in vec3 c3; layout(location = 3) in vec4 c4; layout(location = 4) in float compare; layout(location = 5) in float lod; layout(location = 6) in float bias; layout(location = 7) in float lodClamp; layout(location = 8) in float dPdxy1; layout(location = 9) in vec2 dPdxy2; layout(location = 10) in vec3 dPdxy3; layout(location = 11) in float16_t f16c1; layout(location = 12) in f16vec2 f16c2; layout(location = 13) in f16vec3 f16c3; layout(location = 14) in f16vec4 f16c4; layout(location = 15) in float16_t f16lod; layout(location = 16) in float16_t f16bias; layout(location = 17) in float16_t f16lodClamp; layout(location = 18) in float16_t f16dPdxy1; layout(location = 19) in f16vec2 f16dPdxy2; layout(location = 20) in f16vec3 f16dPdxy3; const int offset1 = 1; const ivec2 offset2 = ivec2(1); const ivec3 offset3 = ivec3(1); const ivec2 offsets[4] = { offset2, offset2, offset2, offset2 }; layout(location = 0) out vec4 fragColor; f16vec4 testTexture() { f16vec4 texel = f16vec4(0.0hf); texel += texture(s1D, c1); texel += texture(s1D, f16c1, f16bias); texel += texture(s2D, c2); texel += texture(s2D, f16c2, f16bias); texel += texture(s3D, c3); texel += texture(s3D, f16c3, f16bias); texel += texture(sCube, c3); texel += texture(sCube, f16c3, f16bias); texel.x += texture(s1DShadow, c3); texel.x += texture(s1DShadow, f16c2, compare, f16bias); texel.x += texture(s2DShadow, c3); texel.x += texture(s2DShadow, f16c2, compare, f16bias); texel.x += texture(sCubeShadow, c4); texel.x += texture(sCubeShadow, f16c3, compare, f16bias); texel += texture(s1DArray, c2); texel += texture(s1DArray, f16c2, f16bias); texel += texture(s2DArray, c3); texel += texture(s2DArray, f16c3, f16bias); texel += texture(sCubeArray, c4); texel += texture(sCubeArray, f16c4, f16bias); texel.x += texture(s1DArrayShadow, c3); texel.x += texture(s1DArrayShadow, f16c2, compare, f16bias); texel.x += texture(s2DArrayShadow, c4); texel.x += texture(s2DArrayShadow, f16c3, compare); texel += texture(s2DRect, c2); texel += texture(s2DRect, f16c2); texel.x += texture(s2DRectShadow, c3); texel.x += texture(s2DRectShadow, f16c2, compare); texel.x += texture(sCubeArrayShadow, c4, compare); texel.x += texture(sCubeArrayShadow, f16c4, compare); return texel; } f16vec4 testTextureProj() { f16vec4 texel = f16vec4(0.0hf); texel += textureProj(s1D, c2); texel += textureProj(s1D, f16c2, f16bias); texel += textureProj(s1D, c4); texel += textureProj(s1D, f16c4, f16bias); texel += textureProj(s2D, c3); texel += textureProj(s2D, f16c3, f16bias); texel += textureProj(s2D, c4); texel += textureProj(s2D, f16c4, f16bias); texel += textureProj(s3D, c4); texel += textureProj(s3D, f16c4, f16bias); texel.x += textureProj(s1DShadow, c4); texel.x += textureProj(s1DShadow, f16c3, compare, f16bias); texel.x += textureProj(s2DShadow, c4); texel.x += textureProj(s2DShadow, f16c3, compare, f16bias); texel += textureProj(s2DRect, c3); texel += textureProj(s2DRect, f16c3); texel += textureProj(s2DRect, c4); texel += textureProj(s2DRect, f16c4); texel.x += textureProj(s2DRectShadow, c4); texel.x += textureProj(s2DRectShadow, f16c3, compare); return texel; } f16vec4 testTextureLod() { f16vec4 texel = f16vec4(0.0hf); texel += textureLod(s1D, c1, lod); texel += textureLod(s1D, f16c1, f16lod); texel += textureLod(s2D, c2, lod); texel += textureLod(s2D, f16c2, f16lod); texel += textureLod(s3D, c3, lod); texel += textureLod(s3D, f16c3, f16lod); texel += textureLod(sCube, c3, lod); texel += textureLod(sCube, f16c3, f16lod); texel.x += textureLod(s1DShadow, c3, lod); texel.x += textureLod(s1DShadow, f16c2, compare, f16lod); texel.x += textureLod(s2DShadow, c3, lod); texel.x += textureLod(s2DShadow, f16c2, compare, f16lod); texel += textureLod(s1DArray, c2, lod); texel += textureLod(s1DArray, f16c2, f16lod); texel += textureLod(s2DArray, c3, lod); texel += textureLod(s2DArray, f16c3, f16lod); texel.x += textureLod(s1DArrayShadow, c3, lod); texel.x += textureLod(s1DArrayShadow, f16c2, compare, f16lod); texel += textureLod(sCubeArray, c4, lod); texel += textureLod(sCubeArray, f16c4, f16lod); return texel; } f16vec4 testTextureOffset() { f16vec4 texel = f16vec4(0.0hf); texel += textureOffset(s1D, c1, offset1); texel += textureOffset(s1D, f16c1, offset1, f16bias); texel += textureOffset(s2D, c2, offset2); texel += textureOffset(s2D, f16c2, offset2, f16bias); texel += textureOffset(s3D, c3, offset3); texel += textureOffset(s3D, f16c3, offset3, f16bias); texel += textureOffset(s2DRect, c2, offset2); texel += textureOffset(s2DRect, f16c2, offset2); texel.x += textureOffset(s2DRectShadow, c3, offset2); texel.x += textureOffset(s2DRectShadow, f16c2, compare, offset2); texel.x += textureOffset(s1DShadow, c3, offset1); texel.x += textureOffset(s1DShadow, f16c2, compare, offset1, f16bias); texel.x += textureOffset(s2DShadow, c3, offset2); texel.x += textureOffset(s2DShadow, f16c2, compare, offset2, f16bias); texel += textureOffset(s1DArray, c2, offset1); texel += textureOffset(s1DArray, f16c2, offset1, f16bias); texel += textureOffset(s2DArray, c3, offset2); texel += textureOffset(s2DArray, f16c3, offset2, f16bias); texel.x += textureOffset(s1DArrayShadow, c3, offset1); texel.x += textureOffset(s1DArrayShadow, f16c2, compare, offset1, f16bias); texel.x += textureOffset(s2DArrayShadow, c4, offset2); texel.x += textureOffset(s2DArrayShadow, f16c3, compare, offset2); return texel; } f16vec4 testTextureProjOffset() { f16vec4 texel = f16vec4(0.0hf); texel += textureProjOffset(s1D, c2, offset1); texel += textureProjOffset(s1D, f16c2, offset1, f16bias); texel += textureProjOffset(s1D, c4, offset1); texel += textureProjOffset(s1D, f16c4, offset1, f16bias); texel += textureProjOffset(s2D, c3, offset2); texel += textureProjOffset(s2D, f16c3, offset2, f16bias); texel += textureProjOffset(s2D, c4, offset2); texel += textureProjOffset(s2D, f16c4, offset2, f16bias); texel += textureProjOffset(s3D, c4, offset3); texel += textureProjOffset(s3D, f16c4, offset3, f16bias); texel += textureProjOffset(s2DRect, c3, offset2); texel += textureProjOffset(s2DRect, f16c3, offset2); texel += textureProjOffset(s2DRect, c4, offset2); texel += textureProjOffset(s2DRect, f16c4, offset2); texel.x += textureProjOffset(s2DRectShadow, c4, offset2); texel.x += textureProjOffset(s2DRectShadow, f16c3, compare, offset2); texel.x += textureProjOffset(s1DShadow, c4, offset1); texel.x += textureProjOffset(s1DShadow, f16c3, compare, offset1, f16bias); texel.x += textureProjOffset(s2DShadow, c4, offset2); texel.x += textureProjOffset(s2DShadow, f16c3, compare, offset2, f16bias); return texel; } f16vec4 testTextureLodOffset() { f16vec4 texel = f16vec4(0.0hf); texel += textureLodOffset(s1D, c1, lod, offset1); texel += textureLodOffset(s1D, f16c1, f16lod, offset1); texel += textureLodOffset(s2D, c2, lod, offset2); texel += textureLodOffset(s2D, f16c2, f16lod, offset2); texel += textureLodOffset(s3D, c3, lod, offset3); texel += textureLodOffset(s3D, f16c3, f16lod, offset3); texel.x += textureLodOffset(s1DShadow, c3, lod, offset1); texel.x += textureLodOffset(s1DShadow, f16c2, compare, f16lod, offset1); texel.x += textureLodOffset(s2DShadow, c3, lod, offset2); texel.x += textureLodOffset(s2DShadow, f16c2, compare, f16lod, offset2); texel += textureLodOffset(s1DArray, c2, lod, offset1); texel += textureLodOffset(s1DArray, f16c2, f16lod, offset1); texel += textureLodOffset(s2DArray, c3, lod, offset2); texel += textureLodOffset(s2DArray, f16c3, f16lod, offset2); texel.x += textureLodOffset(s1DArrayShadow, c3, lod, offset1); texel.x += textureLodOffset(s1DArrayShadow, f16c2, compare, f16lod, offset1); return texel; } f16vec4 testTextureProjLodOffset() { f16vec4 texel = f16vec4(0.0hf); texel += textureProjLodOffset(s1D, c2, lod, offset1); texel += textureProjLodOffset(s1D, f16c2, f16lod, offset1); texel += textureProjLodOffset(s1D, c4, lod, offset1); texel += textureProjLodOffset(s1D, f16c4, f16lod, offset1); texel += textureProjLodOffset(s2D, c3, lod, offset2); texel += textureProjLodOffset(s2D, f16c3, f16lod, offset2); texel += textureProjLodOffset(s2D, c4, lod, offset2); texel += textureProjLodOffset(s2D, f16c4, f16lod, offset2); texel += textureProjLodOffset(s3D, c4, lod, offset3); texel += textureProjLodOffset(s3D, f16c4, f16lod, offset3); texel.x += textureProjLodOffset(s1DShadow, c4, lod, offset1); texel.x += textureProjLodOffset(s1DShadow, f16c3, compare, f16lod, offset1); texel.x += textureProjLodOffset(s2DShadow, c4, lod, offset2); texel.x += textureProjLodOffset(s2DShadow, f16c3, compare, f16lod, offset2); return texel; } f16vec4 testTexelFetch() { f16vec4 texel = f16vec4(0.0hf); texel += texelFetch(s1D, int(c1), int(lod)); texel += texelFetch(s2D, ivec2(c2), int(lod)); texel += texelFetch(s3D, ivec3(c3), int(lod)); texel += texelFetch(s2DRect, ivec2(c2)); texel += texelFetch(s1DArray, ivec2(c2), int(lod)); texel += texelFetch(s2DArray, ivec3(c3), int(lod)); texel += texelFetch(sBuffer, int(c1)); texel += texelFetch(s2DMS, ivec2(c2), 1); texel += texelFetch(s2DMSArray, ivec3(c3), 2); return texel; } f16vec4 testTexelFetchOffset() { f16vec4 texel = f16vec4(0.0hf); texel += texelFetchOffset(s1D, int(c1), int(lod), offset1); texel += texelFetchOffset(s2D, ivec2(c2), int(lod), offset2); texel += texelFetchOffset(s3D, ivec3(c3), int(lod), offset3); texel += texelFetchOffset(s2DRect, ivec2(c2), offset2); texel += texelFetchOffset(s1DArray, ivec2(c2), int(lod), offset1); texel += texelFetchOffset(s2DArray, ivec3(c3), int(lod), offset2); return texel; } f16vec4 testTextureGrad() { f16vec4 texel = f16vec4(0.0hf); texel += textureGrad(s1D, c1, dPdxy1, dPdxy1); texel += textureGrad(s1D, f16c1, f16dPdxy1, f16dPdxy1); texel += textureGrad(s2D, c2, dPdxy2, dPdxy2); texel += textureGrad(s2D, f16c2, f16dPdxy2, f16dPdxy2); texel += textureGrad(s3D, c3, dPdxy3, dPdxy3); texel += textureGrad(s3D, f16c3, f16dPdxy3, f16dPdxy3); texel += textureGrad(sCube, c3, dPdxy3, dPdxy3); texel += textureGrad(sCube, f16c3, f16dPdxy3, f16dPdxy3); texel += textureGrad(s2DRect, c2, dPdxy2, dPdxy2); texel += textureGrad(s2DRect, f16c2, f16dPdxy2, f16dPdxy2); texel.x += textureGrad(s2DRectShadow, c3, dPdxy2, dPdxy2); texel.x += textureGrad(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2); texel.x += textureGrad(s1DShadow, c3, dPdxy1, dPdxy1); texel.x += textureGrad(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1); texel.x += textureGrad(s2DShadow, c3, dPdxy2, dPdxy2); texel.x += textureGrad(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2); texel.x += textureGrad(sCubeShadow, c4, dPdxy3, dPdxy3); texel.x += textureGrad(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3); texel += textureGrad(s1DArray, c2, dPdxy1, dPdxy1); texel += textureGrad(s1DArray, f16c2, f16dPdxy1, f16dPdxy1); texel += textureGrad(s2DArray, c3, dPdxy2, dPdxy2); texel += textureGrad(s2DArray, f16c3, f16dPdxy2, f16dPdxy2); texel.x += textureGrad(s1DArrayShadow, c3, dPdxy1, dPdxy1); texel.x += textureGrad(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1); texel.x += textureGrad(s2DArrayShadow, c4, dPdxy2, dPdxy2); texel.x += textureGrad(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2); texel += textureGrad(sCubeArray, c4, dPdxy3, dPdxy3); texel += textureGrad(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3); return texel; } f16vec4 testTextureGradOffset() { f16vec4 texel = f16vec4(0.0hf); texel += textureGradOffset(s1D, c1, dPdxy1, dPdxy1, offset1); texel += textureGradOffset(s1D, f16c1, f16dPdxy1, f16dPdxy1, offset1); texel += textureGradOffset(s2D, c2, dPdxy2, dPdxy2, offset2); texel += textureGradOffset(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2); texel += textureGradOffset(s3D, c3, dPdxy3, dPdxy3, offset3); texel += textureGradOffset(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3); texel += textureGradOffset(s2DRect, c2, dPdxy2, dPdxy2, offset2); texel += textureGradOffset(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, offset2); texel.x += textureGradOffset(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2); texel.x += textureGradOffset(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2); texel.x += textureGradOffset(s1DShadow, c3, dPdxy1, dPdxy1, offset1); texel.x += textureGradOffset(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1); texel.x += textureGradOffset(s2DShadow, c3, dPdxy2, dPdxy2, offset2); texel.x += textureGradOffset(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2); texel += textureGradOffset(s1DArray, c2, dPdxy1, dPdxy1, offset1); texel += textureGradOffset(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, offset1); texel += textureGradOffset(s2DArray, c3, dPdxy2, dPdxy2, offset2); texel += textureGradOffset(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2); texel.x += textureGradOffset(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1); texel.x += textureGradOffset(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1); texel.x += textureGradOffset(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2); texel.x += textureGradOffset(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2); return texel; } f16vec4 testTextureProjGrad() { f16vec4 texel = f16vec4(0.0hf); texel += textureProjGrad(s1D, c2, dPdxy1, dPdxy1); texel += textureProjGrad(s1D, f16c2, f16dPdxy1, f16dPdxy1); texel += textureProjGrad(s1D, c4, dPdxy1, dPdxy1); texel += textureProjGrad(s1D, f16c4, f16dPdxy1, f16dPdxy1); texel += textureProjGrad(s2D, c3, dPdxy2, dPdxy2); texel += textureProjGrad(s2D, f16c3, f16dPdxy2, f16dPdxy2); texel += textureProjGrad(s2D, c4, dPdxy2, dPdxy2); texel += textureProjGrad(s2D, f16c4, f16dPdxy2, f16dPdxy2); texel += textureProjGrad(s3D, c4, dPdxy3, dPdxy3); texel += textureProjGrad(s3D, f16c4, f16dPdxy3, f16dPdxy3); texel += textureProjGrad(s2DRect, c3, dPdxy2, dPdxy2); texel += textureProjGrad(s2DRect, f16c3, f16dPdxy2, f16dPdxy2); texel += textureProjGrad(s2DRect, c4, dPdxy2, dPdxy2); texel += textureProjGrad(s2DRect, f16c4, f16dPdxy2, f16dPdxy2); texel.x += textureProjGrad(s2DRectShadow, c4, dPdxy2, dPdxy2); texel.x += textureProjGrad(s2DRectShadow, f16c3, compare, f16dPdxy2, f16dPdxy2); texel.x += textureProjGrad(s1DShadow, c4, dPdxy1, dPdxy1); texel.x += textureProjGrad(s1DShadow, f16c3, compare, f16dPdxy1, f16dPdxy1); texel.x += textureProjGrad(s2DShadow, c4, dPdxy2, dPdxy2); texel.x += textureProjGrad(s2DShadow, f16c3, compare, f16dPdxy2, f16dPdxy2); return texel; } f16vec4 testTextureProjGradoffset() { f16vec4 texel = f16vec4(0.0hf); texel += textureProjGradOffset(s1D, c2, dPdxy1, dPdxy1, offset1); texel += textureProjGradOffset(s1D, f16c2, f16dPdxy1, f16dPdxy1, offset1); texel += textureProjGradOffset(s1D, c4, dPdxy1, dPdxy1, offset1); texel += textureProjGradOffset(s1D, f16c4, f16dPdxy1, f16dPdxy1, offset1); texel += textureProjGradOffset(s2D, c3, dPdxy2, dPdxy2, offset2); texel += textureProjGradOffset(s2D, f16c3, f16dPdxy2, f16dPdxy2, offset2); texel += textureProjGradOffset(s2D, c4, dPdxy2, dPdxy2, offset2); texel += textureProjGradOffset(s2D, f16c4, f16dPdxy2, f16dPdxy2, offset2); texel += textureProjGradOffset(s2DRect, c3, dPdxy2, dPdxy2, offset2); texel += textureProjGradOffset(s2DRect, f16c3, f16dPdxy2, f16dPdxy2, offset2); texel += textureProjGradOffset(s2DRect, c4, dPdxy2, dPdxy2, offset2); texel += textureProjGradOffset(s2DRect, f16c4, f16dPdxy2, f16dPdxy2, offset2); texel.x += textureProjGradOffset(s2DRectShadow, c4, dPdxy2, dPdxy2, offset2); texel.x += textureProjGradOffset(s2DRectShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2); texel += textureProjGradOffset(s3D, c4, dPdxy3, dPdxy3, offset3); texel += textureProjGradOffset(s3D, f16c4, f16dPdxy3, f16dPdxy3, offset3); texel.x += textureProjGradOffset(s1DShadow, c4, dPdxy1, dPdxy1, offset1); texel.x += textureProjGradOffset(s1DShadow, f16c3, compare, f16dPdxy1, f16dPdxy1, offset1); texel.x += textureProjGradOffset(s2DShadow, c4, dPdxy2, dPdxy2, offset2); texel.x += textureProjGradOffset(s2DShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2); return texel; } f16vec4 testTextureGather() { f16vec4 texel = f16vec4(0.0hf); texel += textureGather(s2D, c2, 0); texel += textureGather(s2D, f16c2, 0, f16bias); texel += textureGather(s2DArray, c3, 0); texel += textureGather(s2DArray, f16c3, 0, f16bias); texel += textureGather(sCube, c3, 0); texel += textureGather(sCube, f16c3, 0, f16bias); texel += textureGather(sCubeArray, c4, 0); texel += textureGather(sCubeArray, f16c4, 0, f16bias); texel += textureGather(s2DRect, c2, 0); texel += textureGather(s2DRect, f16c2, 0); texel += textureGather(s2DShadow, c2, compare); texel += textureGather(s2DShadow, f16c2, compare); texel += textureGather(s2DArrayShadow, c3, compare); texel += textureGather(s2DArrayShadow, f16c3, compare); texel += textureGather(sCubeShadow, c3, compare); texel += textureGather(sCubeShadow, f16c3, compare); texel += textureGather(sCubeArrayShadow, c4, compare); texel += textureGather(sCubeArrayShadow, f16c4, compare); texel += textureGather(s2DRectShadow, c2, compare); texel += textureGather(s2DRectShadow, f16c2, compare); return texel; } f16vec4 testTextureGatherOffset() { f16vec4 texel = f16vec4(0.0hf); texel += textureGatherOffset(s2D, c2, offset2, 0); texel += textureGatherOffset(s2D, f16c2, offset2, 0, f16bias); texel += textureGatherOffset(s2DArray, c3, offset2, 0); texel += textureGatherOffset(s2DArray, f16c3, offset2, 0, f16bias); texel += textureGatherOffset(s2DRect, c2, offset2, 0); texel += textureGatherOffset(s2DRect, f16c2, offset2, 0); texel += textureGatherOffset(s2DShadow, c2, compare, offset2); texel += textureGatherOffset(s2DShadow, f16c2, compare, offset2); texel += textureGatherOffset(s2DArrayShadow, c3, compare, offset2); texel += textureGatherOffset(s2DArrayShadow, f16c3, compare, offset2); texel += textureGatherOffset(s2DRectShadow, c2, compare, offset2); texel += textureGatherOffset(s2DRectShadow, f16c2, compare, offset2); return texel; } f16vec4 testTextureGatherOffsets() { f16vec4 texel = f16vec4(0.0hf); texel += textureGatherOffsets(s2D, c2, offsets, 0); texel += textureGatherOffsets(s2D, f16c2, offsets, 0, f16bias); texel += textureGatherOffsets(s2DArray, c3, offsets, 0); texel += textureGatherOffsets(s2DArray, f16c3, offsets, 0, f16bias); texel += textureGatherOffsets(s2DRect, c2, offsets, 0); texel += textureGatherOffsets(s2DRect, f16c2, offsets, 0); texel += textureGatherOffsets(s2DShadow, c2, compare, offsets); texel += textureGatherOffsets(s2DShadow, f16c2, compare, offsets); texel += textureGatherOffsets(s2DArrayShadow, c3, compare, offsets); texel += textureGatherOffsets(s2DArrayShadow, f16c3, compare, offsets); texel += textureGatherOffsets(s2DRectShadow, c2, compare, offsets); texel += textureGatherOffsets(s2DRectShadow, f16c2, compare, offsets); return texel; } f16vec4 testTextureGatherLod() { f16vec4 texel = f16vec4(0.0hf); texel += textureGatherLodAMD(s2D, c2, lod, 0); texel += textureGatherLodAMD(s2D, f16c2, f16lod, 0); texel += textureGatherLodAMD(s2DArray, c3, lod, 0); texel += textureGatherLodAMD(s2DArray, f16c3, f16lod, 0); texel += textureGatherLodAMD(sCube, c3, lod, 0); texel += textureGatherLodAMD(sCube, f16c3, f16lod, 0); texel += textureGatherLodAMD(sCubeArray, c4, lod, 0); texel += textureGatherLodAMD(sCubeArray, f16c4, f16lod, 0); return texel; } f16vec4 testTextureGatherLodOffset() { f16vec4 texel = f16vec4(0.0hf); texel += textureGatherLodOffsetAMD(s2D, c2, lod, offset2, 0); texel += textureGatherLodOffsetAMD(s2D, f16c2, f16lod, offset2, 0); texel += textureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, 0); texel += textureGatherLodOffsetAMD(s2DArray, f16c3, f16lod, offset2, 0); return texel; } f16vec4 testTextureGatherLodOffsets() { f16vec4 texel = f16vec4(0.0hf); texel += textureGatherLodOffsetsAMD(s2D, c2, lod, offsets, 0); texel += textureGatherLodOffsetsAMD(s2D, f16c2, f16lod, offsets, 0); texel += textureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, 0); texel += textureGatherLodOffsetsAMD(s2DArray, f16c3, f16lod, offsets, 0); return texel; } ivec4 testTextureSize() { ivec4 size = ivec4(0); size.x += textureSize(s1D, int(lod)); size.xy += textureSize(s2D, int(lod)); size.xyz += textureSize(s3D, int(lod)); size.xy += textureSize(sCube, int(lod)); size.x += textureSize(s1DShadow, int(lod)); size.xy += textureSize(s2DShadow, int(lod)); size.xy += textureSize(sCubeShadow, int(lod)); size.xyz += textureSize(sCubeArray, int(lod)); size.xyz += textureSize(sCubeArrayShadow, int(lod)); size.xy += textureSize(s2DRect); size.xy += textureSize(s2DRectShadow); size.xy += textureSize(s1DArray, int(lod)); size.xyz += textureSize(s2DArray, int(lod)); size.xy += textureSize(s1DArrayShadow, int(lod)); size.xyz += textureSize(s2DArrayShadow, int(lod)); size.x += textureSize(sBuffer); size.xy += textureSize(s2DMS); size.xyz += textureSize(s2DMSArray); return size; } vec2 testTextureQueryLod() { vec2 lod = vec2(0.0); lod += textureQueryLod(s1D, c1); lod += textureQueryLod(s1D, f16c1); lod += textureQueryLod(s2D, c2); lod += textureQueryLod(s2D, f16c2); lod += textureQueryLod(s3D, c3); lod += textureQueryLod(s3D, f16c3); lod += textureQueryLod(sCube, c3); lod += textureQueryLod(sCube, f16c3); lod += textureQueryLod(s1DArray, c1); lod += textureQueryLod(s1DArray, f16c1); lod += textureQueryLod(s2DArray, c2); lod += textureQueryLod(s2DArray, f16c2); lod += textureQueryLod(sCubeArray, c3); lod += textureQueryLod(sCubeArray, f16c3); lod += textureQueryLod(s1DShadow, c1); lod += textureQueryLod(s1DShadow, f16c1); lod += textureQueryLod(s2DShadow, c2); lod += textureQueryLod(s2DShadow, f16c2); lod += textureQueryLod(sCubeArrayShadow, c3); lod += textureQueryLod(sCubeArrayShadow, f16c3); lod += textureQueryLod(s1DArrayShadow, c1); lod += textureQueryLod(s1DArrayShadow, f16c1); lod += textureQueryLod(s2DArrayShadow, c2); lod += textureQueryLod(s2DArrayShadow, f16c2); lod += textureQueryLod(sCubeArrayShadow, c3); lod += textureQueryLod(sCubeArrayShadow, f16c3); return lod; } int testTextureQueryLevels() { int levels = 0; levels += textureQueryLevels(s1D); levels += textureQueryLevels(s2D); levels += textureQueryLevels(s3D); levels += textureQueryLevels(sCube); levels += textureQueryLevels(s1DShadow); levels += textureQueryLevels(s2DShadow); levels += textureQueryLevels(sCubeShadow); levels += textureQueryLevels(sCubeArray); levels += textureQueryLevels(sCubeArrayShadow); levels += textureQueryLevels(s1DArray); levels += textureQueryLevels(s2DArray); levels += textureQueryLevels(s1DArrayShadow); levels += textureQueryLevels(s2DArrayShadow); return levels; } int testTextureSamples() { int samples = 0; samples += textureSamples(s2DMS); samples += textureSamples(s2DMSArray); return samples; } f16vec4 testImageLoad() { f16vec4 texel = f16vec4(0.0hf); texel += imageLoad(i1D, int(c1)); texel += imageLoad(i2D, ivec2(c2)); texel += imageLoad(i3D, ivec3(c3)); texel += imageLoad(i2DRect, ivec2(c2)); texel += imageLoad(iCube, ivec3(c3)); texel += imageLoad(iBuffer, int(c1)); texel += imageLoad(i1DArray, ivec2(c2)); texel += imageLoad(i2DArray, ivec3(c3)); texel += imageLoad(iCubeArray, ivec3(c3)); texel += imageLoad(i2DMS, ivec2(c2), 1); texel += imageLoad(i2DMSArray, ivec3(c3), 1); return texel; } void testImageStore(f16vec4 data) { imageStore(i1D, int(c1), data); imageStore(i2D, ivec2(c2), data); imageStore(i3D, ivec3(c3), data); imageStore(i2DRect, ivec2(c2), data); imageStore(iCube, ivec3(c3), data); imageStore(iBuffer, int(c1), data); imageStore(i1DArray, ivec2(c2), data); imageStore(i2DArray, ivec3(c3), data); imageStore(iCubeArray, ivec3(c3), data); imageStore(i2DMS, ivec2(c2), 1, data); imageStore(i2DMSArray, ivec3(c3), 1, data); } f16vec4 testSparseTexture() { f16vec4 texel = f16vec4(0.0hf); sparseTextureARB(s2D, c2, texel); sparseTextureARB(s2D, f16c2, texel, f16bias); sparseTextureARB(s3D, c3, texel); sparseTextureARB(s3D, f16c3, texel, f16bias); sparseTextureARB(sCube, c3, texel); sparseTextureARB(sCube, f16c3, texel, f16bias); sparseTextureARB(s2DShadow, c3, texel.x); sparseTextureARB(s2DShadow, f16c2, compare, texel.x, f16bias); sparseTextureARB(sCubeShadow, c4, texel.x); sparseTextureARB(sCubeShadow, f16c3, compare, texel.x, f16bias); sparseTextureARB(s2DArray, c3, texel); sparseTextureARB(s2DArray, f16c3, texel, f16bias); sparseTextureARB(sCubeArray, c4, texel); sparseTextureARB(sCubeArray, f16c4, texel, f16bias); sparseTextureARB(s2DArrayShadow, c4, texel.x); sparseTextureARB(s2DArrayShadow, f16c3, compare, texel.x); sparseTextureARB(s2DRect, c2, texel); sparseTextureARB(s2DRect, f16c2, texel); sparseTextureARB(s2DRectShadow, c3, texel.x); sparseTextureARB(s2DRectShadow, f16c2, compare, texel.x); sparseTextureARB(sCubeArrayShadow, c4, compare, texel.x); sparseTextureARB(sCubeArrayShadow, f16c4, compare, texel.x); return texel; } f16vec4 testSparseTextureLod() { f16vec4 texel = f16vec4(0.0hf); sparseTextureLodARB(s2D, c2, lod, texel); sparseTextureLodARB(s2D, f16c2, f16lod, texel); sparseTextureLodARB(s3D, c3, lod, texel); sparseTextureLodARB(s3D, f16c3, f16lod, texel); sparseTextureLodARB(sCube, c3, lod, texel); sparseTextureLodARB(sCube, f16c3, f16lod, texel); sparseTextureLodARB(s2DShadow, c3, lod, texel.x); sparseTextureLodARB(s2DShadow, f16c2, compare, f16lod, texel.x); sparseTextureLodARB(s2DArray, c3, lod, texel); sparseTextureLodARB(s2DArray, f16c3, f16lod, texel); sparseTextureLodARB(sCubeArray, c4, lod, texel); sparseTextureLodARB(sCubeArray, f16c4, f16lod, texel); return texel; } f16vec4 testSparseTextureOffset() { f16vec4 texel = f16vec4(0.0hf); sparseTextureOffsetARB(s2D, c2, offset2, texel); sparseTextureOffsetARB(s2D, f16c2, offset2, texel, f16bias); sparseTextureOffsetARB(s3D, c3, offset3, texel); sparseTextureOffsetARB(s3D, f16c3, offset3, texel, f16bias); sparseTextureOffsetARB(s2DRect, c2, offset2, texel); sparseTextureOffsetARB(s2DRect, f16c2, offset2, texel); sparseTextureOffsetARB(s2DRectShadow, c3, offset2, texel.x); sparseTextureOffsetARB(s2DRectShadow, f16c2, compare, offset2, texel.x); sparseTextureOffsetARB(s2DShadow, c3, offset2, texel.x); sparseTextureOffsetARB(s2DShadow, f16c2, compare, offset2, texel.x, f16bias); sparseTextureOffsetARB(s2DArray, c3, offset2, texel); sparseTextureOffsetARB(s2DArray, f16c3, offset2, texel, f16bias); sparseTextureOffsetARB(s2DArrayShadow, c4, offset2, texel.x); sparseTextureOffsetARB(s2DArrayShadow, f16c3, compare, offset2, texel.x); return texel; } f16vec4 testSparseTextureLodOffset() { f16vec4 texel = f16vec4(0.0hf); sparseTextureLodOffsetARB(s2D, c2, lod, offset2, texel); sparseTextureLodOffsetARB(s2D, f16c2, f16lod, offset2, texel); sparseTextureLodOffsetARB(s3D, c3, lod, offset3, texel); sparseTextureLodOffsetARB(s3D, f16c3, f16lod, offset3, texel); sparseTextureLodOffsetARB(s2DShadow, c3, lod, offset2, texel.x); sparseTextureLodOffsetARB(s2DShadow, f16c2, compare, f16lod, offset2, texel.x); sparseTextureLodOffsetARB(s2DArray, c3, lod, offset2, texel); sparseTextureLodOffsetARB(s2DArray, f16c3, f16lod, offset2, texel); return texel; } f16vec4 testSparseTextureGrad() { f16vec4 texel = f16vec4(0.0hf); sparseTextureGradARB(s2D, c2, dPdxy2, dPdxy2, texel); sparseTextureGradARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, texel); sparseTextureGradARB(s3D, c3, dPdxy3, dPdxy3, texel); sparseTextureGradARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, texel); sparseTextureGradARB(sCube, c3, dPdxy3, dPdxy3, texel); sparseTextureGradARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, texel); sparseTextureGradARB(s2DRect, c2, dPdxy2, dPdxy2, texel); sparseTextureGradARB(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, texel); sparseTextureGradARB(s2DRectShadow, c3, dPdxy2, dPdxy2, texel.x); sparseTextureGradARB(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, texel.x); sparseTextureGradARB(s2DShadow, c3, dPdxy2, dPdxy2, texel.x); sparseTextureGradARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, texel.x); sparseTextureGradARB(sCubeShadow, c4, dPdxy3, dPdxy3, texel.x); sparseTextureGradARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, texel.x); sparseTextureGradARB(s2DArray, c3, dPdxy2, dPdxy2, texel); sparseTextureGradARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, texel); sparseTextureGradARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, texel.x); sparseTextureGradARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, texel.x); sparseTextureGradARB(sCubeArray, c4, dPdxy3, dPdxy3, texel); sparseTextureGradARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, texel); return texel; } f16vec4 testSparseTextureGradOffset() { f16vec4 texel = f16vec4(0.0hf); sparseTextureGradOffsetARB(s2D, c2, dPdxy2, dPdxy2, offset2, texel); sparseTextureGradOffsetARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, texel); sparseTextureGradOffsetARB(s3D, c3, dPdxy3, dPdxy3, offset3, texel); sparseTextureGradOffsetARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, texel); sparseTextureGradOffsetARB(s2DRect, c2, dPdxy2, dPdxy2, offset2, texel); sparseTextureGradOffsetARB(s2DRect, f16c2, f16dPdxy2, f16dPdxy2, offset2, texel); sparseTextureGradOffsetARB(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2, texel.x); sparseTextureGradOffsetARB(s2DRectShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x); sparseTextureGradOffsetARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, texel.x); sparseTextureGradOffsetARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x); sparseTextureGradOffsetARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, texel); sparseTextureGradOffsetARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, texel); sparseTextureGradOffsetARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, texel.x); sparseTextureGradOffsetARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, texel.x); return texel; } f16vec4 testSparseTexelFetch() { f16vec4 texel = f16vec4(0.0hf); sparseTexelFetchARB(s2D, ivec2(c2), int(lod), texel); sparseTexelFetchARB(s3D, ivec3(c3), int(lod), texel); sparseTexelFetchARB(s2DRect, ivec2(c2), texel); sparseTexelFetchARB(s2DArray, ivec3(c3), int(lod), texel); sparseTexelFetchARB(s2DMS, ivec2(c2), 1, texel); sparseTexelFetchARB(s2DMSArray, ivec3(c3), 2, texel); return texel; } f16vec4 testSparseTexelFetchOffset() { f16vec4 texel = f16vec4(0.0hf); sparseTexelFetchOffsetARB(s2D, ivec2(c2), int(lod), offset2, texel); sparseTexelFetchOffsetARB(s3D, ivec3(c3), int(lod), offset3, texel); sparseTexelFetchOffsetARB(s2DRect, ivec2(c2), offset2, texel); sparseTexelFetchOffsetARB(s2DArray, ivec3(c3), int(lod), offset2, texel); return texel; } f16vec4 testSparseTextureGather() { f16vec4 texel = f16vec4(0.0hf); sparseTextureGatherARB(s2D, c2, texel, 0); sparseTextureGatherARB(s2D, f16c2, texel, 0, f16bias); sparseTextureGatherARB(s2DArray, c3, texel, 0); sparseTextureGatherARB(s2DArray, f16c3, texel, 0, f16bias); sparseTextureGatherARB(sCube, c3, texel, 0); sparseTextureGatherARB(sCube, f16c3, texel, 0, f16bias); sparseTextureGatherARB(sCubeArray, c4, texel, 0); sparseTextureGatherARB(sCubeArray, f16c4, texel, 0, f16bias); sparseTextureGatherARB(s2DRect, c2, texel, 0); sparseTextureGatherARB(s2DRect, f16c2, texel, 0); sparseTextureGatherARB(s2DShadow, c2, compare, texel); sparseTextureGatherARB(s2DShadow, f16c2, compare, texel); sparseTextureGatherARB(s2DArrayShadow, c3, compare, texel); sparseTextureGatherARB(s2DArrayShadow, f16c3, compare, texel); sparseTextureGatherARB(sCubeShadow, c3, compare, texel); sparseTextureGatherARB(sCubeShadow, f16c3, compare, texel); sparseTextureGatherARB(sCubeArrayShadow, c4, compare, texel); sparseTextureGatherARB(sCubeArrayShadow, f16c4, compare, texel); sparseTextureGatherARB(s2DRectShadow, c2, compare, texel); sparseTextureGatherARB(s2DRectShadow, f16c2, compare, texel); return texel; } f16vec4 testSparseTextureGatherOffset() { f16vec4 texel = f16vec4(0.0hf); sparseTextureGatherOffsetARB(s2D, c2, offset2, texel, 0); sparseTextureGatherOffsetARB(s2D, f16c2, offset2, texel, 0, f16bias); sparseTextureGatherOffsetARB(s2DArray, c3, offset2, texel, 0); sparseTextureGatherOffsetARB(s2DArray, f16c3, offset2, texel, 0, f16bias); sparseTextureGatherOffsetARB(s2DRect, c2, offset2, texel, 0); sparseTextureGatherOffsetARB(s2DRect, f16c2, offset2, texel, 0); sparseTextureGatherOffsetARB(s2DShadow, c2, compare, offset2, texel); sparseTextureGatherOffsetARB(s2DShadow, f16c2, compare, offset2, texel); sparseTextureGatherOffsetARB(s2DArrayShadow, c3, compare, offset2, texel); sparseTextureGatherOffsetARB(s2DArrayShadow, f16c3, compare, offset2, texel); sparseTextureGatherOffsetARB(s2DRectShadow, c2, compare, offset2, texel); sparseTextureGatherOffsetARB(s2DRectShadow, f16c2, compare, offset2, texel); return texel; } f16vec4 testSparseTextureGatherOffsets() { f16vec4 texel = f16vec4(0.0hf); sparseTextureGatherOffsetsARB(s2D, c2, offsets, texel, 0); sparseTextureGatherOffsetsARB(s2D, f16c2, offsets, texel, 0, f16bias); sparseTextureGatherOffsetsARB(s2DArray, c3, offsets, texel, 0); sparseTextureGatherOffsetsARB(s2DArray, f16c3, offsets, texel, 0, f16bias); sparseTextureGatherOffsetsARB(s2DRect, c2, offsets, texel, 0); sparseTextureGatherOffsetsARB(s2DRect, f16c2, offsets, texel, 0); sparseTextureGatherOffsetsARB(s2DShadow, c2, compare, offsets, texel); sparseTextureGatherOffsetsARB(s2DShadow, f16c2, compare, offsets, texel); sparseTextureGatherOffsetsARB(s2DArrayShadow, c3, compare, offsets, texel); sparseTextureGatherOffsetsARB(s2DArrayShadow, f16c3, compare, offsets, texel); sparseTextureGatherOffsetsARB(s2DRectShadow, c2, compare, offsets, texel); sparseTextureGatherOffsetsARB(s2DRectShadow, f16c2, compare, offsets, texel); return texel; } f16vec4 testSparseTextureGatherLod() { f16vec4 texel = f16vec4(0.0hf); sparseTextureGatherLodAMD(s2D, c2, lod, texel, 0); sparseTextureGatherLodAMD(s2D, f16c2, f16lod, texel, 0); sparseTextureGatherLodAMD(s2DArray, c3, lod, texel, 0); sparseTextureGatherLodAMD(s2DArray, f16c3, f16lod, texel, 0); sparseTextureGatherLodAMD(sCube, c3, lod, texel, 0); sparseTextureGatherLodAMD(sCube, f16c3, f16lod, texel, 0); sparseTextureGatherLodAMD(sCubeArray, c4, lod, texel, 0); sparseTextureGatherLodAMD(sCubeArray, f16c4, f16lod, texel, 0); return texel; } f16vec4 testSparseTextureGatherLodOffset() { f16vec4 texel = f16vec4(0.0hf); sparseTextureGatherLodOffsetAMD(s2D, c2, lod, offset2, texel, 0); sparseTextureGatherLodOffsetAMD(s2D, f16c2, f16lod, offset2, texel, 0); sparseTextureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, texel, 0); sparseTextureGatherLodOffsetAMD(s2DArray, f16c3, f16lod, offset2, texel, 0); return texel; } f16vec4 testSparseTextureGatherLodOffsets() { f16vec4 texel = f16vec4(0.0hf); sparseTextureGatherLodOffsetsAMD(s2D, c2, lod, offsets, texel, 0); sparseTextureGatherLodOffsetsAMD(s2D, f16c2, f16lod, offsets, texel, 0); sparseTextureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, texel, 0); sparseTextureGatherLodOffsetsAMD(s2DArray, f16c3, f16lod, offsets, texel, 0); return texel; } f16vec4 testSparseImageLoad() { f16vec4 texel = f16vec4(0.0hf); sparseImageLoadARB(i2D, ivec2(c2), texel); sparseImageLoadARB(i3D, ivec3(c3), texel); sparseImageLoadARB(i2DRect, ivec2(c2), texel); sparseImageLoadARB(iCube, ivec3(c3), texel); sparseImageLoadARB(i2DArray, ivec3(c3), texel); sparseImageLoadARB(iCubeArray, ivec3(c3), texel); sparseImageLoadARB(i2DMS, ivec2(c2), 1, texel); sparseImageLoadARB(i2DMSArray, ivec3(c3), 2, texel); return texel; } f16vec4 testSparseTextureClamp() { f16vec4 texel = f16vec4(0.0hf); sparseTextureClampARB(s2D, c2, lodClamp, texel); sparseTextureClampARB(s2D, f16c2, f16lodClamp, texel, f16bias); sparseTextureClampARB(s3D, c3, lodClamp, texel); sparseTextureClampARB(s3D, f16c3, f16lodClamp, texel, f16bias); sparseTextureClampARB(sCube, c3, lodClamp, texel); sparseTextureClampARB(sCube, f16c3, f16lodClamp, texel, f16bias); sparseTextureClampARB(s2DShadow, c3, lodClamp, texel.x); sparseTextureClampARB(s2DShadow, f16c2, compare, f16lodClamp, texel.x, f16bias); sparseTextureClampARB(sCubeShadow, c4, lodClamp, texel.x); sparseTextureClampARB(sCubeShadow, f16c3, compare, f16lodClamp, texel.x, f16bias); sparseTextureClampARB(s2DArray, c3, lodClamp, texel); sparseTextureClampARB(s2DArray, f16c3, f16lodClamp, texel, f16bias); sparseTextureClampARB(sCubeArray, c4, lodClamp, texel); sparseTextureClampARB(sCubeArray, f16c4, f16lodClamp, texel, f16bias); sparseTextureClampARB(s2DArrayShadow, c4, lodClamp, texel.x); sparseTextureClampARB(s2DArrayShadow, f16c3, compare, f16lodClamp, texel.x); sparseTextureClampARB(sCubeArrayShadow, c4, compare, lodClamp, texel.x); sparseTextureClampARB(sCubeArrayShadow, f16c4, compare, f16lodClamp, texel.x); return texel; } f16vec4 testTextureClamp() { f16vec4 texel = f16vec4(0.0hf); texel += textureClampARB(s1D, c1, lodClamp); texel += textureClampARB(s1D, f16c1, f16lodClamp, f16bias); texel += textureClampARB(s2D, c2, lodClamp); texel += textureClampARB(s2D, f16c2, f16lodClamp, f16bias); texel += textureClampARB(s3D, c3, lodClamp); texel += textureClampARB(s3D, f16c3, f16lodClamp, f16bias); texel += textureClampARB(sCube, c3, lodClamp); texel += textureClampARB(sCube, f16c3, f16lodClamp, f16bias); texel.x += textureClampARB(s1DShadow, c3, lodClamp); texel.x += textureClampARB(s1DShadow, f16c2, compare, f16lodClamp, f16bias); texel.x += textureClampARB(s2DShadow, c3, lodClamp); texel.x += textureClampARB(s2DShadow, f16c2, compare, f16lodClamp, f16bias); texel.x += textureClampARB(sCubeShadow, c4, lodClamp); texel.x += textureClampARB(sCubeShadow, f16c3, compare, f16lodClamp, f16bias); texel += textureClampARB(s1DArray, c2, lodClamp); texel += textureClampARB(s1DArray, f16c2, f16lodClamp, f16bias); texel += textureClampARB(s2DArray, c3, lodClamp); texel += textureClampARB(s2DArray, f16c3, f16lodClamp, f16bias); texel += textureClampARB(sCubeArray, c4, lodClamp); texel += textureClampARB(sCubeArray, f16c4, f16lodClamp, f16bias); texel.x += textureClampARB(s1DArrayShadow, c3, lodClamp); texel.x += textureClampARB(s1DArrayShadow, f16c2, compare, f16lodClamp, f16bias); texel.x += textureClampARB(s2DArrayShadow, c4, lodClamp); texel.x += textureClampARB(s2DArrayShadow, f16c3, compare, f16lodClamp); texel.x += textureClampARB(sCubeArrayShadow, c4, compare, lodClamp); texel.x += textureClampARB(sCubeArrayShadow, f16c4, compare, f16lodClamp); return texel; } f16vec4 testSparseTextureOffsetClamp() { f16vec4 texel = f16vec4(0.0hf); sparseTextureOffsetClampARB(s2D, c2, offset2, lodClamp, texel); sparseTextureOffsetClampARB(s2D, f16c2, offset2, f16lodClamp, texel, f16bias); sparseTextureOffsetClampARB(s3D, c3, offset3, lodClamp, texel); sparseTextureOffsetClampARB(s3D, f16c3, offset3, f16lodClamp, texel, f16bias); sparseTextureOffsetClampARB(s2DShadow, c3, offset2, lodClamp, texel.x); sparseTextureOffsetClampARB(s2DShadow, f16c2, compare, offset2, f16lodClamp, texel.x, f16bias); sparseTextureOffsetClampARB(s2DArray, c3, offset2, lodClamp, texel); sparseTextureOffsetClampARB(s2DArray, f16c3, offset2, f16lodClamp, texel, f16bias); sparseTextureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp, texel.x); sparseTextureOffsetClampARB(s2DArrayShadow, f16c3, compare, offset2, f16lodClamp, texel.x); return texel; } f16vec4 testTextureOffsetClamp() { f16vec4 texel = f16vec4(0.0hf); texel += textureOffsetClampARB(s1D, c1, offset1, lodClamp); texel += textureOffsetClampARB(s1D, f16c1, offset1, f16lodClamp, f16bias); texel += textureOffsetClampARB(s2D, c2, offset2, lodClamp); texel += textureOffsetClampARB(s2D, f16c2, offset2, f16lodClamp, f16bias); texel += textureOffsetClampARB(s3D, c3, offset3, lodClamp); texel += textureOffsetClampARB(s3D, f16c3, offset3, f16lodClamp, f16bias); texel.x += textureOffsetClampARB(s1DShadow, c3, offset1, lodClamp); texel.x += textureOffsetClampARB(s1DShadow, f16c2, compare, offset1, f16lodClamp, f16bias); texel.x += textureOffsetClampARB(s2DShadow, c3, offset2, lodClamp); texel.x += textureOffsetClampARB(s2DShadow, f16c2, compare, offset2, f16lodClamp, f16bias); texel += textureOffsetClampARB(s1DArray, c2, offset1, lodClamp); texel += textureOffsetClampARB(s1DArray, f16c2, offset1, f16lodClamp, f16bias); texel += textureOffsetClampARB(s2DArray, c3, offset2, lodClamp); texel += textureOffsetClampARB(s2DArray, f16c3, offset2, f16lodClamp, f16bias); texel.x += textureOffsetClampARB(s1DArrayShadow, c3, offset1, lodClamp); texel.x += textureOffsetClampARB(s1DArrayShadow, f16c2, compare, offset1, f16lodClamp, f16bias); texel.x += textureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp); texel.x += textureOffsetClampARB(s2DArrayShadow, f16c3, compare, offset2, f16lodClamp); return texel; } f16vec4 testSparseTextureGradClamp() { f16vec4 texel = f16vec4(0.0hf); sparseTextureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp, texel); sparseTextureGradClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, f16lodClamp, texel); sparseTextureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp, texel); sparseTextureGradClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp, texel); sparseTextureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp, texel); sparseTextureGradClampARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp, texel); sparseTextureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp, texel.x); sparseTextureGradClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, f16lodClamp, texel.x); sparseTextureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp, texel.x); sparseTextureGradClampARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, f16lodClamp, texel.x); sparseTextureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp, texel); sparseTextureGradClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, f16lodClamp, texel); sparseTextureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp, texel.x); sparseTextureGradClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, f16lodClamp, texel.x); sparseTextureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp, texel); sparseTextureGradClampARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, f16lodClamp, texel); return texel; } f16vec4 testTextureGradClamp() { f16vec4 texel = f16vec4(0.0hf); texel += textureGradClampARB(s1D, c1, dPdxy1, dPdxy1, lodClamp); texel += textureGradClampARB(s1D, f16c1, f16dPdxy1, f16dPdxy1, f16lodClamp); texel += textureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp); texel += textureGradClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, f16lodClamp); texel += textureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp); texel += textureGradClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp); texel += textureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp); texel += textureGradClampARB(sCube, f16c3, f16dPdxy3, f16dPdxy3, f16lodClamp); texel.x += textureGradClampARB(s1DShadow, c3, dPdxy1, dPdxy1, lodClamp); texel.x += textureGradClampARB(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, f16lodClamp); texel.x += textureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp); texel.x += textureGradClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, f16lodClamp); texel.x += textureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp); texel.x += textureGradClampARB(sCubeShadow, f16c3, compare, f16dPdxy3, f16dPdxy3, f16lodClamp); texel += textureGradClampARB(s1DArray, c2, dPdxy1, dPdxy1, lodClamp); texel += textureGradClampARB(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, f16lodClamp); texel += textureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp); texel += textureGradClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, f16lodClamp); texel.x += textureGradClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, lodClamp); texel.x += textureGradClampARB(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, f16lodClamp); texel.x += textureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp); texel.x += textureGradClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, f16lodClamp); texel += textureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp); texel += textureGradClampARB(sCubeArray, f16c4, f16dPdxy3, f16dPdxy3, f16lodClamp); return texel; } f16vec4 testSparseTextureGradOffsetClamp() { f16vec4 texel = f16vec4(0.0hf); sparseTextureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp, texel); sparseTextureGradOffsetClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel); sparseTextureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp, texel); sparseTextureGradOffsetClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, f16lodClamp, texel); sparseTextureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel.x); sparseTextureGradOffsetClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel.x); sparseTextureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel); sparseTextureGradOffsetClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel); sparseTextureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp, texel.x); sparseTextureGradOffsetClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp, texel.x); return texel; } f16vec4 testTextureGradOffsetClamp() { f16vec4 texel = f16vec4(0.0hf); texel += textureGradOffsetClampARB(s1D, c1, dPdxy1, dPdxy1, offset1, lodClamp); texel += textureGradOffsetClampARB(s1D, f16c1, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); texel += textureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp); texel += textureGradOffsetClampARB(s2D, f16c2, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); texel += textureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp); texel += textureGradOffsetClampARB(s3D, f16c3, f16dPdxy3, f16dPdxy3, offset3, f16lodClamp); texel.x += textureGradOffsetClampARB(s1DShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp); texel.x += textureGradOffsetClampARB(s1DShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); texel.x += textureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp); texel.x += textureGradOffsetClampARB(s2DShadow, f16c2, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); texel += textureGradOffsetClampARB(s1DArray, c2, dPdxy1, dPdxy1, offset1, lodClamp); texel += textureGradOffsetClampARB(s1DArray, f16c2, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); texel += textureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp); texel += textureGradOffsetClampARB(s2DArray, f16c3, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); texel.x += textureGradOffsetClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp); texel.x += textureGradOffsetClampARB(s1DArrayShadow, f16c2, compare, f16dPdxy1, f16dPdxy1, offset1, f16lodClamp); texel.x += textureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp); texel.x += textureGradOffsetClampARB(s2DArrayShadow, f16c3, compare, f16dPdxy2, f16dPdxy2, offset2, f16lodClamp); return texel; } f16vec4 testCombinedTextureSampler() { f16vec4 texel = f16vec4(0.0hf); texel += texture(f16sampler1D(t1D, s), c1); texel += texture(f16sampler1D(t1D, s), f16c1, f16bias); texel += texture(f16sampler2D(t2D, s), c2); texel += texture(f16sampler2D(t2D, s), f16c2, f16bias); texel += texture(f16sampler3D(t3D, s), c3); texel += texture(f16sampler3D(t3D, s), f16c3, f16bias); texel += texture(f16samplerCube(tCube, s), c3); texel += texture(f16samplerCube(tCube, s), f16c3, f16bias); texel.x += texture(f16sampler1DShadow(t1D, sShadow), c3); texel.x += texture(f16sampler1DShadow(t1D, sShadow), f16c2, compare, f16bias); texel.x += texture(f16sampler2DShadow(t2D, sShadow), c3); texel.x += texture(f16sampler2DShadow(t2D, sShadow), f16c2, compare, f16bias); texel.x += texture(f16samplerCubeShadow(tCube, sShadow), c4); texel.x += texture(f16samplerCubeShadow(tCube, sShadow), f16c3, compare, f16bias); texel += texture(f16sampler1DArray(t1DArray, s), c2); texel += texture(f16sampler1DArray(t1DArray, s), f16c2, f16bias); texel += texture(f16sampler2DArray(t2DArray, s), c3); texel += texture(f16sampler2DArray(t2DArray, s), f16c3, f16bias); texel += texture(f16samplerCubeArray(tCubeArray, s), c4); texel += texture(f16samplerCubeArray(tCubeArray, s), f16c4, f16bias); texel.x += texture(f16sampler1DArrayShadow(t1DArray, sShadow), c3); texel.x += texture(f16sampler1DArrayShadow(t1DArray, sShadow), f16c2, compare, f16bias); texel.x += texture(f16sampler2DArrayShadow(t2DArray, sShadow), c4); texel.x += texture(f16sampler2DArrayShadow(t2DArray, sShadow), f16c3, compare); texel += texture(f16sampler2DRect(t2DRect, s), c2); texel += texture(f16sampler2DRect(t2DRect, s), f16c2); texel.x += texture(f16sampler2DRectShadow(t2DRect, sShadow), c3); texel.x += texture(f16sampler2DRectShadow(t2DRect, sShadow), f16c2, compare); texel.x += texture(f16samplerCubeArrayShadow(tCubeArray, sShadow), c4, compare); texel.x += texture(f16samplerCubeArrayShadow(tCubeArray, sShadow), f16c4, compare); return texel; } f16vec4 testSubpassLoad() { return subpassLoad(subpass) + subpassLoad(subpassMS, 2); } void main() { f16vec4 result = f16vec4(0.0hf); result += testTexture(); result += testTextureProj(); result += testTextureLod(); result += testTextureOffset(); result += testTextureLodOffset(); result += testTextureProjLodOffset(); result += testTexelFetch(); result += testTexelFetchOffset(); result += testTextureGrad(); result += testTextureGradOffset(); result += testTextureProjGrad(); result += testTextureProjGradoffset(); result += testTextureGather(); result += testTextureGatherOffset(); result += testTextureGatherOffsets(); result += testTextureGatherLod(); result += testTextureGatherLodOffset(); result += testTextureGatherLodOffsets(); result += f16vec4(testTextureSize()); result.xy += f16vec2(testTextureQueryLod()); result.x += float16_t(testTextureQueryLevels()); result.x += float16_t(testTextureSamples()); result += testImageLoad(); testImageStore(result); result += testSparseTexture(); result += testSparseTextureLod(); result += testSparseTextureOffset(); result += testSparseTextureLodOffset(); result += testSparseTextureGrad(); result += testSparseTextureGradOffset(); result += testSparseTexelFetch(); result += testSparseTexelFetchOffset(); result += testSparseTextureGather(); result += testSparseTextureGatherOffset(); result += testSparseTextureGatherOffsets(); result += testSparseTextureGatherLod(); result += testSparseTextureGatherLodOffset(); result += testSparseTextureGatherLodOffsets(); result += testSparseImageLoad(); result += testSparseTextureClamp(); result += testTextureClamp(); result += testSparseTextureOffsetClamp(); result += testTextureOffsetClamp(); result += testSparseTextureGrad(); result += testTextureGrad(); result += testSparseTextureGradOffsetClamp(); result += testTextureGradOffsetClamp(); result += testCombinedTextureSampler(); result += testSubpassLoad(); fragColor = result; } glslang-8.13.3559/Test/spv.float16convertonlyarith.comp000066400000000000000000000003441360464450000227200ustar00rootroot00000000000000#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)); }glslang-8.13.3559/Test/spv.float16convertonlystorage.comp000066400000000000000000000003201360464450000232470ustar00rootroot00000000000000#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)); }glslang-8.13.3559/Test/spv.float32.frag000066400000000000000000000144151360464450000173500ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.float64.frag000066400000000000000000000141731360464450000173560ustar00rootroot00000000000000#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 } void builtinAngleTrigFuncs() { f64vec4 f64v1, f64v2; f64v2 = radians(f64v1); f64v2 = degrees(f64v1); f64v2 = sin(f64v1); f64v2 = cos(f64v1); f64v2 = tan(f64v1); f64v2 = asin(f64v1); f64v2 = acos(f64v1); f64v2 = atan(f64v1, f64v2); f64v2 = atan(f64v1); f64v2 = sinh(f64v1); f64v2 = cosh(f64v1); f64v2 = tanh(f64v1); f64v2 = asinh(f64v1); f64v2 = acosh(f64v1); f64v2 = atanh(f64v1); } void builtinExpFuncs() { f64vec2 f64v1, f64v2; f64v2 = pow(f64v1, f64v2); f64v2 = exp(f64v1); f64v2 = log(f64v1); f64v2 = exp2(f64v1); f64v2 = log2(f64v1); f64v2 = sqrt(f64v1); f64v2 = inversesqrt(f64v1); } void builtinCommonFuncs() { f64vec3 f64v1, f64v2, f64v3; float64_t f64; bool b; bvec3 bv; ivec3 iv; f64v2 = abs(f64v1); f64v2 = sign(f64v1); f64v2 = floor(f64v1); f64v2 = trunc(f64v1); f64v2 = round(f64v1); f64v2 = roundEven(f64v1); f64v2 = ceil(f64v1); f64v2 = fract(f64v1); f64v2 = mod(f64v1, f64v2); f64v2 = mod(f64v1, f64); f64v3 = modf(f64v1, f64v2); f64v3 = min(f64v1, f64v2); f64v3 = min(f64v1, f64); f64v3 = max(f64v1, f64v2); f64v3 = max(f64v1, f64); f64v3 = clamp(f64v1, f64, f64v2.x); f64v3 = clamp(f64v1, f64v2, f64vec3(f64)); f64v3 = mix(f64v1, f64v2, f64); f64v3 = mix(f64v1, f64v2, f64v3); f64v3 = mix(f64v1, f64v2, bv); f64v3 = step(f64v1, f64v2); f64v3 = step(f64, f64v3); f64v3 = smoothstep(f64v1, f64v2, f64v3); f64v3 = smoothstep(f64, f64v1.x, f64v2); b = isnan(f64); bv = isinf(f64v1); f64v3 = fma(f64v1, f64v2, f64v3); f64v2 = frexp(f64v1, iv); f64v2 = ldexp(f64v1, iv); } void builtinGeometryFuncs() { float64_t f64; f64vec3 f64v1, f64v2, f64v3; f64 = length(f64v1); f64 = distance(f64v1, f64v2); f64 = dot(f64v1, f64v2); f64v3 = cross(f64v1, f64v2); f64v2 = normalize(f64v1); f64v3 = faceforward(f64v1, f64v2, f64v3); f64v3 = reflect(f64v1, f64v2); f64v3 = refract(f64v1, f64v2, f64); } void builtinMatrixFuncs() { f64mat2x3 f64m1, f64m2, f64m3; f64mat3x2 f64m4; f64mat3 f64m5; f64mat4 f64m6, f64m7; f64vec3 f64v1; f64vec2 f64v2; float64_t f64; f64m3 = matrixCompMult(f64m1, f64m2); f64m1 = outerProduct(f64v1, f64v2); f64m4 = transpose(f64m1); f64 = determinant(f64m5); f64m6 = inverse(f64m7); } void builtinVecRelFuncs() { f64vec3 f64v1, f64v2; bvec3 bv; bv = lessThan(f64v1, f64v2); bv = lessThanEqual(f64v1, f64v2); bv = greaterThan(f64v1, f64v2); bv = greaterThanEqual(f64v1, f64v2); bv = equal(f64v1, f64v2); bv = notEqual(f64v1, f64v2); } in flat f64vec3 if64v; void builtinFragProcFuncs() { f64vec3 f64v; // Derivative f64v.x = dFdx(if64v.x); f64v.y = dFdy(if64v.y); f64v.xy = dFdxFine(if64v.xy); f64v.xy = dFdyFine(if64v.xy); f64v = dFdxCoarse(if64v); f64v = dFdxCoarse(if64v); f64v.x = fwidth(if64v.x); f64v.xy = fwidthFine(if64v.xy); f64v = fwidthCoarse(if64v); // Interpolation f64v.x = interpolateAtCentroid(if64v.x); f64v.xy = interpolateAtSample(if64v.xy, 1); f64v = interpolateAtOffset(if64v, f64vec2(0.5f)); } glslang-8.13.3559/Test/spv.flowControl.frag000066400000000000000000000005201360464450000203760ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.for-complex-condition.vert000066400000000000000000000002451360464450000223520ustar00rootroot00000000000000#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; } } glslang-8.13.3559/Test/spv.for-continue-break.vert000066400000000000000000000004111360464450000216200ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.for-nobody.vert000066400000000000000000000001531360464450000202070ustar00rootroot00000000000000#version 450 layout(location=0) out highp int r; void main() { int i; for (i=0; i<10; i++); r = i; } glslang-8.13.3559/Test/spv.for-notest.vert000066400000000000000000000001501360464450000202260ustar00rootroot00000000000000#version 450 layout(location=0) out highp int r; void main() { int i; for (i=0; ; i++) { r = i; } } glslang-8.13.3559/Test/spv.for-simple.vert000066400000000000000000000001361360464450000202070ustar00rootroot00000000000000#version 310 es void main() { int i; int j; for (i=0; i < 10 ; i++) { j = 12; } } glslang-8.13.3559/Test/spv.forLoop.frag000066400000000000000000000012331360464450000175100ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.forwardFun.frag000066400000000000000000000007621360464450000202130ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.fragmentDensity-es.frag000066400000000000000000000004311360464450000216370ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.fragmentDensity-neg.frag000066400000000000000000000005201360464450000220000ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.fragmentDensity.frag000066400000000000000000000004111360464450000212300ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.fragmentDensity.vert000066400000000000000000000005041360464450000212740ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.fragmentShaderBarycentric.frag000066400000000000000000000005441360464450000232140ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.fragmentShaderBarycentric2.frag000066400000000000000000000006001360464450000232670ustar00rootroot00000000000000#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]); } glslang-8.13.3559/Test/spv.fsi.frag000066400000000000000000000006471360464450000166610ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.fsi_Error.frag000066400000000000000000000006431360464450000200260ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.fullyCovered.frag000066400000000000000000000002401360464450000205300ustar00rootroot00000000000000#version 450 #extension GL_NV_conservative_raster_underestimation : enable out vec4 color; void main() { color = vec4(gl_FragFullyCoveredNV, 0, 0, 0); } glslang-8.13.3559/Test/spv.functionCall.frag000066400000000000000000000012031360464450000205060ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.functionNestedOpaque.vert000066400000000000000000000003761360464450000223030ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.functionParameterTypes.frag000066400000000000000000000007371360464450000226130ustar00rootroot00000000000000#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() { } glslang-8.13.3559/Test/spv.functionSemantics.frag000066400000000000000000000024541360464450000215720ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.glFragColor.frag000066400000000000000000000001021360464450000202630ustar00rootroot00000000000000#version 330 void main() { gl_FragColor = vec4(1.0); } glslang-8.13.3559/Test/spv.glsl.register.autoassign.frag000066400000000000000000000032721360464450000230350ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.glsl.register.noautoassign.frag000066400000000000000000000035471360464450000233770ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.hlslDebugInfo.vert000066400000000000000000000000761360464450000206620ustar00rootroot00000000000000float4 origMain() : SV_Position { return (float4)0; } glslang-8.13.3559/Test/spv.hlslOffsets.vert000066400000000000000000000006241360464450000204300ustar00rootroot00000000000000#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() {}glslang-8.13.3559/Test/spv.image.frag000066400000000000000000000067701360464450000171650ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.image.load-formatted.frag000066400000000000000000000043461360464450000220630ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.imageLoadStoreLod.frag000066400000000000000000000021441360464450000214300ustar00rootroot00000000000000#version 450 core #extension GL_AMD_shader_image_load_store_lod: enable layout(rgba32f, binding = 0) uniform image1D i1D; layout(rgba32f, binding = 1) uniform image2D i2D; layout(rgba32f, binding = 2) uniform image3D i3D; layout(rgba32i, binding = 3) uniform iimageCube iiCube; layout(rgba32i, binding = 4) uniform iimage1DArray ii1DArray; layout(rgba32ui, binding = 5) uniform uimage2DArray ui2DArray; layout(rgba32ui, binding = 6) uniform uimageCubeArray uiCubeArray; layout(location = 0) out vec4 fragColor; void main() { const int c1 = 1; const ivec2 c2 = ivec2(2, 3); const ivec3 c3 = ivec3(4, 5, 6); const int lod = 3; vec4 f4 = vec4(0.0); f4 += imageLoadLodAMD(i1D, c1, lod); f4 += imageLoadLodAMD(i2D, c2, lod); f4 += imageLoadLodAMD(i3D, c3, lod); imageStoreLodAMD(iiCube, c3, lod, ivec4(f4)); imageStoreLodAMD(ii1DArray, c2, lod, ivec4(f4)); uvec4 u4; sparseImageLoadLodAMD(ui2DArray, c3, lod, u4); sparseImageLoadLodAMD(uiCubeArray, c3, lod, u4); fragColor = f4 + vec4(u4); }glslang-8.13.3559/Test/spv.int16.amd.frag000066400000000000000000000161351360464450000176000ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.int16.frag000066400000000000000000000143221360464450000170340ustar00rootroot00000000000000#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); glslang-8.13.3559/Test/spv.int32.frag000066400000000000000000000143451360464450000170370ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/spv.int64.frag000066400000000000000000000136331360464450000170430ustar00rootroot00000000000000#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)); } // 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; glslang-8.13.3559/Test/spv.int8.frag000066400000000000000000000136721360464450000167640ustar00rootroot00000000000000#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; // Unary u8v++; i8--; ++i8; --u8v; u8v = ~u8v; i8 = +i8; u8v = -u8v; // Arithmetic i8 += i8; u8v -= u8v; i *= i8; uv /= u8v; uv %= i8; uv = u8v + uv; i16 = i8 - i16; uv = u8v * uv; i16 = i8 * i16; i = i8 % i; // Shift u8v <<= i8; i8 >>= u8v.y; i8 = i8 << u8v.z; u8v = u8v << i8; // Relational b = (u8v.x != i8); b = (i8 == u8v.x); b = (u8v.x > uv.y); b = (i8 < i); b = (u8v.y >= uv.x); b = (i8 <= i); // Bitwise uv |= i8; i = i8 | i; i16 &= i8; uv = u8v & uv; uv ^= i8; u8v = u8v ^ i8; } void builtinFuncs() { i8vec2 i8v; i8vec4 i8v4; u8vec3 u8v; u8vec2 u8v2; u8vec4 u8v4; bvec3 bv; int16_t i16; int32_t i32; uint16_t u16; uint32_t u32; int8_t i8; uint8_t u8; // abs() i8v = abs(i8v); // sign() i8 = sign(i8); // min() i8v = min(i8v, i8); i8v = min(i8v, i8vec2(-1)); u8v = min(u8v, u8); u8v = min(u8v, u8vec3(0)); // max() i8v = max(i8v, i8); i8v = max(i8v, i8vec2(-1)); u8v = max(u8v, u8); u8v = max(u8v, u8vec3(0)); // clamp() i8v = clamp(i8v, -i8, i8); i8v = clamp(i8v, -i8v, i8v); u8v = clamp(u8v, -u8, u8); u8v = clamp(u8v, -u8v, u8v); // mix() i8 = mix(i8v.x, i8v.y, true); i8v = mix(i8vec2(i8), i8vec2(-i8), bvec2(false)); u8 = mix(u8v.x, u8v.y, true); u8v = mix(u8vec3(u8), u8vec3(-u8), bvec3(false)); //pack i16 = pack16(i8v); i32 = pack32(i8v4); u16 = pack16(u8v2); u32 = pack32(u8v4); i8v = unpack8(i16); i8v4 = unpack8(i32); u8v2 = unpack8(u16); u8v4 = unpack8(u32); // lessThan() bv = lessThan(u8v, u8vec3(u8)); bv.xy = lessThan(i8v, i8vec2(i8)); // lessThanEqual() bv = lessThanEqual(u8v, u8vec3(u8)); bv.xy = lessThanEqual(i8v, i8vec2(i8)); // greaterThan() bv = greaterThan(u8v, u8vec3(u8)); bv.xy = greaterThan(i8v, i8vec2(i8)); // greaterThanEqual() bv = greaterThanEqual(u8v, u8vec3(u8)); bv.xy = greaterThanEqual(i8v, i8vec2(i8)); // equal() bv = equal(u8v, u8vec3(u8)); bv.xy = equal(i8v, i8vec2(i8)); // notEqual() bv = notEqual(u8v, u8vec3(u8)); bv.xy = notEqual(i8v, i8vec2(i8)); } // Type conversion for specialization constant layout(constant_id = 100) const int8_t si8 = int8_t(-10); layout(constant_id = 101) const uint8_t su8 = uint8_t(20); glslang-8.13.3559/Test/spv.intOps.vert000066400000000000000000000027171360464450000174150ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.intcoopmat.comp000066400000000000000000000072151360464450000202720ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.interpOps.frag000066400000000000000000000014201360464450000200510ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.layoutNested.vert000066400000000000000000000027271360464450000206220ustar00rootroot00000000000000#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; glslang-8.13.3559/Test/spv.length.frag000066400000000000000000000002601360464450000173500ustar00rootroot00000000000000#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()); } glslang-8.13.3559/Test/spv.localAggregates.frag000066400000000000000000000020521360464450000211540ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.loops.frag000066400000000000000000000131711360464450000172300ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.loopsArtificial.frag000066400000000000000000000024041360464450000212150ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.looseUniformNoLoc.vert000066400000000000000000000002601360464450000215440ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.matFun.vert000066400000000000000000000005621360464450000173670ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.matrix.frag000066400000000000000000000014151360464450000173760ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.matrix2.frag000066400000000000000000000016551360464450000174660ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.memoryQualifier.frag000066400000000000000000000015641360464450000212510ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.memoryScopeSemantics.comp000066400000000000000000000070111360464450000222600ustar00rootroot00000000000000#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; 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); } glslang-8.13.3559/Test/spv.memoryScopeSemantics_Error.comp000066400000000000000000000041061360464450000234330ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.merge-unreachable.frag000066400000000000000000000002661360464450000214430ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.meshShaderBuiltins.mesh000066400000000000000000000036421360464450000217100ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.meshShaderPerViewBuiltins.mesh000066400000000000000000000030021360464450000232000ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.meshShaderPerViewUserDefined.mesh000066400000000000000000000046001360464450000236110ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.meshShaderPerView_Errors.mesh000066400000000000000000000014501360464450000230270ustar00rootroot00000000000000#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() { } glslang-8.13.3559/Test/spv.meshShaderRedeclBuiltins.mesh000066400000000000000000000043441360464450000230270ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.meshShaderRedeclPerViewBuiltins.mesh000066400000000000000000000041651360464450000243320ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.meshShaderSharedMem.mesh000066400000000000000000000013161360464450000217600ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.meshShaderTaskMem.mesh000066400000000000000000000012741360464450000214570ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.meshShaderUserDefined.mesh000066400000000000000000000024511360464450000223110ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.meshTaskShader.task000066400000000000000000000022311360464450000210200ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.multiStruct.comp000066400000000000000000000012201360464450000204420ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.multiStructFuncall.frag000066400000000000000000000005331360464450000217360ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.multiView.frag000066400000000000000000000001761360464450000200620ustar00rootroot00000000000000#version 450 #extension GL_EXT_multiview : enable out vec4 color; void main() { color = vec4(gl_ViewIndex, 0, 0, 0); } glslang-8.13.3559/Test/spv.multiviewPerViewAttributes.tesc000066400000000000000000000006241360464450000235100ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.multiviewPerViewAttributes.vert000066400000000000000000000002751360464450000235340ustar00rootroot00000000000000#version 450 #extension GL_NVX_multiview_per_view_attributes :require void main() { gl_ViewportMaskPerViewNV[0] = 1; gl_PositionPerViewNV[0] = gl_Position; } glslang-8.13.3559/Test/spv.newTexture.frag000066400000000000000000000040021360464450000202370ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.noBuiltInLoc.vert000066400000000000000000000004131360464450000204710ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.noDeadDecorations.vert000066400000000000000000000002231360464450000215140ustar00rootroot00000000000000#version 310 es precision mediump float; float func(float a) { return -a; a = a * -1.0; } void main() { gl_Position.x = func(0.0); } glslang-8.13.3559/Test/spv.noLocation.vert000066400000000000000000000015111360464450000202350ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.noWorkgroup.comp000066400000000000000000000001601360464450000204410ustar00rootroot00000000000000#version 450 layout(local_size_x_id = 18, local_size_y_id=10,local_size_z_id = 19) in; void main() { } glslang-8.13.3559/Test/spv.nonSquare.vert000066400000000000000000000010321360464450000201010ustar00rootroot00000000000000#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]); } glslang-8.13.3559/Test/spv.nonuniform.frag000066400000000000000000000042721360464450000202700ustar00rootroot00000000000000#version 450 #extension GL_EXT_nonuniform_qualifier : enable layout(location=0) nonuniformEXT in vec4 nu_inv4; nonuniformEXT float nu_gf; layout(location=1) in nonuniformEXT flat int nu_ii; layout(binding=0, input_attachment_index = 0) uniform subpassInput inputAttachmentDyn[]; layout(binding=1) uniform samplerBuffer uniformTexelBufferDyn[]; layout(binding=2, r32f) uniform imageBuffer storageTexelBufferDyn[]; layout(binding=3) uniform uname { float a; } uniformBuffer[]; layout(binding=4) buffer bname { float b; } storageBuffer[]; layout(binding=5) uniform sampler2D sampledImage[]; layout(binding=6, r32f) uniform image2D storageImage[]; layout(binding=7, input_attachment_index = 1) uniform subpassInput inputAttachment[]; layout(binding=8) uniform samplerBuffer uniformTexelBuffer[]; layout(binding=9, r32f) uniform imageBuffer storageTexelBuffer[]; nonuniformEXT int foo(nonuniformEXT int nupi, nonuniformEXT out int f) { return nupi; } void main() { nonuniformEXT int nu_li; int dyn_i; int a = foo(nu_li, nu_li); nu_li = nonuniformEXT(a) + nonuniformEXT(a * 2); float b; b = nu_inv4.x * nu_gf; b += subpassLoad(inputAttachmentDyn[dyn_i]).x; b += texelFetch(uniformTexelBufferDyn[dyn_i], 1).x; b += imageLoad(storageTexelBufferDyn[dyn_i], 1).x; b += uniformBuffer[nu_ii].a; b += storageBuffer[nu_ii].b; b += texture(sampledImage[nu_ii], vec2(0.5)).x; b += imageLoad(storageImage[nu_ii], ivec2(1)).x; b += subpassLoad(inputAttachment[nu_ii]).x; b += texelFetch(uniformTexelBuffer[nu_ii], 1).x; b += imageLoad(storageTexelBuffer[nu_ii], 1).x; nonuniformEXT ivec4 v; nonuniformEXT mat4 m; nonuniformEXT struct S { int a; } s; ivec4 uv; b += uniformBuffer[v.y].a; b += uniformBuffer[v[2]].a; b += uniformBuffer[uv[nu_ii]].a; b += uniformBuffer[int(m[2].z)].a; b += uniformBuffer[s.a].a; } glslang-8.13.3559/Test/spv.nonuniform2.frag000066400000000000000000000004431360464450000203460ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.offsets.frag000066400000000000000000000006311360464450000175420ustar00rootroot00000000000000#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() {}glslang-8.13.3559/Test/spv.paramMemory.frag000066400000000000000000000016761360464450000203740ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.perprimitiveNV.frag000066400000000000000000000004001360464450000210460ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.pp.line.frag000066400000000000000000000011241360464450000174340ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.precise.tesc000066400000000000000000000013561360464450000175470ustar00rootroot00000000000000#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]); } glslang-8.13.3559/Test/spv.precise.tese000066400000000000000000000020511360464450000175420ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.precision.frag000066400000000000000000000022471360464450000200710ustar00rootroot00000000000000#version 310 es precision mediump float; in lowp float lowfin; in mediump float mediumfin; in highp vec4 highfin; highp int uniform_high; mediump int uniform_medium; lowp int uniform_low; bvec2 ub2; out mediump vec4 mediumfout; highp float global_highp; lowp vec2 foo(mediump vec3 mv3) { return highfin.xy; } bool boolfun(bvec2 bv2) { return bv2 == bvec2(false, true); } struct S { highp float a; lowp float b; }; in S s; void main() { lowp int sum = uniform_medium + uniform_high; sum += uniform_high; sum += uniform_low; // test maxing precisions of args to get precision of builtin lowp float arg1 = 3.2; mediump float arg2 = 1023908.2; lowp float d = distance(lowfin, mediumfin); global_highp = length(highfin); highp vec4 local_highp = vec4(global_highp); mediumfout = vec4(sin(d)) + arg2 + local_highp; sum += 4 + ((ivec2(uniform_low) * ivec2(uniform_high) + ivec2((/* comma operator */uniform_low, uniform_high)))).x; mediumfout += vec4(sum); if (boolfun(ub2)) ++mediumfout; mediumfout *= s.a; mediumfout *= s.b; } glslang-8.13.3559/Test/spv.precisionNonESSamp.frag000066400000000000000000000010611360464450000216060ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.prepost.frag000066400000000000000000000013531360464450000175670ustar00rootroot00000000000000#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) } glslang-8.13.3559/Test/spv.privateVariableTypes.frag000066400000000000000000000006321360464450000222370ustar00rootroot00000000000000#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() { } glslang-8.13.3559/Test/spv.pushConstant.vert000066400000000000000000000004531360464450000206250ustar00rootroot00000000000000#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; } } glslang-8.13.3559/Test/spv.pushConstantAnon.vert000066400000000000000000000004351360464450000214410ustar00rootroot00000000000000#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; } } glslang-8.13.3559/Test/spv.qualifiers.vert000066400000000000000000000004471360464450000203030ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.queryL.frag000066400000000000000000000036541360464450000173620ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.rankShift.comp000066400000000000000000000004601360464450000200410ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.register.autoassign-2.frag000066400000000000000000000004501360464450000222270ustar00rootroot00000000000000 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)); } glslang-8.13.3559/Test/spv.register.autoassign.frag000066400000000000000000000031121360464450000220660ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/spv.register.autoassign.rangetest.frag000066400000000000000000000004521360464450000240650ustar00rootroot00000000000000 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)); } glslang-8.13.3559/Test/spv.register.noautoassign.frag000066400000000000000000000031121360464450000224230ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/spv.register.subpass.frag000066400000000000000000000007351360464450000214010ustar00rootroot00000000000000 // 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; } glslang-8.13.3559/Test/spv.rw.autoassign.frag000066400000000000000000000004101360464450000206700ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/spv.sample.frag000066400000000000000000000001771360464450000173570ustar00rootroot00000000000000#version 450 layout(location = 0) in sample vec4 samp; layout(location = 0) out vec4 color; void main() { color = samp; }glslang-8.13.3559/Test/spv.sampleId.frag000066400000000000000000000002701360464450000176260ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.sampleMaskOverrideCoverage.frag000066400000000000000000000002761360464450000233470ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.samplePosition.frag000066400000000000000000000003021360464450000210720ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.samplerlessTextureFunctions.frag000066400000000000000000000012621360464450000236760ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.scalarlayout.frag000066400000000000000000000016171360464450000206010ustar00rootroot00000000000000#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 }; void main() { } glslang-8.13.3559/Test/spv.scalarlayoutfloat16.frag000066400000000000000000000015251360464450000217740ustar00rootroot00000000000000#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() { } glslang-8.13.3559/Test/spv.separate.frag000066400000000000000000000070441360464450000177020ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.set.vert000066400000000000000000000003371360464450000167300ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.shaderBallot.comp000066400000000000000000000050001360464450000205070ustar00rootroot00000000000000#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); } }glslang-8.13.3559/Test/spv.shaderBallotAMD.comp000066400000000000000000000205231360464450000210400ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.shaderDrawParams.vert000066400000000000000000000005301360464450000213600ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.shaderFragMaskAMD.frag000066400000000000000000000015471360464450000213040ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.shaderGroupVote.comp000066400000000000000000000005211360464450000212270ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.shaderImageFootprint.frag000066400000000000000000000063451360464450000222170ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.shaderStencilExport.frag000066400000000000000000000002351360464450000220630ustar00rootroot00000000000000#version 450 core #extension GL_ARB_shader_stencil_export: enable out int gl_FragStencilRefARB; void main() { gl_FragStencilRefARB = 100; } glslang-8.13.3559/Test/spv.shadingRate.frag000066400000000000000000000004101360464450000203150ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.shiftOps.frag000066400000000000000000000003621360464450000176710ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.shortCircuit.frag000066400000000000000000000017271360464450000205620ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.simpleFunctionCall.frag000066400000000000000000000001771360464450000216710ustar00rootroot00000000000000#version 150 in vec4 BaseColor; vec4 foo() { return BaseColor; } void main() { gl_FragColor = foo(); } glslang-8.13.3559/Test/spv.simpleMat.vert000066400000000000000000000004631360464450000200700ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.smBuiltins.frag000066400000000000000000000002721360464450000202230ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.smBuiltins.vert000066400000000000000000000003621360464450000202640ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.sparseTexture.frag000066400000000000000000000072161360464450000207550ustar00rootroot00000000000000#version 450 #extension GL_ARB_sparse_texture2: enable uniform sampler2D s2D; uniform sampler3D s3D; uniform sampler2DShadow s2DShadow; uniform samplerCubeShadow sCubeShadow; uniform sampler2DArrayShadow s2DArrayShadow; uniform sampler2DRectShadow s2DRectShadow; uniform samplerCubeArrayShadow sCubeArrayShadow; uniform sampler2DMS s2DMS; uniform isamplerCube isCube; uniform isampler2DArray is2DArray; uniform usamplerCubeArray usCubeArray; uniform usampler2DRect us2DRect; layout(rgba32f) uniform image2D i2D; layout(rgba32i) uniform iimage3D ii3D; layout(rgba32f) uniform image2DMS i2DMS; in vec2 c2; in vec3 c3; in vec4 c4; in flat ivec2 ic2; in flat ivec3 ic3; in flat ivec2 offsets[4]; out vec4 outColor; void main() { int resident = 0; vec4 texel = vec4(0.0); ivec4 itexel = ivec4(0); uvec4 utexel = uvec4(0); resident |= sparseTextureARB(s2D, c2, texel); resident |= sparseTextureARB(s3D, c3, texel, 2.0); resident |= sparseTextureARB(isCube, c3, itexel); resident |= sparseTextureARB(s2DShadow, c3, texel.x); resident |= sparseTextureARB(sCubeArrayShadow, c4, 1.0, texel.x); resident |= sparseTextureLodARB(s2D, c2, 2.0, texel); resident |= sparseTextureLodARB(usCubeArray, c4, 1.0, utexel); resident |= sparseTextureLodARB(s2DShadow, c3, 2.0, texel.y); resident |= sparseTextureOffsetARB(s3D, c3, ivec3(2), texel, 2.0); resident |= sparseTextureOffsetARB(us2DRect, c2, ivec2(3), utexel); resident |= sparseTextureOffsetARB(s2DArrayShadow, c4, ivec2(5), texel.z); resident |= sparseTexelFetchARB(s2D, ivec2(c2), 2, texel); resident |= sparseTexelFetchARB(us2DRect, ivec2(c2), utexel); resident |= sparseTexelFetchARB(s2DMS, ivec2(c2), 4, texel); resident |= sparseTexelFetchOffsetARB(s3D, ivec3(c3), 2, ivec3(4), texel); resident |= sparseTexelFetchOffsetARB(us2DRect, ivec2(c2), ivec2(3), utexel); resident |= sparseTextureLodOffsetARB(s2D, c2, 2.0, ivec2(5), texel); resident |= sparseTextureLodOffsetARB(is2DArray, c3, 2.0, ivec2(6), itexel); resident |= sparseTextureLodOffsetARB(s2DShadow, c3, 2.0, ivec2(7), texel.z); resident |= sparseTextureGradARB(s3D, c3, c3, c3, texel); resident |= sparseTextureGradARB(sCubeShadow, c4, c3, c3, texel.y); resident |= sparseTextureGradARB(usCubeArray, c4, c3, c3, utexel); resident |= sparseTextureGradOffsetARB(s2D, c2, c2, c2, ivec2(5), texel); resident |= sparseTextureGradOffsetARB(s2DRectShadow, c3, c2, c2, ivec2(6), texel.w); resident |= sparseTextureGradOffsetARB(is2DArray, c3, c2, c2, ivec2(2), itexel); resident |= sparseTextureGatherARB(s2D, c2, texel); resident |= sparseTextureGatherARB(is2DArray, c3, itexel, 2); resident |= sparseTextureGatherARB(s2DArrayShadow, c3, 2.0, texel); resident |= sparseTextureGatherOffsetARB(s2D, c2, ivec2(4), texel); resident |= sparseTextureGatherOffsetARB(is2DArray, c3, ivec2(5), itexel, 2); resident |= sparseTextureGatherOffsetARB(s2DRectShadow, c2, 2.0, ivec2(7), texel); resident |= sparseTextureGatherOffsetsARB(s2D, c2, offsets, texel); resident |= sparseTextureGatherOffsetsARB(is2DArray, c3, offsets, itexel, 2); resident |= sparseTextureGatherOffsetsARB(s2DRectShadow, c2, 2.0, offsets, texel); resident |= sparseImageLoadARB(i2D, ic2, texel); resident |= sparseImageLoadARB(ii3D, ic3, itexel); resident |= sparseImageLoadARB(i2DMS, ic2, 3, texel); outColor = sparseTexelsResidentARB(resident) ? texel : vec4(itexel) + vec4(utexel); }glslang-8.13.3559/Test/spv.sparseTextureClamp.frag000066400000000000000000000057571360464450000217420ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.specConst.vert000066400000000000000000000001621360464450000200720ustar00rootroot00000000000000#version 450 layout(constant_id = 11) const int a = 8; void main() { gl_Position = vec4(1.0) / a; } glslang-8.13.3559/Test/spv.specConstArrayCheck.vert000077500000000000000000000004001360464450000220250ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.specConstant.comp000066400000000000000000000003741360464450000205600ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.specConstant.vert000066400000000000000000000024131360464450000205760ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.specConstantComposite.vert000066400000000000000000000060201360464450000224570ustar00rootroot00000000000000#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() {} glslang-8.13.3559/Test/spv.specConstantOperations.vert000066400000000000000000000070001360464450000226370ustar00rootroot00000000000000#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() {} glslang-8.13.3559/Test/spv.ssbo.autoassign.frag000066400000000000000000000005771360464450000212240ustar00rootroot00000000000000 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; } glslang-8.13.3559/Test/spv.ssboAlias.frag000066400000000000000000000003761360464450000200170ustar00rootroot00000000000000AppendStructuredBuffer 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); }glslang-8.13.3559/Test/spv.stereoViewRendering.tesc000066400000000000000000000010271360464450000221020ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.stereoViewRendering.vert000066400000000000000000000004551360464450000221300ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.storageBuffer.vert000066400000000000000000000002541360464450000207310ustar00rootroot00000000000000#version 450 #pragma use_storage_buffer uniform ub { vec4 a; } ubi; buffer bb { vec4 b; } bbi; void main() { gl_Position = ubi.a + bbi.b; } glslang-8.13.3559/Test/spv.structAssignment.frag000066400000000000000000000010651360464450000214500ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.structDeref.frag000066400000000000000000000022411360464450000203620ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.structure.frag000066400000000000000000000007101360464450000201270ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroup.frag000066400000000000000000000002761360464450000177440ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroup.geom000066400000000000000000000004671360464450000177560ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroup.tesc000066400000000000000000000004231360464450000177550ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroup.tese000066400000000000000000000004201360464450000177540ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroup.vert000066400000000000000000000003721360464450000200020ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupArithmetic.comp000066400000000000000000000500561360464450000217760ustar00rootroot00000000000000#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)))); } glslang-8.13.3559/Test/spv.subgroupBallot.comp000066400000000000000000000101401360464450000211100ustar00rootroot00000000000000#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)))); } } glslang-8.13.3559/Test/spv.subgroupBallotNeg.comp000066400000000000000000000020311360464450000215420ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/spv.subgroupBasic.comp000066400000000000000000000010411360464450000207140ustar00rootroot00000000000000#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(); } glslang-8.13.3559/Test/spv.subgroupClustered.comp000066400000000000000000000167371360464450000216470ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.subgroupClusteredNeg.comp000066400000000000000000000026171360464450000222710ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesArithmetic.comp000066400000000000000000001103121360464450000244740ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesArithmeticNeg.comp000066400000000000000000001103221360464450000251270ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesBallot.comp000066400000000000000000000110111360464450000236140ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesBallotNeg.comp000066400000000000000000000110211360464450000242470ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesClustered.comp000066400000000000000000000330651360464450000243460ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesClusteredNeg.comp000066400000000000000000000330751360464450000250010ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesPartitioned.comp000066400000000000000000000411061360464450000246710ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesPartitionedNeg.comp000066400000000000000000000411161360464450000253240ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesQuad.comp000066400000000000000000000212521360464450000233010ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesQuadNeg.comp000066400000000000000000000212621360464450000237340ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesShuffle.comp000066400000000000000000000120111360464450000237740ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesShuffleNeg.comp000066400000000000000000000120211360464450000244270ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesShuffleRelative.comp000066400000000000000000000121461360464450000255010ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesShuffleRelativeNeg.comp000066400000000000000000000121561360464450000261340ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.subgroupExtendedTypesVote.comp000066400000000000000000000052021360464450000233210ustar00rootroot00000000000000#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)); } } glslang-8.13.3559/Test/spv.subgroupExtendedTypesVoteNeg.comp000066400000000000000000000052121360464450000237540ustar00rootroot00000000000000#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)); } } glslang-8.13.3559/Test/spv.subgroupPartitioned.comp000066400000000000000000000670031360464450000221670ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.subgroupQuad.comp000066400000000000000000000144631360464450000206010ustar00rootroot00000000000000#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)))); } glslang-8.13.3559/Test/spv.subgroupShuffle.comp000066400000000000000000000071761360464450000213060ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.subgroupShuffleRelative.comp000066400000000000000000000073031360464450000227720ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.subgroupVote.comp000066400000000000000000000035771360464450000206300ustar00rootroot00000000000000#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))))); } } glslang-8.13.3559/Test/spv.subpass.frag000066400000000000000000000014271360464450000175550ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.switch.frag000066400000000000000000000042261360464450000173760ustar00rootroot00000000000000#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: } } glslang-8.13.3559/Test/spv.swizzle.frag000066400000000000000000000015501360464450000176010ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.swizzleInversion.frag000066400000000000000000000006551360464450000215030ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.targetOpenGL.vert000066400000000000000000000003321360464450000204630ustar00rootroot00000000000000#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() { } glslang-8.13.3559/Test/spv.targetVulkan.vert000066400000000000000000000002011360464450000205720ustar00rootroot00000000000000#version 450 layout(constant_id = 3) const int a = 2; layout(push_constant) uniform pc { float f; }; void main() { } glslang-8.13.3559/Test/spv.test.frag000066400000000000000000000006011360464450000170450ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.test.vert000066400000000000000000000002571360464450000171150ustar00rootroot00000000000000#version 140 in mat4 transform; attribute vec4 position; in vec2 uv_in; out vec2 uv; void main() { uv = uv_in; gl_Position = transform * position; } glslang-8.13.3559/Test/spv.texture.frag000066400000000000000000000052771360464450000176040ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.texture.sampler.transform.frag000066400000000000000000000002501360464450000232420ustar00rootroot00000000000000#version 440 uniform sampler smp; uniform texture2D tex; in vec2 coord; out vec4 color; void main() { color = texture(sampler2D(tex, smp), coord); } glslang-8.13.3559/Test/spv.texture.vert000066400000000000000000000024731360464450000176400ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.textureBuffer.vert000066400000000000000000000005161360464450000207660ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.textureGatherBiasLod.frag000066400000000000000000000060131360464450000221620ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.types.frag000066400000000000000000000027111360464450000172360ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.uint.frag000066400000000000000000000046271360464450000170610ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.uniformArray.frag000066400000000000000000000004011360464450000205420ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.unit1.frag000066400000000000000000000002261360464450000171310ustar00rootroot00000000000000#version 460 float f; float a1; float foo(); out float cout; void main() { f = 10; float g = foo(); f += g; f += gl_FragCoord.y; }glslang-8.13.3559/Test/spv.unit2.frag000066400000000000000000000004031360464450000171270ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.unit3.frag000066400000000000000000000002571360464450000171370ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.variableArrayIndex.frag000066400000000000000000000016001360464450000216420ustar00rootroot00000000000000#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]); } glslang-8.13.3559/Test/spv.varyingArray.frag000066400000000000000000000005221360464450000205460ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.varyingArrayIndirect.frag000066400000000000000000000005661360464450000222400ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/spv.vecMatConstruct.frag000066400000000000000000000003171360464450000212160ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.viewportArray2.tesc000066400000000000000000000004621360464450000210520ustar00rootroot00000000000000#version 450 #extension GL_NV_viewport_array2 :require layout(vertices = 4) out; out gl_PerVertex { int gl_ViewportMask[2]; } gl_out[4]; layout (viewport_relative) out highp int gl_Layer; void main() { gl_out[gl_InvocationID].gl_ViewportMask[0] = 1; gl_ViewportIndex = 2; } glslang-8.13.3559/Test/spv.viewportArray2.vert000066400000000000000000000004011360464450000210650ustar00rootroot00000000000000#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; }glslang-8.13.3559/Test/spv.voidFunction.frag000066400000000000000000000004601360464450000205400ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.volatileAtomic.comp000066400000000000000000000002071360464450000210630ustar00rootroot00000000000000#version 450 core layout(set=0, binding=3) volatile buffer D { uint d[]; } d; void main() { atomicExchange(d.d[0], 0); } glslang-8.13.3559/Test/spv.vulkan100.subgroupArithmetic.comp000066400000000000000000000500561360464450000235160ustar00rootroot00000000000000#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)))); } glslang-8.13.3559/Test/spv.vulkan100.subgroupPartitioned.comp000066400000000000000000000670031360464450000237070ustar00rootroot00000000000000#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)); } glslang-8.13.3559/Test/spv.vulkan110.int16.frag000066400000000000000000000143221360464450000205550ustar00rootroot00000000000000#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); glslang-8.13.3559/Test/spv.vulkan110.storageBuffer.vert000066400000000000000000000002541360464450000224520ustar00rootroot00000000000000#version 450 #pragma use_storage_buffer uniform ub { vec4 a; } ubi; buffer bb { vec4 b; } bbi; void main() { gl_Position = ubi.a + bbi.b; } glslang-8.13.3559/Test/spv.while-continue-break.vert000066400000000000000000000003661360464450000221530ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.while-simple.vert000066400000000000000000000001131360464450000205240ustar00rootroot00000000000000#version 310 es void main() { int i = 0; while (i<10) { i++; } } glslang-8.13.3559/Test/spv.whileLoop.frag000066400000000000000000000003231360464450000200310ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/spv.xfb.vert000066400000000000000000000007341360464450000167150ustar00rootroot00000000000000#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() { }glslang-8.13.3559/Test/spv.xfb2.vert000066400000000000000000000005201360464450000167700ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.xfb3.vert000066400000000000000000000005501360464450000167740ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/spv.xfbOffsetOnBlockMembersAssignment.vert000066400000000000000000000003361360464450000246760ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.xfbOffsetOnStructMembersAssignment.vert000066400000000000000000000006001360464450000251220ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert000066400000000000000000000010451360464450000257310ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/spv.xfbStrideJustOnce.vert000066400000000000000000000003371360464450000215420ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/stringToDouble.vert000066400000000000000000000103351360464450000202710ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/structAssignment.frag000066400000000000000000000010741360464450000206410ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/structDeref.frag000066400000000000000000000023221360464450000175530ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/structure.frag000066400000000000000000000007411360464450000173240ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/switch.frag000066400000000000000000000055101360464450000165640ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/swizzle.frag000066400000000000000000000015771360464450000170030ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/syntaxError.frag000066400000000000000000000003461360464450000176250ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/test.frag000066400000000000000000000006361360464450000162460ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/texture.frag000066400000000000000000000053631360464450000167710ustar00rootroot00000000000000#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); }glslang-8.13.3559/Test/tokenLength.vert000066400000000000000000001337611360464450000176200ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/tokenPaste.vert000066400000000000000000000060041360464450000174400ustar00rootroot00000000000000#version 450 // side test verifies multiple rounds of argument expansion #define bear SecondExpansion #define mmmB bear #define mmmA(a) a int mmmA(mmmB); // mmmB -> bear, and then in mmmA(), bear -> SecondExpansion // pasting skips the first round of expansion #define mmcatmmdog PostPasteExpansion #define mmcat cat #define mmdog dog #define mmp(a,b) a## b int mmp(mmcat, mmdog); // mmcat/mmdog not expanded, mmcatmmdog -> PostPasteExpansion // multi-token pre #define mmtokpastepre(a) a##27 mmtokpastepre(float foo); // should declare "float foo27;" // multi-token post #define mmtokpastepost(a) uni ##a mmtokpastepost(form float foo155); // should declare "uniform float foo155;" // non-first argument #define foo ShouldntExpandToThis #define semi ; #define bothpaste(a,b) a##b float bothpaste(foo, 719); // should declare "float foo719;" #define secpaste(a,b) a bar ## b secpaste(uniform float, foo semi) // should declare "uniform float barfoo;" // no args #define noArg fl##oat noArg argless; // bad location #define bad1 ## float bad1 dc1; #define bad2 float ## bad2 dc2; // multiple ## #define multiPaste(a, b, c) a##or##b flo##at foo##c multiPaste(unif, m, 875); // too long #define simplePaste(a,b) a##b // 1020 + 5 characters float simplePaste(ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345, 12345); // non-identifiers int a = simplePaste(11,12); // operators #define MAKE_OP(L, R) L ## R const int aop = 10; const int bop = 4; int cop = aop MAKE_OP(<, <) bop; bool dop = aop MAKE_OP(!,=) bop; #define MAKE_OP3(L, M, R) L ## M ## R void foo() { int e = 16; e MAKE_OP3(>,>,=) 2; // recovery from bad op bool f = e MAKE_OP(>,!) 5; } // arguments: should make 'uniform int argPaste2;' #define M_NEST(q) int q #define M_OUTER(p) M_NEST(p##2) uniform M_OUTER(argPaste); // should make 'uniform int argPaste20suff;' #define M_NEST2(q) int q ## suff #define M_OUTER2(p) M_NEST2(p ## 20) uniform M_OUTER2(argPaste); #define rec(x)## rec(rec()) #define bax(bay) #define baz bax(/##) baz glslang-8.13.3559/Test/types.frag000066400000000000000000000030201360464450000164210ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/uint.frag000066400000000000000000000051131360464450000162410ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/uniformArray.frag000066400000000000000000000004161360464450000177410ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/validate-shaders.sh000077500000000000000000000205471360464450000202100ustar00rootroot00000000000000#!/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 glslang-8.13.3559/Test/variableArrayIndex.frag000066400000000000000000000016071360464450000210420ustar00rootroot00000000000000#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]); } glslang-8.13.3559/Test/varyingArray.frag000066400000000000000000000005631360464450000177440ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/varyingArrayIndirect.frag000066400000000000000000000006331360464450000214240ustar00rootroot00000000000000#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]; } glslang-8.13.3559/Test/versionsClean.frag000066400000000000000000000033561360464450000201040ustar00rootroot00000000000000// //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; } glslang-8.13.3559/Test/versionsClean.vert000066400000000000000000000033221360464450000201360ustar00rootroot00000000000000// //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); } glslang-8.13.3559/Test/versionsErrors.frag000066400000000000000000000034071360464450000203330ustar00rootroot00000000000000// //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; } glslang-8.13.3559/Test/versionsErrors.vert000066400000000000000000000034071360464450000203740ustar00rootroot00000000000000// //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; } glslang-8.13.3559/Test/voidFunction.frag000066400000000000000000000004771360464450000177410ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/vulkan.ast.vert000066400000000000000000000022071360464450000174120ustar00rootroot00000000000000#version 450 layout(constant_id = 200) const float scf1 = 1.0; layout(constant_id = 201) const bool scbt = true; layout(constant_id = 202) const int sci2 = 2; void main() { bool(scf1); // not a spec-const bool(scbt); // spec-const bool(sci2); // spec-const float(scf1); // not a spec-const float(scbt); // not a spec-const float(sci2); // not a spec-const int(scf1); // not a spec-const int(scbt); // spec-const int(sci2); // spec-const scf1 * scf1; // not a spec-const scbt || scbt; // spec-const sci2 * sci2; // spec-const scf1 + sci2; // implicit conversion not a spec-const -scf1; // not a spec-const !scbt; // spec-const -sci2; // spec-const scf1 > scf1; // not a spec-const sci2 > sci2; // spec-const scf1 != scf1; // not a spec-const scbt != scbt; // spec-const sci2 != sci2; // spec-const ivec2(sci2, sci2); // spec-const ivec2[2](ivec2(sci2, sci2), ivec2(sci2, sci2)); // not a spec-const vec2(scf1, scf1); // not spec-const vec2[2](vec2(scf1, scf1), vec2(scf1, scf1)); // not a spec-const } glslang-8.13.3559/Test/vulkan.comp000066400000000000000000000004671360464450000166100ustar00rootroot00000000000000#version 450 layout(local_size_x_id = 18, local_size_z_id = 19) in; layout(local_size_x = 32, local_size_y = 32) in; layout(local_size_z_id = 14) in; // ERROR, can't change this void main() { gl_WorkGroupSize; } layout(local_size_y_id = 19) in; // ERROR, already used: TODO not yet reported glslang-8.13.3559/Test/vulkan.frag000066400000000000000000000070261360464450000165670ustar00rootroot00000000000000#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(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); } glslang-8.13.3559/Test/vulkan.vert000066400000000000000000000062241360464450000166270ustar00rootroot00000000000000#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 glslang-8.13.3559/Test/web.array.frag000066400000000000000000000005351360464450000171570ustar00rootroot00000000000000#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()); } glslang-8.13.3559/Test/web.basic.vert000066400000000000000000000004251360464450000171610ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/web.builtins.frag000066400000000000000000000027021360464450000176700ustar00rootroot00000000000000#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) } glslang-8.13.3559/Test/web.builtins.vert000066400000000000000000000004061360464450000177300ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/web.comp000066400000000000000000000023601360464450000160570ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/web.controlFlow.frag000066400000000000000000000027641360464450000203570ustar00rootroot00000000000000#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; } glslang-8.13.3559/Test/web.operations.frag000066400000000000000000000015211360464450000202200ustar00rootroot00000000000000#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 } glslang-8.13.3559/Test/web.runtests000077500000000000000000000013241360464450000170120ustar00rootroot00000000000000#!/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 glslang-8.13.3559/Test/web.separate.frag000066400000000000000000000043721360464450000176500ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/web.testlist000066400000000000000000000002271360464450000167740ustar00rootroot00000000000000web.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 glslang-8.13.3559/Test/web.texture.frag000066400000000000000000000044051360464450000175410ustar00rootroot00000000000000#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); } glslang-8.13.3559/Test/whileLoop.frag000066400000000000000000000003421360464450000172230ustar00rootroot00000000000000#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; } glslang-8.13.3559/WORKSPACE000066400000000000000000000021071360464450000147630ustar00rootroot00000000000000workspace(name = "org_khronos_glslang") load( "@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", ) http_archive( name = "com_google_googletest", sha256 = "ef9e2e12e7bf115ee48b427ae171fc869eeaf1b532c0fcfd982f6a353d2471b4", strip_prefix = "googletest-37ae1fc5e6be26f367d76c078beabd7024fed53a", urls = ["https://github.com/google/googletest/archive/37ae1fc5e6be26f367d76c078beabd7024fed53a.zip"], # 2018-07-16 ) 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"], ) glslang-8.13.3559/_config.yml000066400000000000000000000000321360464450000156240ustar00rootroot00000000000000theme: jekyll-theme-merlotglslang-8.13.3559/build_overrides/000077500000000000000000000000001360464450000166635ustar00rootroot00000000000000glslang-8.13.3559/build_overrides/glslang.gni000066400000000000000000000032661360464450000210200ustar00rootroot00000000000000# 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 = "//Externals/spirv-tools" glslang-8.13.3559/glslang/000077500000000000000000000000001360464450000151315ustar00rootroot00000000000000glslang-8.13.3559/glslang/CMakeLists.txt000066400000000000000000000103521360464450000176720ustar00rootroot00000000000000if(WIN32) add_subdirectory(OSDependent/Windows) elseif(UNIX) add_subdirectory(OSDependent/Unix) else(WIN32) message("unknown platform") endif(WIN32) if(EMSCRIPTEN OR ENABLE_GLSLANG_WEB) add_subdirectory(OSDependent/Web) endif(EMSCRIPTEN OR ENABLE_GLSLANG_WEB) set(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/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 GenericCodeGen/CodeGen.cpp GenericCodeGen/Link.cpp) set(HEADERS Public/ShaderLang.h Include/arrays.h Include/BaseTypes.h Include/Common.h Include/ConstantUnion.h Include/InfoSink.h Include/InitializeGlobals.h Include/intermediate.h Include/PoolAlloc.h Include/ResourceLimits.h Include/revision.h Include/ShHandle.h Include/Types.h 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) glslang_pch(SOURCES MachineIndependent/pch.cpp) add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS}) set_property(TARGET glslang PROPERTY FOLDER glslang) set_property(TARGET glslang PROPERTY POSITION_INDEPENDENT_CODE ON) target_link_libraries(glslang OGLCompiler OSDependent) target_include_directories(glslang PUBLIC $ $) if(WIN32 AND BUILD_SHARED_LIBS) set_target_properties(glslang PROPERTIES PREFIX "") endif() if(ENABLE_HLSL) target_link_libraries(glslang HLSL) endif() if(WIN32) source_group("Public" REGULAR_EXPRESSION "Public/*") 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/*") endif(WIN32) 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 EXPORT glslangTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() install(EXPORT glslangTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) if(ENABLE_GLSLANG_INSTALL) foreach(file ${HEADERS}) get_filename_component(dir ${file} DIRECTORY) install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/${dir}) endforeach() endif(ENABLE_GLSLANG_INSTALL) glslang-8.13.3559/glslang/GenericCodeGen/000077500000000000000000000000001360464450000177325ustar00rootroot00000000000000glslang-8.13.3559/glslang/GenericCodeGen/CodeGen.cpp000066400000000000000000000052131360464450000217430ustar00rootroot00000000000000// // 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; } glslang-8.13.3559/glslang/GenericCodeGen/Link.cpp000066400000000000000000000054241360464450000213400ustar00rootroot00000000000000// // 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; } glslang-8.13.3559/glslang/Include/000077500000000000000000000000001360464450000165145ustar00rootroot00000000000000glslang-8.13.3559/glslang/Include/BaseTypes.h000066400000000000000000000461221360464450000205710ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-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 _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, EbtAccStructNV, EbtReference, // 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 EvqPayloadNV, EvqPayloadInNV, EvqHitAttrNV, EvqCallableDataNV, EvqCallableDataInNV, // 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, EbvFragSizeEXT, EbvFragInvocationCountEXT, EbvViewportMaskNV, EbvSecondaryPositionNV, EbvSecondaryViewportMaskNV, EbvPositionPerViewNV, EbvViewportMaskPerViewNV, EbvFragFullyCoveredNV, EbvFragmentSizeNV, EbvInvocationsPerPixelNV, // ray tracing EbvLaunchIdNV, EbvLaunchSizeNV, EbvInstanceCustomIndexNV, EbvWorldRayOriginNV, EbvWorldRayDirectionNV, EbvObjectRayOriginNV, EbvObjectRayDirectionNV, EbvRayTminNV, EbvRayTmaxNV, EbvHitTNV, EbvHitKindNV, EbvObjectToWorldNV, EbvWorldToObjectNV, EbvIncomingRayFlagsNV, // 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; 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 EvqPayloadNV: return "rayPayloadNV"; break; case EvqPayloadInNV: return "rayPayloadInNV"; break; case EvqHitAttrNV: return "hitAttributeNV"; break; case EvqCallableDataNV: return "callableDataNV"; break; case EvqCallableDataInNV: 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 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 EbvLaunchIdNV: return "LaunchIdNV"; case EbvLaunchSizeNV: return "LaunchSizeNV"; case EbvInstanceCustomIndexNV: return "InstanceCustomIndexNV"; case EbvWorldRayOriginNV: return "WorldRayOriginNV"; case EbvWorldRayDirectionNV: return "WorldRayDirectionNV"; case EbvObjectRayOriginNV: return "ObjectRayOriginNV"; case EbvObjectRayDirectionNV: return "ObjectRayDirectionNV"; case EbvRayTminNV: return "ObjectRayTminNV"; case EbvRayTmaxNV: return "ObjectRayTmaxNV"; case EbvHitTNV: return "HitTNV"; case EbvHitKindNV: return "HitKindNV"; case EbvIncomingRayFlagsNV: return "IncomingRayFlagsNV"; case EbvObjectToWorldNV: return "ObjectToWorldNV"; case EbvWorldToObjectNV: return "WorldToObjectNV"; 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"; 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_ glslang-8.13.3559/glslang/Include/Common.h000066400000000000000000000217461360464450000201270ustar00rootroot00000000000000// // 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_ #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*/) || defined MINGW_HAS_SECURE_API #include #ifndef snprintf #define snprintf sprintf_s #endif #define safe_vsprintf(buf,max,format,args) vsnprintf_s((buf), (max), (max), (format), (args)) #elif defined (solaris) #define safe_vsprintf(buf,max,format,args) vsnprintf((buf), (max), (format), (args)) #include #define UINT_PTR uintptr_t #else #define safe_vsprintf(buf,max,format,args) vsnprintf((buf), (max), (format), (args)) #include #define UINT_PTR uintptr_t #endif #if defined(_MSC_VER) && _MSC_VER < 1800 #include inline long long int strtoll (const char* str, char** endptr, int base) { return _strtoi64(str, endptr, base); } inline unsigned long long int strtoull (const char* str, char** endptr, int base) { return _strtoui64(str, endptr, base); } inline long long int atoll (const char* str) { return strtoll(str, NULL, 10); } #endif #if defined(_MSC_VER) #define strdup _strdup #endif /* windows only pragma */ #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 #include #include #include #include #include #include #include #include #include #include #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 > > { }; // // 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 || defined MINGW_HAS_SECURE_API inline const TString String(const int i, const int base = 10) { char text[16]; // 32 bit ints are at most 10 digits in base 10 _itoa_s(i, text, sizeof(text), base); return text; } #else inline const TString String(const int i, const int /*base*/ = 10) { char text[16]; // 32 bit ints are at most 10 digits in base 10 // 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)); } } // end namespace glslang #endif // _COMMON_INCLUDED_ glslang-8.13.3559/glslang/Include/ConstantUnion.h000066400000000000000000001072261360464450000214770ustar00rootroot00000000000000// // 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) : unionArray(a.unionArray) { } TConstUnionArray(const TConstUnionArray& a, int start, int size) { unionArray = new TConstUnionVector(size); for (int i = 0; i < size; ++i) (*unionArray)[i] = a[start + i]; } // Use this constructor for a smear operation TConstUnionArray(int size, const TConstUnion& val) { unionArray = new TConstUnionVector(size, val); } int size() const { return unionArray ? (int)unionArray->size() : 0; } TConstUnion& operator[](size_t index) { return (*unionArray)[index]; } const TConstUnion& operator[](size_t index) const { return (*unionArray)[index]; } bool operator==(const TConstUnionArray& rhs) const { // this includes the case that both are unallocated if (unionArray == rhs.unionArray) return true; if (! unionArray || ! rhs.unionArray) return false; return *unionArray == *rhs.unionArray; } bool operator!=(const TConstUnionArray& rhs) const { return ! operator==(rhs); } double dot(const TConstUnionArray& rhs) { assert(rhs.unionArray->size() == unionArray->size()); double sum = 0.0; for (size_t comp = 0; comp < unionArray->size(); ++comp) sum += (*this)[comp].getDConst() * rhs[comp].getDConst(); return sum; } bool empty() const { return unionArray == nullptr; } protected: typedef TVector TConstUnionVector; TConstUnionVector* unionArray; }; } // end namespace glslang #endif // _CONSTANT_UNION_INCLUDED_ glslang-8.13.3559/glslang/Include/InfoSink.h000066400000000000000000000123631360464450000204120ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/glslang/Include/InitializeGlobals.h000066400000000000000000000034101360464450000222700ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/glslang/Include/PoolAlloc.h000066400000000000000000000264661360464450000205670ustar00rootroot00000000000000// // 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; } protected: pool_allocator& operator=(const pool_allocator&) { return *this; } TPoolAllocator& allocator; }; } // end namespace glslang #endif // _POOLALLOC_INCLUDED_ glslang-8.13.3559/glslang/Include/ResourceLimits.h000066400000000000000000000123061360464450000216400ustar00rootroot00000000000000// // 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; TLimits limits; }; #endif // _RESOURCE_LIMITS_INCLUDED_ glslang-8.13.3559/glslang/Include/ShHandle.h000066400000000000000000000141701360464450000203560ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/glslang/Include/Types.h000066400000000000000000002526621360464450000200060ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-2016 LunarG, Inc. // Copyright (C) 2015-2016 Google, Inc. // Copyright (C) 2017 ARM Limited. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright 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 namespace glslang { 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, ElfIntGuard, // to help with comparisons // Uint image ElfRgba32ui, ElfRgba16ui, ElfRgba8ui, ElfR32ui, ElfEsUintGuard, // to help with comparisons ElfRg32ui, ElfRg16ui, ElfRgb10a2ui, ElfRg8ui, ElfR16ui, ElfR8ui, 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, }; class TQualifier { public: static const int layoutNotSet = -1; void clear() { precision = EpqNone; invariant = false; makeTemporary(); declaredBuiltIn = EbvNone; #ifndef GLSLANG_WEB noContraction = false; #endif } // drop qualifiers that don't belong in a temporary variable void makeTemporary() { semanticName = nullptr; storage = EvqTemporary; builtIn = EbvNone; clearInterstage(); clearMemory(); specConstant = false; nonUniform = false; clearLayout(); } 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; 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; #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; } #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 nonprivate : 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 subgroupcoherent || workgroupcoherent || queuefamilycoherent || devicecoherent || coherent || volatil || restrict || readonly || writeonly || nonprivate; } bool isMemoryQualifierImageAndSSBOOnly() const { return 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; } #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 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; } } #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; } // 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; layoutShaderRecordNV = 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() || isShaderRecordNV() || 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 layoutShaderRecordNV; #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 isShaderRecordNV() 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 isShaderRecordNV() const { return layoutShaderRecordNV; } bool hasBufferReference() const { return layoutBufferReference; } bool hasBufferReferenceAlign() const { return layoutBufferReferenceAlign != layoutBufferReferenceAlignEnd; } bool isNonUniform() const { return nonUniform; } #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"; 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 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; 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; #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; #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; } 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; } // "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) { 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) { 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) { 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) { 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) { 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) { 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) { 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; 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; } 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 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 == EbtAccStructNV #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; } #else bool isAtomic() const { return basicType == EbtAtomicUint; } bool isCoopMat() const { return coopmat; } bool isReference() const { return getBasicType() == EbtReference; } #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 EbtAccStructNV: return "accelerationStructureNV"; case EbtReference: return "reference"; #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() 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 (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.layoutShaderRecordNV) 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.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"); appendStr(" "); appendStr(getStorageQualifierString()); if (isArray()) { for(int i = 0; i < (int)arraySizes->getNumDims(); ++i) { int size = arraySizes->getDimSize(i); if (size == UnsizedArraySize && i == 0 && arraySizes->isVariablyIndexed()) appendStr(" runtime-sized array of"); else { if (size == UnsizedArraySize) { appendStr(" unsized"); if (i == 0) { appendStr(" "); appendInt(arraySizes->getImplicitSize()); } } else { appendStr(" "); appendInt(arraySizes->getDimSize(i)); } appendStr("-element array of"); } } } if (isParameterized()) { appendStr("<"); for(int i = 0; i < (int)typeParameters->getNumDims(); ++i) { appendInt(typeParameters->getDimSize(i)); if (i != (int)typeParameters->getNumDims() - 1) appendStr(", "); } appendStr(">"); } if (qualifier.precision != EpqNone) { appendStr(" "); appendStr(getPrecisionQualifierString()); } if (isMatrix()) { appendStr(" "); appendInt(matrixCols); appendStr("X"); appendInt(matrixRows); appendStr(" matrix of"); } else if (isVector()) { appendStr(" "); appendInt(vectorSize); appendStr("-component vector of"); } 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 += ';' ; } // 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." // bool sameStructType(const TType& right) const { // Most commonly, they are both nullptr, or the same pointer to the same actual structure if ((!isStruct() && !right.isStruct()) || (isStruct() && right.isStruct() && structure == right.structure)) return true; // Both being nullptr was caught above, now they both have to be structures of the same number of elements if (!isStruct() || !right.isStruct() || structure->size() != right.structure->size()) return false; // Structure names have to match if (*typeName != *right.typeName) return false; // Compare the names and types of all the members, which have to match for (unsigned int i = 0; i < structure->size(); ++i) { if ((*structure)[i].type->getFieldName() != (*right.structure)[i].type->getFieldName()) return false; if (*(*structure)[i].type != *(*right.structure)[i].type) 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 bool sameElementType(const TType& right) const { return basicType == right.basicType && sameElementShape(right); } // 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)); } // See if two type's elements match in all ways except basic type bool sameElementShape(const TType& right) const { return sampler == right.sampler && vectorSize == right.vectorSize && matrixCols == right.matrixCols && matrixRows == right.matrixRows && vector1 == right.vector1 && isCoopMat() == right.isCoopMat() && sameStructType(right) && 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 { return sameElementType(right) && sameArrayness(right) && sameTypeParameters(right); } 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; } 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); 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 }; } // end namespace glslang #endif // _TYPES_INCLUDED_ glslang-8.13.3559/glslang/Include/arrays.h000066400000000000000000000260551360464450000201760ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/glslang/Include/intermediate.h000066400000000000000000001572771360464450000213620ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-2016 LunarG, Inc. // Copyright (C) 2017 ARM Limited. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright 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 // // 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, // // 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, 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, // // Branch // EOpKill, // Fragment only EOpReturn, EOpBreak, EOpContinue, EOpCase, EOpDefault, EOpDemote, // Fragment only // // 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, 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, EOpReportIntersectionNV, EOpIgnoreIntersectionNV, EOpTerminateRayNV, EOpExecuteCallableNV, EOpWritePackedPrimitiveIndices4x8NV, // // 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 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() const { return type.getCompleteString(); } 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; } 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(int i, const TString& n, const TType& t) : TIntermTyped(t), id(i), #ifndef GLSLANG_WEB flattenSubset(-1), #endif constSubtree(nullptr) { name = n; } virtual int getId() const { return id; } virtual void changeId(int 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; } int getFlattenSubset() const { return flattenSubset; } // -1 means full object #endif // This is meant for cases where a node has already been constructed, and // later on, it becomes necessary to switch to a different symbol. virtual void switchId(int newId) { id = newId; } protected: int id; // the unique id of the symbol this node represents #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(); protected: TIntermTyped* operand; }; 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 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; } 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; }; // // 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 TIntermNode* getTrueBlock() const { return trueBlock; } virtual TIntermNode* getFalseBlock() const { return falseBlock; } virtual TIntermSelection* getAsSelectionNode() { return this; } virtual const TIntermSelection* getAsSelectionNode() const { return this; } void setNoShortCircuit() { shortCircuit = false; } bool getShortCircuit() const { return shortCircuit; } void setFlatten() { flatten = true; } void setDontFlatten() { dontFlatten = true; } bool getFlatten() const { return flatten; } bool getDontFlatten() const { return dontFlatten; } protected: TIntermTyped* condition; TIntermNode* trueBlock; TIntermNode* falseBlock; bool shortCircuit; // normally all if-then-else and all GLSL ?: short-circuit, but HLSL ?: does not bool flatten; // true if flatten requested bool dontFlatten; // true if requested to not flatten }; // // 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 glslang-8.13.3559/glslang/Include/revision.h000066400000000000000000000001331360464450000205200ustar00rootroot00000000000000// This header is generated by the make-revision script. #define GLSLANG_PATCH_LEVEL 3559 glslang-8.13.3559/glslang/Include/revision.template000066400000000000000000000011621360464450000221070ustar00rootroot00000000000000// The file revision.h should be updated to the latest version, somehow, on // check-in, if glslang has changed. // // revision.template is the source for revision.h when using SubWCRev as the // method of updating revision.h. You don't have to do it this way, the // requirement is only that revision.h gets updated. // // revision.h is under source control so that not all consumers of glslang // source have to figure out how to create revision.h just to get a build // going. However, if it is not updated, it can be a version behind. #define GLSLANG_REVISION "$WCREV$" #define GLSLANG_DATE "$WCDATE$" glslang-8.13.3559/glslang/MachineIndependent/000077500000000000000000000000001360464450000206535ustar00rootroot00000000000000glslang-8.13.3559/glslang/MachineIndependent/Constant.cpp000066400000000000000000001702741360464450000231630ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-2013 LunarG, Inc. // Copyright (C) 2017 ARM Limited. // 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. // #include "localintermediate.h" #include #include #include #include namespace { using namespace glslang; typedef union { double d; int i[2]; } DoubleIntUnion; // Some helper functions bool isNan(double x) { DoubleIntUnion u; // tough to find a platform independent library function, do it directly u.d = x; int bitPatternL = u.i[0]; int bitPatternH = u.i[1]; return (bitPatternH & 0x7ff80000) == 0x7ff80000 && ((bitPatternH & 0xFFFFF) != 0 || bitPatternL != 0); } bool isInf(double x) { DoubleIntUnion u; // tough to find a platform independent library function, do it directly u.d = x; int bitPatternL = u.i[0]; int bitPatternH = u.i[1]; return (bitPatternH & 0x7ff00000) == 0x7ff00000 && (bitPatternH & 0xFFFFF) == 0 && bitPatternL == 0; } 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; case EbtInt: newConstArray[i].setIConst(-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: { const double inv_log2_e = 0.69314718055994530941723212145818; newConstArray[i].setDConst(exp(unionArray[i].getDConst() * inv_log2_e)); break; } case EOpLog2: { const double log2_e = 1.4426950408889634073599246810019; newConstArray[i].setDConst(log2_e * log(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(isInf(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 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 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 glslang-8.13.3559/glslang/MachineIndependent/InfoSink.cpp000066400000000000000000000061061360464450000231020ustar00rootroot00000000000000// // 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 glslang-8.13.3559/glslang/MachineIndependent/Initialize.cpp000066400000000000000000015617271360464450000235030ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-2016 LunarG, Inc. // 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. // // // 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 ClassV1FOCV = (ArgClass)(ClassV1 | ClassFO | ClassCV); const ArgClass ClassV1CV = (ArgClass)(ClassV1 | 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* Es310Desktop430 = nullptr; #else const Versioning Es300Desktop130Version[] = { { EEsProfile, 0, 300, 0, nullptr }, { EDesktopProfile, 0, 130, 0, nullptr }, { EBadProfile } }; const Versioning* Es300Desktop130 = &Es300Desktop130Version[0]; const Versioning Es310Desktop430Version[] = { { EEsProfile, 0, 310, 0, nullptr }, { EDesktopProfile, 0, 430, 0, nullptr }, { EBadProfile } }; const Versioning* Es310Desktop430 = &Es310Desktop430Version[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, Es310Desktop430 }, { EOpAtomicMin, "atomicMin", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 }, { EOpAtomicMax, "atomicMax", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 }, { EOpAtomicAnd, "atomicAnd", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 }, { EOpAtomicOr, "atomicOr", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 }, { EOpAtomicXor, "atomicXor", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 }, { EOpAtomicExchange, "atomicExchange", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 }, { EOpAtomicCompSwap, "atomicCompSwap", 3, TypeIU, ClassV1FIOCV, Es310Desktop430 }, #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 }, { 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 */) { #ifdef GLSLANG_WEB // 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 && 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"; #ifndef GLSLANG_WEB prefixes[EbtFloat16] = "f16"; prefixes[EbtInt8] = "i8"; prefixes[EbtUint8] = "u8"; prefixes[EbtInt16] = "i16"; prefixes[EbtUint16] = "u16"; #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 dimMap[Esd1D] = 1; 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; #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);" ); 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 >= 400) { 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 >= 450) { 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(double);" "i64vec2 doubleBitsToInt64(dvec2);" "i64vec3 doubleBitsToInt64(dvec3);" "i64vec4 doubleBitsToInt64(dvec4);" "uint64_t doubleBitsToUint64(double);" "u64vec2 doubleBitsToUint64(dvec2);" "u64vec3 doubleBitsToUint64(dvec3);" "u64vec4 doubleBitsToUint64(dvec4);" "double int64BitsToDouble(int64_t);" "dvec2 int64BitsToDouble(i64vec2);" "dvec3 int64BitsToDouble(i64vec3);" "dvec4 int64BitsToDouble(i64vec4);" "double uint64BitsToDouble(uint64_t);" "dvec2 uint64BitsToDouble(u64vec2);" "dvec3 uint64BitsToDouble(u64vec3);" "dvec4 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 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" ); } 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"); } 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);" "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);" "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);" "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);" "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);" "void atomicStore(coherent volatile out uint64_t, uint64_t, int, int, int);" "void atomicStore(coherent volatile out int64_t, int64_t, int, int, int);" "\n"); } #endif if ((profile == EEsProfile && version >= 300) || (profile != EEsProfile && version >= 330)) { 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"); if (profile != EEsProfile) { 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) || (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"); } if (profile != EEsProfile && version >= 400) { 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"); } #endif if ((profile == EEsProfile && version >= 300) || (profile != EEsProfile && version >= 400)) { commonBuiltins.append( "highp uint packUnorm2x16(vec2);" "vec2 unpackUnorm2x16(highp uint);" "\n"); } if ((profile == EEsProfile && version >= 300) || (profile != EEsProfile && version >= 420)) { 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 >= 420) { commonBuiltins.append( " vec2 unpackHalf2x16(highp uint);" "\n"); } #ifndef GLSLANG_WEB if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 400)) { 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 >= 400) { 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 // // 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 >= 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"); } } // 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"); } // 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"); } // GL_AMD_gpu_shader_half_float/Explicit types if (profile != EEsProfile && version >= 450) { commonBuiltins.append( "float16_t radians(float16_t);" "f16vec2 radians(f16vec2);" "f16vec3 radians(f16vec3);" "f16vec4 radians(f16vec4);" "float16_t degrees(float16_t);" "f16vec2 degrees(f16vec2);" "f16vec3 degrees(f16vec3);" "f16vec4 degrees(f16vec4);" "float16_t sin(float16_t);" "f16vec2 sin(f16vec2);" "f16vec3 sin(f16vec3);" "f16vec4 sin(f16vec4);" "float16_t cos(float16_t);" "f16vec2 cos(f16vec2);" "f16vec3 cos(f16vec3);" "f16vec4 cos(f16vec4);" "float16_t tan(float16_t);" "f16vec2 tan(f16vec2);" "f16vec3 tan(f16vec3);" "f16vec4 tan(f16vec4);" "float16_t asin(float16_t);" "f16vec2 asin(f16vec2);" "f16vec3 asin(f16vec3);" "f16vec4 asin(f16vec4);" "float16_t acos(float16_t);" "f16vec2 acos(f16vec2);" "f16vec3 acos(f16vec3);" "f16vec4 acos(f16vec4);" "float16_t atan(float16_t, float16_t);" "f16vec2 atan(f16vec2, f16vec2);" "f16vec3 atan(f16vec3, f16vec3);" "f16vec4 atan(f16vec4, f16vec4);" "float16_t atan(float16_t);" "f16vec2 atan(f16vec2);" "f16vec3 atan(f16vec3);" "f16vec4 atan(f16vec4);" "float16_t sinh(float16_t);" "f16vec2 sinh(f16vec2);" "f16vec3 sinh(f16vec3);" "f16vec4 sinh(f16vec4);" "float16_t cosh(float16_t);" "f16vec2 cosh(f16vec2);" "f16vec3 cosh(f16vec3);" "f16vec4 cosh(f16vec4);" "float16_t tanh(float16_t);" "f16vec2 tanh(f16vec2);" "f16vec3 tanh(f16vec3);" "f16vec4 tanh(f16vec4);" "float16_t asinh(float16_t);" "f16vec2 asinh(f16vec2);" "f16vec3 asinh(f16vec3);" "f16vec4 asinh(f16vec4);" "float16_t acosh(float16_t);" "f16vec2 acosh(f16vec2);" "f16vec3 acosh(f16vec3);" "f16vec4 acosh(f16vec4);" "float16_t atanh(float16_t);" "f16vec2 atanh(f16vec2);" "f16vec3 atanh(f16vec3);" "f16vec4 atanh(f16vec4);" "float16_t pow(float16_t, float16_t);" "f16vec2 pow(f16vec2, f16vec2);" "f16vec3 pow(f16vec3, f16vec3);" "f16vec4 pow(f16vec4, f16vec4);" "float16_t exp(float16_t);" "f16vec2 exp(f16vec2);" "f16vec3 exp(f16vec3);" "f16vec4 exp(f16vec4);" "float16_t log(float16_t);" "f16vec2 log(f16vec2);" "f16vec3 log(f16vec3);" "f16vec4 log(f16vec4);" "float16_t exp2(float16_t);" "f16vec2 exp2(f16vec2);" "f16vec3 exp2(f16vec3);" "f16vec4 exp2(f16vec4);" "float16_t log2(float16_t);" "f16vec2 log2(f16vec2);" "f16vec3 log2(f16vec3);" "f16vec4 log2(f16vec4);" "float16_t sqrt(float16_t);" "f16vec2 sqrt(f16vec2);" "f16vec3 sqrt(f16vec3);" "f16vec4 sqrt(f16vec4);" "float16_t inversesqrt(float16_t);" "f16vec2 inversesqrt(f16vec2);" "f16vec3 inversesqrt(f16vec3);" "f16vec4 inversesqrt(f16vec4);" "float16_t abs(float16_t);" "f16vec2 abs(f16vec2);" "f16vec3 abs(f16vec3);" "f16vec4 abs(f16vec4);" "float16_t sign(float16_t);" "f16vec2 sign(f16vec2);" "f16vec3 sign(f16vec3);" "f16vec4 sign(f16vec4);" "float16_t floor(float16_t);" "f16vec2 floor(f16vec2);" "f16vec3 floor(f16vec3);" "f16vec4 floor(f16vec4);" "float16_t trunc(float16_t);" "f16vec2 trunc(f16vec2);" "f16vec3 trunc(f16vec3);" "f16vec4 trunc(f16vec4);" "float16_t round(float16_t);" "f16vec2 round(f16vec2);" "f16vec3 round(f16vec3);" "f16vec4 round(f16vec4);" "float16_t roundEven(float16_t);" "f16vec2 roundEven(f16vec2);" "f16vec3 roundEven(f16vec3);" "f16vec4 roundEven(f16vec4);" "float16_t ceil(float16_t);" "f16vec2 ceil(f16vec2);" "f16vec3 ceil(f16vec3);" "f16vec4 ceil(f16vec4);" "float16_t fract(float16_t);" "f16vec2 fract(f16vec2);" "f16vec3 fract(f16vec3);" "f16vec4 fract(f16vec4);" "float16_t mod(float16_t, float16_t);" "f16vec2 mod(f16vec2, float16_t);" "f16vec3 mod(f16vec3, float16_t);" "f16vec4 mod(f16vec4, float16_t);" "f16vec2 mod(f16vec2, f16vec2);" "f16vec3 mod(f16vec3, f16vec3);" "f16vec4 mod(f16vec4, f16vec4);" "float16_t modf(float16_t, out float16_t);" "f16vec2 modf(f16vec2, out f16vec2);" "f16vec3 modf(f16vec3, out f16vec3);" "f16vec4 modf(f16vec4, out f16vec4);" "float16_t min(float16_t, float16_t);" "f16vec2 min(f16vec2, float16_t);" "f16vec3 min(f16vec3, float16_t);" "f16vec4 min(f16vec4, float16_t);" "f16vec2 min(f16vec2, f16vec2);" "f16vec3 min(f16vec3, f16vec3);" "f16vec4 min(f16vec4, f16vec4);" "float16_t max(float16_t, float16_t);" "f16vec2 max(f16vec2, float16_t);" "f16vec3 max(f16vec3, float16_t);" "f16vec4 max(f16vec4, float16_t);" "f16vec2 max(f16vec2, f16vec2);" "f16vec3 max(f16vec3, f16vec3);" "f16vec4 max(f16vec4, f16vec4);" "float16_t clamp(float16_t, float16_t, float16_t);" "f16vec2 clamp(f16vec2, float16_t, float16_t);" "f16vec3 clamp(f16vec3, float16_t, float16_t);" "f16vec4 clamp(f16vec4, float16_t, float16_t);" "f16vec2 clamp(f16vec2, f16vec2, f16vec2);" "f16vec3 clamp(f16vec3, f16vec3, f16vec3);" "f16vec4 clamp(f16vec4, f16vec4, f16vec4);" "float16_t mix(float16_t, float16_t, float16_t);" "f16vec2 mix(f16vec2, f16vec2, float16_t);" "f16vec3 mix(f16vec3, f16vec3, float16_t);" "f16vec4 mix(f16vec4, f16vec4, float16_t);" "f16vec2 mix(f16vec2, f16vec2, f16vec2);" "f16vec3 mix(f16vec3, f16vec3, f16vec3);" "f16vec4 mix(f16vec4, f16vec4, f16vec4);" "float16_t mix(float16_t, float16_t, bool);" "f16vec2 mix(f16vec2, f16vec2, bvec2);" "f16vec3 mix(f16vec3, f16vec3, bvec3);" "f16vec4 mix(f16vec4, f16vec4, bvec4);" "float16_t step(float16_t, float16_t);" "f16vec2 step(f16vec2, f16vec2);" "f16vec3 step(f16vec3, f16vec3);" "f16vec4 step(f16vec4, f16vec4);" "f16vec2 step(float16_t, f16vec2);" "f16vec3 step(float16_t, f16vec3);" "f16vec4 step(float16_t, f16vec4);" "float16_t smoothstep(float16_t, float16_t, float16_t);" "f16vec2 smoothstep(f16vec2, f16vec2, f16vec2);" "f16vec3 smoothstep(f16vec3, f16vec3, f16vec3);" "f16vec4 smoothstep(f16vec4, f16vec4, f16vec4);" "f16vec2 smoothstep(float16_t, float16_t, f16vec2);" "f16vec3 smoothstep(float16_t, float16_t, f16vec3);" "f16vec4 smoothstep(float16_t, float16_t, f16vec4);" "bool isnan(float16_t);" "bvec2 isnan(f16vec2);" "bvec3 isnan(f16vec3);" "bvec4 isnan(f16vec4);" "bool isinf(float16_t);" "bvec2 isinf(f16vec2);" "bvec3 isinf(f16vec3);" "bvec4 isinf(f16vec4);" "float16_t fma(float16_t, float16_t, float16_t);" "f16vec2 fma(f16vec2, f16vec2, f16vec2);" "f16vec3 fma(f16vec3, f16vec3, f16vec3);" "f16vec4 fma(f16vec4, f16vec4, f16vec4);" "float16_t frexp(float16_t, out int);" "f16vec2 frexp(f16vec2, out ivec2);" "f16vec3 frexp(f16vec3, out ivec3);" "f16vec4 frexp(f16vec4, out ivec4);" "float16_t ldexp(float16_t, in int);" "f16vec2 ldexp(f16vec2, in ivec2);" "f16vec3 ldexp(f16vec3, in ivec3);" "f16vec4 ldexp(f16vec4, in ivec4);" "uint packFloat2x16(f16vec2);" "f16vec2 unpackFloat2x16(uint);" "float16_t length(float16_t);" "float16_t length(f16vec2);" "float16_t length(f16vec3);" "float16_t length(f16vec4);" "float16_t distance(float16_t, float16_t);" "float16_t distance(f16vec2, f16vec2);" "float16_t distance(f16vec3, f16vec3);" "float16_t distance(f16vec4, f16vec4);" "float16_t dot(float16_t, float16_t);" "float16_t dot(f16vec2, f16vec2);" "float16_t dot(f16vec3, f16vec3);" "float16_t dot(f16vec4, f16vec4);" "f16vec3 cross(f16vec3, f16vec3);" "float16_t normalize(float16_t);" "f16vec2 normalize(f16vec2);" "f16vec3 normalize(f16vec3);" "f16vec4 normalize(f16vec4);" "float16_t faceforward(float16_t, float16_t, float16_t);" "f16vec2 faceforward(f16vec2, f16vec2, f16vec2);" "f16vec3 faceforward(f16vec3, f16vec3, f16vec3);" "f16vec4 faceforward(f16vec4, f16vec4, f16vec4);" "float16_t reflect(float16_t, float16_t);" "f16vec2 reflect(f16vec2, f16vec2);" "f16vec3 reflect(f16vec3, f16vec3);" "f16vec4 reflect(f16vec4, f16vec4);" "float16_t refract(float16_t, float16_t, float16_t);" "f16vec2 refract(f16vec2, f16vec2, float16_t);" "f16vec3 refract(f16vec3, f16vec3, float16_t);" "f16vec4 refract(f16vec4, f16vec4, float16_t);" "f16mat2 matrixCompMult(f16mat2, f16mat2);" "f16mat3 matrixCompMult(f16mat3, f16mat3);" "f16mat4 matrixCompMult(f16mat4, f16mat4);" "f16mat2x3 matrixCompMult(f16mat2x3, f16mat2x3);" "f16mat2x4 matrixCompMult(f16mat2x4, f16mat2x4);" "f16mat3x2 matrixCompMult(f16mat3x2, f16mat3x2);" "f16mat3x4 matrixCompMult(f16mat3x4, f16mat3x4);" "f16mat4x2 matrixCompMult(f16mat4x2, f16mat4x2);" "f16mat4x3 matrixCompMult(f16mat4x3, f16mat4x3);" "f16mat2 outerProduct(f16vec2, f16vec2);" "f16mat3 outerProduct(f16vec3, f16vec3);" "f16mat4 outerProduct(f16vec4, f16vec4);" "f16mat2x3 outerProduct(f16vec3, f16vec2);" "f16mat3x2 outerProduct(f16vec2, f16vec3);" "f16mat2x4 outerProduct(f16vec4, f16vec2);" "f16mat4x2 outerProduct(f16vec2, f16vec4);" "f16mat3x4 outerProduct(f16vec4, f16vec3);" "f16mat4x3 outerProduct(f16vec3, f16vec4);" "f16mat2 transpose(f16mat2);" "f16mat3 transpose(f16mat3);" "f16mat4 transpose(f16mat4);" "f16mat2x3 transpose(f16mat3x2);" "f16mat3x2 transpose(f16mat2x3);" "f16mat2x4 transpose(f16mat4x2);" "f16mat4x2 transpose(f16mat2x4);" "f16mat3x4 transpose(f16mat4x3);" "f16mat4x3 transpose(f16mat3x4);" "float16_t determinant(f16mat2);" "float16_t determinant(f16mat3);" "float16_t determinant(f16mat4);" "f16mat2 inverse(f16mat2);" "f16mat3 inverse(f16mat3);" "f16mat4 inverse(f16mat4);" "bvec2 lessThan(f16vec2, f16vec2);" "bvec3 lessThan(f16vec3, f16vec3);" "bvec4 lessThan(f16vec4, f16vec4);" "bvec2 lessThanEqual(f16vec2, f16vec2);" "bvec3 lessThanEqual(f16vec3, f16vec3);" "bvec4 lessThanEqual(f16vec4, f16vec4);" "bvec2 greaterThan(f16vec2, f16vec2);" "bvec3 greaterThan(f16vec3, f16vec3);" "bvec4 greaterThan(f16vec4, f16vec4);" "bvec2 greaterThanEqual(f16vec2, f16vec2);" "bvec3 greaterThanEqual(f16vec3, f16vec3);" "bvec4 greaterThanEqual(f16vec4, f16vec4);" "bvec2 equal(f16vec2, f16vec2);" "bvec3 equal(f16vec3, f16vec3);" "bvec4 equal(f16vec4, f16vec4);" "bvec2 notEqual(f16vec2, f16vec2);" "bvec3 notEqual(f16vec3, f16vec3);" "bvec4 notEqual(f16vec4, f16vec4);" "\n"); } // Explicit types if (profile != EEsProfile && version >= 450) { commonBuiltins.append( "int8_t abs(int8_t);" "i8vec2 abs(i8vec2);" "i8vec3 abs(i8vec3);" "i8vec4 abs(i8vec4);" "int8_t sign(int8_t);" "i8vec2 sign(i8vec2);" "i8vec3 sign(i8vec3);" "i8vec4 sign(i8vec4);" "int8_t min(int8_t x, int8_t y);" "i8vec2 min(i8vec2 x, int8_t y);" "i8vec3 min(i8vec3 x, int8_t y);" "i8vec4 min(i8vec4 x, int8_t y);" "i8vec2 min(i8vec2 x, i8vec2 y);" "i8vec3 min(i8vec3 x, i8vec3 y);" "i8vec4 min(i8vec4 x, i8vec4 y);" "uint8_t min(uint8_t x, uint8_t y);" "u8vec2 min(u8vec2 x, uint8_t y);" "u8vec3 min(u8vec3 x, uint8_t y);" "u8vec4 min(u8vec4 x, uint8_t y);" "u8vec2 min(u8vec2 x, u8vec2 y);" "u8vec3 min(u8vec3 x, u8vec3 y);" "u8vec4 min(u8vec4 x, u8vec4 y);" "int8_t max(int8_t x, int8_t y);" "i8vec2 max(i8vec2 x, int8_t y);" "i8vec3 max(i8vec3 x, int8_t y);" "i8vec4 max(i8vec4 x, int8_t y);" "i8vec2 max(i8vec2 x, i8vec2 y);" "i8vec3 max(i8vec3 x, i8vec3 y);" "i8vec4 max(i8vec4 x, i8vec4 y);" "uint8_t max(uint8_t x, uint8_t y);" "u8vec2 max(u8vec2 x, uint8_t y);" "u8vec3 max(u8vec3 x, uint8_t y);" "u8vec4 max(u8vec4 x, uint8_t y);" "u8vec2 max(u8vec2 x, u8vec2 y);" "u8vec3 max(u8vec3 x, u8vec3 y);" "u8vec4 max(u8vec4 x, u8vec4 y);" "int8_t clamp(int8_t x, int8_t minVal, int8_t maxVal);" "i8vec2 clamp(i8vec2 x, int8_t minVal, int8_t maxVal);" "i8vec3 clamp(i8vec3 x, int8_t minVal, int8_t maxVal);" "i8vec4 clamp(i8vec4 x, int8_t minVal, int8_t maxVal);" "i8vec2 clamp(i8vec2 x, i8vec2 minVal, i8vec2 maxVal);" "i8vec3 clamp(i8vec3 x, i8vec3 minVal, i8vec3 maxVal);" "i8vec4 clamp(i8vec4 x, i8vec4 minVal, i8vec4 maxVal);" "uint8_t clamp(uint8_t x, uint8_t minVal, uint8_t maxVal);" "u8vec2 clamp(u8vec2 x, uint8_t minVal, uint8_t maxVal);" "u8vec3 clamp(u8vec3 x, uint8_t minVal, uint8_t maxVal);" "u8vec4 clamp(u8vec4 x, uint8_t minVal, uint8_t maxVal);" "u8vec2 clamp(u8vec2 x, u8vec2 minVal, u8vec2 maxVal);" "u8vec3 clamp(u8vec3 x, u8vec3 minVal, u8vec3 maxVal);" "u8vec4 clamp(u8vec4 x, u8vec4 minVal, u8vec4 maxVal);" "int8_t mix(int8_t, int8_t, bool);" "i8vec2 mix(i8vec2, i8vec2, bvec2);" "i8vec3 mix(i8vec3, i8vec3, bvec3);" "i8vec4 mix(i8vec4, i8vec4, bvec4);" "uint8_t mix(uint8_t, uint8_t, bool);" "u8vec2 mix(u8vec2, u8vec2, bvec2);" "u8vec3 mix(u8vec3, u8vec3, bvec3);" "u8vec4 mix(u8vec4, u8vec4, bvec4);" "bvec2 lessThan(i8vec2, i8vec2);" "bvec3 lessThan(i8vec3, i8vec3);" "bvec4 lessThan(i8vec4, i8vec4);" "bvec2 lessThan(u8vec2, u8vec2);" "bvec3 lessThan(u8vec3, u8vec3);" "bvec4 lessThan(u8vec4, u8vec4);" "bvec2 lessThanEqual(i8vec2, i8vec2);" "bvec3 lessThanEqual(i8vec3, i8vec3);" "bvec4 lessThanEqual(i8vec4, i8vec4);" "bvec2 lessThanEqual(u8vec2, u8vec2);" "bvec3 lessThanEqual(u8vec3, u8vec3);" "bvec4 lessThanEqual(u8vec4, u8vec4);" "bvec2 greaterThan(i8vec2, i8vec2);" "bvec3 greaterThan(i8vec3, i8vec3);" "bvec4 greaterThan(i8vec4, i8vec4);" "bvec2 greaterThan(u8vec2, u8vec2);" "bvec3 greaterThan(u8vec3, u8vec3);" "bvec4 greaterThan(u8vec4, u8vec4);" "bvec2 greaterThanEqual(i8vec2, i8vec2);" "bvec3 greaterThanEqual(i8vec3, i8vec3);" "bvec4 greaterThanEqual(i8vec4, i8vec4);" "bvec2 greaterThanEqual(u8vec2, u8vec2);" "bvec3 greaterThanEqual(u8vec3, u8vec3);" "bvec4 greaterThanEqual(u8vec4, u8vec4);" "bvec2 equal(i8vec2, i8vec2);" "bvec3 equal(i8vec3, i8vec3);" "bvec4 equal(i8vec4, i8vec4);" "bvec2 equal(u8vec2, u8vec2);" "bvec3 equal(u8vec3, u8vec3);" "bvec4 equal(u8vec4, u8vec4);" "bvec2 notEqual(i8vec2, i8vec2);" "bvec3 notEqual(i8vec3, i8vec3);" "bvec4 notEqual(i8vec4, i8vec4);" "bvec2 notEqual(u8vec2, u8vec2);" "bvec3 notEqual(u8vec3, u8vec3);" "bvec4 notEqual(u8vec4, u8vec4);" " int8_t bitfieldExtract( int8_t, int8_t, int8_t);" "i8vec2 bitfieldExtract(i8vec2, int8_t, int8_t);" "i8vec3 bitfieldExtract(i8vec3, int8_t, int8_t);" "i8vec4 bitfieldExtract(i8vec4, int8_t, int8_t);" " uint8_t bitfieldExtract( uint8_t, int8_t, int8_t);" "u8vec2 bitfieldExtract(u8vec2, int8_t, int8_t);" "u8vec3 bitfieldExtract(u8vec3, int8_t, int8_t);" "u8vec4 bitfieldExtract(u8vec4, int8_t, int8_t);" " int8_t bitfieldInsert( int8_t base, int8_t, int8_t, int8_t);" "i8vec2 bitfieldInsert(i8vec2 base, i8vec2, int8_t, int8_t);" "i8vec3 bitfieldInsert(i8vec3 base, i8vec3, int8_t, int8_t);" "i8vec4 bitfieldInsert(i8vec4 base, i8vec4, int8_t, int8_t);" " uint8_t bitfieldInsert( uint8_t base, uint8_t, int8_t, int8_t);" "u8vec2 bitfieldInsert(u8vec2 base, u8vec2, int8_t, int8_t);" "u8vec3 bitfieldInsert(u8vec3 base, u8vec3, int8_t, int8_t);" "u8vec4 bitfieldInsert(u8vec4 base, u8vec4, int8_t, int8_t);" " int8_t bitCount( int8_t);" "i8vec2 bitCount(i8vec2);" "i8vec3 bitCount(i8vec3);" "i8vec4 bitCount(i8vec4);" " int8_t bitCount( uint8_t);" "i8vec2 bitCount(u8vec2);" "i8vec3 bitCount(u8vec3);" "i8vec4 bitCount(u8vec4);" " int8_t findLSB( int8_t);" "i8vec2 findLSB(i8vec2);" "i8vec3 findLSB(i8vec3);" "i8vec4 findLSB(i8vec4);" " int8_t findLSB( uint8_t);" "i8vec2 findLSB(u8vec2);" "i8vec3 findLSB(u8vec3);" "i8vec4 findLSB(u8vec4);" " int8_t findMSB( int8_t);" "i8vec2 findMSB(i8vec2);" "i8vec3 findMSB(i8vec3);" "i8vec4 findMSB(i8vec4);" " int8_t findMSB( uint8_t);" "i8vec2 findMSB(u8vec2);" "i8vec3 findMSB(u8vec3);" "i8vec4 findMSB(u8vec4);" "int16_t abs(int16_t);" "i16vec2 abs(i16vec2);" "i16vec3 abs(i16vec3);" "i16vec4 abs(i16vec4);" "int16_t sign(int16_t);" "i16vec2 sign(i16vec2);" "i16vec3 sign(i16vec3);" "i16vec4 sign(i16vec4);" "int16_t min(int16_t x, int16_t y);" "i16vec2 min(i16vec2 x, int16_t y);" "i16vec3 min(i16vec3 x, int16_t y);" "i16vec4 min(i16vec4 x, int16_t y);" "i16vec2 min(i16vec2 x, i16vec2 y);" "i16vec3 min(i16vec3 x, i16vec3 y);" "i16vec4 min(i16vec4 x, i16vec4 y);" "uint16_t min(uint16_t x, uint16_t y);" "u16vec2 min(u16vec2 x, uint16_t y);" "u16vec3 min(u16vec3 x, uint16_t y);" "u16vec4 min(u16vec4 x, uint16_t y);" "u16vec2 min(u16vec2 x, u16vec2 y);" "u16vec3 min(u16vec3 x, u16vec3 y);" "u16vec4 min(u16vec4 x, u16vec4 y);" "int16_t max(int16_t x, int16_t y);" "i16vec2 max(i16vec2 x, int16_t y);" "i16vec3 max(i16vec3 x, int16_t y);" "i16vec4 max(i16vec4 x, int16_t y);" "i16vec2 max(i16vec2 x, i16vec2 y);" "i16vec3 max(i16vec3 x, i16vec3 y);" "i16vec4 max(i16vec4 x, i16vec4 y);" "uint16_t max(uint16_t x, uint16_t y);" "u16vec2 max(u16vec2 x, uint16_t y);" "u16vec3 max(u16vec3 x, uint16_t y);" "u16vec4 max(u16vec4 x, uint16_t y);" "u16vec2 max(u16vec2 x, u16vec2 y);" "u16vec3 max(u16vec3 x, u16vec3 y);" "u16vec4 max(u16vec4 x, u16vec4 y);" "int16_t clamp(int16_t x, int16_t minVal, int16_t maxVal);" "i16vec2 clamp(i16vec2 x, int16_t minVal, int16_t maxVal);" "i16vec3 clamp(i16vec3 x, int16_t minVal, int16_t maxVal);" "i16vec4 clamp(i16vec4 x, int16_t minVal, int16_t maxVal);" "i16vec2 clamp(i16vec2 x, i16vec2 minVal, i16vec2 maxVal);" "i16vec3 clamp(i16vec3 x, i16vec3 minVal, i16vec3 maxVal);" "i16vec4 clamp(i16vec4 x, i16vec4 minVal, i16vec4 maxVal);" "uint16_t clamp(uint16_t x, uint16_t minVal, uint16_t maxVal);" "u16vec2 clamp(u16vec2 x, uint16_t minVal, uint16_t maxVal);" "u16vec3 clamp(u16vec3 x, uint16_t minVal, uint16_t maxVal);" "u16vec4 clamp(u16vec4 x, uint16_t minVal, uint16_t maxVal);" "u16vec2 clamp(u16vec2 x, u16vec2 minVal, u16vec2 maxVal);" "u16vec3 clamp(u16vec3 x, u16vec3 minVal, u16vec3 maxVal);" "u16vec4 clamp(u16vec4 x, u16vec4 minVal, u16vec4 maxVal);" "int16_t mix(int16_t, int16_t, bool);" "i16vec2 mix(i16vec2, i16vec2, bvec2);" "i16vec3 mix(i16vec3, i16vec3, bvec3);" "i16vec4 mix(i16vec4, i16vec4, bvec4);" "uint16_t mix(uint16_t, uint16_t, bool);" "u16vec2 mix(u16vec2, u16vec2, bvec2);" "u16vec3 mix(u16vec3, u16vec3, bvec3);" "u16vec4 mix(u16vec4, u16vec4, bvec4);" "float16_t frexp(float16_t, out int16_t);" "f16vec2 frexp(f16vec2, out i16vec2);" "f16vec3 frexp(f16vec3, out i16vec3);" "f16vec4 frexp(f16vec4, out i16vec4);" "float16_t ldexp(float16_t, int16_t);" "f16vec2 ldexp(f16vec2, i16vec2);" "f16vec3 ldexp(f16vec3, i16vec3);" "f16vec4 ldexp(f16vec4, i16vec4);" "int16_t halfBitsToInt16(float16_t);" "i16vec2 halfBitsToInt16(f16vec2);" "i16vec3 halhBitsToInt16(f16vec3);" "i16vec4 halfBitsToInt16(f16vec4);" "uint16_t halfBitsToUint16(float16_t);" "u16vec2 halfBitsToUint16(f16vec2);" "u16vec3 halfBitsToUint16(f16vec3);" "u16vec4 halfBitsToUint16(f16vec4);" "int16_t float16BitsToInt16(float16_t);" "i16vec2 float16BitsToInt16(f16vec2);" "i16vec3 float16BitsToInt16(f16vec3);" "i16vec4 float16BitsToInt16(f16vec4);" "uint16_t float16BitsToUint16(float16_t);" "u16vec2 float16BitsToUint16(f16vec2);" "u16vec3 float16BitsToUint16(f16vec3);" "u16vec4 float16BitsToUint16(f16vec4);" "float16_t int16BitsToFloat16(int16_t);" "f16vec2 int16BitsToFloat16(i16vec2);" "f16vec3 int16BitsToFloat16(i16vec3);" "f16vec4 int16BitsToFloat16(i16vec4);" "float16_t uint16BitsToFloat16(uint16_t);" "f16vec2 uint16BitsToFloat16(u16vec2);" "f16vec3 uint16BitsToFloat16(u16vec3);" "f16vec4 uint16BitsToFloat16(u16vec4);" "float16_t int16BitsToHalf(int16_t);" "f16vec2 int16BitsToHalf(i16vec2);" "f16vec3 int16BitsToHalf(i16vec3);" "f16vec4 int16BitsToHalf(i16vec4);" "float16_t uint16BitsToHalf(uint16_t);" "f16vec2 uint16BitsToHalf(u16vec2);" "f16vec3 uint16BitsToHalf(u16vec3);" "f16vec4 uint16BitsToHalf(u16vec4);" "int packInt2x16(i16vec2);" "uint packUint2x16(u16vec2);" "int64_t packInt4x16(i16vec4);" "uint64_t packUint4x16(u16vec4);" "i16vec2 unpackInt2x16(int);" "u16vec2 unpackUint2x16(uint);" "i16vec4 unpackInt4x16(int64_t);" "u16vec4 unpackUint4x16(uint64_t);" "bvec2 lessThan(i16vec2, i16vec2);" "bvec3 lessThan(i16vec3, i16vec3);" "bvec4 lessThan(i16vec4, i16vec4);" "bvec2 lessThan(u16vec2, u16vec2);" "bvec3 lessThan(u16vec3, u16vec3);" "bvec4 lessThan(u16vec4, u16vec4);" "bvec2 lessThanEqual(i16vec2, i16vec2);" "bvec3 lessThanEqual(i16vec3, i16vec3);" "bvec4 lessThanEqual(i16vec4, i16vec4);" "bvec2 lessThanEqual(u16vec2, u16vec2);" "bvec3 lessThanEqual(u16vec3, u16vec3);" "bvec4 lessThanEqual(u16vec4, u16vec4);" "bvec2 greaterThan(i16vec2, i16vec2);" "bvec3 greaterThan(i16vec3, i16vec3);" "bvec4 greaterThan(i16vec4, i16vec4);" "bvec2 greaterThan(u16vec2, u16vec2);" "bvec3 greaterThan(u16vec3, u16vec3);" "bvec4 greaterThan(u16vec4, u16vec4);" "bvec2 greaterThanEqual(i16vec2, i16vec2);" "bvec3 greaterThanEqual(i16vec3, i16vec3);" "bvec4 greaterThanEqual(i16vec4, i16vec4);" "bvec2 greaterThanEqual(u16vec2, u16vec2);" "bvec3 greaterThanEqual(u16vec3, u16vec3);" "bvec4 greaterThanEqual(u16vec4, u16vec4);" "bvec2 equal(i16vec2, i16vec2);" "bvec3 equal(i16vec3, i16vec3);" "bvec4 equal(i16vec4, i16vec4);" "bvec2 equal(u16vec2, u16vec2);" "bvec3 equal(u16vec3, u16vec3);" "bvec4 equal(u16vec4, u16vec4);" "bvec2 notEqual(i16vec2, i16vec2);" "bvec3 notEqual(i16vec3, i16vec3);" "bvec4 notEqual(i16vec4, i16vec4);" "bvec2 notEqual(u16vec2, u16vec2);" "bvec3 notEqual(u16vec3, u16vec3);" "bvec4 notEqual(u16vec4, u16vec4);" " int16_t bitfieldExtract( int16_t, int16_t, int16_t);" "i16vec2 bitfieldExtract(i16vec2, int16_t, int16_t);" "i16vec3 bitfieldExtract(i16vec3, int16_t, int16_t);" "i16vec4 bitfieldExtract(i16vec4, int16_t, int16_t);" " uint16_t bitfieldExtract( uint16_t, int16_t, int16_t);" "u16vec2 bitfieldExtract(u16vec2, int16_t, int16_t);" "u16vec3 bitfieldExtract(u16vec3, int16_t, int16_t);" "u16vec4 bitfieldExtract(u16vec4, int16_t, int16_t);" " int16_t bitfieldInsert( int16_t base, int16_t, int16_t, int16_t);" "i16vec2 bitfieldInsert(i16vec2 base, i16vec2, int16_t, int16_t);" "i16vec3 bitfieldInsert(i16vec3 base, i16vec3, int16_t, int16_t);" "i16vec4 bitfieldInsert(i16vec4 base, i16vec4, int16_t, int16_t);" " uint16_t bitfieldInsert( uint16_t base, uint16_t, int16_t, int16_t);" "u16vec2 bitfieldInsert(u16vec2 base, u16vec2, int16_t, int16_t);" "u16vec3 bitfieldInsert(u16vec3 base, u16vec3, int16_t, int16_t);" "u16vec4 bitfieldInsert(u16vec4 base, u16vec4, int16_t, int16_t);" " int16_t bitCount( int16_t);" "i16vec2 bitCount(i16vec2);" "i16vec3 bitCount(i16vec3);" "i16vec4 bitCount(i16vec4);" " int16_t bitCount( uint16_t);" "i16vec2 bitCount(u16vec2);" "i16vec3 bitCount(u16vec3);" "i16vec4 bitCount(u16vec4);" " int16_t findLSB( int16_t);" "i16vec2 findLSB(i16vec2);" "i16vec3 findLSB(i16vec3);" "i16vec4 findLSB(i16vec4);" " int16_t findLSB( uint16_t);" "i16vec2 findLSB(u16vec2);" "i16vec3 findLSB(u16vec3);" "i16vec4 findLSB(u16vec4);" " int16_t findMSB( int16_t);" "i16vec2 findMSB(i16vec2);" "i16vec3 findMSB(i16vec3);" "i16vec4 findMSB(i16vec4);" " int16_t findMSB( uint16_t);" "i16vec2 findMSB(u16vec2);" "i16vec3 findMSB(u16vec3);" "i16vec4 findMSB(u16vec4);" "int16_t pack16(i8vec2);" "uint16_t pack16(u8vec2);" "int32_t pack32(i8vec4);" "uint32_t pack32(u8vec4);" "int32_t pack32(i16vec2);" "uint32_t pack32(u16vec2);" "int64_t pack64(i16vec4);" "uint64_t pack64(u16vec4);" "int64_t pack64(i32vec2);" "uint64_t pack64(u32vec2);" "i8vec2 unpack8(int16_t);" "u8vec2 unpack8(uint16_t);" "i8vec4 unpack8(int32_t);" "u8vec4 unpack8(uint32_t);" "i16vec2 unpack16(int32_t);" "u16vec2 unpack16(uint32_t);" "i16vec4 unpack16(int64_t);" "u16vec4 unpack16(uint64_t);" "i32vec2 unpack32(int64_t);" "u32vec2 unpack32(uint64_t);" "float64_t radians(float64_t);" "f64vec2 radians(f64vec2);" "f64vec3 radians(f64vec3);" "f64vec4 radians(f64vec4);" "float64_t degrees(float64_t);" "f64vec2 degrees(f64vec2);" "f64vec3 degrees(f64vec3);" "f64vec4 degrees(f64vec4);" "float64_t sin(float64_t);" "f64vec2 sin(f64vec2);" "f64vec3 sin(f64vec3);" "f64vec4 sin(f64vec4);" "float64_t cos(float64_t);" "f64vec2 cos(f64vec2);" "f64vec3 cos(f64vec3);" "f64vec4 cos(f64vec4);" "float64_t tan(float64_t);" "f64vec2 tan(f64vec2);" "f64vec3 tan(f64vec3);" "f64vec4 tan(f64vec4);" "float64_t asin(float64_t);" "f64vec2 asin(f64vec2);" "f64vec3 asin(f64vec3);" "f64vec4 asin(f64vec4);" "float64_t acos(float64_t);" "f64vec2 acos(f64vec2);" "f64vec3 acos(f64vec3);" "f64vec4 acos(f64vec4);" "float64_t atan(float64_t, float64_t);" "f64vec2 atan(f64vec2, f64vec2);" "f64vec3 atan(f64vec3, f64vec3);" "f64vec4 atan(f64vec4, f64vec4);" "float64_t atan(float64_t);" "f64vec2 atan(f64vec2);" "f64vec3 atan(f64vec3);" "f64vec4 atan(f64vec4);" "float64_t sinh(float64_t);" "f64vec2 sinh(f64vec2);" "f64vec3 sinh(f64vec3);" "f64vec4 sinh(f64vec4);" "float64_t cosh(float64_t);" "f64vec2 cosh(f64vec2);" "f64vec3 cosh(f64vec3);" "f64vec4 cosh(f64vec4);" "float64_t tanh(float64_t);" "f64vec2 tanh(f64vec2);" "f64vec3 tanh(f64vec3);" "f64vec4 tanh(f64vec4);" "float64_t asinh(float64_t);" "f64vec2 asinh(f64vec2);" "f64vec3 asinh(f64vec3);" "f64vec4 asinh(f64vec4);" "float64_t acosh(float64_t);" "f64vec2 acosh(f64vec2);" "f64vec3 acosh(f64vec3);" "f64vec4 acosh(f64vec4);" "float64_t atanh(float64_t);" "f64vec2 atanh(f64vec2);" "f64vec3 atanh(f64vec3);" "f64vec4 atanh(f64vec4);" "float64_t pow(float64_t, float64_t);" "f64vec2 pow(f64vec2, f64vec2);" "f64vec3 pow(f64vec3, f64vec3);" "f64vec4 pow(f64vec4, f64vec4);" "float64_t exp(float64_t);" "f64vec2 exp(f64vec2);" "f64vec3 exp(f64vec3);" "f64vec4 exp(f64vec4);" "float64_t log(float64_t);" "f64vec2 log(f64vec2);" "f64vec3 log(f64vec3);" "f64vec4 log(f64vec4);" "float64_t exp2(float64_t);" "f64vec2 exp2(f64vec2);" "f64vec3 exp2(f64vec3);" "f64vec4 exp2(f64vec4);" "float64_t log2(float64_t);" "f64vec2 log2(f64vec2);" "f64vec3 log2(f64vec3);" "f64vec4 log2(f64vec4);" "\n"); } if (profile != EEsProfile && version >= 450) { stageBuiltins[EShLangFragment].append(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"); } //============================================================================ // // 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();"); // // 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"); } } if ((profile != EEsProfile && version >= 150) || (profile == EEsProfile && version >= 310)) { //============================================================================ // // Prototypes for built-in functions seen by geometry shaders only. // //============================================================================ if (profile != EEsProfile && version >= 400) { stageBuiltins[EShLangGeometry].append( "void EmitStreamVertex(int);" "void EndStreamPrimitive(int);" ); } stageBuiltins[EShLangGeometry].append( "void EmitVertex();" "void EndPrimitive();" "\n"); } #endif //============================================================================ // // 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) { commonBuiltins.append( "void memoryBarrierAtomicCounter();" "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"); 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"); } // 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"); // 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 if (profile != EEsProfile && version >= 460) { stageBuiltins[EShLangRayGenNV].append( "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" "void executeCallableNV(uint, int);" "\n"); stageBuiltins[EShLangIntersectNV].append( "bool reportIntersectionNV(float, uint);" "\n"); stageBuiltins[EShLangAnyHitNV].append( "void ignoreIntersectionNV();" "void terminateRayNV();" "\n"); stageBuiltins[EShLangClosestHitNV].append( "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" "void executeCallableNV(uint, int);" "\n"); stageBuiltins[EShLangMissNV].append( "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);" "void executeCallableNV(uint, int);" "\n"); stageBuiltins[EShLangCallableNV].append( "void executeCallableNV(uint, int);" "\n"); } //E_SPV_NV_compute_shader_derivatives if ((profile == EEsProfile && version >= 320) || (profile != EEsProfile && version >= 450)) { stageBuiltins[EShLangCompute].append(derivativeControls); stageBuiltins[EShLangCompute].append("\n"); } 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 //============================================================================ // // 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"); } #ifndef GLSLANG_WEB 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 //============================================================================ // // 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 //============================================================================ // // 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"); } } //============================================================================ // // 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 (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 >= 450) stageBuiltins[EShLangVertex].append( "out int gl_ViewportMask[];" // GL_NV_viewport_array2 "out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering "out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering "out vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes "out int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes ); } 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) 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"); } //============================================================================ // // 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 >= 450) stageBuiltins[EShLangGeometry].append( "out int gl_ViewportMask[];" // GL_NV_viewport_array2 "out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering "out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering "out vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes "out int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes ); 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"); } //============================================================================ // // 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[];" "int gl_ViewportMask[];" // GL_NV_viewport_array2 "vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering "int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering "vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes "int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes ); 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 >= 450) stageBuiltins[EShLangTessEvaluation].append( "out int gl_ViewportMask[];" // GL_NV_viewport_array2 "out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering "out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering "out vec4 gl_PositionPerViewNV[];" // GL_NVX_multiview_per_view_attributes "out int gl_ViewportMaskPerViewNV[];" // GL_NVX_multiview_per_view_attributes ); } 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;" ); } 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;" ); } #endif stageBuiltins[EShLangFragment].append("\n"); if (version >= 130) add2ndGenerationSamplingImaging(version, profile, spvVersion); #ifndef GLSLANG_WEB // 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* 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); } if ((profile != EEsProfile && version >= 140) || (profile == EEsProfile && version >= 310)) { stageBuiltins[EShLangFragment].append( "flat in highp int gl_DeviceIndex;" // GL_EXT_device_group "flat in highp int gl_ViewIndex;" // GL_EXT_multiview "\n"); } // GL_KHR_shader_subgroup if ((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"; 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[EShLangRayGenNV] .append(subgroupDecls); stageBuiltins[EShLangIntersectNV] .append(subgroupDecls); stageBuiltins[EShLangAnyHitNV] .append(subgroupDecls); stageBuiltins[EShLangClosestHitNV] .append(subgroupDecls); stageBuiltins[EShLangMissNV] .append(subgroupDecls); stageBuiltins[EShLangCallableNV] .append(subgroupDecls); } // GL_NV_ray_tracing if (profile != EEsProfile && version >= 460) { const char *constRayFlags = "const uint gl_RayFlagsNoneNV = 0U;" "const uint gl_RayFlagsOpaqueNV = 1U;" "const uint gl_RayFlagsNoOpaqueNV = 2U;" "const uint gl_RayFlagsTerminateOnFirstHitNV = 4U;" "const uint gl_RayFlagsSkipClosestHitShaderNV = 8U;" "const uint gl_RayFlagsCullBackFacingTrianglesNV = 16U;" "const uint gl_RayFlagsCullFrontFacingTrianglesNV = 32U;" "const uint gl_RayFlagsCullOpaqueNV = 64U;" "const uint gl_RayFlagsCullNoOpaqueNV = 128U;" "\n"; const char *rayGenDecls = "in uvec3 gl_LaunchIDNV;" "in uvec3 gl_LaunchSizeNV;" "\n"; const char *intersectDecls = "in uvec3 gl_LaunchIDNV;" "in uvec3 gl_LaunchSizeNV;" "in int gl_PrimitiveID;" "in int gl_InstanceID;" "in int gl_InstanceCustomIndexNV;" "in vec3 gl_WorldRayOriginNV;" "in vec3 gl_WorldRayDirectionNV;" "in vec3 gl_ObjectRayOriginNV;" "in vec3 gl_ObjectRayDirectionNV;" "in float gl_RayTminNV;" "in float gl_RayTmaxNV;" "in mat4x3 gl_ObjectToWorldNV;" "in mat4x3 gl_WorldToObjectNV;" "in uint gl_IncomingRayFlagsNV;" "\n"; const char *hitDecls = "in uvec3 gl_LaunchIDNV;" "in uvec3 gl_LaunchSizeNV;" "in int gl_PrimitiveID;" "in int gl_InstanceID;" "in int gl_InstanceCustomIndexNV;" "in vec3 gl_WorldRayOriginNV;" "in vec3 gl_WorldRayDirectionNV;" "in vec3 gl_ObjectRayOriginNV;" "in vec3 gl_ObjectRayDirectionNV;" "in float gl_RayTminNV;" "in float gl_RayTmaxNV;" "in float gl_HitTNV;" "in uint gl_HitKindNV;" "in mat4x3 gl_ObjectToWorldNV;" "in mat4x3 gl_WorldToObjectNV;" "in uint gl_IncomingRayFlagsNV;" "\n"; const char *missDecls = "in uvec3 gl_LaunchIDNV;" "in uvec3 gl_LaunchSizeNV;" "in vec3 gl_WorldRayOriginNV;" "in vec3 gl_WorldRayDirectionNV;" "in vec3 gl_ObjectRayOriginNV;" "in vec3 gl_ObjectRayDirectionNV;" "in float gl_RayTminNV;" "in float gl_RayTmaxNV;" "in uint gl_IncomingRayFlagsNV;" "\n"; const char *callableDecls = "in uvec3 gl_LaunchIDNV;" "in uvec3 gl_LaunchSizeNV;" "\n"; stageBuiltins[EShLangRayGenNV].append(rayGenDecls); stageBuiltins[EShLangRayGenNV].append(constRayFlags); stageBuiltins[EShLangIntersectNV].append(intersectDecls); stageBuiltins[EShLangIntersectNV].append(constRayFlags); stageBuiltins[EShLangAnyHitNV].append(hitDecls); stageBuiltins[EShLangAnyHitNV].append(constRayFlags); stageBuiltins[EShLangClosestHitNV].append(hitDecls); stageBuiltins[EShLangClosestHitNV].append(constRayFlags); stageBuiltins[EShLangMissNV].append(missDecls); stageBuiltins[EShLangMissNV].append(constRayFlags); stageBuiltins[EShLangCallableNV].append(callableDecls); stageBuiltins[EShLangCallableNV].append(constRayFlags); } if ((profile != EEsProfile && version >= 140)) { const char *deviceIndex = "in highp int gl_DeviceIndex;" // GL_EXT_device_group "\n"; stageBuiltins[EShLangRayGenNV].append(deviceIndex); stageBuiltins[EShLangIntersectNV].append(deviceIndex); stageBuiltins[EShLangAnyHitNV].append(deviceIndex); stageBuiltins[EShLangClosestHitNV].append(deviceIndex); stageBuiltins[EShLangMissNV].append(deviceIndex); } 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"); } 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_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"); } #endif // 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 #ifdef GLSLANG_WEB const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint }; bool skipBuffer = true; bool skipCubeArrayed = true; const int image = 0; #else const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint, EbtFloat16 }; 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 for (int dim = Esd1D; dim < EsdNumDims; ++dim) { // 1D, ..., buffer, subpass 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 < 430))) 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 // if (profile != EEsProfile && version >= 400 && sampler.isCombined() && sampler.dim != EsdRect && ! sampler.isMultiSample() && ! sampler.isBuffer()) { for (int f16TexAddr = 0; f16TexAddr < 2; ++f16TexAddr) { if (f16TexAddr && sampler.type != EbtFloat16) continue; stageBuiltins[EShLangFragment].append("vec2 textureQueryLod("); 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("vec2 textureQueryLod("); 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) { const char* dataType = sampler.type == EbtInt ? "highp int" : "highp uint"; 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 >= 450) || (profile == EEsProfile && version >= 310)) { commonBuiltins.append("float imageAtomicExchange(volatile coherent "); commonBuiltins.append(imageParams); commonBuiltins.append(", float);\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; #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 #ifdef GLSLANG_WEB 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 #ifdef GLSLANG_WEB 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 #ifdef GLSLANG_WEB 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 || 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 (bias || lodClamp) { 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; #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; #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"); } } } else { // non-ES profile 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); if (version < 150 || ARBCompatibility) { 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"); } // 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"); } // 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); } // 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 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; } // // 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; #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 (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 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); } #endif 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 >= 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_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); } 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); #endif 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); // 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); } #endif break; #ifndef GLSLANG_WEB case EShLangRayGenNV: case EShLangIntersectNV: case EShLangAnyHitNV: case EShLangClosestHitNV: case EShLangMissNV: case EShLangCallableNV: if (profile != EEsProfile && version >= 460) { symbolTable.setVariableExtensions("gl_LaunchIDNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_LaunchSizeNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_PrimitiveID", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_InstanceID", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_InstanceCustomIndexNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_WorldRayOriginNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_WorldRayDirectionNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_ObjectRayOriginNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_ObjectRayDirectionNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_RayTminNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_RayTmaxNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_HitTNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_HitKindNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_ObjectToWorldNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_WorldToObjectNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_IncomingRayFlagsNV", 1, &E_GL_NV_ray_tracing); symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group); BuiltInVariable("gl_LaunchIDNV", EbvLaunchIdNV, symbolTable); BuiltInVariable("gl_LaunchSizeNV", EbvLaunchSizeNV, symbolTable); BuiltInVariable("gl_PrimitiveID", EbvPrimitiveId, symbolTable); BuiltInVariable("gl_InstanceID", EbvInstanceId, symbolTable); BuiltInVariable("gl_InstanceCustomIndexNV", EbvInstanceCustomIndexNV,symbolTable); BuiltInVariable("gl_WorldRayOriginNV", EbvWorldRayOriginNV, symbolTable); BuiltInVariable("gl_WorldRayDirectionNV", EbvWorldRayDirectionNV, symbolTable); BuiltInVariable("gl_ObjectRayOriginNV", EbvObjectRayOriginNV, symbolTable); BuiltInVariable("gl_ObjectRayDirectionNV", EbvObjectRayDirectionNV, symbolTable); BuiltInVariable("gl_RayTminNV", EbvRayTminNV, symbolTable); BuiltInVariable("gl_RayTmaxNV", EbvRayTmaxNV, symbolTable); BuiltInVariable("gl_HitTNV", EbvHitTNV, symbolTable); BuiltInVariable("gl_HitKindNV", EbvHitKindNV, symbolTable); BuiltInVariable("gl_ObjectToWorldNV", EbvObjectToWorldNV, symbolTable); BuiltInVariable("gl_WorldToObjectNV", EbvWorldToObjectNV, symbolTable); BuiltInVariable("gl_IncomingRayFlagsNV", EbvIncomingRayFlagsNV, symbolTable); BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, 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); } 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); } 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); } 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); symbolTable.relateToOperator("atomicLoad", EOpAtomicLoad); symbolTable.relateToOperator("atomicStore", EOpAtomicStore); symbolTable.relateToOperator("atomicCounterIncrement", EOpAtomicCounterIncrement); symbolTable.relateToOperator("atomicCounterDecrement", EOpAtomicCounterDecrement); symbolTable.relateToOperator("atomicCounter", EOpAtomicCounter); symbolTable.relateToOperator("clockARB", EOpReadClockSubgroupKHR); symbolTable.relateToOperator("clock2x32ARB", EOpReadClockSubgroupKHR); symbolTable.relateToOperator("clockRealtimeEXT", EOpReadClockDeviceKHR); symbolTable.relateToOperator("clockRealtime2x32EXT", EOpReadClockDeviceKHR); if (profile != EEsProfile && version >= 460) { symbolTable.relateToOperator("atomicCounterAdd", EOpAtomicCounterAdd); symbolTable.relateToOperator("atomicCounterSubtract", EOpAtomicCounterSubtract); symbolTable.relateToOperator("atomicCounterMin", EOpAtomicCounterMin); symbolTable.relateToOperator("atomicCounterMax", EOpAtomicCounterMax); symbolTable.relateToOperator("atomicCounterAnd", EOpAtomicCounterAnd); symbolTable.relateToOperator("atomicCounterOr", EOpAtomicCounterOr); symbolTable.relateToOperator("atomicCounterXor", EOpAtomicCounterXor); symbolTable.relateToOperator("atomicCounterExchange", EOpAtomicCounterExchange); symbolTable.relateToOperator("atomicCounterCompSwap", EOpAtomicCounterCompSwap); } symbolTable.relateToOperator("fma", EOpFma); symbolTable.relateToOperator("frexp", EOpFrexp); symbolTable.relateToOperator("ldexp", EOpLdexp); 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); 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); } 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 EShLangRayGenNV: case EShLangClosestHitNV: case EShLangMissNV: if (profile != EEsProfile && version >= 460) { symbolTable.relateToOperator("traceNV", EOpTraceNV); symbolTable.relateToOperator("executeCallableNV", EOpExecuteCallableNV); } break; case EShLangIntersectNV: if (profile != EEsProfile && version >= 460) symbolTable.relateToOperator("reportIntersectionNV", EOpReportIntersectionNV); break; case EShLangAnyHitNV: if (profile != EEsProfile && version >= 460) { symbolTable.relateToOperator("ignoreIntersectionNV", EOpIgnoreIntersectionNV); symbolTable.relateToOperator("terminateRayNV", EOpTerminateRayNV); } break; case EShLangCallableNV: if (profile != EEsProfile && version >= 460) { symbolTable.relateToOperator("executeCallableNV", EOpExecuteCallableNV); } 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 } // // 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 (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); } 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 glslang-8.13.3559/glslang/MachineIndependent/Initialize.h000066400000000000000000000122531360464450000231300ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/glslang/MachineIndependent/IntermTraverse.cpp000066400000000000000000000173541360464450000243430ustar00rootroot00000000000000// // 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); } // // 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 glslang-8.13.3559/glslang/MachineIndependent/Intermediate.cpp000077500000000000000000004061061360464450000240030ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-2015 LunarG, Inc. // 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. // // // 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(int 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, 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) && extensionRequested(E_GL_EXT_buffer_reference2)) { // 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 = addConversion(op, left, right); left = std::get<0>(children); right = std::get<1>(children); if (left == nullptr || right == nullptr) return nullptr; // Convert the children's type shape to be compatible. 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, TSourceLoc loc) const { // build the node TIntermBinary* node = new TIntermBinary(op); if (loc.line == 0) loc = left->getLoc(); node->setLoc(loc); node->setLeft(left); node->setRight(right); return node; } // // like non-type form, but sets node's type. // TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc, const TType& type) const { TIntermBinary* node = addBinaryNode(op, left, right, loc); node->setType(type); return node; } // // Low level: add unary node (no promotions or other argument modifications) // TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc loc) const { TIntermUnary* node = new TIntermUnary(op); if (loc.line == 0) loc = child->getLoc(); node->setLoc(loc); node->setOperand(child); return node; } // // like non-type form, but sets node's type. // TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc loc, const TType& type) const { TIntermUnary* node = addUnaryNode(op, child, loc); node->setType(type); return node; } // // Connect two nodes through an assignment. // // 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, 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() && extensionRequested(E_GL_EXT_buffer_reference2)) { 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, 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, 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: 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, 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); if (loc.line == 0) loc = node->getLoc(); } } else aggNode = new TIntermAggregate(); // // Set the operator. // aggNode->setOperator(op); if (loc.line != 0) aggNode->setLoc(loc); 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 EbtAccStructNV: // 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 (! getArithemeticInt8Enabled()) { if (((convertTo == EbtInt8 || convertTo == EbtUint8) && ! convertFromIntTypes) || ((node->getBasicType() == EbtInt8 || node->getBasicType() == EbtUint8) && ! convertToIntTypes)) return nullptr; } if (! getArithemeticInt16Enabled()) { if (((convertTo == EbtInt16 || convertTo == EbtUint16) && ! convertFromIntTypes) || ((node->getBasicType() == EbtInt16 || node->getBasicType() == EbtUint16) && ! convertToIntTypes)) return nullptr; } if (! getArithemeticFloat16Enabled()) { if ((convertTo == EbtFloat16 && ! convertFromFloatTypes) || (node->getBasicType() == EbtFloat16 && ! convertToFloatTypes)) 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::addConversion(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 = getConversionDestinatonType(node0->getBasicType(), node1->getBasicType(), op); if (std::get<0>(promoteTo) == EbtNumTypes || std::get<1>(promoteTo) == EbtNumTypes) return std::make_tuple(nullptr, nullptr); break; case EOpLogicalAnd: case EOpLogicalOr: case EOpLogicalXor: if (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. TBasicType promoteTo; // GL_EXT_shader_16bit_storage can't do OpConstantComposite with // 16-bit types, so disable promotion for those types. bool canPromoteConstant = true; switch (op) { // // Explicit conversions (unary operations) // case EOpConstructBool: promoteTo = EbtBool; break; case EOpConstructFloat: promoteTo = EbtFloat; break; case EOpConstructInt: promoteTo = EbtInt; break; case EOpConstructUint: promoteTo = EbtUint; break; #ifndef GLSLANG_WEB case EOpConstructDouble: promoteTo = EbtDouble; break; case EOpConstructFloat16: promoteTo = EbtFloat16; canPromoteConstant = extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_float16); break; case EOpConstructInt8: promoteTo = EbtInt8; canPromoteConstant = extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_int8); break; case EOpConstructUint8: promoteTo = EbtUint8; canPromoteConstant = extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_int8); break; case EOpConstructInt16: promoteTo = EbtInt16; canPromoteConstant = extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_int16); break; case EOpConstructUint16: promoteTo = EbtUint16; canPromoteConstant = extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_int16); break; case EOpConstructInt64: promoteTo = EbtInt64; break; case EOpConstructUint64: promoteTo = EbtUint64; break; #endif 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)) promoteTo = type.getBasicType(); else 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) promoteTo = type.getBasicType(); else { if (isTypeInt(type.getBasicType()) && isTypeInt(node->getBasicType())) return node; else return nullptr; } break; } default: // default is to require a match; all exceptions should have case statements above if (type.getBasicType() == node->getType().getBasicType()) return node; else return nullptr; } if (canPromoteConstant && node->getAsConstantUnion()) return promoteConstantUnion(promoteTo, node->getAsConstantUnion()); // // Add a new newNode for the conversion. // TIntermTyped* newNode = createConversion(promoteTo, 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 == 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; } } } bool explicitTypesEnabled = extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_int8) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_int16) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_int32) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_int64) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_float16) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_float32) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_float64); if (explicitTypesEnabled) { // integral promotions if (isIntegralPromotion(from, to)) { return true; } // floating-point promotions if (isFPPromotion(from, to)) { return true; } // integral conversions if (isIntegralConversion(from, to)) { return true; } // floating-point conversions if (isFPConversion(from, to)) { return true; } // floating-integral conversions if (isFPIntegralConversion(from, to)) { return true; } // hlsl supported conversions if (getSource() == EShSourceHlsl) { if (from == EbtBool && (to == EbtInt || to == EbtUint || to == EbtFloat)) return true; } } else { switch (to) { case EbtDouble: switch (from) { case EbtInt: case EbtUint: case EbtInt64: case EbtUint64: case EbtFloat: case EbtDouble: return true; case EbtInt16: case EbtUint16: return extensionRequested(E_GL_AMD_gpu_shader_int16); case EbtFloat16: return extensionRequested(E_GL_AMD_gpu_shader_half_float); default: return false; } case EbtFloat: switch (from) { case EbtInt: case EbtUint: case EbtFloat: return true; case EbtBool: return getSource() == EShSourceHlsl; case EbtInt16: case EbtUint16: return extensionRequested(E_GL_AMD_gpu_shader_int16); case EbtFloat16: return extensionRequested(E_GL_AMD_gpu_shader_half_float) || getSource() == EShSourceHlsl; default: return false; } case EbtUint: switch (from) { case EbtInt: return version >= 400 || getSource() == EShSourceHlsl; case EbtUint: return true; case EbtBool: return getSource() == EShSourceHlsl; case EbtInt16: case EbtUint16: return extensionRequested(E_GL_AMD_gpu_shader_int16); default: return false; } case EbtInt: switch (from) { case EbtInt: return true; case EbtBool: return getSource() == EShSourceHlsl; case EbtInt16: return extensionRequested(E_GL_AMD_gpu_shader_int16); default: return false; } case EbtUint64: switch (from) { case EbtInt: case EbtUint: case EbtInt64: case EbtUint64: return true; case EbtInt16: case EbtUint16: return extensionRequested(E_GL_AMD_gpu_shader_int16); default: return false; } case EbtInt64: switch (from) { case EbtInt: case EbtInt64: return true; case EbtInt16: return extensionRequested(E_GL_AMD_gpu_shader_int16); default: return false; } case EbtFloat16: switch (from) { case EbtInt16: case EbtUint16: return extensionRequested(E_GL_AMD_gpu_shader_int16); case EbtFloat16: return extensionRequested(E_GL_AMD_gpu_shader_half_float); default: break; } return false; case EbtUint16: switch (from) { case EbtInt16: case EbtUint16: return extensionRequested(E_GL_AMD_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::getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const { TBasicType res0 = EbtNumTypes; TBasicType res1 = EbtNumTypes; if (isEsProfile() || 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; #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 = addConversion(EOpSequence, trueBlock, falseBlock); trueBlock = std::get<0>(children); falseBlock = std::get<1>(children); if (trueBlock == nullptr || falseBlock == nullptr) return nullptr; // Handle a vector condition as a mix if (!cond->getType().isScalarOrVec1()) { TType targetVectorType(trueBlock->getType().getBasicType(), EvqTemporary, cond->getType().getVectorSize()); // smear true/false operands as needed trueBlock = addUniShapeConversion(EOpMix, targetVectorType, trueBlock); falseBlock = addUniShapeConversion(EOpMix, targetVectorType, falseBlock); // After conversion, types have to match. if (falseBlock->getType() != trueBlock->getType()) return nullptr; // make the mix operation TIntermAggregate* mix = makeAggregate(loc); mix = growAggregate(mix, falseBlock); mix = growAggregate(mix, trueBlock); mix = growAggregate(mix, cond); mix->setType(targetVectorType); mix->setOp(EOpMix); return mix; } // Now have a scalar condition... // Convert true and false expressions to matching types addBiShapeConversion(EOpMix, trueBlock, falseBlock); // After conversion, types have to match. if (falseBlock->getType() != trueBlock->getType()) return nullptr; // 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. // const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool swizzleOkay) { 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(); } 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; } // // 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; } #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.push_front(TCall(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: if (operand->getBasicType() != EbtFloat) return false; } node.setType(operand->getType()); node.getWritableType().getQualifier().makeTemporary(); return true; } void TIntermUnary::updatePrecision() { if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat || getBasicType() == EbtFloat16) { 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; } void TIntermBinary::updatePrecision() { if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat || getBasicType() == EbtFloat16) { getQualifier().precision = std::max(right->getQualifier().precision, left->getQualifier().precision); if (getQualifier().precision != EpqNone) { left->propagatePrecision(getQualifier().precision); right->propagatePrecision(getQualifier().precision); } } } 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, 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 glslang-8.13.3559/glslang/MachineIndependent/LiveTraverser.h000066400000000000000000000120551360464450000236240ustar00rootroot00000000000000// // 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) { functions.push_back(candidate); break; } } } typedef std::list TFunctionStack; TFunctionStack functions; 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()); } } const TIntermediate& intermediate; typedef std::unordered_set TLiveFunctions; TLiveFunctions liveFunctions; bool traverseAll; private: // prevent copy & copy construct TLiveTraverser(TLiveTraverser&); TLiveTraverser& operator=(TLiveTraverser&); }; } // namespace glslang glslang-8.13.3559/glslang/MachineIndependent/ParseContextBase.cpp000066400000000000000000000533541360464450000246030ustar00rootroot00000000000000// // 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; 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(); 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; } 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().isShaderRecordNV()) message = "can't modify a shaderrecordnv qualified buffer"; break; case EvqHitAttrNV: if (language != EShLangIntersectNV) 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 EbtAccStructNV: message = "can't modify accelerationStructureNV"; 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) return false; // // If we get here, we have an error and a message. // if (symNode) error(loc, " l-value required", op, "\"%s\" (%s)", symbol, message); else error(loc, " l-value required", op, "(%s)", message); return true; } // Test for and give an error if the node can't be read from. void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) { if (! node) return; TIntermBinary* binaryNode = node->getAsBinaryNode(); if (binaryNode) { switch(binaryNode->getOp()) { case EOpIndexDirect: case EOpIndexIndirect: case EOpIndexDirectStruct: case EOpVectorSwizzle: case EOpMatrixSwizzle: rValueErrorCheck(loc, op, binaryNode->getLeft()); default: break; } return; } TIntermSymbol* symNode = node->getAsSymbolNode(); if (symNode && symNode->getQualifier().isWriteOnly()) error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str()); } // 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); } #ifdef ENABLE_HLSL // // 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; // 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; } #endif 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 glslang-8.13.3559/glslang/MachineIndependent/ParseHelper.cpp000066400000000000000000013534011360464450000236000ustar00rootroot00000000000000// // 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. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright 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(); #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::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 { error(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 { error(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(); #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"); result = intermediate.addBinaryMath(EOpAdd, base, index, loc); result->setType(base->getType()); 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) 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* 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 unaryOpError(loc, str, childNode->getCompleteString()); 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()) { error(loc, "does not operate on this type:", field.c_str(), base->getType().getCompleteString().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)) { 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(); } } 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 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()); // 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; } 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"); 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(), ""); 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 (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().c_str(), ""); } } else { // // Find it in the symbol table. // const TFunction* fnCandidate; bool builtIn; 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", ""); } 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); } 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 (obeyPrecisionQualifiers()) computeBuiltinPrecisions(*result, function); if (result == nullptr) { if (arguments == nullptr) error(loc, " wrong operand type", "Internal Error", "built in unary operator function. Type: %s", ""); else error(arguments->getLoc(), " wrong operand type", "Internal Error", "built in unary operator function. Type: %s", static_cast(arguments)->getCompleteString().c_str()); } else if (result->getAsOperator()) builtInOpCheck(loc, function, *result->getAsOperator()); 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; 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; if (currentFunctionType->getBasicType() == EbtVoid) { error(loc, "void function cannot return a value", "return", ""); return intermediate.addBranch(EOpReturn, loc); } else if (*currentFunctionType != value->getType()) { TIntermTyped* converted = intermediate.addConversion(EOpReturn, *currentFunctionType, value); if (converted) { if (*currentFunctionType != converted->getType()) error(loc, "cannot convert return value to function return type", "return", ""); if (version < 420) warn(loc, "type conversion on return values was not explicitly allowed until version 420", "return", ""); return intermediate.addBranch(EOpReturn, converted, loc); } else { error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); return intermediate.addBranch(EOpReturn, value, loc); } } else return intermediate.addBranch(EOpReturn, value, loc); } // See if the operation is being done in an illegal location. void TParseContext::checkLocation(const TSourceLoc& loc, TOperator op) { #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 } 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; // Grab the semantics and storage class semantics from the operands, based on opcode switch (callNode.getOp()) { case EOpAtomicAdd: 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)[4]->getAsConstantUnion()->getConstArray()[0].getIConst(); semantics = (*argp)[5]->getAsConstantUnion()->getConstArray()[0].getIConst(); break; case EOpImageAtomicLoad: storageClassSemantics = (*argp)[3]->getAsConstantUnion()->getConstArray()[0].getIConst(); semantics = (*argp)[4]->getAsConstantUnion()->getConstArray()[0].getIConst(); break; case EOpImageAtomicCompSwap: storageClassSemantics = (*argp)[5]->getAsConstantUnion()->getConstArray()[0].getIConst(); semantics = (*argp)[6]->getAsConstantUnion()->getConstArray()[0].getIConst(); storageClassSemantics2 = (*argp)[7]->getAsConstantUnion()->getConstArray()[0].getIConst(); semantics2 = (*argp)[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); } 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]->getAsConstantUnion()) error(loc, "argument must be compile-time constant", "texel offset", ""); else { 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]"); } } } break; } #ifndef GLSLANG_WEB case EOpTraceNV: if (!(*argp)[10]->getAsConstantUnion()) error(loc, "argument must be compile-time constant", "payload number", ""); break; case EOpExecuteCallableNV: if (!(*argp)[1]->getAsConstantUnion()) error(loc, "argument must be compile-time constant", "callable data number", ""); 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) { 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(), ""); } 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 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); } 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()); } 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: 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; #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(); switch (type.getBasicType()) { default: break; case EbtInt8: case EbtUint8: requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int8, type.getCompleteString().c_str()); break; case EbtInt16: case EbtUint16: requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int16, type.getCompleteString().c_str()); break; case EbtInt64: case EbtUint64: requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_int64, type.getCompleteString().c_str()); break; case EbtFloat16: requireExtensions(loc, 1, &E_GL_EXT_shader_subgroup_extended_types_float16, type.getCompleteString().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) { 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()); } // // 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 // an integer. // void TParseContext::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 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)) 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) { 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) ppError(loc, "names beginning with \"GL_\" can't be (un)defined:", op, identifier); else if (strncmp(identifier, "defined", 8) == 0) ppError(loc, "\"defined\" can't be (un)defined:", op, identifier); else if (strstr(identifier, "__") != 0) { 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) 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; } // 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; 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().isConstant()) constType = false; if (function[arg].type->getQualifier().isSpecConstant()) specConstType = true; if (function[arg].type->isFloatingDomain()) floatArgument = true; if (type.isStruct()) { if (function[arg].type->contains16BitFloat()) { requireFloat16Arithmetic(loc, "constructor", "can't construct structure containing 16-bit type"); } if (function[arg].type->contains16BitInt()) { requireInt16Arithmetic(loc, "constructor", "can't construct structure containing 16-bit type"); } if (function[arg].type->contains8BitInt()) { requireInt8Arithmetic(loc, "constructor", "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, "constructor", "16-bit arrays not supported"); if (type.isVector() && function.getParamCount() != 1) requireFloat16Arithmetic(loc, "constructor", "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, "constructor", "16-bit arrays not supported"); if (type.isVector() && function.getParamCount() != 1) requireInt16Arithmetic(loc, "constructor", "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, "constructor", "8-bit arrays not supported"); if (type.isVector() && function.getParamCount() != 1) requireInt8Arithmetic(loc, "constructor", "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; 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", "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()) { 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)); } } } } } if (arrayArg && op != EOpConstructStruct && ! type.isArrayOfArrays()) { error(loc, "constructing non-array constituent from array argument", "constructor", ""); 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", "constructor", ""); return false; } if (overFull) { error(loc, "too many arguments", "constructor", ""); 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", "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; } if (type.isCoopMat() && function.getParamCount() != 1) { error(loc, "wrong number of arguments", "constructor", ""); 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", "constructor", ""); return true; } TIntermTyped* typed = node->getAsTyped(); if (typed == nullptr) { error(loc, "constructor argument does not have a type", "constructor", ""); return true; } if (op != EOpConstructStruct && typed->getBasicType() == EbtSampler) { error(loc, "cannot convert a sampler", "constructor", ""); return true; } if (op != EOpConstructStruct && typed->isAtomic()) { error(loc, "cannot convert an atomic_uint", "constructor", ""); return true; } if (typed->getBasicType() == EbtVoid) { error(loc, "cannot convert a void", "constructor", ""); 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 textureXXX type", token, ""); return true; } // simulate the first argument's impact on the result type, so it can be compared with the encapsulated operator!=() TSampler texture = function.getType().getSampler(); texture.setCombined(false); texture.shadow = false; if (texture != function[0].type->getSampler()) { error(loc, "sampler-constructor first argument must match type and dimensionality of constructor type", token, ""); return true; } // second argument // * the constructor's second argument must be a scalar of type // *sampler* or *samplerShadow* if ( function[1].type->getBasicType() != EbtSampler || ! function[1].type->getSampler().isPureSampler() || function[1].type->isArray()) { error(loc, "sampler-constructor second argument must be a scalar type 'sampler'", token, ""); return true; } 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::accStructNVCheck(const TSourceLoc& loc, const TType& type, const TString& identifier) { if (type.getQualifier().storage == EvqUniform) return; if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtAccStructNV)) error(loc, "non-uniform struct contains an accelerationStructureNV:", type.getBasicTypeString().c_str(), identifier.c_str()); else if (type.getBasicType() == EbtAccStructNV && 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) vulkanRemoved(loc, "non-opaque uniforms outside a block"); // OpenGL wants locations on these (unless they are getting automapped) if (spvVersion.openGl > 0 && !type.getQualifier().hasLocation() && !intermediate.getAutoMapLocations()) error(loc, "non-opaque uniform variables need a layout(location=L)", identifier.c_str(), ""); } } // // Qualifier checks knowing the qualifier and that it is a member of a struct/block. // void TParseContext::memberQualifierCheck(glslang::TPublicType& publicType) { globalQualifierFixCheck(publicType.loc, publicType.qualifier); checkNoShaderLayouts(publicType.loc, publicType.shaderQualifiers); if (publicType.qualifier.isNonUniform()) { error(publicType.loc, "not allowed on block or structure members", "nonuniformEXT", ""); publicType.qualifier.nonUniform = false; } } // // 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 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; break; case EvqInOut: qualifier.storage = EvqVaryingIn; error(loc, "cannot use 'inout' at global scope", "", ""); break; case EvqGlobal: case EvqTemporary: nonuniformOkay = true; break; default: break; } if (!nonuniformOkay && qualifier.isNonUniform()) error(loc, "for non-parameter, can only apply to 'in' or no storage qualifier", "nonuniformEXT", ""); 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())) { 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 && 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, nullptr, "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)) || (src.devicecoherent && (dst.coherent || dst.queuefamilycoherent || dst.workgroupcoherent || dst.subgroupcoherent)) || (src.queuefamilycoherent && (dst.coherent || dst.devicecoherent || dst.workgroupcoherent || dst.subgroupcoherent)) || (src.workgroupcoherent && (dst.coherent || dst.devicecoherent || dst.queuefamilycoherent || dst.subgroupcoherent)) || (src.subgroupcoherent && (dst.coherent || dst.devicecoherent || dst.queuefamilycoherent || dst.workgroupcoherent)))) { error(loc, "only one coherent/devicecoherent/queuefamilycoherent/workgroupcoherent/subgroupcoherent 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(nonprivate); MERGE_SINGLETON(volatil); MERGE_SINGLETON(restrict); MERGE_SINGLETON(readonly); MERGE_SINGLETON(writeonly); MERGE_SINGLETON(nonUniform); #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; // 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() == EbtAccStructNV || (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 >= 150) || esRedecls)) || identifier == "gl_ClipDistance" || identifier == "gl_CullDistance" || 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); // 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.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()); 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().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; paramCheckFixStorage(loc, qualifier.storage, type); } void TParseContext::nestedBlockCheck(const TSourceLoc& loc) { if (structNestingLevel > 0) error(loc, "cannot nest a block definition inside a structure or block", "", ""); ++structNestingLevel; } void TParseContext::nestedStructCheck(const TSourceLoc& loc) { if (structNestingLevel > 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 int 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) spvRemoved(loc, "packed"); publicType.qualifier.layoutPacking = ElpPacked; return; } if (id == TQualifier::getLayoutPackingString(ElpShared)) { if (spvVersion.spv != 0) 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, nullptr, "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, "origin_upper_left"); publicType.shaderQualifiers.originUpperLeft = true; return; } if (id == "pixel_center_integer") { requireProfile(loc, ECoreProfile | ECompatibilityProfile, "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 == EShLangRayGenNV || language == EShLangIntersectNV || language == EShLangAnyHitNV || language == EShLangClosestHitNV || language == EShLangMissNV || language == EShLangCallableNV) { if (id == "shaderrecordnv") { publicType.qualifier.layoutShaderRecordNV = 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; } } } #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; 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 = (unsigned int)std::log2(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, "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"); // "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.layoutShaderRecordNV) dst.layoutShaderRecordNV = 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() && (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.isShaderRecordNV()) error(loc, "can only specify on a buffer block", "shaderRecordNV", ""); } 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) { 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 EvqPayloadNV: case EvqPayloadInNV: case EvqHitAttrNV: case EvqCallableDataNV: case EvqCallableDataInNV: 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()) { 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) lastBinding += 1; else { if (type.isSizedArray()) lastBinding += type.getCumulativeArraySize(); else { lastBinding += 1; #ifndef GLSLANG_WEB if (spvVersion.vulkan == 0) 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()) { 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.isShaderRecordNV() && !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() && type.getBasicType() != EbtBlock) error(loc, "can only be used with a block", "push_constant", ""); if (qualifier.hasBufferReference() && type.getBasicType() != EbtBlock) error(loc, "can only be used with a block", "buffer_reference", ""); if (qualifier.isShaderRecordNV() && 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; } } } // 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()) error(loc, "cannot apply layout qualifiers to a shared variable", "shared", ""); // "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 (! qualifier.isUniformOrBuffer() && !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.hasBufferReference()) { if (qualifier.storage != EvqBuffer) error(loc, "can only be used with buffer", "buffer_reference", ""); } if (qualifier.isShaderRecordNV()) { 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 == EvqHitAttrNV && 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), ""); #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; 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() || version < 120) function = findFunctionExact(loc, call, builtIn); else if (version < 400) function = findFunction120(loc, call, builtIn); else if (explicitTypesEnabled) function = findFunctionExplicitTypes(loc, call, builtIn); else function = findFunction400(loc, call, builtIn); 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; } // 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() && publicType.qualifier.hasOffset()) { if (publicType.qualifier.layoutBinding >= (unsigned int)resources.maxAtomicCounterBindings) { error(loc, "atomic_uint binding is too large", "binding", ""); return; } atomicUintOffsets[publicType.qualifier.layoutBinding] = publicType.qualifier.layoutOffset; return; } if (publicType.qualifier.hasLayout() && !publicType.qualifier.hasBufferReference()) warn(loc, "useless application of layout qualifier", "layout", ""); #endif } // // 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 (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); accStructNVCheck(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 (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); 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) { // // 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))) { error(loc, " cannot initialize this type of qualifier ", variable->getType().getStorageQualifierString(), ""); 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().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().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(), initializer->getCompleteString()); 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().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().c_str()); return nullptr; } } else { error(loc, "unexpected initializer-list type:", "initializer list", type.getCompleteString().c_str()); return nullptr; } // Now that the subtree is processed, process this node as if the // initializer list is a set of arguments to a constructor. TIntermNode* emulatedConstructorArguments; if (initList->getSequence().size() == 1) emulatedConstructorArguments = initList->getSequence()[0]; else emulatedConstructorArguments = initList; return addConstructor(loc, emulatedConstructorArguments, type); } // // 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; } return intermediate.setAggregateOperator(aggrNode, op, type, loc); } // 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); } 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; #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) { 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; } // 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) { 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; globalQualifierFixCheck(memberLoc, memberQualifier); 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; #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; #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) { requireProfile(memberLoc, ~EEsProfile, "offset on block member"); profileRequires(memberLoc, ~EEsProfile, 440, 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; 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.isShaderRecordNV() && !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); 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); } // 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) { 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, nullptr, "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; #ifndef GLSLANG_WEB case EvqPayloadNV: profileRequires(loc, ~EEsProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV block"); requireStage(loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangAnyHitNVMask | EShLangClosestHitNVMask | EShLangMissNVMask), "rayPayloadNV block"); break; case EvqPayloadInNV: profileRequires(loc, ~EEsProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV block"); requireStage(loc, (EShLanguageMask)(EShLangAnyHitNVMask | EShLangClosestHitNVMask | EShLangMissNVMask), "rayPayloadInNV block"); break; case EvqHitAttrNV: profileRequires(loc, ~EEsProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV block"); requireStage(loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangAnyHitNVMask | EShLangClosestHitNVMask), "hitAttributeNV block"); break; case EvqCallableDataNV: profileRequires(loc, ~EEsProfile, 460, E_GL_NV_ray_tracing, "callableDataNV block"); requireStage(loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask), "callableDataNV block"); break; case EvqCallableDataInNV: profileRequires(loc, ~EEsProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV block"); requireStage(loc, (EShLanguageMask)(EShLangCallableNVMask), "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.isShaderRecordNV()) intermediate.addShaderRecordNVCount(); 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 (!qualifier.isUniformOrBuffer() && !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; } } // 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() && 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); } #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; default: error(loc, "default qualifier requires 'uniform', 'buffer', 'in', or 'out' 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.isShaderRecordNV()) 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 && ! relaxedErrors()) 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; } } // end namespace glslang glslang-8.13.3559/glslang/MachineIndependent/ParseHelper.h000066400000000000000000000662311360464450000232460ustar00rootroot00000000000000// // 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; // // 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), controlFlowNestingLevel(0), 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) { 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); } #ifdef ENABLE_HLSL // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) virtual void growGlobalUniformBlock(const TSourceLoc&, TType&, const TString& memberName, TTypeList* typeList = nullptr); #endif // Potentially rename shader entry point function void renameShaderFunction(TString*& name) const { // Replace the entry point name given in the shader with the real entry point name, // if there is a substitution. if (name != nullptr && *name == sourceEntryPointName && intermediate.getEntryPointName().size() > 0) name = NewPoolTString(intermediate.getEntryPointName().c_str()); } virtual bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); virtual void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); const char* const scopeMangler; // Basic parsing state, easily accessible to the grammar TSymbolTable& symbolTable; // symbol table that goes with the current language, version, and profile int statementNestingLevel; // 0 if outside all flow control or compound statements int loopNestingLevel; // 0 if outside all loops int structNestingLevel; // 0 if outside blocks and structures int controlFlowNestingLevel; // 0 if outside all flow control const TType* currentFunctionType; // the return type of the function that's currently being parsed bool functionReturnsValue; // true if a non-void function has a return // if inside a function, true if the function is the entry point and this is after a return statement bool postEntryPointReturn; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting TList switchSequenceStack; // the statementNestingLevel the current switch statement is at, which must match the level of its case statements TList switchLevel; struct TPragma contextPragma; 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&) { } 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 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); 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; 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); 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 accStructNVCheck(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&); 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*, int 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 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 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); #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*); #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 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; 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; // // 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_ glslang-8.13.3559/glslang/MachineIndependent/PoolAlloc.cpp000066400000000000000000000224371360464450000232530ustar00rootroot00000000000000// // 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 glslang-8.13.3559/glslang/MachineIndependent/RemoveTree.cpp000066400000000000000000000060611360464450000234370ustar00rootroot00000000000000// // 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 glslang-8.13.3559/glslang/MachineIndependent/RemoveTree.h000066400000000000000000000032501360464450000231010ustar00rootroot00000000000000// // 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 glslang-8.13.3559/glslang/MachineIndependent/Scan.cpp000066400000000000000000002015261360464450000222510ustar00rootroot00000000000000// // 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. // // // 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') { while (peek() == '\n' || peek() == '\r') get(); } else 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)["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)["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)["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; #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)["rayPayloadInNV"] = PAYLOADINNV; (*KeywordMap)["hitAttributeNV"] = HITATTRNV; (*KeywordMap)["callableDataNV"] = CALLDATANV; (*KeywordMap)["callableDataInNV"] = CALLDATAINNV; (*KeywordMap)["accelerationStructureNV"] = ACCSTRUCTNV; (*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 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 BUFFER: afterBuffer = true; if ((parseContext.isEsProfile() && parseContext.version < 310) || (!parseContext.isEsProfile() && parseContext.version < 430)) 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 < 330)) 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 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 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 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 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 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 IMAGE2DMS: case IIMAGE2DMS: case UIMAGE2DMS: case IMAGE2DMSARRAY: case IIMAGE2DMSARRAY: case UIMAGE2DMSARRAY: afterType = true; return secondGenerationImage(); case DOUBLE: case DVEC2: case DVEC3: case DVEC4: afterType = true; if (parseContext.isEsProfile() || parseContext.version < 400) 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(); #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) 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 glslang-8.13.3559/glslang/MachineIndependent/Scan.h000066400000000000000000000227411360464450000217160ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/glslang/MachineIndependent/ScanContext.h000066400000000000000000000062061360464450000232610ustar00rootroot00000000000000// // 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 glslang-8.13.3559/glslang/MachineIndependent/ShaderLang.cpp000066400000000000000000002304241360464450000233740ustar00rootroot00000000000000// // 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. // // // 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" 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 = 3; // index range in MapSpvVersionToIndex int MapSpvVersionToIndex(const SpvVersion& spvVersion) { int index = 0; if (spvVersion.openGl > 0) index = 1; else if (spvVersion.vulkan > 0) index = 2; assert(index < SpvVersionCount); return index; } const int ProfileCount = 4; // index range in MapProfileToIndex int MapProfileToIndex(EProfile profile) { int index = 0; switch (profile) { case ENoProfile: 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; #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; #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); #endif // check for compute if ((profile != EEsProfile && version >= 420) || (profile == EEsProfile && version >= 310)) InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, source, infoSink, commonTable, symbolTables); // check for ray tracing stages if (profile != EEsProfile && version >= 450) { InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangRayGenNV, source, infoSink, commonTable, symbolTables); InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangIntersectNV, source, infoSink, commonTable, symbolTables); InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangAnyHitNV, source, infoSink, commonTable, symbolTables); InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangClosestHitNV, source, infoSink, commonTable, symbolTables); InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangMissNV, source, infoSink, commonTable, symbolTables); InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCallableNV, 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); 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) { #ifndef GLSLANG_WEB 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; } #ifndef GLSLANG_WEB // 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 EShLangRayGenNV: case EShLangIntersectNV: case EShLangAnyHitNV: case EShLangClosestHitNV: case EShLangMissNV: case EShLangCallableNV: 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; break; case EShClientOpenGL: spvVersion.openGl = environment->input.dialectVersion; break; } switch (environment->input.languageFamily) { case EShSourceNone: break; case EShSourceGlsl: source = EShSourceGlsl; messages = static_cast(messages & ~EShMsgReadHlsl); break; case EShSourceHlsl: source = EShSourceHlsl; messages = static_cast(messages | EShMsgReadHlsl); break; } } // client switch (environment->client.client) { case EShClientVulkan: spvVersion.vulkan = environment->client.version; break; default: break; } // generated code switch (environment->target.language) { case EshTargetSpv: spvVersion.spv = environment->target.version; break; default: break; } } } // Most processes are recorded when set in the intermediate representation, // These are the few that are not. void RecordProcesses(TIntermediate& intermediate, EShMessages messages, const std::string& sourceEntryPointName) { if ((messages & EShMsgRelaxedErrors) != 0) intermediate.addProcess("relaxed-errors"); if ((messages & EShMsgSuppressWarnings) != 0) intermediate.addProcess("suppress-warnings"); if ((messages & EShMsgKeepUncalled) != 0) intermediate.addProcess("keep-uncalled"); if (sourceEntryPointName.size() > 0) { intermediate.addProcess("source-entrypoint"); intermediate.addProcessArgument(sourceEntryPointName); } } // This is the common setup and cleanup code for PreprocessDeferred and // CompileDeferred. // It takes any callable with a signature of // 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, 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) { #ifndef GLSLANG_WEB 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; } bool goodVersion = DeduceVersionProfile(compiler->infoSink, stage, versionNotFirst, defaultVersion, source, version, profile, spvVersion); #ifdef GLSLANG_WEB profile = EEsProfile; version = 310; #endif bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst)); #ifndef GLSLANG_WEB 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); // 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(); #ifndef GLSLANG_WEB 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); return success; } #ifndef GLSLANG_WEB // 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"; } if (messages & EShMsgAST) intermediate.output(parseContext.infoSink, true); return success; } }; #ifndef GLSLANG_WEB // 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, 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) { DoPreprocessing parser(outputString); return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames, preamble, optLevel, resources, defaultVersion, defaultProfile, forceDefaultVersionAndProfile, forwardCompatible, messages, intermediate, parser, false, includer); } #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, 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, 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; glslang::ReleaseGlobalLock(); if (PerProcessGPA == nullptr) PerProcessGPA = new TPoolAllocator(); glslang::TScanContext::fillInKeywordMap(); #ifdef ENABLE_HLSL glslang::HlslScanContext::fillInKeywordMap(); #endif 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; glslang::ReleaseGlobalLock(); if (! finalize) return 1; for (int version = 0; version < VersionCount; ++version) { for (int spvVersion = 0; spvVersion < SpvVersionCount; ++spvVersion) { for (int p = 0; p < ProfileCount; ++p) { 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 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, 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 { #include "../Include/revision.h" #define QUOTE(s) #s #define STR(n) QUOTE(n) const char* GetEsslVersionString() { return "OpenGL ES GLSL 3.20 glslang Khronos. " STR(GLSLANG_MINOR_VERSION) "." STR(GLSLANG_PATCH_LEVEL); } const char* GetGlslVersionString() { return "4.60 glslang Khronos. " STR(GLSLANG_MINOR_VERSION) "." STR(GLSLANG_PATCH_LEVEL); } 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("") { pool = new TPoolAllocator; infoSink = new TInfoSink; compiler = new TDeferredCompiler(stage, *infoSink); intermediate = new TIntermediate(s); // clear environment (avoid constructors in them for use in a C interface) environment.input.languageFamily = EShSourceNone; environment.input.dialect = EShClientNone; environment.client.client = EShClientNone; environment.target.language = EShTargetNone; environment.target.hlslFunctionality1 = false; } TShader::~TShader() { 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; } void TShader::addProcesses(const std::vector& p) { intermediate->addProcesses(p); } void TShader::setInvertY(bool invert) { intermediate->setInvertY(invert); } 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 #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, forwardCompatible, messages, *intermediate, includer, sourceEntryPointName, &environment); } #ifndef GLSLANG_WEB // 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, forwardCompatible, message, includer, *intermediate, output_string); } #endif const char* TShader::getInfoLog() { return infoSink->info.c_str(); } const char* TShader::getInfoDebugLog() { return infoSink->debug.c_str(); } TProgram::TProgram() : #ifndef GLSLANG_WEB 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; #ifndef GLSLANG_WEB 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; } // TODO: Link: cross-stage error checking 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; #ifndef GLSLANG_WEB 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()); // 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); if (messages & EShMsgAST) intermediate[stage]->output(*infoSink, true); return intermediate[stage]->getNumErrors() == 0; } const char* TProgram::getInfoLog() { return infoSink->info.c_str(); } const char* TProgram::getInfoDebugLog() { return infoSink->debug.c_str(); } #ifndef GLSLANG_WEB // // 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 } // end namespace glslang glslang-8.13.3559/glslang/MachineIndependent/SymbolTable.cpp000066400000000000000000000353301360464450000236000ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-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. // // // 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 EbtAccStructNV: mangledName += "asnv"; 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; 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), "%d-", 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) { 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%d", 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 += ']'; } } } #ifndef GLSLANG_WEB // // 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) 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; } 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; 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 symTableLevel->insert(*iter->second->clone(), false); } 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 glslang-8.13.3559/glslang/MachineIndependent/SymbolTable.h000066400000000000000000001015361360464450000232470ustar00rootroot00000000000000// // 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), 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(int id) { uniqueId = id; } virtual int 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(); } #ifndef GLSLANG_WEB 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 int 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(); } #ifndef GLSLANG_WEB 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 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; }; // // 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; } #ifndef GLSLANG_WEB 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(TSymbol& symbol, bool separateNameSpaces) { // // returning true means symbol was added to the table with no semantic errors // const TString& name = symbol.getName(); if (name == "") { symbol.getAsVariable()->setAnonId(anonId++); // An empty name means an anonymous container, exposing its members to the external scope. // Give it a name and insert its members in the symbol table, pointing to the container. char buf[20]; snprintf(buf, 20, "%s%d", AnonymousPrefix, 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; } 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[]); #ifndef GLSLANG_WEB 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; 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 int globalLevel = 3; bool isSharedLevel(int level) { return level <= 1; } // exclude all per-compile levels bool isBuiltInLevel(int level) { return level <= 2; } // exclude user globals 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()); } void setNoBuiltInRedeclarations() { noBuiltInRedeclarations = true; } void setSeparateNameSpaces() { separateNameSpaces = true; } void push() { table.push_back(new TSymbolTableLevel); } // Make a new symbol-table level to represent the scope introduced by a structure // containing member functions, such that the member functions can find anonymous // references to member variables. // // 'thisSymbol' should have a name of "" to trigger anonymous structure-member // symbol finds. void pushThis(TSymbol& thisSymbol) { assert(thisSymbol.getName().size() == 0); table.push_back(new TSymbolTableLevel); table.back()->setThisLevel(); insert(thisSymbol); } void pop(TPrecisionQualifier *p) { table[currentLevel()]->getPreviousDefaultPrecisions(p); delete table.back(); table.pop_back(); } // // 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); } // // 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; } // 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; } } } int getMaxSymbolId() { return uniqueId; } #ifndef GLSLANG_WEB 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(); } protected: TSymbolTable(TSymbolTable&); TSymbolTable& operator=(TSymbolTableLevel&); int currentLevel() const { return static_cast(table.size()) - 1; } std::vector table; int uniqueId; // for unique identification in code generation bool noBuiltInRedeclarations; bool separateNameSpaces; unsigned int adoptedLevels; }; } // end namespace glslang #endif // _SYMBOL_TABLE_INCLUDED_ glslang-8.13.3559/glslang/MachineIndependent/Versions.cpp000066400000000000000000001537251360464450000232040ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-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. // // // 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() // // 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: // // extensionBehavior[XXX_extension_X] = EBhDisable; // // 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.) // #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() { 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_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_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_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_shader_16bit_storage] = EBhDisable; extensionBehavior[E_GL_EXT_shader_8bit_storage] = 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_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; // 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; // EXT extensions extensionBehavior[E_GL_EXT_device_group] = EBhDisable; extensionBehavior[E_GL_EXT_multiview] = EBhDisable; extensionBehavior[E_GL_EXT_shader_realtime_clock] = 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; } #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" // AEP "#define GL_ANDROID_extension_pack_es31a 1\n" "#define GL_KHR_blend_equation_advanced 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" // 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 (isEsProfile() && version >= 300) { preamble += "#define GL_NV_shader_noperspective_interpolation 1\n"; } } else { 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_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_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_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" // 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 E_GL_EXT_shader_atomic_int64 1\n" "#define E_GL_EXT_shader_realtime_clock 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_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" ; 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"; } #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" ; #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 } // // 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 EShLangRayGenNV: return "ray-generation"; case EShLangIntersectNV: return "intersection"; case EShLangAnyHitNV: return "any-hit"; case EShLangClosestHitNV: return "closest-hit"; case EShLangMissNV: return "miss"; case EShLangCallableNV: 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; } // check if extension is used with correct shader stage checkExtensionStage(getCurrentLoc(), extension); // 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); } 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 == EBhEnable || behavior == EBhRequire) 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"); } } // 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); profileRequires(loc, ECoreProfile | ECompatibilityProfile, 400, nullptr, 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) 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 } } // end namespace glslang glslang-8.13.3559/glslang/MachineIndependent/Versions.h000066400000000000000000000472051360464450000226440ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-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. // #ifndef _VERSIONS_INCLUDED_ #define _VERSIONS_INCLUDED_ // // 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 { EBadProfile = 0, ENoProfile = (1 << 0), // only for desktop, before profiles showed up ECoreProfile = (1 << 1), ECompatibilityProfile = (1 << 2), EEsProfile = (1 << 3) } 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) {} 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" }; // // 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_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_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_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"; // 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_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"; // 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"; // 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_ glslang-8.13.3559/glslang/MachineIndependent/attribute.cpp000066400000000000000000000264561360464450000233770ustar00rootroot00000000000000// // 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 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; } } } } // end namespace glslang #endif // GLSLANG_WEB glslang-8.13.3559/glslang/MachineIndependent/attribute.h000066400000000000000000000105561360464450000230360ustar00rootroot00000000000000// // 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 }; 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_ glslang-8.13.3559/glslang/MachineIndependent/gl_types.h000066400000000000000000000231431360464450000226550ustar00rootroot00000000000000/* ** 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 0x8FE5 #define GL_UNSIGNED_INT64_VEC3_ARB 0x8FE6 #define GL_UNSIGNED_INT64_VEC4_ARB 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 glslang-8.13.3559/glslang/MachineIndependent/glslang.m4000066400000000000000000004310471360464450000225550ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-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 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; }; 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 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 // 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 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 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 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 PATCH SAMPLE NONUNIFORM %token COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT %token SUBGROUPCOHERENT NONPRIVATE %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 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 | 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.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(), $6->getCompleteString()); $$ = $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.intermediate.addAssign($2.op, $1, $3, $2.loc); if ($$ == 0) { parseContext.assignError($2.loc, "assign", $1->getCompleteString(), $3->getCompleteString()); $$ = $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(), $3->getCompleteString()); $$ = $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 } | 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.structNestingLevel; 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 : 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; } 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)(EShLangIntersectNVMask | EShLangClosestHitNVMask | EShLangAnyHitNVMask), "hitAttributeNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV"); $$.init($1.loc); $$.qualifier.storage = EvqHitAttrNV; } | PAYLOADNV { parseContext.globalCheck($1.loc, "rayPayloadNV"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV"); $$.init($1.loc); $$.qualifier.storage = EvqPayloadNV; } | PAYLOADINNV { parseContext.globalCheck($1.loc, "rayPayloadInNV"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitNVMask | EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV"); $$.init($1.loc); $$.qualifier.storage = EvqPayloadInNV; } | CALLDATANV { parseContext.globalCheck($1.loc, "callableDataNV"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask), "callableDataNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV"); $$.init($1.loc); $$.qualifier.storage = EvqCallableDataNV; } | CALLDATAINNV { parseContext.globalCheck($1.loc, "callableDataInNV"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangCallableNVMask), "callableDataInNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV"); $$.init($1.loc); $$.qualifier.storage = EvqCallableDataInNV; } | 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; } | 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.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.doubleCheck($1.loc, "double vector"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setVector(2); } | DVEC3 { parseContext.doubleCheck($1.loc, "double vector"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setVector(3); } | DVEC4 { 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.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(2, 2); } | DMAT3 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(3, 3); } | DMAT4 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(4, 4); } | DMAT2X2 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(2, 2); } | DMAT2X3 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(2, 3); } | DMAT2X4 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(2, 4); } | DMAT3X2 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(3, 2); } | DMAT3X3 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(3, 3); } | DMAT3X4 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(3, 4); } | DMAT4X2 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(4, 2); } | DMAT4X3 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(4, 3); } | DMAT4X4 { 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 = EbtAccStructNV; } | 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); } | 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; } 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; } 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.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.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.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.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.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); } ; // 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); } 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); } ; GLSLANG_WEB_EXCLUDE_ON attribute : LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET { $$ = $3; parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_control_flow_attributes, "attribute"); } attribute_list : single_attribute { $$ = $1; } | attribute_list COMMA single_attribute { $$ = parseContext.mergeAttributes($1, $3); } single_attribute : IDENTIFIER { $$ = parseContext.makeAttributes(*$1.string); } | IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN { $$ = parseContext.makeAttributes(*$1.string, $3); } GLSLANG_WEB_EXCLUDE_OFF %% glslang-8.13.3559/glslang/MachineIndependent/glslang.y000066400000000000000000004265221360464450000225070ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-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 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; }; 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 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 // 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 %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 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 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 PATCH SAMPLE NONUNIFORM %token COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT %token SUBGROUPCOHERENT NONPRIVATE %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 %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); } | 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.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(), $6->getCompleteString()); $$ = $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.intermediate.addAssign($2.op, $1, $3, $2.loc); if ($$ == 0) { parseContext.assignError($2.loc, "assign", $1->getCompleteString(), $3->getCompleteString()); $$ = $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(), $3->getCompleteString()); $$ = $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 } | 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.structNestingLevel; 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 : 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; } ; 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)(EShLangIntersectNVMask | EShLangClosestHitNVMask | EShLangAnyHitNVMask), "hitAttributeNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV"); $$.init($1.loc); $$.qualifier.storage = EvqHitAttrNV; } | PAYLOADNV { parseContext.globalCheck($1.loc, "rayPayloadNV"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV"); $$.init($1.loc); $$.qualifier.storage = EvqPayloadNV; } | PAYLOADINNV { parseContext.globalCheck($1.loc, "rayPayloadInNV"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitNVMask | EShLangAnyHitNVMask | EShLangMissNVMask), "rayPayloadInNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV"); $$.init($1.loc); $$.qualifier.storage = EvqPayloadInNV; } | CALLDATANV { parseContext.globalCheck($1.loc, "callableDataNV"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask), "callableDataNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV"); $$.init($1.loc); $$.qualifier.storage = EvqCallableDataNV; } | CALLDATAINNV { parseContext.globalCheck($1.loc, "callableDataInNV"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangCallableNVMask), "callableDataInNV"); parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV"); $$.init($1.loc); $$.qualifier.storage = EvqCallableDataInNV; } | 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; } | 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.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.doubleCheck($1.loc, "double vector"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setVector(2); } | DVEC3 { parseContext.doubleCheck($1.loc, "double vector"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setVector(3); } | DVEC4 { 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.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(2, 2); } | DMAT3 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(3, 3); } | DMAT4 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(4, 4); } | DMAT2X2 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(2, 2); } | DMAT2X3 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(2, 3); } | DMAT2X4 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(2, 4); } | DMAT3X2 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(3, 2); } | DMAT3X3 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(3, 3); } | DMAT3X4 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(3, 4); } | DMAT4X2 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(4, 2); } | DMAT4X3 { parseContext.doubleCheck($1.loc, "double matrix"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; $$.setMatrix(4, 3); } | DMAT4X4 { 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 = EbtAccStructNV; } | 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); } | 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; } | 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; } ; 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.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.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.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.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.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); } ; // 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); } 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); } ; attribute : LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET { $$ = $3; parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_control_flow_attributes, "attribute"); } attribute_list : single_attribute { $$ = $1; } | attribute_list COMMA single_attribute { $$ = parseContext.mergeAttributes($1, $3); } single_attribute : IDENTIFIER { $$ = parseContext.makeAttributes(*$1.string); } | IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN { $$ = parseContext.makeAttributes(*$1.string, $3); } %% glslang-8.13.3559/glslang/MachineIndependent/glslang_tab.cpp000066400000000000000000016621131360464450000236460ustar00rootroot00000000000000/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "3.0.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 1 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* Copy the first part of user declarations. */ #line 68 "MachineIndependent/glslang.y" /* yacc.c:339 */ /* Based on: ANSI C Yacc grammar In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a matching Lex specification) for the April 30, 1985 draft version of the ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that original, as mentioned in the answer to question 17.25 of the comp.lang.c FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z. I intend to keep this version as close to the current C Standard grammar as possible; please let me know if you discover discrepancies. Jutta Degener, 1995 */ #include "SymbolTable.h" #include "ParseHelper.h" #include "../Public/ShaderLang.h" #include "attribute.h" using namespace glslang; #line 92 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339 */ # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 1 #endif /* In a future release of Bison, this section will be replaced by #include "glslang_tab.cpp.h". */ #ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED # define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif #if YYDEBUG extern int yydebug; #endif /* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { CONST = 258, BOOL = 259, INT = 260, UINT = 261, FLOAT = 262, BVEC2 = 263, BVEC3 = 264, BVEC4 = 265, IVEC2 = 266, IVEC3 = 267, IVEC4 = 268, UVEC2 = 269, UVEC3 = 270, UVEC4 = 271, VEC2 = 272, VEC3 = 273, VEC4 = 274, MAT2 = 275, MAT3 = 276, MAT4 = 277, MAT2X2 = 278, MAT2X3 = 279, MAT2X4 = 280, MAT3X2 = 281, MAT3X3 = 282, MAT3X4 = 283, MAT4X2 = 284, MAT4X3 = 285, MAT4X4 = 286, SAMPLER2D = 287, SAMPLER3D = 288, SAMPLERCUBE = 289, SAMPLER2DSHADOW = 290, SAMPLERCUBESHADOW = 291, SAMPLER2DARRAY = 292, SAMPLER2DARRAYSHADOW = 293, ISAMPLER2D = 294, ISAMPLER3D = 295, ISAMPLERCUBE = 296, ISAMPLER2DARRAY = 297, USAMPLER2D = 298, USAMPLER3D = 299, USAMPLERCUBE = 300, USAMPLER2DARRAY = 301, SAMPLER = 302, SAMPLERSHADOW = 303, TEXTURE2D = 304, TEXTURE3D = 305, TEXTURECUBE = 306, TEXTURE2DARRAY = 307, ITEXTURE2D = 308, ITEXTURE3D = 309, ITEXTURECUBE = 310, ITEXTURE2DARRAY = 311, UTEXTURE2D = 312, UTEXTURE3D = 313, UTEXTURECUBE = 314, UTEXTURE2DARRAY = 315, ATTRIBUTE = 316, VARYING = 317, FLOAT16_T = 318, FLOAT32_T = 319, DOUBLE = 320, FLOAT64_T = 321, INT64_T = 322, UINT64_T = 323, INT32_T = 324, UINT32_T = 325, INT16_T = 326, UINT16_T = 327, INT8_T = 328, UINT8_T = 329, I64VEC2 = 330, I64VEC3 = 331, I64VEC4 = 332, U64VEC2 = 333, U64VEC3 = 334, U64VEC4 = 335, I32VEC2 = 336, I32VEC3 = 337, I32VEC4 = 338, U32VEC2 = 339, U32VEC3 = 340, U32VEC4 = 341, I16VEC2 = 342, I16VEC3 = 343, I16VEC4 = 344, U16VEC2 = 345, U16VEC3 = 346, U16VEC4 = 347, I8VEC2 = 348, I8VEC3 = 349, I8VEC4 = 350, U8VEC2 = 351, U8VEC3 = 352, U8VEC4 = 353, DVEC2 = 354, DVEC3 = 355, DVEC4 = 356, DMAT2 = 357, DMAT3 = 358, DMAT4 = 359, F16VEC2 = 360, F16VEC3 = 361, F16VEC4 = 362, F16MAT2 = 363, F16MAT3 = 364, F16MAT4 = 365, F32VEC2 = 366, F32VEC3 = 367, F32VEC4 = 368, F32MAT2 = 369, F32MAT3 = 370, F32MAT4 = 371, F64VEC2 = 372, F64VEC3 = 373, F64VEC4 = 374, F64MAT2 = 375, F64MAT3 = 376, F64MAT4 = 377, DMAT2X2 = 378, DMAT2X3 = 379, DMAT2X4 = 380, DMAT3X2 = 381, DMAT3X3 = 382, DMAT3X4 = 383, DMAT4X2 = 384, DMAT4X3 = 385, DMAT4X4 = 386, F16MAT2X2 = 387, F16MAT2X3 = 388, F16MAT2X4 = 389, F16MAT3X2 = 390, F16MAT3X3 = 391, F16MAT3X4 = 392, F16MAT4X2 = 393, F16MAT4X3 = 394, F16MAT4X4 = 395, F32MAT2X2 = 396, F32MAT2X3 = 397, F32MAT2X4 = 398, F32MAT3X2 = 399, F32MAT3X3 = 400, F32MAT3X4 = 401, F32MAT4X2 = 402, F32MAT4X3 = 403, F32MAT4X4 = 404, F64MAT2X2 = 405, F64MAT2X3 = 406, F64MAT2X4 = 407, F64MAT3X2 = 408, F64MAT3X3 = 409, F64MAT3X4 = 410, F64MAT4X2 = 411, F64MAT4X3 = 412, F64MAT4X4 = 413, ATOMIC_UINT = 414, ACCSTRUCTNV = 415, FCOOPMATNV = 416, ICOOPMATNV = 417, UCOOPMATNV = 418, SAMPLERCUBEARRAY = 419, SAMPLERCUBEARRAYSHADOW = 420, ISAMPLERCUBEARRAY = 421, USAMPLERCUBEARRAY = 422, SAMPLER1D = 423, SAMPLER1DARRAY = 424, SAMPLER1DARRAYSHADOW = 425, ISAMPLER1D = 426, SAMPLER1DSHADOW = 427, SAMPLER2DRECT = 428, SAMPLER2DRECTSHADOW = 429, ISAMPLER2DRECT = 430, USAMPLER2DRECT = 431, SAMPLERBUFFER = 432, ISAMPLERBUFFER = 433, USAMPLERBUFFER = 434, SAMPLER2DMS = 435, ISAMPLER2DMS = 436, USAMPLER2DMS = 437, SAMPLER2DMSARRAY = 438, ISAMPLER2DMSARRAY = 439, USAMPLER2DMSARRAY = 440, SAMPLEREXTERNALOES = 441, SAMPLEREXTERNAL2DY2YEXT = 442, ISAMPLER1DARRAY = 443, USAMPLER1D = 444, USAMPLER1DARRAY = 445, F16SAMPLER1D = 446, F16SAMPLER2D = 447, F16SAMPLER3D = 448, F16SAMPLER2DRECT = 449, F16SAMPLERCUBE = 450, F16SAMPLER1DARRAY = 451, F16SAMPLER2DARRAY = 452, F16SAMPLERCUBEARRAY = 453, F16SAMPLERBUFFER = 454, F16SAMPLER2DMS = 455, F16SAMPLER2DMSARRAY = 456, F16SAMPLER1DSHADOW = 457, F16SAMPLER2DSHADOW = 458, F16SAMPLER1DARRAYSHADOW = 459, F16SAMPLER2DARRAYSHADOW = 460, F16SAMPLER2DRECTSHADOW = 461, F16SAMPLERCUBESHADOW = 462, F16SAMPLERCUBEARRAYSHADOW = 463, IMAGE1D = 464, IIMAGE1D = 465, UIMAGE1D = 466, IMAGE2D = 467, IIMAGE2D = 468, UIMAGE2D = 469, IMAGE3D = 470, IIMAGE3D = 471, UIMAGE3D = 472, IMAGE2DRECT = 473, IIMAGE2DRECT = 474, UIMAGE2DRECT = 475, IMAGECUBE = 476, IIMAGECUBE = 477, UIMAGECUBE = 478, IMAGEBUFFER = 479, IIMAGEBUFFER = 480, UIMAGEBUFFER = 481, IMAGE1DARRAY = 482, IIMAGE1DARRAY = 483, UIMAGE1DARRAY = 484, IMAGE2DARRAY = 485, IIMAGE2DARRAY = 486, UIMAGE2DARRAY = 487, IMAGECUBEARRAY = 488, IIMAGECUBEARRAY = 489, UIMAGECUBEARRAY = 490, IMAGE2DMS = 491, IIMAGE2DMS = 492, UIMAGE2DMS = 493, IMAGE2DMSARRAY = 494, IIMAGE2DMSARRAY = 495, UIMAGE2DMSARRAY = 496, F16IMAGE1D = 497, F16IMAGE2D = 498, F16IMAGE3D = 499, F16IMAGE2DRECT = 500, F16IMAGECUBE = 501, F16IMAGE1DARRAY = 502, F16IMAGE2DARRAY = 503, F16IMAGECUBEARRAY = 504, F16IMAGEBUFFER = 505, F16IMAGE2DMS = 506, F16IMAGE2DMSARRAY = 507, TEXTURECUBEARRAY = 508, ITEXTURECUBEARRAY = 509, UTEXTURECUBEARRAY = 510, TEXTURE1D = 511, ITEXTURE1D = 512, UTEXTURE1D = 513, TEXTURE1DARRAY = 514, ITEXTURE1DARRAY = 515, UTEXTURE1DARRAY = 516, TEXTURE2DRECT = 517, ITEXTURE2DRECT = 518, UTEXTURE2DRECT = 519, TEXTUREBUFFER = 520, ITEXTUREBUFFER = 521, UTEXTUREBUFFER = 522, TEXTURE2DMS = 523, ITEXTURE2DMS = 524, UTEXTURE2DMS = 525, TEXTURE2DMSARRAY = 526, ITEXTURE2DMSARRAY = 527, UTEXTURE2DMSARRAY = 528, F16TEXTURE1D = 529, F16TEXTURE2D = 530, F16TEXTURE3D = 531, F16TEXTURE2DRECT = 532, F16TEXTURECUBE = 533, F16TEXTURE1DARRAY = 534, F16TEXTURE2DARRAY = 535, F16TEXTURECUBEARRAY = 536, F16TEXTUREBUFFER = 537, F16TEXTURE2DMS = 538, F16TEXTURE2DMSARRAY = 539, SUBPASSINPUT = 540, SUBPASSINPUTMS = 541, ISUBPASSINPUT = 542, ISUBPASSINPUTMS = 543, USUBPASSINPUT = 544, USUBPASSINPUTMS = 545, F16SUBPASSINPUT = 546, F16SUBPASSINPUTMS = 547, LEFT_OP = 548, RIGHT_OP = 549, INC_OP = 550, DEC_OP = 551, LE_OP = 552, GE_OP = 553, EQ_OP = 554, NE_OP = 555, AND_OP = 556, OR_OP = 557, XOR_OP = 558, MUL_ASSIGN = 559, DIV_ASSIGN = 560, ADD_ASSIGN = 561, MOD_ASSIGN = 562, LEFT_ASSIGN = 563, RIGHT_ASSIGN = 564, AND_ASSIGN = 565, XOR_ASSIGN = 566, OR_ASSIGN = 567, SUB_ASSIGN = 568, LEFT_PAREN = 569, RIGHT_PAREN = 570, LEFT_BRACKET = 571, RIGHT_BRACKET = 572, LEFT_BRACE = 573, RIGHT_BRACE = 574, DOT = 575, COMMA = 576, COLON = 577, EQUAL = 578, SEMICOLON = 579, BANG = 580, DASH = 581, TILDE = 582, PLUS = 583, STAR = 584, SLASH = 585, PERCENT = 586, LEFT_ANGLE = 587, RIGHT_ANGLE = 588, VERTICAL_BAR = 589, CARET = 590, AMPERSAND = 591, QUESTION = 592, INVARIANT = 593, HIGH_PRECISION = 594, MEDIUM_PRECISION = 595, LOW_PRECISION = 596, PRECISION = 597, PACKED = 598, RESOURCE = 599, SUPERP = 600, FLOATCONSTANT = 601, INTCONSTANT = 602, UINTCONSTANT = 603, BOOLCONSTANT = 604, IDENTIFIER = 605, TYPE_NAME = 606, CENTROID = 607, IN = 608, OUT = 609, INOUT = 610, STRUCT = 611, VOID = 612, WHILE = 613, BREAK = 614, CONTINUE = 615, DO = 616, ELSE = 617, FOR = 618, IF = 619, DISCARD = 620, RETURN = 621, SWITCH = 622, CASE = 623, DEFAULT = 624, UNIFORM = 625, SHARED = 626, BUFFER = 627, FLAT = 628, SMOOTH = 629, LAYOUT = 630, DOUBLECONSTANT = 631, INT16CONSTANT = 632, UINT16CONSTANT = 633, FLOAT16CONSTANT = 634, INT32CONSTANT = 635, UINT32CONSTANT = 636, INT64CONSTANT = 637, UINT64CONSTANT = 638, SUBROUTINE = 639, DEMOTE = 640, PAYLOADNV = 641, PAYLOADINNV = 642, HITATTRNV = 643, CALLDATANV = 644, CALLDATAINNV = 645, PATCH = 646, SAMPLE = 647, NONUNIFORM = 648, COHERENT = 649, VOLATILE = 650, RESTRICT = 651, READONLY = 652, WRITEONLY = 653, DEVICECOHERENT = 654, QUEUEFAMILYCOHERENT = 655, WORKGROUPCOHERENT = 656, SUBGROUPCOHERENT = 657, NONPRIVATE = 658, NOPERSPECTIVE = 659, EXPLICITINTERPAMD = 660, PERVERTEXNV = 661, PERPRIMITIVENV = 662, PERVIEWNV = 663, PERTASKNV = 664, PRECISE = 665 }; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { #line 96 "MachineIndependent/glslang.y" /* yacc.c:355 */ struct { glslang::TSourceLoc loc; union { glslang::TString *string; int i; unsigned int u; long long i64; unsigned long long u64; bool b; double d; }; glslang::TSymbol* symbol; } lex; struct { glslang::TSourceLoc loc; glslang::TOperator op; union { TIntermNode* intermNode; glslang::TIntermNodePair nodePair; glslang::TIntermTyped* intermTypedNode; glslang::TAttributes* attributes; }; union { glslang::TPublicType type; glslang::TFunction* function; glslang::TParameter param; glslang::TTypeLoc typeLine; glslang::TTypeList* typeList; glslang::TArraySizes* arraySizes; glslang::TIdentifierList* identifierList; }; glslang::TArraySizes* typeParameters; } interm; #line 579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ }; 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 */ /* Copy the second part of user declarations. */ #line 132 "MachineIndependent/glslang.y" /* yacc.c:358 */ /* windows only pragma */ #ifdef _MSC_VER #pragma warning(disable : 4065) #pragma warning(disable : 4127) #pragma warning(disable : 4244) #endif #define parseContext (*pParseContext) #define yyerror(context, msg) context->parserError(msg) extern int yylex(YYSTYPE*, TParseContext&); #line 610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short int yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned int # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif #ifndef YY_ATTRIBUTE # if (defined __GNUC__ \ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C # define YY_ATTRIBUTE(Spec) __attribute__(Spec) # else # define YY_ATTRIBUTE(Spec) /* empty */ # endif #endif #ifndef YY_ATTRIBUTE_PURE # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) #endif #ifndef YY_ATTRIBUTE_UNUSED # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #endif #if !defined _Noreturn \ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) # if defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) #else # define YYUSE(E) /* empty */ #endif #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's 'empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 386 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 9369 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 411 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 111 /* YYNRULES -- Number of rules. */ #define YYNRULES 582 /* YYNSTATES -- Number of states. */ #define YYNSTATES 727 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 665 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex, without out-of-bounds checking. */ static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 352, 352, 358, 361, 366, 369, 372, 376, 380, 384, 388, 392, 396, 400, 404, 408, 416, 419, 422, 425, 428, 433, 441, 448, 455, 461, 465, 472, 475, 481, 488, 498, 506, 511, 539, 548, 554, 558, 562, 582, 583, 584, 585, 591, 592, 597, 602, 611, 612, 617, 625, 626, 632, 641, 642, 647, 652, 657, 665, 666, 675, 687, 688, 697, 698, 707, 708, 717, 718, 726, 727, 735, 736, 744, 745, 745, 763, 764, 780, 784, 788, 792, 797, 801, 805, 809, 813, 817, 821, 828, 831, 842, 849, 854, 859, 866, 870, 874, 878, 883, 888, 897, 897, 908, 912, 919, 926, 929, 936, 944, 964, 987, 1002, 1027, 1038, 1048, 1058, 1068, 1077, 1080, 1084, 1088, 1093, 1101, 1108, 1113, 1118, 1123, 1132, 1142, 1169, 1178, 1185, 1193, 1200, 1207, 1215, 1225, 1232, 1243, 1249, 1252, 1259, 1263, 1267, 1276, 1286, 1289, 1300, 1303, 1306, 1310, 1314, 1319, 1323, 1330, 1334, 1339, 1345, 1351, 1358, 1363, 1371, 1377, 1389, 1403, 1409, 1414, 1422, 1430, 1438, 1446, 1453, 1457, 1462, 1467, 1472, 1477, 1482, 1486, 1490, 1494, 1498, 1504, 1515, 1522, 1525, 1534, 1539, 1549, 1554, 1562, 1566, 1576, 1579, 1585, 1591, 1598, 1608, 1612, 1616, 1620, 1625, 1629, 1634, 1639, 1644, 1649, 1654, 1659, 1664, 1669, 1674, 1680, 1686, 1692, 1697, 1702, 1707, 1712, 1717, 1722, 1727, 1732, 1737, 1742, 1747, 1753, 1758, 1763, 1768, 1773, 1778, 1783, 1788, 1793, 1798, 1803, 1808, 1813, 1819, 1825, 1831, 1837, 1843, 1849, 1855, 1861, 1867, 1873, 1879, 1885, 1891, 1897, 1903, 1909, 1915, 1921, 1927, 1933, 1939, 1945, 1951, 1957, 1963, 1969, 1975, 1981, 1987, 1993, 1999, 2005, 2011, 2017, 2023, 2029, 2035, 2041, 2047, 2053, 2059, 2065, 2071, 2077, 2083, 2089, 2095, 2101, 2107, 2113, 2119, 2125, 2131, 2137, 2143, 2149, 2155, 2161, 2167, 2173, 2179, 2185, 2191, 2197, 2203, 2209, 2215, 2221, 2227, 2233, 2239, 2245, 2251, 2257, 2263, 2269, 2275, 2281, 2287, 2293, 2299, 2305, 2311, 2317, 2321, 2326, 2332, 2337, 2342, 2347, 2352, 2357, 2362, 2368, 2373, 2378, 2383, 2388, 2393, 2399, 2405, 2411, 2417, 2423, 2429, 2435, 2441, 2447, 2453, 2459, 2465, 2471, 2477, 2482, 2487, 2492, 2497, 2502, 2507, 2513, 2518, 2523, 2528, 2533, 2538, 2543, 2548, 2554, 2559, 2564, 2569, 2574, 2579, 2584, 2589, 2594, 2599, 2604, 2609, 2614, 2619, 2624, 2630, 2635, 2640, 2646, 2652, 2657, 2662, 2667, 2673, 2678, 2683, 2688, 2694, 2699, 2704, 2709, 2715, 2720, 2725, 2730, 2736, 2742, 2748, 2754, 2759, 2765, 2771, 2777, 2782, 2787, 2792, 2797, 2802, 2808, 2813, 2818, 2823, 2829, 2834, 2839, 2844, 2850, 2855, 2860, 2865, 2871, 2876, 2881, 2886, 2892, 2897, 2902, 2907, 2913, 2918, 2923, 2928, 2934, 2939, 2944, 2949, 2955, 2960, 2965, 2970, 2976, 2981, 2986, 2991, 2997, 3002, 3007, 3012, 3018, 3023, 3028, 3033, 3039, 3044, 3049, 3054, 3060, 3065, 3070, 3075, 3081, 3086, 3091, 3096, 3102, 3107, 3112, 3118, 3124, 3130, 3136, 3143, 3150, 3156, 3162, 3168, 3174, 3180, 3186, 3193, 3198, 3214, 3219, 3224, 3232, 3232, 3243, 3243, 3253, 3256, 3269, 3291, 3318, 3322, 3328, 3333, 3344, 3348, 3354, 3365, 3368, 3375, 3379, 3380, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3394, 3400, 3409, 3410, 3414, 3410, 3426, 3427, 3431, 3431, 3438, 3438, 3452, 3455, 3463, 3471, 3482, 3483, 3487, 3491, 3498, 3505, 3509, 3517, 3521, 3534, 3538, 3545, 3545, 3565, 3568, 3574, 3586, 3598, 3602, 3609, 3609, 3624, 3624, 3640, 3640, 3661, 3664, 3670, 3673, 3679, 3683, 3690, 3695, 3700, 3707, 3710, 3719, 3723, 3732, 3735, 3739, 3748, 3748, 3771, 3777, 3780, 3785, 3788 }; #endif #if YYDEBUG || YYERROR_VERBOSE || 1 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "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", "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", "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", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION", "INVARIANT", "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", "UNIFORM", "SHARED", "BUFFER", "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT", "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV", "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PATCH", "SAMPLE", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY", "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT", "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE", "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", YY_NULLPTR }; #endif # ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665 }; # endif #define YYPACT_NINF -453 #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-453))) #define YYTABLE_NINF -528 #define yytable_value_is_error(Yytable_value) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { 3994, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, 97, -453, -453, -453, -453, -453, 6, -453, -453, -453, -453, -453, -453, -307, -241, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -3, 95, 36, 125, 6034, 82, -453, -22, -453, -453, -453, -453, 4402, -453, -453, -453, -453, 131, -453, -453, 730, -453, -453, 11, -453, 153, -28, 127, -453, 7, -453, 157, -453, 6034, -453, -453, -453, 6034, 129, 134, -453, 13, -453, 73, -453, -453, 8391, 162, -453, -453, -453, 161, 6034, -453, 163, -453, -309, -453, -453, 27, 6831, -453, 16, 1138, -453, -453, -453, -453, 162, 23, -453, 7221, 49, -453, 138, -453, 87, 8391, 8391, 8391, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, 68, -453, -453, -453, 174, 60, 8781, 176, -453, 8391, -453, -453, -320, 175, -453, 6034, 142, 4810, -453, 6034, 8391, -453, -28, -453, 143, -453, -453, 119, 128, 32, 21, 38, 158, 160, 165, 195, 194, 18, 183, 7611, -453, 185, 184, -453, -453, 188, 180, 181, -453, 196, 197, 190, 8001, 198, 8391, 187, 193, 122, -453, -453, 91, -453, 95, 204, 205, -453, -453, -453, -453, -453, 1546, -453, -453, -453, -453, -453, -453, -453, -453, -453, -353, 175, 7221, 69, 7221, -453, -453, 7221, 6034, -453, 170, -453, -453, -453, 78, -453, -453, 8391, 171, -453, -453, 8391, 207, -453, -453, -453, 8391, -453, 142, 162, 93, -453, -453, -453, 5218, -453, -453, -453, -453, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, -453, -453, -453, 206, 177, -453, 1954, -453, -453, -453, 1954, -453, 8391, -453, -453, 100, 8391, 144, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, 8391, 8391, -453, -453, -453, -453, -453, -453, -453, 7221, -453, 140, -453, 5626, -453, -453, 209, 208, -453, -453, -453, 123, 175, 142, -453, -453, -453, -453, -453, 119, 119, 128, 128, 32, 32, 32, 32, 21, 21, 38, 158, 160, 165, 195, 194, 8391, -453, 214, 56, -453, 1954, 3586, 172, 3178, 80, -453, 81, -453, -453, -453, -453, -453, 6441, -453, -453, -453, -453, 146, 8391, 215, 177, 212, 208, 186, 6034, 219, 221, -453, -453, 3586, 220, -453, -453, -453, 8391, 222, -453, -453, -453, 216, 2362, 8391, -453, 217, 227, 182, 225, 2770, -453, 229, -453, -453, 7221, -453, -453, -453, 89, 8391, 2362, 220, -453, -453, 1954, -453, 224, 208, -453, -453, 1954, 226, -453, -453 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_uint16 yydefact[] = { 0, 156, 203, 201, 202, 200, 207, 208, 209, 210, 211, 212, 213, 214, 215, 204, 205, 206, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 327, 328, 329, 330, 331, 332, 333, 353, 354, 355, 356, 357, 358, 359, 368, 381, 382, 369, 370, 372, 371, 373, 374, 375, 376, 377, 378, 379, 380, 164, 165, 229, 230, 228, 231, 238, 239, 236, 237, 234, 235, 232, 233, 261, 262, 263, 273, 274, 275, 258, 259, 260, 270, 271, 272, 255, 256, 257, 267, 268, 269, 252, 253, 254, 264, 265, 266, 240, 241, 242, 276, 277, 278, 243, 244, 245, 288, 289, 290, 246, 247, 248, 300, 301, 302, 249, 250, 251, 312, 313, 314, 279, 280, 281, 282, 283, 284, 285, 286, 287, 291, 292, 293, 294, 295, 296, 297, 298, 299, 303, 304, 305, 306, 307, 308, 309, 310, 311, 315, 316, 317, 318, 319, 320, 321, 322, 323, 325, 324, 484, 485, 486, 337, 338, 361, 364, 326, 335, 336, 352, 334, 383, 384, 387, 388, 389, 391, 392, 393, 395, 396, 397, 399, 400, 474, 475, 360, 362, 363, 339, 340, 341, 385, 342, 346, 347, 350, 390, 394, 398, 343, 344, 348, 349, 386, 345, 351, 430, 432, 433, 434, 436, 437, 438, 440, 441, 442, 444, 445, 446, 448, 449, 450, 452, 453, 454, 456, 457, 458, 460, 461, 462, 464, 465, 466, 468, 469, 470, 472, 473, 431, 435, 439, 443, 447, 455, 459, 463, 451, 467, 471, 365, 366, 367, 401, 410, 412, 406, 411, 413, 414, 416, 417, 418, 420, 421, 422, 424, 425, 426, 428, 429, 402, 403, 404, 415, 405, 407, 408, 409, 419, 423, 427, 476, 477, 480, 481, 482, 483, 478, 479, 575, 131, 489, 490, 491, 0, 488, 160, 158, 159, 157, 0, 199, 161, 162, 163, 133, 132, 0, 183, 169, 170, 168, 171, 172, 166, 167, 185, 173, 179, 180, 181, 182, 174, 175, 176, 177, 178, 134, 135, 136, 137, 138, 139, 146, 574, 0, 576, 0, 108, 107, 0, 119, 124, 153, 152, 150, 154, 0, 147, 149, 155, 129, 195, 151, 487, 0, 571, 573, 0, 494, 0, 0, 0, 96, 0, 93, 0, 106, 0, 115, 109, 117, 0, 118, 0, 94, 125, 99, 0, 148, 130, 0, 188, 194, 1, 572, 0, 0, 492, 143, 145, 0, 141, 186, 0, 0, 97, 0, 0, 577, 110, 114, 116, 112, 120, 111, 0, 126, 102, 0, 100, 0, 0, 0, 0, 42, 41, 43, 40, 5, 6, 7, 8, 2, 15, 13, 14, 16, 9, 10, 11, 12, 3, 17, 36, 19, 24, 25, 0, 0, 29, 0, 197, 0, 35, 33, 0, 189, 95, 0, 0, 0, 496, 0, 0, 140, 0, 184, 0, 190, 44, 48, 51, 54, 59, 62, 64, 66, 68, 70, 72, 74, 0, 0, 98, 0, 522, 531, 535, 0, 0, 0, 556, 0, 0, 0, 0, 0, 0, 0, 0, 44, 77, 90, 0, 509, 0, 155, 129, 512, 533, 511, 519, 510, 0, 513, 514, 537, 515, 544, 516, 517, 552, 518, 0, 113, 0, 121, 0, 504, 128, 0, 0, 104, 0, 101, 37, 38, 0, 21, 22, 0, 0, 27, 26, 0, 199, 30, 32, 39, 0, 196, 0, 502, 0, 500, 495, 497, 0, 92, 144, 142, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 191, 192, 0, 0, 521, 0, 554, 567, 566, 0, 558, 0, 570, 568, 0, 0, 0, 551, 520, 80, 81, 83, 82, 85, 86, 87, 88, 89, 84, 79, 0, 0, 536, 532, 534, 538, 545, 553, 123, 0, 507, 0, 127, 0, 105, 4, 0, 23, 20, 31, 198, 0, 503, 0, 498, 493, 45, 46, 47, 50, 49, 52, 53, 57, 58, 55, 56, 60, 61, 63, 65, 67, 69, 71, 73, 0, 193, 581, 0, 579, 523, 0, 0, 0, 0, 569, 0, 550, 78, 91, 122, 505, 0, 103, 18, 499, 501, 0, 0, 0, 0, 0, 542, 0, 0, 0, 0, 561, 560, 563, 529, 546, 506, 508, 0, 0, 578, 580, 524, 0, 0, 0, 562, 0, 0, 541, 0, 0, 539, 0, 76, 582, 0, 526, 555, 525, 0, 564, 0, 529, 528, 530, 548, 543, 0, 565, 559, 540, 549, 0, 557, 547 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, -453, 8696, -453, -89, -88, -122, -84, -19, -18, -17, -16, -20, -15, -453, -85, -453, -98, -453, -110, -119, 2, -453, -453, -453, 4, -453, -453, -453, 189, 191, 192, -453, -453, -339, -453, -453, -453, -453, 98, -453, -37, -44, -453, 9, -453, 0, -71, -453, -453, -453, -453, 261, -453, -453, -453, -452, -137, 20, -68, -209, -453, -96, -198, -326, -453, -136, -453, -453, -146, -144, -453, -453, 200, -265, -87, -453, 57, -453, -112, -453, 59, -453, -453, -453, -453, 61, -453, -453, -453, -453, -453, -453, -453, -453, 228, -453, -453, -453, -453, -99 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 434, 435, 436, 621, 437, 438, 439, 440, 441, 442, 443, 493, 445, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 494, 650, 495, 605, 496, 552, 497, 337, 524, 413, 498, 339, 340, 341, 371, 372, 373, 342, 343, 344, 345, 346, 347, 393, 394, 348, 349, 350, 351, 446, 396, 447, 399, 384, 385, 448, 354, 355, 356, 455, 389, 453, 454, 546, 547, 522, 616, 501, 502, 503, 504, 505, 580, 676, 709, 700, 701, 702, 710, 506, 507, 508, 509, 703, 680, 510, 511, 704, 724, 512, 513, 514, 656, 584, 658, 684, 698, 699, 515, 357, 358, 359, 368, 516, 653, 654 }; /* 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[] = { 353, 542, 336, 550, 338, 481, 457, 363, 484, 352, 485, 486, 458, 543, 489, 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, 618, 364, 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, 374, 381, 530, 409, 609, 613, 521, 615, 474, 449, 617, 655, 549, 678, 562, 563, 573, 365, 391, 397, 361, 560, 561, 407, 378, 397, 381, 398, 475, 374, 517, 519, 408, 566, 567, 397, 476, 375, 459, 392, 539, 678, 518, 366, 460, 382, 352, 369, 451, 564, 565, 574, 362, 353, 352, 336, 388, 338, 297, 531, 532, 475, 352, 302, 303, 708, 375, 551, 523, 674, 375, 536, 716, 675, 589, 352, 591, 537, -34, 352, 533, 475, 657, 708, 534, 452, 577, 410, 614, 620, 411, 685, 686, 412, 352, 606, 500, 606, 606, 376, 719, 665, 377, 381, 526, 499, 606, 527, 606, 549, 628, 607, 451, 629, 451, 367, 521, 606, 521, 622, 660, 521, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 293, 294, 295, 624, 638, 639, 640, 641, 628, 604, 370, 670, 555, 556, 557, 544, 723, 452, 558, 452, 559, 609, 688, 666, 352, 667, 352, 383, 352, 606, 662, 606, 689, 634, 635, 390, 636, 637, 627, 400, 659, 395, 397, 405, 661, 549, 642, 643, 406, 450, 456, 451, 525, 535, 540, 475, 545, 554, 568, 569, 571, 572, 718, 570, 575, 578, 581, 579, 582, 583, 500, 663, 664, 592, 585, 586, 590, 451, 587, 499, 521, 593, -35, -33, 619, 623, -28, 651, 452, 609, 669, 652, 673, 606, 681, 693, 691, 352, 695, 696, 694, 706, -527, 707, 672, 712, 713, 478, 714, 726, 677, 717, 725, 644, 452, 645, 648, 646, 690, 647, 553, 360, 649, 352, 671, 402, 682, 403, 626, 715, 404, 721, 401, 521, 722, 683, 697, 610, 677, 611, 692, 612, 0, 0, 500, 451, 0, 0, 500, 387, 711, 0, 551, 499, 0, 705, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 720, 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, 0, 0, 0, 452, 679, 0, 0, 0, 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 500, 500, 0, 500, 0, 0, 0, 0, 0, 499, 499, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 382, 0, 0, 0, 0, 500, 0, 0, 0, 352, 0, 0, 0, 0, 499, 0, 500, 0, 0, 0, 0, 0, 0, 500, 0, 499, 0, 0, 0, 0, 0, 0, 499, 0, 500, 0, 0, 0, 500, 0, 0, 0, 0, 499, 500, 0, 0, 499, 0, 0, 0, 386, 0, 499, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 299, 300, 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 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, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 477, 0, 478, 479, 0, 0, 0, 0, 480, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 0, 0, 0, 421, 422, 423, 424, 425, 297, 298, 299, 300, 301, 302, 303, 481, 482, 483, 484, 0, 485, 486, 487, 488, 489, 490, 491, 304, 305, 306, 307, 308, 309, 426, 427, 428, 429, 430, 431, 432, 433, 310, 492, 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, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 477, 0, 478, 608, 0, 0, 0, 0, 480, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 0, 0, 0, 421, 422, 423, 424, 425, 297, 298, 299, 300, 301, 302, 303, 481, 482, 483, 484, 0, 485, 486, 487, 488, 489, 490, 491, 304, 305, 306, 307, 308, 309, 426, 427, 428, 429, 430, 431, 432, 433, 310, 492, 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, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 477, 0, 478, 0, 0, 0, 0, 0, 480, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 0, 0, 0, 421, 422, 423, 424, 425, 297, 298, 299, 300, 301, 302, 303, 481, 482, 483, 484, 0, 485, 486, 487, 488, 489, 490, 491, 304, 305, 306, 307, 308, 309, 426, 427, 428, 429, 430, 431, 432, 433, 310, 492, 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, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 477, 0, 400, 0, 0, 0, 0, 0, 480, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 0, 0, 0, 421, 422, 423, 424, 425, 297, 298, 299, 300, 301, 302, 303, 481, 482, 483, 484, 0, 485, 486, 487, 488, 489, 490, 491, 304, 305, 306, 307, 308, 309, 426, 427, 428, 429, 430, 431, 432, 433, 310, 492, 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, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 477, 0, 0, 0, 0, 0, 0, 0, 480, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 0, 0, 0, 421, 422, 423, 424, 425, 297, 298, 299, 300, 301, 302, 303, 481, 482, 483, 484, 0, 485, 486, 487, 488, 489, 490, 491, 304, 305, 306, 307, 308, 309, 426, 427, 428, 429, 430, 431, 432, 433, 310, 492, 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, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 0, 0, 0, 421, 422, 423, 424, 425, 297, 298, 299, 300, 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, 307, 308, 309, 426, 427, 428, 429, 430, 431, 432, 433, 310, 0, 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, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 0, 0, 0, 0, 421, 422, 423, 424, 425, 297, 298, 299, 300, 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, 307, 308, 309, 426, 427, 428, 429, 430, 431, 432, 433, 310, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 299, 300, 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 0, 0, 0, 0, 0, 0, 0, 0, 380, 297, 298, 299, 300, 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 299, 300, 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 299, 300, 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 299, 300, 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 293, 294, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 299, 300, 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 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, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 520, 687, 0, 0, 0, 0, 0, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 422, 423, 424, 425, 297, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 461, 0, 0, 0, 0, 0, 0, 0, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 422, 423, 424, 425, 297, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 520, 0, 0, 0, 0, 0, 0, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 422, 423, 424, 425, 297, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 576, 0, 0, 0, 0, 0, 0, 0, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 422, 423, 424, 425, 297, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 422, 423, 424, 425, 297, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 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, 0, 0, 414, 415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 422, 423, 424, 425, 297, 0, 0, 0, 0, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, 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, 0, 0, 414, 415, 0, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, 0, 416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 418, 419, 420, 528, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 422, 423, 424, 425, 297, 0, 0, 0, 0, 302, 538, 0, 0, 541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, 0, 0, 0, 0, 426, 427, 428, 429, 430, 431, 432, 433, 0, 0, 0, 0, 0, 0, 462, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 632, 633, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 462 }; static const yytype_int16 yycheck[] = { 0, 321, 0, 455, 0, 358, 315, 314, 361, 0, 363, 364, 321, 333, 367, 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, 524, 314, 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, 341, 349, 416, 378, 506, 518, 408, 520, 397, 384, 523, 580, 453, 656, 297, 298, 302, 324, 350, 316, 318, 293, 294, 314, 350, 316, 374, 324, 316, 370, 405, 406, 323, 299, 300, 316, 324, 341, 315, 371, 442, 684, 323, 350, 321, 349, 341, 315, 389, 332, 333, 337, 350, 357, 349, 357, 360, 357, 351, 295, 296, 316, 357, 356, 357, 695, 370, 456, 323, 317, 374, 315, 702, 321, 488, 370, 490, 321, 314, 374, 316, 316, 584, 713, 320, 389, 475, 318, 323, 315, 321, 315, 315, 324, 389, 321, 400, 321, 321, 321, 315, 614, 324, 451, 321, 400, 321, 324, 321, 550, 321, 324, 453, 324, 455, 324, 518, 321, 520, 533, 324, 523, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 339, 340, 341, 537, 562, 563, 564, 565, 321, 323, 321, 324, 329, 330, 331, 451, 717, 453, 326, 455, 328, 655, 667, 319, 451, 321, 453, 332, 455, 321, 322, 321, 322, 558, 559, 318, 560, 561, 545, 318, 586, 350, 316, 350, 590, 618, 566, 567, 350, 324, 323, 524, 350, 315, 314, 316, 350, 350, 336, 335, 301, 303, 707, 334, 317, 316, 314, 319, 324, 324, 506, 605, 606, 322, 314, 314, 314, 550, 324, 506, 614, 324, 314, 314, 350, 350, 315, 317, 524, 723, 317, 350, 314, 321, 358, 319, 317, 524, 315, 314, 350, 315, 318, 323, 650, 324, 315, 318, 362, 319, 656, 318, 324, 568, 550, 569, 572, 570, 673, 571, 458, 296, 573, 550, 628, 370, 658, 374, 544, 701, 374, 713, 368, 667, 714, 658, 684, 516, 684, 516, 675, 516, -1, -1, 580, 618, -1, -1, 584, 357, 696, -1, 673, 580, -1, 689, -1, 584, -1, -1, -1, -1, -1, -1, -1, -1, 712, -1, -1, -1, -1, -1, -1, 707, -1, -1, -1, -1, -1, -1, -1, -1, 618, 656, -1, -1, -1, -1, -1, -1, -1, 618, -1, -1, -1, -1, -1, -1, -1, 679, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 684, -1, -1, -1, -1, -1, -1, -1, 655, 656, -1, 658, -1, -1, -1, -1, -1, 655, 656, -1, 658, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 679, -1, -1, -1, -1, 684, -1, -1, -1, 679, -1, -1, -1, -1, 684, -1, 695, -1, -1, -1, -1, -1, -1, 702, -1, 695, -1, -1, -1, -1, -1, -1, 702, -1, 713, -1, -1, -1, 717, -1, -1, -1, -1, 713, 723, -1, -1, 717, -1, -1, -1, 0, -1, 723, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, 351, 352, 353, 354, 355, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, 372, 373, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, 384, -1, 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, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, 316, -1, 318, 319, -1, -1, -1, -1, 324, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, 342, -1, -1, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 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, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, 316, -1, 318, 319, -1, -1, -1, -1, 324, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, 342, -1, -1, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 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, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, 316, -1, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, 342, -1, -1, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 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, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, 316, -1, 318, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, 342, -1, -1, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 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, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, 316, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, 342, -1, -1, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 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, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, 342, -1, -1, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, -1, 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, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, -1, -1, -1, -1, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, -1, 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, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, 351, 352, 353, 354, 355, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, 372, 373, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, 384, -1, 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, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, -1, -1, -1, -1, -1, -1, -1, -1, 350, 351, 352, 353, 354, 355, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, 372, 373, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, 384, -1, 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, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 319, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, 351, 352, 353, 354, 355, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, 372, 373, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, 384, -1, 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, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 319, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, 351, 352, 353, 354, 355, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, 372, 373, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, 384, -1, 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, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 319, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, 351, 352, 353, 354, 355, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, 372, 373, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, 384, -1, 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, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 338, 339, 340, 341, -1, -1, -1, -1, -1, -1, -1, -1, -1, 351, 352, 353, 354, 355, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, 372, 373, 374, 375, -1, -1, -1, -1, -1, -1, -1, -1, 384, -1, 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, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, 318, 319, -1, -1, -1, -1, -1, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, 348, 349, 350, 351, -1, -1, -1, -1, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, 379, 380, 381, 382, 383, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, 348, 349, 350, 351, -1, -1, -1, -1, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, 379, 380, 381, 382, 383, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, 318, -1, -1, -1, -1, -1, -1, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, 348, 349, 350, 351, -1, -1, -1, -1, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, 379, 380, 381, 382, 383, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, 348, 349, 350, 351, -1, -1, -1, -1, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, 379, 380, 381, 382, 383, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, 348, 349, 350, 351, -1, -1, -1, -1, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, 379, 380, 381, 382, 383, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, 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, -1, -1, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 325, 326, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, 348, 349, 350, 351, -1, -1, -1, -1, 356, 357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, 379, 380, 381, 382, 383, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, 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, -1, -1, 295, 296, -1, 383, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 397, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 325, 326, 327, 328, 414, 415, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, 348, 349, 350, 351, -1, -1, -1, -1, 356, 357, -1, -1, 445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 456, -1, -1, -1, -1, 376, 377, 378, 379, 380, 381, 382, 383, -1, -1, -1, -1, -1, -1, 475, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 673 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 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, 324, 338, 339, 340, 341, 342, 351, 352, 353, 354, 355, 356, 357, 370, 371, 372, 373, 374, 375, 384, 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, 442, 443, 446, 447, 448, 449, 453, 454, 455, 456, 457, 458, 461, 462, 463, 464, 465, 467, 472, 473, 474, 515, 516, 517, 473, 318, 350, 314, 314, 324, 350, 324, 518, 315, 321, 450, 451, 452, 462, 467, 321, 324, 350, 324, 350, 463, 467, 332, 469, 470, 0, 516, 467, 476, 318, 350, 371, 459, 460, 350, 466, 316, 324, 468, 318, 494, 451, 450, 452, 350, 350, 314, 323, 468, 318, 321, 324, 445, 295, 296, 314, 325, 326, 327, 328, 346, 347, 348, 349, 350, 376, 377, 378, 379, 380, 381, 382, 383, 412, 413, 414, 416, 417, 418, 419, 420, 421, 422, 423, 424, 465, 467, 471, 468, 324, 462, 467, 477, 478, 475, 323, 315, 321, 315, 321, 317, 423, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 316, 324, 316, 318, 319, 324, 358, 359, 360, 361, 363, 364, 365, 366, 367, 368, 369, 385, 423, 436, 438, 440, 442, 446, 465, 467, 483, 484, 485, 486, 487, 495, 496, 497, 498, 501, 502, 505, 506, 507, 514, 519, 468, 323, 468, 318, 438, 481, 323, 444, 350, 321, 324, 423, 423, 440, 295, 296, 316, 320, 315, 315, 321, 357, 438, 314, 423, 321, 333, 467, 350, 479, 480, 319, 478, 477, 436, 441, 460, 350, 329, 330, 331, 326, 328, 293, 294, 297, 298, 332, 333, 299, 300, 336, 335, 334, 301, 303, 302, 337, 317, 317, 436, 316, 319, 488, 314, 324, 324, 509, 314, 314, 324, 324, 440, 314, 440, 322, 324, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 323, 439, 321, 324, 319, 484, 498, 502, 507, 481, 323, 481, 482, 481, 477, 350, 315, 415, 440, 350, 438, 423, 479, 468, 321, 324, 319, 423, 423, 423, 425, 425, 426, 426, 427, 427, 427, 427, 428, 428, 429, 430, 431, 432, 433, 434, 437, 317, 350, 520, 521, 495, 508, 484, 510, 440, 324, 440, 322, 438, 438, 481, 319, 321, 319, 317, 324, 480, 440, 314, 317, 321, 489, 440, 455, 462, 500, 358, 483, 496, 511, 315, 315, 319, 481, 322, 441, 317, 521, 319, 350, 315, 314, 500, 512, 513, 491, 492, 493, 499, 503, 438, 315, 323, 485, 490, 494, 440, 324, 315, 362, 487, 485, 318, 481, 315, 440, 490, 491, 495, 504, 324, 319 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { 0, 411, 412, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, 414, 414, 414, 414, 414, 414, 415, 416, 417, 418, 418, 419, 419, 420, 420, 421, 422, 422, 422, 423, 423, 423, 423, 424, 424, 424, 424, 425, 425, 425, 425, 426, 426, 426, 427, 427, 427, 428, 428, 428, 428, 428, 429, 429, 429, 430, 430, 431, 431, 432, 432, 433, 433, 434, 434, 435, 435, 436, 437, 436, 438, 438, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 440, 440, 441, 442, 442, 442, 442, 442, 442, 442, 442, 442, 444, 443, 445, 445, 446, 447, 447, 448, 448, 449, 450, 450, 451, 451, 451, 451, 452, 453, 453, 453, 453, 453, 454, 454, 454, 454, 454, 455, 455, 456, 457, 457, 457, 457, 457, 457, 457, 457, 458, 459, 459, 460, 460, 460, 461, 462, 462, 463, 463, 463, 463, 463, 463, 463, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 465, 466, 466, 467, 467, 468, 468, 468, 468, 469, 469, 470, 471, 471, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 473, 473, 473, 475, 474, 476, 474, 477, 477, 478, 478, 479, 479, 480, 480, 481, 481, 481, 482, 482, 483, 484, 484, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 488, 489, 487, 490, 490, 492, 491, 493, 491, 494, 494, 495, 495, 496, 496, 497, 497, 498, 499, 499, 500, 500, 501, 501, 503, 502, 504, 504, 505, 505, 506, 506, 508, 507, 509, 507, 510, 507, 511, 511, 512, 512, 513, 513, 514, 514, 514, 514, 514, 515, 515, 516, 516, 516, 518, 517, 519, 520, 520, 521, 521 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 1, 1, 3, 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, 2, 4, 2, 3, 4, 2, 3, 4, 0, 6, 2, 3, 2, 1, 1, 2, 3, 3, 2, 3, 2, 1, 2, 1, 1, 1, 3, 4, 6, 5, 1, 2, 3, 5, 4, 1, 2, 1, 1, 1, 1, 1, 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, 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, 0, 6, 0, 5, 1, 2, 3, 4, 1, 3, 1, 2, 1, 3, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 1, 1, 1, 0, 3, 5, 1, 3, 1, 4 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (pParseContext, YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Error token number */ #define YYTERROR 1 #define YYERRCODE 256 /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) /* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT # define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value, pParseContext); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*----------------------------------------. | Print this symbol's value on YYOUTPUT. | `----------------------------------------*/ static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) { FILE *yyo = yyoutput; YYUSE (yyo); YYUSE (pParseContext); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif YYUSE (yytype); } /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) { YYFPRINTF (yyoutput, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext); YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ static void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) { unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], &(yyvsp[(yyi + 1) - (yynrhs)]) , pParseContext); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ static YYSIZE_T yystrlen (const char *yystr) { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ static char * yystpcpy (char *yydest, const char *yysrc) { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message about the unexpected token YYTOKEN for the state stack whose top is YYSSP. Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is not large enough to hold the message. In that case, also set *YYMSG_ALLOC to the required number of bytes. Return 2 if the required number of bytes is too large to store. */ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per "expected"). */ int yycount = 0; /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected tokens because there are none. - The only way there can be no lookahead present (in yychar) is if this state is a consistent state with a default action. Thus, detecting the absence of a lookahead is sufficient to determine that there is no unexpected or expected token to report. In that case, just report a simple "syntax error". - Don't assume there isn't a lookahead just because this state is a consistent state with a default action. There might have been a previous inconsistent state, consistent state with a non-default action, or user semantic action that manipulated yychar. - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the scanner and before detecting a syntax error. Thus, state merging (from LALR or IELR) and default reductions corrupt the expected token list. However, the list is correct for canonical LR with one exception: it will still contain any token that will not be accepted due to an error action in a later state. */ if (yytoken != YYEMPTY) { int yyn = yypact[*yyssp]; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. In other words, skip the first -YYN actions for this state because they are default actions. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yyx; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR && !yytable_value_is_error (yytable[yyx + yyn])) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; break; } yyarg[yycount++] = yytname[yyx]; { YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; yysize = yysize1; } } } } switch (yycount) { # define YYCASE_(N, S) \ case N: \ yyformat = S; \ break YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); # undef YYCASE_ } { YYSIZE_T yysize1 = yysize + yystrlen (yyformat); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; yysize = yysize1; } if (*yymsg_alloc < yysize) { *yymsg_alloc = 2 * yysize; if (! (yysize <= *yymsg_alloc && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; return 1; } /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ { char *yyp = *yymsg; int yyi = 0; while ((*yyp = *yyformat) != '\0') if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyformat += 2; } else { yyp++; yyformat++; } } return 0; } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext) { YYUSE (yyvaluep); YYUSE (pParseContext); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YYUSE (yytype); YY_IGNORE_MAYBE_UNINITIALIZED_END } /*----------. | yyparse. | `----------*/ int yyparse (glslang::TParseContext* pParseContext) { /* The lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ YY_INITIAL_VALUE (static YYSTYPE yyval_default;) YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); /* Number of syntax errors so far. */ int yynerrs; int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: 'yyss': related to states. 'yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; YYSIZE_T yystacksize; int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; yyssp = yyss = yyssa; yyvsp = yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = yylex (&yylval, parseContext); } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token. */ yychar = YYEMPTY; yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: #line 352 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); } #line 4172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 3: #line 358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 4: #line 361 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } #line 4190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 5: #line 366 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); } #line 4198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 6: #line 369 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } #line 4206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 7: #line 372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } #line 4215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 8: #line 376 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); } #line 4223 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 9: #line 380 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } #line 4232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 10: #line 384 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } #line 4241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 11: #line 388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); } #line 4250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 12: #line 392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); } #line 4259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 13: #line 396 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); } #line 4268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 14: #line 400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); } #line 4277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 15: #line 404 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); } #line 4286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 16: #line 408 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float literal"); (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true); } #line 4295 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 17: #line 416 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4303 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 18: #line 419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); } #line 4311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 19: #line 422 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4319 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 20: #line 425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); } #line 4327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 21: #line 428 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); } #line 4337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 22: #line 433 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); } #line 4347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 23: #line 441 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 24: #line 448 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); delete (yyvsp[0].interm).function; } #line 4365 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 25: #line 455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); } #line 4373 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 26: #line 461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-1].interm); (yyval.interm).loc = (yyvsp[0].lex).loc; } #line 4382 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 27: #line 465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-1].interm); (yyval.interm).loc = (yyvsp[0].lex).loc; } #line 4391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 28: #line 472 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-1].interm); } #line 4399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 29: #line 475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); } #line 4407 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 30: #line 481 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TParameter param = { 0, new TType }; param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); (yyvsp[-1].interm).function->addParameter(param); (yyval.interm).function = (yyvsp[-1].interm).function; (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); } #line 4419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 31: #line 488 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TParameter param = { 0, new TType }; param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); (yyvsp[-2].interm).function->addParameter(param); (yyval.interm).function = (yyvsp[-2].interm).function; (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); } #line 4431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 32: #line 498 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-1].interm); } #line 4439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 33: #line 506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // Constructor (yyval.interm).intermNode = 0; (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } #line 4449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 34: #line 511 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // Should be a method or subroutine call, but we haven't recognized the arguments yet. // (yyval.interm).function = 0; (yyval.interm).intermNode = 0; TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode(); if (method) { (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); (yyval.interm).intermNode = method->getObject(); } else { TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode(); if (symbol) { parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); (yyval.interm).function = function; } else parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); } if ((yyval.interm).function == 0) { // error recover TString* empty = NewPoolTString(""); (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull); } } #line 4481 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 35: #line 539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // Constructor (yyval.interm).intermNode = 0; (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); } #line 4491 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 36: #line 548 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); } #line 4502 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 37: #line 554 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); } #line 4511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 38: #line 558 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); } #line 4520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 39: #line 562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-1].interm).op != EOpNull) { char errorOp[2] = {0, 0}; switch((yyvsp[-1].interm).op) { case EOpNegative: errorOp[0] = '-'; break; case EOpLogicalNot: errorOp[0] = '!'; break; case EOpBitwiseNot: errorOp[0] = '~'; break; default: break; // some compilers want this } (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode)); } else { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } } #line 4541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 40: #line 582 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } #line 4547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 41: #line 583 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } #line 4553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 42: #line 584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } #line 4559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 43: #line 585 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } #line 4566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 44: #line 591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 45: #line 592 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 4582 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 46: #line 597 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 4592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 47: #line 602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 4603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 48: #line 611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 49: #line 612 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 4619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 50: #line 617 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 4629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 51: #line 625 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4635 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 52: #line 626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 4646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 53: #line 632 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 4657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 54: #line 641 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 55: #line 642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } #line 4673 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 56: #line 647 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } #line 4683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 57: #line 652 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } #line 4693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 58: #line 657 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } #line 4703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 59: #line 665 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 60: #line 666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); 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 4723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 61: #line 675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); 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 4737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 62: #line 687 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4743 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 63: #line 688 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 4754 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 64: #line 697 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 65: #line 698 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 4771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 66: #line 707 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4777 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 67: #line 708 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 4788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 68: #line 717 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 69: #line 718 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } #line 4804 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 70: #line 726 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4810 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 71: #line 727 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } #line 4820 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 72: #line 735 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 73: #line 736 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); } #line 4836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 74: #line 744 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 75: #line 745 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } #line 4850 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 76: #line 748 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode)); parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)); parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc); if ((yyval.interm.intermTypedNode) == 0) { parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } #line 4867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 77: #line 763 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4873 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 78: #line 764 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); parseContext.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.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc); if ((yyval.interm.intermTypedNode) == 0) { parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } } #line 4891 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 79: #line 780 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAssign; } #line 4900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 80: #line 784 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpMulAssign; } #line 4909 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 81: #line 788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpDivAssign; } #line 4918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 82: #line 792 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpModAssign; } #line 4928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 83: #line 797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAddAssign; } #line 4937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 84: #line 801 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpSubAssign; } #line 4946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 85: #line 805 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } #line 4955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 86: #line 809 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } #line 4964 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 87: #line 813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; } #line 4973 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 88: #line 817 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } #line 4982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 89: #line 821 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } #line 4991 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 90: #line 828 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 4999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 91: #line 831 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); if ((yyval.interm.intermTypedNode) == 0) { parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } } #line 5012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 92: #line 842 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 5021 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 93: #line 849 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); (yyval.interm.intermNode) = 0; // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } #line 5031 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 94: #line 854 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate()) (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; } #line 5041 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 95: #line 859 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } #line 5053 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 96: #line 866 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); (yyval.interm.intermNode) = 0; } #line 5062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 97: #line 870 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } #line 5071 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 98: #line 874 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); (yyval.interm.intermNode) = 0; } #line 5080 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 99: #line 878 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); (yyval.interm.intermNode) = 0; } #line 5090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 100: #line 883 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); (yyval.interm.intermNode) = 0; } #line 5100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 101: #line 888 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); (yyval.interm.intermNode) = 0; } #line 5111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 102: #line 897 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } #line 5117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 103: #line 897 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.structNestingLevel; parseContext.blockName = (yyvsp[-4].lex).string; parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier); parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers); parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier; (yyval.interm).loc = (yyvsp[-5].interm.type).loc; (yyval.interm).typeList = (yyvsp[-1].interm.typeList); } #line 5131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 104: #line 908 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.identifierList) = new TIdentifierList; (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } #line 5140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 105: #line 912 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); } #line 5149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 106: #line 919 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).function = (yyvsp[-1].interm.function); (yyval.interm).loc = (yyvsp[0].lex).loc; } #line 5158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 107: #line 926 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.function) = (yyvsp[0].interm.function); } #line 5166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 108: #line 929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.function) = (yyvsp[0].interm.function); } #line 5174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 109: #line 936 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // Add the parameter (yyval.interm.function) = (yyvsp[-1].interm.function); if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid) (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param); else delete (yyvsp[0].interm).param.type; } #line 5187 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 110: #line 944 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // Only first parameter of one-parameter functions can be void // The check for named parameters not being void is done in parameter_declarator // if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) { // // This parameter > first is void // parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); delete (yyvsp[0].interm).param.type; } else { // Add the parameter (yyval.interm.function) = (yyvsp[-2].interm.function); (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); } } #line 5209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 111: #line 964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), ""); } if ((yyvsp[-2].interm.type).arraySizes) parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); // Add the function as a prototype after parsing it (we do not support recursion) TFunction *function; TType type((yyvsp[-2].interm.type)); // Potentially rename shader entry point function. No-op most of the time. parseContext.renameShaderFunction((yyvsp[-1].lex).string); // Make the function function = new TFunction((yyvsp[-1].lex).string, type); (yyval.interm.function) = function; } #line 5233 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 112: #line 987 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-1].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes); } if ((yyvsp[-1].interm.type).basicType == EbtVoid) { parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), ""); } parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string); TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))}; (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).param = param; } #line 5253 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 113: #line 1002 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); } TType* type = new TType((yyvsp[-2].interm.type)); type->transferArraySizes((yyvsp[0].interm).arraySizes); type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes); parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes()); parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes); parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string); TParameter param = { (yyvsp[-1].lex).string, type }; (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).param = param; } #line 5277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 114: #line 1027 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } #line 5293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 115: #line 1038 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } #line 5305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 116: #line 1048 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); } #line 5320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 117: #line 1058 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } #line 5332 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 118: #line 1068 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; (yyval.interm).param = param; if ((yyvsp[0].interm.type).arraySizes) parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); } #line 5343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 119: #line 1077 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[0].interm); } #line 5351 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 120: #line 1080 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-2].interm); parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); } #line 5360 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 121: #line 1084 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-3].interm); parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); } #line 5369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 122: #line 1088 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-5].interm).type; TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } #line 5379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 123: #line 1093 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-4].interm).type; TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); } #line 5389 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 124: #line 1101 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[0].interm.type); (yyval.interm).intermNode = 0; parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); } #line 5401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 125: #line 1108 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-1].interm.type); (yyval.interm).intermNode = 0; parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); } #line 5411 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 126: #line 1113 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-2].interm.type); (yyval.interm).intermNode = 0; parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); } #line 5421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 127: #line 1118 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-4].interm.type); TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); } #line 5431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 128: #line 1123 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).type = (yyvsp[-3].interm.type); TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); } #line 5441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 129: #line 1132 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type)); if ((yyvsp[0].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); } #line 5456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 130: #line 1142 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); if ((yyvsp[0].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier)) (yyvsp[0].interm.type).arraySizes = nullptr; parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers); parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true); parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier); (yyval.interm.type) = (yyvsp[0].interm.type); if (! (yyval.interm.type).qualifier.isInterpolation() && ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) || (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } #line 5485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 131: #line 1169 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.invariant = true; } #line 5496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 132: #line 1178 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.smooth = true; } #line 5508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 133: #line 1185 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.flat = true; } #line 5520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 134: #line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 5532 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 135: #line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 5544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 136: #line 1207 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 5557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 137: #line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // 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 5572 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: #line 1225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // 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 5584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: #line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // 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 5596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: #line 1243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-1].interm.type); } #line 5604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: #line 1249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } #line 5612 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: #line 1252 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-2].interm.type); (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } #line 5622 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: #line 1259 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); } #line 5631 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: #line 1263 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[-2].lex).loc); parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); } #line 5640 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: #line 1267 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // because "shared" is both an identifier and a keyword (yyval.interm.type).init((yyvsp[0].lex).loc); TString strShared("shared"); parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); } #line 5650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: #line 1276 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.noContraction = true; } #line 5661 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 147: #line 1286 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } #line 5669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 148: #line 1289 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[-1].interm.type); if ((yyval.interm.type).basicType == EbtVoid) (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType; (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); } #line 5682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 149: #line 1300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } #line 5690 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 150: #line 1303 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } #line 5698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 151: #line 1306 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); (yyval.interm.type) = (yyvsp[0].interm.type); } #line 5707 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 152: #line 1310 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } #line 5716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 153: #line 1314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } #line 5725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 154: #line 1319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // allow inheritance of storage qualifier from block declaration (yyval.interm.type) = (yyvsp[0].interm.type); } #line 5734 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 155: #line 1323 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); } #line 5742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 156: #line 1330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant } #line 5751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 157: #line 1334 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqInOut; } #line 5761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 158: #line 1339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "in"); (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqIn; } #line 5772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 159: #line 1345 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "out"); (yyval.interm.type).init((yyvsp[0].lex).loc); // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqOut; } #line 5783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 160: #line 1351 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); parseContext.globalCheck((yyvsp[0].lex).loc, "centroid"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.centroid = true; } #line 5795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 161: #line 1358 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } #line 5805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 162: #line 1363 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "shared"); parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqShared; } #line 5818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 163: #line 1371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqBuffer; } #line 5828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 164: #line 1377 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute"); parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute"); parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute"); parseContext.globalCheck((yyvsp[0].lex).loc, "attribute"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.storage = EvqVaryingIn; } #line 5845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 165: #line 1389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying"); parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying"); parseContext.globalCheck((yyvsp[0].lex).loc, "varying"); (yyval.interm.type).init((yyvsp[0].lex).loc); if (parseContext.language == EShLangVertex) (yyval.interm.type).qualifier.storage = EvqVaryingOut; else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } #line 5864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 166: #line 1403 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.patch = true; } #line 5875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 167: #line 1409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.sample = true; } #line 5885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 168: #line 1414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectNVMask | EShLangClosestHitNVMask | EShLangAnyHitNVMask), "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 = EvqHitAttrNV; } #line 5898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 169: #line 1422 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | EShLangAnyHitNVMask | EShLangMissNVMask), "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 = EvqPayloadNV; } #line 5911 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 170: #line 1430 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitNVMask | EShLangAnyHitNVMask | EShLangMissNVMask), "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 = EvqPayloadInNV; } #line 5924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 171: #line 1438 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenNVMask | EShLangClosestHitNVMask | EShLangMissNVMask | EShLangCallableNVMask), "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 = EvqCallableDataNV; } #line 5937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 172: #line 1446 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV"); parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableNVMask), "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 = EvqCallableDataInNV; } #line 5949 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 173: #line 1453 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.coherent = true; } #line 5958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 174: #line 1457 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (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 5968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 175: #line 1462 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (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 5978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 176: #line 1467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (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 5988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 177: #line 1472 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (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 5998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 178: #line 1477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (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 6008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 179: #line 1482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.volatil = true; } #line 6017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 180: #line 1486 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.restrict = true; } #line 6026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 181: #line 1490 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.readonly = true; } #line 6035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 182: #line 1494 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.writeonly = true; } #line 6044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 183: #line 1498 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[0].lex).loc); } #line 6055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 184: #line 1504 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine"); (yyval.interm.type).init((yyvsp[-3].lex).loc); } #line 6066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 185: #line 1515 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc); (yyval.interm.type).qualifier.nonUniform = true; } #line 6075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 186: #line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // TODO } #line 6083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 187: #line 1525 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // TODO: 4.0 semantics: subroutines // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } #line 6093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 188: #line 1534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (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 6103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 189: #line 1539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6115 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 190: #line 1549 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-1].lex).loc; (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } #line 6125 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 191: #line 1554 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm).loc = (yyvsp[-2].lex).loc; (yyval.interm).arraySizes = new TArraySizes; TArraySize size; parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size"); (yyval.interm).arraySizes->addInnerSize(size); } #line 6138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 192: #line 1562 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-2].interm); (yyval.interm).arraySizes->addInnerSize(); } #line 6147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 193: #line 1566 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm) = (yyvsp[-3].interm); TArraySize size; parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size"); (yyval.interm).arraySizes->addInnerSize(size); } #line 6159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 194: #line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters); } #line 6167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 195: #line 1579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeParameters) = 0; } #line 6175 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 196: #line 1585 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters); } #line 6183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 197: #line 1591 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (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 6195 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 198: #line 1598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (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 6207 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 199: #line 1608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } #line 6216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 200: #line 1612 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } #line 6225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 201: #line 1616 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } #line 6234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 202: #line 1620 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } #line 6244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 203: #line 1625 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; } #line 6253 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 204: #line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } #line 6263 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 205: #line 1634 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } #line 6273 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 206: #line 1639 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } #line 6283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 207: #line 1644 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(2); } #line 6293 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 208: #line 1649 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(3); } #line 6303 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 209: #line 1654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(4); } #line 6313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 210: #line 1659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } #line 6323 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 211: #line 1664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } #line 6333 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 212: #line 1669 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } #line 6343 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 213: #line 1674 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } #line 6354 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 214: #line 1680 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } #line 6365 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 215: #line 1686 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } #line 6376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 216: #line 1692 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } #line 6386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 217: #line 1697 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } #line 6396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 218: #line 1702 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } #line 6406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 219: #line 1707 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } #line 6416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 220: #line 1712 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } #line 6426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 221: #line 1717 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } #line 6436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 222: #line 1722 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } #line 6446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 223: #line 1727 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } #line 6456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 224: #line 1732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } #line 6466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 225: #line 1737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } #line 6476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 226: #line 1742 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } #line 6486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 227: #line 1747 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } #line 6496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 228: #line 1753 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } #line 6506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 229: #line 1758 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 230: #line 1763 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } #line 6526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 231: #line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } #line 6536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 232: #line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 233: #line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 234: #line 1783 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 235: #line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 236: #line 1793 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } #line 6586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 237: #line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } #line 6596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 238: #line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; } #line 6606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 239: #line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; } #line 6616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 240: #line 1813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } #line 6627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 241: #line 1819 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } #line 6638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 242: #line 1825 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } #line 6649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 243: #line 1831 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 244: #line 1837 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 245: #line 1843 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 246: #line 1849 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } #line 6693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 247: #line 1855 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } #line 6704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 248: #line 1861 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } #line 6715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 249: #line 1867 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } #line 6726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 250: #line 1873 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } #line 6737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 251: #line 1879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } #line 6748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 252: #line 1885 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 253: #line 1891 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 254: #line 1897 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 255: #line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 256: #line 1909 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 257: #line 1915 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 258: #line 1921 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } #line 6825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 259: #line 1927 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } #line 6836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 260: #line 1933 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } #line 6847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 261: #line 1939 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(2); } #line 6858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 262: #line 1945 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(3); } #line 6869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 263: #line 1951 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(4); } #line 6880 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 264: #line 1957 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6891 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 265: #line 1963 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 266: #line 1969 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6913 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 267: #line 1975 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 268: #line 1981 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 269: #line 1987 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 6946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 270: #line 1993 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } #line 6957 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 271: #line 1999 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } #line 6968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 272: #line 2005 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } #line 6979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 273: #line 2011 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(2); } #line 6990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 274: #line 2017 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(3); } #line 7001 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 275: #line 2023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; (yyval.interm.type).setVector(4); } #line 7012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 276: #line 2029 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } #line 7023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 277: #line 2035 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } #line 7034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 278: #line 2041 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } #line 7045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 279: #line 2047 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } #line 7056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 280: #line 2053 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } #line 7067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 281: #line 2059 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } #line 7078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 282: #line 2065 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } #line 7089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 283: #line 2071 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } #line 7100 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 284: #line 2077 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } #line 7111 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 285: #line 2083 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } #line 7122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 286: #line 2089 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } #line 7133 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 287: #line 2095 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } #line 7144 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 288: #line 2101 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 2); } #line 7155 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 289: #line 2107 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 3); } #line 7166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 290: #line 2113 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 4); } #line 7177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 291: #line 2119 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 2); } #line 7188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 292: #line 2125 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 3); } #line 7199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 293: #line 2131 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 4); } #line 7210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 294: #line 2137 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 2); } #line 7221 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 295: #line 2143 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 3); } #line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 296: #line 2149 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 4); } #line 7243 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 297: #line 2155 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 2); } #line 7254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 298: #line 2161 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 3); } #line 7265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 299: #line 2167 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 4); } #line 7276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 300: #line 2173 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } #line 7287 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 301: #line 2179 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } #line 7298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 302: #line 2185 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } #line 7309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 303: #line 2191 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 2); } #line 7320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 304: #line 2197 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 3); } #line 7331 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 305: #line 2203 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(2, 4); } #line 7342 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 306: #line 2209 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 2); } #line 7353 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 307: #line 2215 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 3); } #line 7364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 308: #line 2221 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(3, 4); } #line 7375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 309: #line 2227 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 2); } #line 7386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 310: #line 2233 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 3); } #line 7397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 311: #line 2239 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setMatrix(4, 4); } #line 7408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 312: #line 2245 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } #line 7419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 313: #line 2251 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } #line 7430 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 314: #line 2257 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } #line 7441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 315: #line 2263 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } #line 7452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 316: #line 2269 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } #line 7463 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 317: #line 2275 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } #line 7474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 318: #line 2281 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } #line 7485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 319: #line 2287 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } #line 7496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 320: #line 2293 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } #line 7507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 321: #line 2299 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } #line 7518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 322: #line 2305 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } #line 7529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 323: #line 2311 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel()); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } #line 7540 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 324: #line 2317 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAccStructNV; } #line 7549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 325: #line 2321 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAtomicUint; } #line 7559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 326: #line 2326 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D); } #line 7569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 327: #line 2332 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } #line 7579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 328: #line 2337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } #line 7589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 329: #line 2342 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } #line 7599 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 330: #line 2347 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } #line 7609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 331: #line 2352 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } #line 7619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 332: #line 2357 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } #line 7629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 333: #line 2362 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } #line 7639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 334: #line 2368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } #line 7649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 335: #line 2373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } #line 7659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 336: #line 2378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } #line 7669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 337: #line 2383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); } #line 7679 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 338: #line 2388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); } #line 7689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 339: #line 2393 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 340: #line 2399 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7711 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 341: #line 2405 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 342: #line 2411 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 343: #line 2417 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 344: #line 2423 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7755 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 345: #line 2429 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 346: #line 2435 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7777 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 347: #line 2441 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 348: #line 2447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 349: #line 2453 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7810 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 350: #line 2459 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7821 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 351: #line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 7832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 352: #line 2471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D); } #line 7842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 353: #line 2477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D); } #line 7852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 354: #line 2482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd3D); } #line 7862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 355: #line 2487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube); } #line 7872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 356: #line 2492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } #line 7882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 357: #line 2497 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D); } #line 7892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 358: #line 2502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd3D); } #line 7902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 359: #line 2507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube); } #line 7912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 360: #line 2513 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); } #line 7922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 361: #line 2518 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); } #line 7932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 362: #line 2523 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D); } #line 7942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 363: #line 2528 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); } #line 7952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 364: #line 2533 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); } #line 7962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 365: #line 2538 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); } #line 7972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 366: #line 2543 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); } #line 7982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 367: #line 2548 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); } #line 7992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 368: #line 2554 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } #line 8002 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 369: #line 2559 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } #line 8012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 370: #line 2564 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } #line 8022 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 371: #line 2569 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } #line 8032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 372: #line 2574 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } #line 8042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 373: #line 2579 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } #line 8052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 374: #line 2584 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } #line 8062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 375: #line 2589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } #line 8072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 376: #line 2594 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } #line 8082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 377: #line 2599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } #line 8092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 378: #line 2604 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } #line 8102 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 379: #line 2609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } #line 8112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 380: #line 2614 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } #line 8122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 381: #line 2619 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(false); } #line 8132 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 382: #line 2624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(true); } #line 8142 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 383: #line 2630 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect); } #line 8152 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 384: #line 2635 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); } #line 8162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 385: #line 2640 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 386: #line 2646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 387: #line 2652 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdRect); } #line 8194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 388: #line 2657 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdRect); } #line 8204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 389: #line 2662 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); } #line 8214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 390: #line 2667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 391: #line 2673 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); } #line 8235 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 392: #line 2678 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); } #line 8245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 393: #line 2683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); } #line 8255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 394: #line 2688 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 395: #line 2694 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); } #line 8276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 396: #line 2699 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); } #line 8286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 397: #line 2704 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); } #line 8296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 398: #line 2709 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 399: #line 2715 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); } #line 8317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 400: #line 2720 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); } #line 8327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 401: #line 2725 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); } #line 8337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 402: #line 2730 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 403: #line 2736 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 404: #line 2742 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 405: #line 2748 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 406: #line 2754 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); } #line 8391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 407: #line 2759 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 408: #line 2765 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 409: #line 2771 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 410: #line 2777 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); } #line 8434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 411: #line 2782 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); } #line 8444 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 412: #line 2787 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); } #line 8454 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 413: #line 2792 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); } #line 8464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 414: #line 2797 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); } #line 8474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 415: #line 2802 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8485 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 416: #line 2808 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); } #line 8495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 417: #line 2813 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); } #line 8505 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 418: #line 2818 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); } #line 8515 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 419: #line 2823 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 420: #line 2829 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); } #line 8536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 421: #line 2834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); } #line 8546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 422: #line 2839 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); } #line 8556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 423: #line 2844 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8567 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 424: #line 2850 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); } #line 8577 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 425: #line 2855 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); } #line 8587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 426: #line 2860 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); } #line 8597 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 427: #line 2865 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 428: #line 2871 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); } #line 8618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 429: #line 2876 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); } #line 8628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 430: #line 2881 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); } #line 8638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 431: #line 2886 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 432: #line 2892 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); } #line 8659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 433: #line 2897 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); } #line 8669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 434: #line 2902 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); } #line 8679 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 435: #line 2907 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8690 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 436: #line 2913 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); } #line 8700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 437: #line 2918 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); } #line 8710 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 438: #line 2923 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); } #line 8720 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 439: #line 2928 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8731 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 440: #line 2934 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); } #line 8741 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 441: #line 2939 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); } #line 8751 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 442: #line 2944 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); } #line 8761 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 443: #line 2949 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 444: #line 2955 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); } #line 8782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 445: #line 2960 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); } #line 8792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 446: #line 2965 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); } #line 8802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 447: #line 2970 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8813 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 448: #line 2976 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); } #line 8823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 449: #line 2981 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); } #line 8833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 450: #line 2986 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); } #line 8843 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 451: #line 2991 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 452: #line 2997 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); } #line 8864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 453: #line 3002 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); } #line 8874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 454: #line 3007 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); } #line 8884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 455: #line 3012 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8895 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 456: #line 3018 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); } #line 8905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 457: #line 3023 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); } #line 8915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 458: #line 3028 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); } #line 8925 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 459: #line 3033 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 460: #line 3039 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); } #line 8946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 461: #line 3044 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); } #line 8956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 462: #line 3049 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); } #line 8966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 463: #line 3054 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 8977 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 464: #line 3060 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); } #line 8987 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 465: #line 3065 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); } #line 8997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 466: #line 3070 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); } #line 9007 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 467: #line 3075 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 9018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 468: #line 3081 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); } #line 9028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 469: #line 3086 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); } #line 9038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 470: #line 3091 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); } #line 9048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 471: #line 3096 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 9059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 472: #line 3102 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); } #line 9069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 473: #line 3107 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); } #line 9079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 474: #line 3112 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // GL_OES_EGL_image_external (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } #line 9090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 475: #line 3118 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // 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 9101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 476: #line 3124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat); } #line 9112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 477: #line 3130 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } #line 9123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 478: #line 3136 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 9135 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 479: #line 3143 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 9147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 480: #line 3150 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt); } #line 9158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 481: #line 3156 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt, true); } #line 9169 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 482: #line 3162 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint); } #line 9180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 483: #line 3168 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint, true); } #line 9191 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 484: #line 3174 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 9202 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 485: #line 3180 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 9213 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 486: #line 3186 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 9224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 487: #line 3193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.type) = (yyvsp[0].interm.type); (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); } #line 9234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 488: #line 3198 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // // This is for user defined type names. The lexical phase looked up the // type. // if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) { const TType& structure = variable->getType(); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = &structure; } else parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); } #line 9252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 489: #line 3214 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); } #line 9262 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 490: #line 3219 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); } #line 9272 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 491: #line 3224 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); } #line 9282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 492: #line 3232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } #line 9288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 493: #line 3232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true); if (! parseContext.symbolTable.insert(*userTypeDef)) parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct"); (yyval.interm.type).init((yyvsp[-5].lex).loc); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } #line 9304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 494: #line 3243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } #line 9310 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 495: #line 3243 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); (yyval.interm.type).init((yyvsp[-4].lex).loc); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } #line 9322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 496: #line 3253 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = (yyvsp[0].interm.typeList); } #line 9330 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 497: #line 3256 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName()) parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str()); } (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); } } #line 9345 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 498: #line 3269 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); if (parseContext.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 9372 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 499: #line 3291 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.type).arraySizes) { parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); if (parseContext.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 9401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 500: #line 3318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList) = new TTypeList; (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } #line 9410 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 501: #line 3322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); } #line 9418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 502: #line 3328 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.typeLine).type = new TType(EbtVoid); (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); } #line 9428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 503: #line 3333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes); (yyval.interm.typeLine).type = new TType(EbtVoid); (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc; (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes); } #line 9441 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 504: #line 3344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 9449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 505: #line 3348 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); } #line 9460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 506: #line 3354 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { const char* initFeature = "{ } style initializers"; parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); } #line 9471 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 507: #line 3365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); } #line 9479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 508: #line 3368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); } #line 9487 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 509: #line 3375 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9493 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 510: #line 3379 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9499 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 511: #line 3380 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9505 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 512: #line 3386 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 513: #line 3387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 514: #line 3388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 515: #line 3389 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 516: #line 3390 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 517: #line 3391 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 518: #line 3392 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 519: #line 3394 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 520: #line 3400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { 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 9563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 521: #line 3409 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } #line 9569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 522: #line 3410 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } #line 9578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 523: #line 3414 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } #line 9587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 524: #line 3418 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); } #line 9597 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 525: #line 3426 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 526: #line 3427 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 527: #line 3431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.controlFlowNestingLevel; } #line 9617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 528: #line 3434 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 529: #line 3438 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } #line 9636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 530: #line 3443 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9647 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 531: #line 3452 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } #line 9655 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 532: #line 3455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); } #line 9665 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 533: #line 3463 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } #line 9678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 534: #line 3471 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } else (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); } #line 9691 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 535: #line 3482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } #line 9697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 536: #line 3483 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = static_cast((yyvsp[-1].interm.intermTypedNode)); } #line 9703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 537: #line 3487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9711 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 538: #line 3491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9720 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 539: #line 3498 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); } #line 9729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 540: #line 3505 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); } #line 9738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 541: #line 3509 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } #line 9747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 542: #line 3517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); } #line 9756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 543: #line 3521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); TType type((yyvsp[-3].interm.type)); TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); if (initNode) (yyval.interm.intermTypedNode) = initNode->getAsTyped(); else (yyval.interm.intermTypedNode) = 0; } #line 9771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 544: #line 3534 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 545: #line 3538 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 546: #line 3545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; ++parseContext.statementNestingLevel; parseContext.switchSequenceStack.push_back(new TIntermSequence); parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } #line 9801 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 547: #line 3553 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); delete parseContext.switchSequenceStack.back(); parseContext.switchSequenceStack.pop_back(); parseContext.switchLevel.pop_back(); parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } #line 9815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 548: #line 3565 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; } #line 9823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 549: #line 3568 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9831 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 550: #line 3574 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", ""); else { parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case"); parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); } } #line 9848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 551: #line 3586 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", ""); else (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); } #line 9862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 552: #line 3598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9870 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 553: #line 3602 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode)); (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 554: #line 3609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } #line 9892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 555: #line 3617 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } #line 9904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 556: #line 3624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } #line 9914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 557: #line 3629 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (! parseContext.limits.whileLoops) parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode)); (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } #line 9930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 558: #line 3640 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } #line 9941 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 559: #line 3646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast((yyvsp[-2].interm.nodePair).node1), reinterpret_cast((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc); if (! parseContext.limits.nonInductiveForLoops) parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop); (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc); (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } #line 9958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 560: #line 3661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 561: #line 3664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 9974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 562: #line 3670 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } #line 9982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 563: #line 3673 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermTypedNode) = 0; } #line 9990 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 564: #line 3679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } #line 9999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 565: #line 3683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); } #line 10008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 566: #line 3690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel <= 0) parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); } #line 10018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 567: #line 3695 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); } #line 10028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 568: #line 3700 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", ""); if (parseContext.inMain) parseContext.postEntryPointReturn = true; } #line 10040 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 569: #line 3707 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } #line 10048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 570: #line 3710 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); } #line 10057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 571: #line 3719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } #line 10066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 572: #line 3723 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { if ((yyvsp[0].interm.intermNode) != nullptr) { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } } #line 10077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 573: #line 3732 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 10085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 574: #line 3735 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } #line 10093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 575: #line 3739 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon"); parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon"); (yyval.interm.intermNode) = nullptr; } #line 10103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 576: #line 3748 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); } #line 10112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 577: #line 3752 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str()); parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode)); parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc); (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str()); // store the pragma information for debug and optimize and other vendor specific // information. This information can be queried from the parse tree (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize); (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable); } #line 10132 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 578: #line 3771 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = (yyvsp[-2].interm.attributes); parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute"); } #line 10141 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 579: #line 3777 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = (yyvsp[0].interm.attributes); } #line 10149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 580: #line 3780 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes)); } #line 10157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 581: #line 3785 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string); } #line 10165 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 582: #line 3788 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode)); } #line 10173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; #line 10177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (pParseContext, YY_("syntax error")); #else # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ yyssp, yytoken) { char const *yymsgp = YY_("syntax error"); int yysyntax_error_status; yysyntax_error_status = YYSYNTAX_ERROR; if (yysyntax_error_status == 0) yymsgp = yymsg; else if (yysyntax_error_status == 1) { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); if (!yymsg) { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; yysyntax_error_status = 2; } else { yysyntax_error_status = YYSYNTAX_ERROR; yymsgp = yymsg; } } yyerror (pParseContext, yymsgp); if (yysyntax_error_status == 2) goto yyexhaustedlab; } # undef YYSYNTAX_ERROR #endif } if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval, pParseContext); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (/*CONSTCOND*/ 0) goto yyerrorlab; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", yystos[yystate], yyvsp, pParseContext); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (pParseContext, YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, pParseContext); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp, pParseContext); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif return yyresult; } #line 3793 "MachineIndependent/glslang.y" /* yacc.c:1906 */ glslang-8.13.3559/glslang/MachineIndependent/glslang_tab.cpp.h000066400000000000000000000277301360464450000240730ustar00rootroot00000000000000/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison interface for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ #ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED # define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif #if YYDEBUG extern int yydebug; #endif /* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { CONST = 258, BOOL = 259, INT = 260, UINT = 261, FLOAT = 262, BVEC2 = 263, BVEC3 = 264, BVEC4 = 265, IVEC2 = 266, IVEC3 = 267, IVEC4 = 268, UVEC2 = 269, UVEC3 = 270, UVEC4 = 271, VEC2 = 272, VEC3 = 273, VEC4 = 274, MAT2 = 275, MAT3 = 276, MAT4 = 277, MAT2X2 = 278, MAT2X3 = 279, MAT2X4 = 280, MAT3X2 = 281, MAT3X3 = 282, MAT3X4 = 283, MAT4X2 = 284, MAT4X3 = 285, MAT4X4 = 286, SAMPLER2D = 287, SAMPLER3D = 288, SAMPLERCUBE = 289, SAMPLER2DSHADOW = 290, SAMPLERCUBESHADOW = 291, SAMPLER2DARRAY = 292, SAMPLER2DARRAYSHADOW = 293, ISAMPLER2D = 294, ISAMPLER3D = 295, ISAMPLERCUBE = 296, ISAMPLER2DARRAY = 297, USAMPLER2D = 298, USAMPLER3D = 299, USAMPLERCUBE = 300, USAMPLER2DARRAY = 301, SAMPLER = 302, SAMPLERSHADOW = 303, TEXTURE2D = 304, TEXTURE3D = 305, TEXTURECUBE = 306, TEXTURE2DARRAY = 307, ITEXTURE2D = 308, ITEXTURE3D = 309, ITEXTURECUBE = 310, ITEXTURE2DARRAY = 311, UTEXTURE2D = 312, UTEXTURE3D = 313, UTEXTURECUBE = 314, UTEXTURE2DARRAY = 315, ATTRIBUTE = 316, VARYING = 317, FLOAT16_T = 318, FLOAT32_T = 319, DOUBLE = 320, FLOAT64_T = 321, INT64_T = 322, UINT64_T = 323, INT32_T = 324, UINT32_T = 325, INT16_T = 326, UINT16_T = 327, INT8_T = 328, UINT8_T = 329, I64VEC2 = 330, I64VEC3 = 331, I64VEC4 = 332, U64VEC2 = 333, U64VEC3 = 334, U64VEC4 = 335, I32VEC2 = 336, I32VEC3 = 337, I32VEC4 = 338, U32VEC2 = 339, U32VEC3 = 340, U32VEC4 = 341, I16VEC2 = 342, I16VEC3 = 343, I16VEC4 = 344, U16VEC2 = 345, U16VEC3 = 346, U16VEC4 = 347, I8VEC2 = 348, I8VEC3 = 349, I8VEC4 = 350, U8VEC2 = 351, U8VEC3 = 352, U8VEC4 = 353, DVEC2 = 354, DVEC3 = 355, DVEC4 = 356, DMAT2 = 357, DMAT3 = 358, DMAT4 = 359, F16VEC2 = 360, F16VEC3 = 361, F16VEC4 = 362, F16MAT2 = 363, F16MAT3 = 364, F16MAT4 = 365, F32VEC2 = 366, F32VEC3 = 367, F32VEC4 = 368, F32MAT2 = 369, F32MAT3 = 370, F32MAT4 = 371, F64VEC2 = 372, F64VEC3 = 373, F64VEC4 = 374, F64MAT2 = 375, F64MAT3 = 376, F64MAT4 = 377, DMAT2X2 = 378, DMAT2X3 = 379, DMAT2X4 = 380, DMAT3X2 = 381, DMAT3X3 = 382, DMAT3X4 = 383, DMAT4X2 = 384, DMAT4X3 = 385, DMAT4X4 = 386, F16MAT2X2 = 387, F16MAT2X3 = 388, F16MAT2X4 = 389, F16MAT3X2 = 390, F16MAT3X3 = 391, F16MAT3X4 = 392, F16MAT4X2 = 393, F16MAT4X3 = 394, F16MAT4X4 = 395, F32MAT2X2 = 396, F32MAT2X3 = 397, F32MAT2X4 = 398, F32MAT3X2 = 399, F32MAT3X3 = 400, F32MAT3X4 = 401, F32MAT4X2 = 402, F32MAT4X3 = 403, F32MAT4X4 = 404, F64MAT2X2 = 405, F64MAT2X3 = 406, F64MAT2X4 = 407, F64MAT3X2 = 408, F64MAT3X3 = 409, F64MAT3X4 = 410, F64MAT4X2 = 411, F64MAT4X3 = 412, F64MAT4X4 = 413, ATOMIC_UINT = 414, ACCSTRUCTNV = 415, FCOOPMATNV = 416, ICOOPMATNV = 417, UCOOPMATNV = 418, SAMPLERCUBEARRAY = 419, SAMPLERCUBEARRAYSHADOW = 420, ISAMPLERCUBEARRAY = 421, USAMPLERCUBEARRAY = 422, SAMPLER1D = 423, SAMPLER1DARRAY = 424, SAMPLER1DARRAYSHADOW = 425, ISAMPLER1D = 426, SAMPLER1DSHADOW = 427, SAMPLER2DRECT = 428, SAMPLER2DRECTSHADOW = 429, ISAMPLER2DRECT = 430, USAMPLER2DRECT = 431, SAMPLERBUFFER = 432, ISAMPLERBUFFER = 433, USAMPLERBUFFER = 434, SAMPLER2DMS = 435, ISAMPLER2DMS = 436, USAMPLER2DMS = 437, SAMPLER2DMSARRAY = 438, ISAMPLER2DMSARRAY = 439, USAMPLER2DMSARRAY = 440, SAMPLEREXTERNALOES = 441, SAMPLEREXTERNAL2DY2YEXT = 442, ISAMPLER1DARRAY = 443, USAMPLER1D = 444, USAMPLER1DARRAY = 445, F16SAMPLER1D = 446, F16SAMPLER2D = 447, F16SAMPLER3D = 448, F16SAMPLER2DRECT = 449, F16SAMPLERCUBE = 450, F16SAMPLER1DARRAY = 451, F16SAMPLER2DARRAY = 452, F16SAMPLERCUBEARRAY = 453, F16SAMPLERBUFFER = 454, F16SAMPLER2DMS = 455, F16SAMPLER2DMSARRAY = 456, F16SAMPLER1DSHADOW = 457, F16SAMPLER2DSHADOW = 458, F16SAMPLER1DARRAYSHADOW = 459, F16SAMPLER2DARRAYSHADOW = 460, F16SAMPLER2DRECTSHADOW = 461, F16SAMPLERCUBESHADOW = 462, F16SAMPLERCUBEARRAYSHADOW = 463, IMAGE1D = 464, IIMAGE1D = 465, UIMAGE1D = 466, IMAGE2D = 467, IIMAGE2D = 468, UIMAGE2D = 469, IMAGE3D = 470, IIMAGE3D = 471, UIMAGE3D = 472, IMAGE2DRECT = 473, IIMAGE2DRECT = 474, UIMAGE2DRECT = 475, IMAGECUBE = 476, IIMAGECUBE = 477, UIMAGECUBE = 478, IMAGEBUFFER = 479, IIMAGEBUFFER = 480, UIMAGEBUFFER = 481, IMAGE1DARRAY = 482, IIMAGE1DARRAY = 483, UIMAGE1DARRAY = 484, IMAGE2DARRAY = 485, IIMAGE2DARRAY = 486, UIMAGE2DARRAY = 487, IMAGECUBEARRAY = 488, IIMAGECUBEARRAY = 489, UIMAGECUBEARRAY = 490, IMAGE2DMS = 491, IIMAGE2DMS = 492, UIMAGE2DMS = 493, IMAGE2DMSARRAY = 494, IIMAGE2DMSARRAY = 495, UIMAGE2DMSARRAY = 496, F16IMAGE1D = 497, F16IMAGE2D = 498, F16IMAGE3D = 499, F16IMAGE2DRECT = 500, F16IMAGECUBE = 501, F16IMAGE1DARRAY = 502, F16IMAGE2DARRAY = 503, F16IMAGECUBEARRAY = 504, F16IMAGEBUFFER = 505, F16IMAGE2DMS = 506, F16IMAGE2DMSARRAY = 507, TEXTURECUBEARRAY = 508, ITEXTURECUBEARRAY = 509, UTEXTURECUBEARRAY = 510, TEXTURE1D = 511, ITEXTURE1D = 512, UTEXTURE1D = 513, TEXTURE1DARRAY = 514, ITEXTURE1DARRAY = 515, UTEXTURE1DARRAY = 516, TEXTURE2DRECT = 517, ITEXTURE2DRECT = 518, UTEXTURE2DRECT = 519, TEXTUREBUFFER = 520, ITEXTUREBUFFER = 521, UTEXTUREBUFFER = 522, TEXTURE2DMS = 523, ITEXTURE2DMS = 524, UTEXTURE2DMS = 525, TEXTURE2DMSARRAY = 526, ITEXTURE2DMSARRAY = 527, UTEXTURE2DMSARRAY = 528, F16TEXTURE1D = 529, F16TEXTURE2D = 530, F16TEXTURE3D = 531, F16TEXTURE2DRECT = 532, F16TEXTURECUBE = 533, F16TEXTURE1DARRAY = 534, F16TEXTURE2DARRAY = 535, F16TEXTURECUBEARRAY = 536, F16TEXTUREBUFFER = 537, F16TEXTURE2DMS = 538, F16TEXTURE2DMSARRAY = 539, SUBPASSINPUT = 540, SUBPASSINPUTMS = 541, ISUBPASSINPUT = 542, ISUBPASSINPUTMS = 543, USUBPASSINPUT = 544, USUBPASSINPUTMS = 545, F16SUBPASSINPUT = 546, F16SUBPASSINPUTMS = 547, LEFT_OP = 548, RIGHT_OP = 549, INC_OP = 550, DEC_OP = 551, LE_OP = 552, GE_OP = 553, EQ_OP = 554, NE_OP = 555, AND_OP = 556, OR_OP = 557, XOR_OP = 558, MUL_ASSIGN = 559, DIV_ASSIGN = 560, ADD_ASSIGN = 561, MOD_ASSIGN = 562, LEFT_ASSIGN = 563, RIGHT_ASSIGN = 564, AND_ASSIGN = 565, XOR_ASSIGN = 566, OR_ASSIGN = 567, SUB_ASSIGN = 568, LEFT_PAREN = 569, RIGHT_PAREN = 570, LEFT_BRACKET = 571, RIGHT_BRACKET = 572, LEFT_BRACE = 573, RIGHT_BRACE = 574, DOT = 575, COMMA = 576, COLON = 577, EQUAL = 578, SEMICOLON = 579, BANG = 580, DASH = 581, TILDE = 582, PLUS = 583, STAR = 584, SLASH = 585, PERCENT = 586, LEFT_ANGLE = 587, RIGHT_ANGLE = 588, VERTICAL_BAR = 589, CARET = 590, AMPERSAND = 591, QUESTION = 592, INVARIANT = 593, HIGH_PRECISION = 594, MEDIUM_PRECISION = 595, LOW_PRECISION = 596, PRECISION = 597, PACKED = 598, RESOURCE = 599, SUPERP = 600, FLOATCONSTANT = 601, INTCONSTANT = 602, UINTCONSTANT = 603, BOOLCONSTANT = 604, IDENTIFIER = 605, TYPE_NAME = 606, CENTROID = 607, IN = 608, OUT = 609, INOUT = 610, STRUCT = 611, VOID = 612, WHILE = 613, BREAK = 614, CONTINUE = 615, DO = 616, ELSE = 617, FOR = 618, IF = 619, DISCARD = 620, RETURN = 621, SWITCH = 622, CASE = 623, DEFAULT = 624, UNIFORM = 625, SHARED = 626, BUFFER = 627, FLAT = 628, SMOOTH = 629, LAYOUT = 630, DOUBLECONSTANT = 631, INT16CONSTANT = 632, UINT16CONSTANT = 633, FLOAT16CONSTANT = 634, INT32CONSTANT = 635, UINT32CONSTANT = 636, INT64CONSTANT = 637, UINT64CONSTANT = 638, SUBROUTINE = 639, DEMOTE = 640, PAYLOADNV = 641, PAYLOADINNV = 642, HITATTRNV = 643, CALLDATANV = 644, CALLDATAINNV = 645, PATCH = 646, SAMPLE = 647, NONUNIFORM = 648, COHERENT = 649, VOLATILE = 650, RESTRICT = 651, READONLY = 652, WRITEONLY = 653, DEVICECOHERENT = 654, QUEUEFAMILYCOHERENT = 655, WORKGROUPCOHERENT = 656, SUBGROUPCOHERENT = 657, NONPRIVATE = 658, NOPERSPECTIVE = 659, EXPLICITINTERPAMD = 660, PERVERTEXNV = 661, PERPRIMITIVENV = 662, PERVIEWNV = 663, PERTASKNV = 664, PRECISE = 665 }; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { #line 96 "MachineIndependent/glslang.y" /* yacc.c:1909 */ struct { glslang::TSourceLoc loc; union { glslang::TString *string; int i; unsigned int u; long long i64; unsigned long long u64; bool b; double d; }; glslang::TSymbol* symbol; } lex; struct { glslang::TSourceLoc loc; glslang::TOperator op; union { TIntermNode* intermNode; glslang::TIntermNodePair nodePair; glslang::TIntermTyped* intermTypedNode; glslang::TAttributes* attributes; }; union { glslang::TPublicType type; glslang::TFunction* function; glslang::TParameter param; glslang::TTypeLoc typeLine; glslang::TTypeList* typeList; glslang::TArraySizes* arraySizes; glslang::TIdentifierList* identifierList; }; glslang::TArraySizes* typeParameters; } interm; #line 501 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ }; 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 */ glslang-8.13.3559/glslang/MachineIndependent/intermOut.cpp000066400000000000000000002463101360464450000233530ustar00rootroot00000000000000// // Copyright (C) 2002-2005 3Dlabs Inc. Ltd. // Copyright (C) 2012-2016 LunarG, Inc. // Copyright (C) 2017 ARM Limited. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright 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 #include "localintermediate.h" #include "../Include/InfoSink.h" #ifdef _MSC_VER #include #else #include #endif #include namespace { 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 } 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 } } 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 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; 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 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 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 EOpReportIntersectionNV: out.debug << "reportIntersectionNV"; break; case EOpIgnoreIntersectionNV: out.debug << "ignoreIntersectionNV"; break; case EOpTerminateRayNV: out.debug << "terminateRayNV"; break; case EOpExecuteCallableNV: out.debug << "executeCallableNV"; break; case EOpWritePackedPrimitiveIndices4x8NV: out.debug << "writePackedPrimitiveIndices4x8NV"; 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; 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; 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 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"; 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 // not GLSLANG_WEBglslang-8.13.3559/glslang/MachineIndependent/iomapper.cpp000066400000000000000000001437761360464450000232150ustar00rootroot00000000000000// // 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. // #ifndef GLSLANG_WEB #include "../Include/Common.h" #include "../Include/InfoSink.h" #include "gl_types.h" #include "iomapper.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()) target = &uniformList; if (target) { TVarEntryInfo ent = {base->getId(), base, ! traverseAll}; ent.stage = intermediate.getStage(); TVarLiveMap::iterator at = target->find( ent.symbol->getName()); // 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->getName()] = ent; } } private: TVarLiveMap& inputList; TVarLiveMap& outputList; TVarLiveMap& uniformList; }; class TVarSetTraverser : public TLiveTraverser { public: TVarSetTraverser(const TIntermediate& i, const TVarLiveMap& inList, const TVarLiveMap& outList, const TVarLiveMap& uniformList) : TLiveTraverser(i, true, true, true, false) , inputList(inList) , outputList(outList) , uniformList(uniformList) { } virtual void visitSymbol(TIntermSymbol* base) { const TVarLiveMap* source; if (base->getQualifier().storage == EvqVaryingIn) source = &inputList; else if (base->getQualifier().storage == EvqVaryingOut) source = &outputList; else if (base->getQualifier().isUniformOrBuffer()) source = &uniformList; else return; TVarEntryInfo ent = { base->getId() }; TVarLiveMap::const_iterator at = source->find(base->getName()); 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&); }; struct TNotifyInOutAdaptor { EShLanguage stage; TIoMapResolver& resolver; inline TNotifyInOutAdaptor(EShLanguage s, TIoMapResolver& r) : stage(s) , resolver(r) { } inline void operator()(std::pair& entKey) { resolver.notifyInOut(stage, entKey.second); } private: TNotifyInOutAdaptor& operator=(TNotifyInOutAdaptor&); }; struct TResolverUniformAdaptor { TResolverUniformAdaptor(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.newLocation = -1; ent.newComponent = -1; ent.newBinding = -1; ent.newSet = -1; ent.newIndex = -1; const bool isValid = resolver.validateBinding(stage, ent); if (isValid) { resolver.resolveBinding(stage, ent); resolver.resolveSet(stage, ent); resolver.resolveUniformLocation(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.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; } } } 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; private: TResolverUniformAdaptor& operator=(TResolverUniformAdaptor&); }; 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.newLocation = -1; ent.newComponent = -1; ent.newBinding = -1; ent.newSet = -1; ent.newIndex = -1; const bool isValid = resolver.validateInOut(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&); }; // The class is used for reserving explicit uniform locations and ubo/ssbo/opaque bindings struct TSymbolValidater { TSymbolValidater(TIoMapResolver& r, TInfoSink& i, TVarLiveMap* in[EShLangCount], TVarLiveMap* out[EShLangCount], TVarLiveMap* uniform[EShLangCount], bool& hadError) : preStage(EShLangCount) , currentStage(EShLangCount) , nextStage(EShLangCount) , resolver(r) , infoSink(i) , hadError(hadError) { memcpy(inVarMaps, in, EShLangCount * (sizeof(TVarLiveMap*))); memcpy(outVarMaps, out, EShLangCount * (sizeof(TVarLiveMap*))); memcpy(uniformVarMap, uniform, EShLangCount * (sizeof(TVarLiveMap*))); } 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; type.appendMangledName(mangleName1); EShLanguage stage = ent1.stage; if (currentStage != stage) { preStage = currentStage; currentStage = stage; nextStage = EShLangCount; for (int i = currentStage + 1; i < EShLangCount; i++) { if (inVarMaps[i] != nullptr) nextStage = static_cast(i); } } if (base->getQualifier().storage == EvqVaryingIn) { // validate stage in; if (preStage == EShLangCount) return; if (outVarMaps[preStage] != nullptr) { auto ent2 = outVarMaps[preStage]->find(name); if (ent2 != outVarMaps[preStage]->end()) { 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().storage == EvqVaryingOut) { // validate stage out; if (nextStage == EShLangCount) return; if (outVarMaps[nextStage] != nullptr) { auto ent2 = inVarMaps[nextStage]->find(name); if (ent2 != inVarMaps[nextStage]->end()) { 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) { TString err = "Invalid Uniform variable type : " + entKey.first; infoSink.info.message(EPrefixInternalError, err.c_str()); hadError = true; } mangleName2.clear(); } } } } } TVarLiveMap *inVarMaps[EShLangCount], *outVarMaps[EShLangCount], *uniformVarMap[EShLangCount]; // Use for mark pre stage, to get more interface symbol information. EShLanguage preStage, currentStage, nextStage; // Use for mark current shader stage for resolver TIoMapResolver& resolver; TInfoSink& infoSink; bool& hadError; private: TSymbolValidater& operator=(TSymbolValidater&); }; 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&); }; TDefaultIoResolverBase::TDefaultIoResolverBase(const TIntermediate& intermediate) : intermediate(intermediate) , nextUniformLocation(intermediate.getUniformLocationBase()) , nextInputLocation(0) , nextOutputLocation(0) { memset(stageMask, false, sizeof(bool) * (EShLangCount + 1)); } int TDefaultIoResolverBase::getBaseBinding(TResourceType res, unsigned int set) const { return selectBaseBinding(intermediate.getShiftBinding(res), intermediate.getShiftBindingForSet(res, set)); } const std::vector& TDefaultIoResolverBase::getResourceSetBinding() const { return intermediate.getResourceSetBinding(); } bool TDefaultIoResolverBase::doAutoBindingMapping() const { return intermediate.getAutoMapBindings(); } bool TDefaultIoResolverBase::doAutoLocationMapping() const { return intermediate.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().size() == 1) { return ent.newSet = atoi(getResourceSetBinding()[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->getName().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.containsOpaque() && intermediate.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 = intermediate.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, or a built-in variable if (type.getQualifier().hasLocation() || type.isBuiltIn()) { 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->getName(); if (currentStage != stage) { preStage = currentStage; currentStage = stage; } // 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()) { return ent.newLocation = type.getQualifier().layoutLocation; } // no locations added if already present, or a built-in variable if (type.isBuiltIn()) { 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 declarated 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->getName(); // 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.containsOpaque() && intermediate.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 = intermediate.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 declarated in other stage. // // vs: uniform vec4 a; // fs: layout(..., location = 3,...) uniform vec4 a; hasLocation = true; location = iter->second; } if (! hasLocation) { // No explicit location declaraten 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 declarated 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->getName(); // On OpenGL arrays of opaque types take a seperate binding for each element int numBindings = intermediate.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 = resource; if (resource < EResCount) { if (type.getQualifier().hasBinding()) { ent.newBinding = reserveSlot(set, getBaseBinding(resource, set) + type.getQualifier().layoutBinding, numBindings); return ent.newBinding; } else if (ent.live && doAutoBindingMapping()) { // 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; if (! resourceSlotMap[resource].empty()) { TVarSlotMap::iterator iter = resourceSlotMap[resource].find(name); if (iter != resourceSlotMap[resource].end()) { hasBinding = true; ent.newBinding = iter->second; } } if (! hasBinding) { TVarSlotMap varSlotMap; // 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(resource, getBaseBinding(resource, set), numBindings); varSlotMap[name] = binding; resourceSlotMap[resource] = varSlotMap; 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->getName(); 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()); } } } 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()); } } } break; default: break; } } void TDefaultGlslIoResolver::reserverResourceSlot(TVarEntryInfo& ent, TInfoSink& infoSink) { const TType& type = ent.symbol->getType(); const TString& name = ent.symbol->getName(); int resource = getResourceType(type); if (type.getQualifier().hasBinding()) { TVarSlotMap& varSlotMap = resourceSlotMap[resource]; TVarSlotMap::iterator iter = varSlotMap.find(name); int binding = type.getQualifier().layoutBinding; if (iter == varSlotMap.end()) { // Reserve the slots for the ubo, ssbo and opaques who has explicit binding int numBindings = type.isSizedArray() ? type.getCumulativeArraySize() : 1; varSlotMap[name] = binding; reserveSlot(resource, 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()); } } } } //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 = intermediate.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(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(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(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(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; } resolver->addStage(stage); #else resolver = &defaultResolver; #endif 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.functions.empty()) { TIntermNode* function = iter_binding_live.functions.back(); iter_binding_live.functions.pop_back(); function->traverse(&iter_binding_live); } // sort entries by priority. see TVarEntryInfo::TOrderByPriority for info. std::for_each(inVarMap.begin(), inVarMap.end(), [&inVector](TVarLivePair p) { inVector.push_back(p); }); std::sort(inVector.begin(), inVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); }); std::for_each(outVarMap.begin(), outVarMap.end(), [&outVector](TVarLivePair p) { outVector.push_back(p); }); std::sort(outVector.begin(), outVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); }); std::for_each(uniformVarMap.begin(), uniformVarMap.end(), [&uniformVector](TVarLivePair p) { uniformVector.push_back(p); }); std::sort(uniformVector.begin(), uniformVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); }); bool hadError = false; TNotifyInOutAdaptor inOutNotify(stage, *resolver); TNotifyUniformAdaptor uniformNotify(stage, *resolver); TResolverUniformAdaptor uniformResolve(stage, *resolver, 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); std::for_each(inVector.begin(), inVector.end(), inOutResolve); std::for_each(inVector.begin(), inVector.end(), [&inVarMap](TVarLivePair p) { auto at = inVarMap.find(p.second.symbol->getName()); if (at != inVarMap.end()) at->second = p.second; }); std::for_each(outVector.begin(), outVector.end(), inOutResolve); std::for_each(outVector.begin(), outVector.end(), [&outVarMap](TVarLivePair p) { auto at = outVarMap.find(p.second.symbol->getName()); if (at != outVarMap.end()) 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->getName()); if (at != uniformVarMap.end()) 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(); // 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); if (resolver == nullptr) { resolver = &defaultResolver; } resolver->addStage(stage); 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.functions.empty()) { TIntermNode* function = iter_binding_live.functions.back(); iter_binding_live.functions.pop_back(); function->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, infoSink, hadError); TResolverInOutAdaptor inOutResolve(EShLangCount, *resolver, infoSink, hadError); TSymbolValidater symbolValidater(*resolver, infoSink, inVarMaps, outVarMaps, uniformVarMap, hadError); TVarLiveVector uniformVector; resolver->beginResolve(EShLangCount); for (int stage = EShLangVertex; stage < EShLangCount; stage++) { if (inVarMaps[stage] != nullptr) { inOutResolve.setStage(EShLanguage(stage)); std::for_each(inVarMaps[stage]->begin(), inVarMaps[stage]->end(), symbolValidater); std::for_each(inVarMaps[stage]->begin(), inVarMaps[stage]->end(), inOutResolve); std::for_each(outVarMaps[stage]->begin(), outVarMaps[stage]->end(), symbolValidater); std::for_each(outVarMaps[stage]->begin(), outVarMaps[stage]->end(), inOutResolve); } if (uniformVarMap[stage] != nullptr) { uniformResolve.setStage(EShLanguage(stage)); // sort entries by priority. see TVarEntryInfo::TOrderByPriority for info. std::for_each(uniformVarMap[stage]->begin(), uniformVarMap[stage]->end(), [&uniformVector](TVarLivePair p) { uniformVector.push_back(p); }); } } std::sort(uniformVector.begin(), uniformVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); }); std::for_each(uniformVector.begin(), uniformVector.end(), symbolValidater); std::for_each(uniformVector.begin(), uniformVector.end(), uniformResolve); std::sort(uniformVector.begin(), uniformVector.end(), [](const TVarLivePair& p1, const TVarLivePair& p2) -> bool { return TVarEntryInfo::TOrderByPriority()(p1.second, p2.second); }); resolver->endResolve(EShLangCount); 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 = uniformVarMap; std::for_each(uniformVector.begin(), uniformVector.end(), [pUniformVarMap, stage](TVarLivePair p) { auto at = pUniformVarMap[stage]->find(p.second.symbol->getName()); if (at != pUniformVarMap[stage]->end()) at->second = p.second; }); TVarSetTraverser iter_iomap(*intermediates[stage], *inVarMaps[stage], *outVarMaps[stage], *uniformVarMap[stage]); intermediates[stage]->getTreeRoot()->traverse(&iter_iomap); } } return !hadError; } else { return false; } } } // end namespace glslang #endif // GLSLANG_WEB glslang-8.13.3559/glslang/MachineIndependent/iomapper.h000066400000000000000000000300441360464450000226410ustar00rootroot00000000000000// // 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 GLSLANG_WEB #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 { int id; TIntermSymbol* symbol; bool live; int newBinding; int newSet; int newLocation; int newComponent; int newIndex; EShLanguage stage; 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; } }; }; // 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(TResourceType res, unsigned int set) const; const std::vector& getResourceSetBinding() 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) override { if (stage < EShLangCount) stageMask[stage] = true; } uint32_t computeTypeLocationSize(const TType& type, EShLanguage stage); TSlotSetMap slots; protected: TDefaultIoResolverBase(TDefaultIoResolverBase&); TDefaultIoResolverBase& operator=(TDefaultIoResolverBase&); const TIntermediate& intermediate; int nextUniformLocation; int nextInputLocation; int nextOutputLocation; bool stageMask[EShLangCount + 1]; // 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); } }; // Defaulf 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(std::pair& _Right) : pair(_Right.first, _Right.second) {} TVarLivePair& operator=(const TVarLivePair& _Right) { const_cast(first) = _Right.first; second = _Right.second; return (*this); } }; 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 OpenGL 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)); } 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; } } // 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; }; } // end namespace glslang #endif // _IOMAPPER_INCLUDED #endif // GLSLANG_WEB glslang-8.13.3559/glslang/MachineIndependent/limits.cpp000066400000000000000000000144211360464450000226620ustar00rootroot00000000000000// // 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(int 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); int 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, int 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 glslang-8.13.3559/glslang/MachineIndependent/linkValidate.cpp000066400000000000000000002152701360464450000237750ustar00rootroot00000000000000// // 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" namespace glslang { // // Link-time error emitter. // void TIntermediate::error(TInfoSink& infoSink, const char* message) { #ifndef GLSLANG_WEB infoSink.info.prefix(EPrefixError); infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n"; #endif ++numErrors; } // Link-time warning. void TIntermediate::warn(TInfoSink& infoSink, const char* message) { #ifndef GLSLANG_WEB infoSink.info.prefix(EPrefixWarning); 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) { #ifndef GLSLANG_WEB mergeCallGraphs(infoSink, unit); mergeModes(infoSink, unit); mergeTrees(infoSink, unit); #endif } 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()); } #ifndef GLSLANG_WEB #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); numErrors += unit.getNumErrors(); numPushConstants += unit.numPushConstants; 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 (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 (inputPrimitive != unit.inputPrimitive) error(infoSink, "Contradictory input layout primitives"); if (outputPrimitive == ElgNone) outputPrimitive = unit.outputPrimitive; else if (outputPrimitive != unit.outputPrimitive) error(infoSink, "Contradictory output layout primitives"); if (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 (!localSizeNotDefault[i] && unit.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(flattenUniformArrays); MERGE_TRUE(useUnknownFormat); MERGE_TRUE(hlslOffsets); MERGE_TRUE(useStorageBuffer); 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... numShaderRecordNVBlocks += unit.numShaderRecordNVBlocks; 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. TMap idMap; int maxId; seedIdMap(idMap, maxId); remapIds(idMap, maxId + 1, unit); mergeBodies(infoSink, globals, unitGlobals); mergeLinkerObjects(infoSink, linkerObjects, unitLinkerObjects); ioAccessed.insert(unit.ioAccessed.begin(), unit.ioAccessed.end()); } #endif // Traverser that seeds an ID map with all built-ins, and tracks the // maximum ID used. // (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(TMap& idMap) : idMap(idMap), maxId(0) { } // If it's a built in, add it to the map. // Track the max ID. virtual void visitSymbol(TIntermSymbol* symbol) { const TQualifier& qualifier = symbol->getType().getQualifier(); if (qualifier.builtIn != EbvNone) idMap[symbol->getName()] = symbol->getId(); maxId = std::max(maxId, symbol->getId()); } int getMaxId() const { return maxId; } protected: TBuiltInIdTraverser(TBuiltInIdTraverser&); TBuiltInIdTraverser& operator=(TBuiltInIdTraverser&); TMap& idMap; int maxId; }; // 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(TMap& idMap) : idMap(idMap) { } // 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) idMap[symbol->getName()] = symbol->getId(); } protected: TUserIdTraverser(TUserIdTraverser&); TUserIdTraverser& operator=(TUserIdTraverser&); TMap& idMap; // over biggest id }; // Initialize the the ID map with what we know of 'this' AST. void TIntermediate::seedIdMap(TMap& idMap, int& maxId) { // all built-ins everywhere need to align on IDs and contribute to the max ID TBuiltInIdTraverser builtInIdTraverser(idMap); treeRoot->traverse(&builtInIdTraverser); maxId = builtInIdTraverser.getMaxId(); // user variables in the linker object list need to align on ids TUserIdTraverser userIdTraverser(idMap); 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 TMap& idMap, int idShift) : idMap(idMap), 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) { auto it = idMap.find(symbol->getName()); if (it != idMap.end()) { symbol->changeId(it->second); remapped = true; } } if (!remapped) symbol->changeId(symbol->getId() + idShift); } protected: TRemapIdTraverser(TRemapIdTraverser&); TRemapIdTraverser& operator=(TRemapIdTraverser&); const TMap& idMap; int idShift; }; void TIntermediate::remapIds(const TMap& idMap, int idShift, TIntermediate& unit) { // Remap all IDs to either share or be unique, as dictated by the idMap and idShift. TRemapIdTraverser idTraverser(idMap, 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); } // // 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) { // 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); if (symbol->getName() == unitSymbol->getName()) { // 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; // Update implicit array sizes mergeImplicitArraySizes(symbol->getWritableType(), unitSymbol->getType()); // Check for consistent types/qualification/initializers etc. mergeErrorCheck(infoSink, *symbol, *unitSymbol, false); } } if (merge) linkerObjects.push_back(unitLinkerObjects[unitLinkObj]); } } // 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, bool crossStage) { #ifndef GLSLANG_WEB bool writeTypeComparison = false; // Types have to match if (symbol.getType() != unitSymbol.getType()) { // but, we make an exception if one is an implicit array and the other is sized if (! (symbol.getType().isArray() && unitSymbol.getType().isArray() && symbol.getType().sameElementType(unitSymbol.getType()) && (symbol.getType().isUnsizedArray() || unitSymbol.getType().isUnsizedArray()))) { error(infoSink, "Types must match:"); writeTypeComparison = true; } } // Qualifiers have to (almost) match // Storage... if (symbol.getQualifier().storage != unitSymbol.getQualifier().storage) { error(infoSink, "Storage qualifiers must match:"); writeTypeComparison = true; } // Precision... if (symbol.getQualifier().precision != unitSymbol.getQualifier().precision) { error(infoSink, "Precision qualifiers must match:"); writeTypeComparison = true; } // Invariance... if (! crossStage && symbol.getQualifier().invariant != unitSymbol.getQualifier().invariant) { error(infoSink, "Presence of invariant qualifier must match:"); writeTypeComparison = true; } // Precise... if (! crossStage && symbol.getQualifier().isNoContraction() != unitSymbol.getQualifier().isNoContraction()) { error(infoSink, "Presence of precise qualifier must match:"); writeTypeComparison = true; } // Auxiliary and interpolation... if (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:"); writeTypeComparison = true; } // Memory... if (symbol.getQualifier().coherent != unitSymbol.getQualifier().coherent || symbol.getQualifier().devicecoherent != unitSymbol.getQualifier().devicecoherent || symbol.getQualifier().queuefamilycoherent != unitSymbol.getQualifier().queuefamilycoherent || symbol.getQualifier().workgroupcoherent != unitSymbol.getQualifier().workgroupcoherent || symbol.getQualifier().subgroupcoherent != unitSymbol.getQualifier().subgroupcoherent || symbol.getQualifier().nonprivate != unitSymbol.getQualifier().nonprivate || symbol.getQualifier().volatil != unitSymbol.getQualifier().volatil || symbol.getQualifier().restrict != unitSymbol.getQualifier().restrict || symbol.getQualifier().readonly != unitSymbol.getQualifier().readonly || symbol.getQualifier().writeonly != unitSymbol.getQualifier().writeonly) { error(infoSink, "Memory qualifiers must match:"); writeTypeComparison = true; } // Layouts... // TODO: 4.4 enhanced layouts: Generalize to include offset/align: current spec // requires separate user-supplied offset from actual computed offset, but // current implementation only has one offset. if (symbol.getQualifier().layoutMatrix != unitSymbol.getQualifier().layoutMatrix || symbol.getQualifier().layoutPacking != unitSymbol.getQualifier().layoutPacking || symbol.getQualifier().layoutLocation != unitSymbol.getQualifier().layoutLocation || symbol.getQualifier().layoutComponent != unitSymbol.getQualifier().layoutComponent || symbol.getQualifier().layoutIndex != unitSymbol.getQualifier().layoutIndex || symbol.getQualifier().layoutBinding != unitSymbol.getQualifier().layoutBinding || (symbol.getQualifier().hasBinding() && (symbol.getQualifier().layoutOffset != unitSymbol.getQualifier().layoutOffset))) { error(infoSink, "Layout qualification must match:"); writeTypeComparison = true; } // Initializers have to match, if both are present, and if we don't already know the types don't match if (! writeTypeComparison) { if (! symbol.getConstArray().empty() && ! unitSymbol.getConstArray().empty()) { if (symbol.getConstArray() != unitSymbol.getConstArray()) { error(infoSink, "Initializers must match:"); infoSink.info << " " << symbol.getName() << "\n"; } } } if (writeTypeComparison) infoSink.info << " " << symbol.getName() << ": \"" << symbol.getType().getCompleteString() << "\" versus \"" << unitSymbol.getType().getCompleteString() << "\"\n"; #endif } // // 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: break; case EShLangRayGenNV: case EShLangIntersectNV: case EShLangAnyHitNV: case EShLangClosestHitNV: case EShLangMissNV: case EShLangCallableNV: if (numShaderRecordNVBlocks > 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"); 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, 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; 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 return -1; int size; 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. int collision = -1; // no collision #ifndef GLSLANG_WEB 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 } // 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.isArray()) { // TODO: perf: this can be flattened by using getCumulativeArraySize(), and a deref that discards all arrayness assert(type.isSizedArray()); 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; 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 size = stride * type.getOuterArraySize(); return alignment; } // rule 9 if (type.getBasicType() == EbtStruct) { 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; } } // end namespace glslang glslang-8.13.3559/glslang/MachineIndependent/localintermediate.h000066400000000000000000001167221360464450000245220ustar00rootroot00000000000000// // 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. // Using the form: // process arg0 arg1 arg2 ... // process arg0 arg1 arg2 ... // where everything is textual, and there can be zero or more arguments class TProcesses { public: TProcesses() {} ~TProcesses() {} void addProcess(const char* process) { processes.push_back(process); } void addProcess(const std::string& process) { processes.push_back(process); } void addArgument(int arg) { processes.back().append(" "); std::string argString = std::to_string(arg); processes.back().append(argString); } void addArgument(const char* arg) { processes.back().append(" "); processes.back().append(arg); } void addArgument(const std::string& arg) { processes.back().append(" "); processes.back().append(arg); } void addIfNonZero(const char* process, int value) { if (value != 0) { addProcess(process); addArgument(value); } } const std::vector& getProcesses() const { return processes; } private: std::vector processes; }; class TSymbolTable; class TSymbol; class TVariable; // // 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 }; // // 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), profile(p), version(v), treeRoot(0), numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false), invertY(false), useStorageBuffer(false), nanMinMaxClamp(false), depthReplacing(false) #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), 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), numShaderRecordNVBlocks(0), computeDerivativeMode(LayoutDerivativeNone), primitives(TQualifier::layoutNotSet), numTaskNVBlocks(0), autoMapBindings(false), autoMapLocations(false), flattenUniformArrays(false), useUnknownFormat(false), hlslOffsets(false), hlslIoMapping(false), useVariablePointers(false), textureSamplerTransformMode(EShTexSampTransKeep), needToLegalize(false), binaryDoubleOutput(false), usePhysicalStorageBuffer(false), 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) { version = v; } int getVersion() const { return version; } void setProfile(EProfile p) { profile = p; } EProfile getProfile() const { return profile; } void setSpv(const SpvVersion& s) { spvVersion = s; // client processes if (spvVersion.vulkan > 0) processes.addProcess("client vulkan100"); if (spvVersion.openGl > 0) processes.addProcess("client opengl100"); // target 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; 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; 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; } 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; } 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; } #ifdef ENABLE_HLSL void setSource(EShSource s) { source = s; } EShSource getSource() const { return source; } #else void setSource(EShSource s) { assert(s == EShSourceGlsl); } 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 addConversion(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, TSourceLoc); TIntermTyped* addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc); TIntermTyped* addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc); TIntermTyped* addUnaryMath(TOperator, TIntermTyped* child, TSourceLoc); TIntermTyped* addBuiltInFunctionCall(const TSourceLoc& line, TOperator, bool unary, TIntermNode*, const TType& returnType); bool canImplicitlyPromote(TBasicType from, TBasicType to, TOperator op = EOpNull) const; bool isIntegralPromotion(TBasicType from, TBasicType to) const; bool isFPPromotion(TBasicType from, TBasicType to) const; bool isIntegralConversion(TBasicType from, TBasicType to) const; bool isFPConversion(TBasicType from, TBasicType to) const; bool isFPIntegralConversion(TBasicType from, TBasicType to) const; TOperator mapTypeToConstructorOp(const TType&) const; TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right); TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&); TIntermAggregate* makeAggregate(TIntermNode* node); TIntermAggregate* makeAggregate(TIntermNode* node, const TSourceLoc&); TIntermAggregate* makeAggregate(const TSourceLoc&); TIntermTyped* setAggregateOperator(TIntermNode*, TOperator, const TType& type, TSourceLoc); bool areAllChildConst(TIntermAggregate* aggrNode); 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, TSourceLoc) const; TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc, const TType&) const; TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc) const; TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc, const TType&) const; // 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); // Linkage related void addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguage, TSymbolTable&); void addSymbolLinkageNode(TIntermAggregate*& linkage, const TSymbol&); void setUseStorageBuffer() { useStorageBuffer = true; processes.addProcess("use-storage-buffer"); } bool usingStorageBuffer() const { return useStorageBuffer; } 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 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]; } #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 addShaderRecordNVCount() { } 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 addShaderRecordNVCount() { ++numShaderRecordNVBlocks; } 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 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; } 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; } #endif // GLSLANG_WEB #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 void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee); void merge(TInfoSink&, TIntermediate&); void finalCheck(TInfoSink&, bool keepUncalled); 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 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&); 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(); } // Certain explicit conversions are allowed conditionally #ifdef GLSLANG_WEB bool getArithemeticInt8Enabled() const { return false; } bool getArithemeticInt16Enabled() const { return false; } bool getArithemeticFloat16Enabled() const { return false; } #else bool getArithemeticInt8Enabled() const { return extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_int8); } bool getArithemeticInt16Enabled() const { return extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types) || extensionRequested(E_GL_AMD_gpu_shader_int16) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_int16); } bool getArithemeticFloat16Enabled() const { return extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types) || extensionRequested(E_GL_AMD_gpu_shader_half_float) || extensionRequested(E_GL_EXT_shader_explicit_arithmetic_types_float16); } #endif protected: TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&); void error(TInfoSink& infoSink, const char*); void warn(TInfoSink& infoSink, const char*); void mergeCallGraphs(TInfoSink&, TIntermediate&); void mergeModes(TInfoSink&, TIntermediate&); void mergeTrees(TInfoSink&, TIntermediate&); void seedIdMap(TMap& idMap, int& maxId); void remapIds(const TMap& idMap, int idShift, TIntermediate&); void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals); void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects); void mergeImplicitArraySizes(TType&, const TType&); void mergeErrorCheck(TInfoSink&, const TIntermSymbol&, const TIntermSymbol&, bool crossStage); void checkCallGraphCycles(TInfoSink&); void checkCallGraphBodies(TInfoSink&, bool keepUncalled); void inOutLocationCheck(TInfoSink&); TIntermAggregate* findLinkerObjects() const; 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 getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const; // JohnK: I think this function should go away. // This data structure is just a log to pass on to back ends. // Versioning and extensions are handled in Version.cpp, with a rich // set of functions for querying stages, versions, extension enable/disabled, etc. #ifdef GLSLANG_WEB bool extensionRequested(const char *extension) const { return false; } #else bool extensionRequested(const char *extension) const {return requestedExtensions.find(extension) != requestedExtensions.end();} #endif 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; EProfile profile; // source profile int version; // source version SpvVersion spvVersion; TIntermNode* treeRoot; std::set requestedExtensions; // cumulation of all enabled or required extensions; not connected to what subset of the shader used them TBuiltInResource resources; int numEntryPoints; int numErrors; int numPushConstants; bool recursive; bool invertY; bool useStorageBuffer; 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]; #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; 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 numShaderRecordNVBlocks; ComputeDerivativeMode computeDerivativeMode; int primitives; int numTaskNVBlocks; // 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 usePhysicalStorageBuffer; std::unordered_map uniformLocationOverrides; int uniformLocationBase; #endif 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 // 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_ glslang-8.13.3559/glslang/MachineIndependent/parseConst.cpp000066400000000000000000000157471360464450000235160ustar00rootroot00000000000000// // 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 int count = 0; const int startIndex = index; int nodeComps = node->getType().computeNumComponents(); for (int i = startIndex; i < endIndex; i++) { if (i >= instanceSize) return; if (i == startIndex || (i - startIndex) % (matrixRows + 1) == 0 ) leftUnionArray[i] = rightUnionArray[count]; else leftUnionArray[i].setDConst(0.0); index++; if (nodeComps > 1) 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 glslang-8.13.3559/glslang/MachineIndependent/parseVersions.h000066400000000000000000000314241360464450000236730ustar00rootroot00000000000000// // 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) : #ifndef GLSLANG_WEB 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 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 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) 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 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); #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 set to 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_ glslang-8.13.3559/glslang/MachineIndependent/pch.cpp000066400000000000000000000031231360464450000221300ustar00rootroot00000000000000// // 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 "pch.h" glslang-8.13.3559/glslang/MachineIndependent/pch.h000066400000000000000000000035501360464450000216010ustar00rootroot00000000000000#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 */ glslang-8.13.3559/glslang/MachineIndependent/preprocessor/000077500000000000000000000000001360464450000234015ustar00rootroot00000000000000glslang-8.13.3559/glslang/MachineIndependent/preprocessor/Pp.cpp000077500000000000000000001400611360464450000244710ustar00rootroot00000000000000// // 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 = 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 = scanToken(ppToken); // handle -style #include if (token == '<') { startWithLocalSearch = false; token = scanHeaderName(ppToken, '>'); } // otherwise ppToken already has the header name and it was "header-name" style if (token != PpAtomConstString) { parseContext.ppError(directiveLoc, "must be followed by a header name", "#include", ""); return token; } // Make a copy of the name because it will be overwritten by the next token scan. const std::string filename = ppToken->name; // See if the directive was well formed token = scanToken(ppToken); if (token != '\n') { if (token == EndOfInput) parseContext.ppError(ppToken->loc, "expected newline after header name:", "#include", "%s", filename.c_str()); else parseContext.ppError(ppToken->loc, "extra content after header name:", "#include", "%s", filename.c_str()); return token; } // Process well-formed directive // Find the inclusion, first look in "Local" ("") paths, if requested, // otherwise, only search the "System" (<>) paths. TShader::Includer::IncludeResult* res = nullptr; if (startWithLocalSearch) res = includer.includeLocal(filename.c_str(), currentSourceFile.c_str(), includeStack.size() + 1); if (res == nullptr || res->headerName.empty()) { includer.releaseInclude(res); res = includer.includeSystem(filename.c_str(), currentSourceFile.c_str(), includeStack.size() + 1); } // Process the results if (res != nullptr && !res->headerName.empty()) { if (res->headerData != nullptr && res->headerLength > 0) { // path for processing one or more tokens from an included header, hand off 'res' const bool forNextLine = parseContext.lineDirectiveShouldSetNextLine(); std::ostringstream prologue; std::ostringstream epilogue; prologue << "#line " << forNextLine << " " << "\"" << res->headerName << "\"\n"; epilogue << (res->headerData[res->headerLength - 1] == '\n'? "" : "\n") << "#line " << directiveLoc.line + forNextLine << " " << directiveLoc.getStringNameOrNum() << "\n"; pushInput(new TokenizableIncludeFile(directiveLoc, prologue.str(), res, epilogue.str(), this)); 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; token = eval(token, MIN_PRECEDENCE, false, lineRes, lineErr, ppToken); 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) { int token = scanToken(ppToken); std::string message; TSourceLoc loc = ppToken->loc; while (token != '\n' && token != EndOfInput) { if (token == PpAtomConstInt16 || token == PpAtomConstUint16 || token == PpAtomConstInt || token == PpAtomConstUint || 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: 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(); 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 glslang-8.13.3559/glslang/MachineIndependent/preprocessor/PpAtom.cpp000066400000000000000000000150201360464450000253030ustar00rootroot00000000000000// // 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 glslang-8.13.3559/glslang/MachineIndependent/preprocessor/PpContext.cpp000077500000000000000000000120541360464450000260360ustar00rootroot00000000000000// // 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) { 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 glslang-8.13.3559/glslang/MachineIndependent/preprocessor/PpContext.h000066400000000000000000000626641360464450000255140ustar00rootroot00000000000000// // 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) { return space == right.space && ival == right.ival && dval == right.dval && i64val == right.i64val && strncmp(name, right.name, MaxTokenLength) == 0; } bool operator!=(const TPpToken& right) { return ! operator==(right); } TSourceLoc loc; // 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; }; } // end namespace glslang #endif // PPCONTEXT_H glslang-8.13.3559/glslang/MachineIndependent/preprocessor/PpScanner.cpp000077500000000000000000001370601360464450000260100ustar00rootroot00000000000000// // 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 '"': // TODO: If this gets enhanced to handle escape sequences, or // anything that is different than what #include needs, then // #include needs to use scanHeaderName() for this. ch = getch(); while (ch != '"' && ch != '\n' && ch != EndOfInput) { if (len < MaxTokenLength) { ppToken->name[len] = (char)ch; len++; ch = getch(); } else break; }; ppToken->name[len] = '\0'; if (ch != '"') { ungetch(); pp->parseContext.ppError(ppToken->loc, "End of line in string", "string", ""); } return PpAtomConstString; case ':': ch = getch(); if (ch == ':') return PpAtomColonColon; ungetch(); return ':'; } ch = getch(); } } // // The main functional entry point into the preprocessor, which will // scan the source strings to figure out and return the next processing token. // // Return the token, or EndOfInput when no more tokens. // int TPpContext::tokenize(TPpToken& ppToken) { for(;;) { int token = scanToken(&ppToken); // Handle token-pasting logic token = tokenPaste(token, ppToken); if (token == EndOfInput) { missingEndifCheck(); return EndOfInput; } if (token == '#') { if (previous_token == '\n') { token = readCPPline(&ppToken); if (token == EndOfInput) { missingEndifCheck(); return EndOfInput; } continue; } else { parseContext.ppError(ppToken.loc, "preprocessor directive cannot be preceded by another token", "#", ""); return EndOfInput; } } previous_token = token; if (token == '\n') continue; // expand macros if (token == PpAtomIdentifier) { 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: if (ifdepth == 0 && parseContext.intermediate.getSource() != EShSourceHlsl) { // HLSL allows string literals. parseContext.ppError(ppToken.loc, "string literals not supported", "\"\"", ""); continue; } break; case '\'': parseContext.ppError(ppToken.loc, "character literals not supported", "\'", ""); continue; default: 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 glslang-8.13.3559/glslang/MachineIndependent/preprocessor/PpTokens.cpp000077500000000000000000000166241360464450000256640ustar00rootroot00000000000000// // 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 glslang-8.13.3559/glslang/MachineIndependent/preprocessor/PpTokens.h000066400000000000000000000132371360464450000253230ustar00rootroot00000000000000// // 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 */ glslang-8.13.3559/glslang/MachineIndependent/propagateNoContraction.cpp000066400000000000000000001175601360464450000260540ustar00rootroot00000000000000// // 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_WEBglslang-8.13.3559/glslang/MachineIndependent/propagateNoContraction.h000066400000000000000000000045611360464450000255150ustar00rootroot00000000000000// // 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); }; glslang-8.13.3559/glslang/MachineIndependent/reflection.cpp000066400000000000000000001463051360464450000235220ustar00rootroot00000000000000// // 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 GLSLANG_WEB #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 TLiveTraverser { public: TReflectionTraverser(const TIntermediate& i, TReflection& r) : TLiveTraverser(i), reflection(r) { } 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); // Use a degenerate (empty) set of dereferences to immediately put as at the end of // the dereference change expected by blowUpActiveAggregate. TList derefs; blowUpActiveAggregate(base.getType(), base.getName(), derefs, derefs.end(), -1, -1, 0, 0, base.getQualifier().storage, true); } } 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 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 (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, 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 (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; 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()); 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); if (topLevelArrayStride == 0) topLevelArrayStride = stride; int arrayIterateSize = std::max(terminalType->getOuterArraySize(), 1); // for top-level arrays in blocks, only expand [0] to avoid explosion of items if (strictArraySuffix && blockParent) arrayIterateSize = 1; for (int i = 0; i < arrayIterateSize; ++i) { TString newBaseName = name; 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, 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); } blowUpActiveAggregate(derefType, newBaseName, derefs, derefs.end(), offset, blockIndex, 0, 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().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; if (base->getType().isArray()) { TType derefType(base->getType(), 0); assert(! anonymous); for (int e = 0; e < base->getType().getCumulativeArraySize(); ++e) blockIndex = addBlockName(blockName + "[" + String(e) + "]", derefType, intermediate.getBlockSize(base->getType())); baseName.append(TString("[0]")); } else 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; // because we don't have any derefs, the first thing blowUpActiveAggregate will do is iterate over each // member in the struct definition. This will lose any information about whether the parent was a buffer // block. So if we're using strict array rules which don't expand the first child of a buffer block we // instead iterate over the children here. const bool strictArraySuffix = (reflection.options & EShReflectionStrictArraySuffix); bool blockParent = (base->getType().getBasicType() == EbtBlock && base->getQualifier().storage == EvqBuffer); if (strictArraySuffix && blockParent) { TType structDerefType(base->getType(), 0); const TType &structType = base->getType().isArray() ? structDerefType : base->getType(); const TTypeList& typeList = *structType.getStruct(); TVector memberOffsets; memberOffsets.resize(typeList.size()); getOffsets(structType, memberOffsets); for (int i = 0; i < (int)typeList.size(); ++i) { TType derefType(structType, i); TString name = baseName; if (name.size() > 0) name.append("."); name.append(typeList[i].type->getFieldName()); // 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()) { name.append("[0]"); blowUpActiveAggregate(TType(derefType, 0), name, derefs, derefs.end(), memberOffsets[i], blockIndex, 0, getArrayStride(structType, derefType), base->getQualifier().storage, false); } else { blowUpActiveAggregate(derefType, name, derefs, derefs.end(), memberOffsets[i], blockIndex, 0, 0, base->getQualifier().storage, false); } } } else { // 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, 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, 0, base->getQualifier().storage, true); } int addBlockName(const TString& name, const TType& type, int size) { TReflection::TMapIndexToReflection& blocks = reflection.GetBlockMapForStorage(type.getQualifier().storage); int blockIndex; 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, -1)); blocks.back().numMembers = countAggregateMembers(type); EShLanguageMask& stages = blocks.back().stages; stages = static_cast(stages | 1 << intermediate.getStage()); } else { blockIndex = it->second; 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_ARB + offset; case EbtUint64: return GL_UNSIGNED_INT64_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; } TReflection& reflection; std::set processedDerefs; 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) 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; } #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); // put the entry point on the list of functions to process it.pushFunction(intermediate.getEntryPointMangledName().c_str()); // process all the functions while (! it.functions.empty()) { TIntermNode* function = it.functions.back(); it.functions.pop_back(); function->traverse(&it); } 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: %d\n", axis[dim], getLocalSize(dim)); printf("\n"); } // printf("Live names\n"); // for (TNameToIndex::const_iterator it = nameToIndex.begin(); it != nameToIndex.end(); ++it) // printf("%s: %d\n", it->first.c_str(), it->second); // printf("\n"); } } // end namespace glslang #endif // GLSLANG_WEB glslang-8.13.3559/glslang/MachineIndependent/reflection.h000066400000000000000000000200261360464450000231560ustar00rootroot00000000000000// // 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 GLSLANG_WEB #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_WEBglslang-8.13.3559/glslang/OSDependent/000077500000000000000000000000001360464450000173015ustar00rootroot00000000000000glslang-8.13.3559/glslang/OSDependent/Unix/000077500000000000000000000000001360464450000202245ustar00rootroot00000000000000glslang-8.13.3559/glslang/OSDependent/Unix/CMakeLists.txt000066400000000000000000000022111360464450000227600ustar00rootroot00000000000000add_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(ENABLE_GLSLANG_INSTALL) glslang-8.13.3559/glslang/OSDependent/Unix/ossource.cpp000066400000000000000000000125531360464450000226000ustar00rootroot00000000000000// // 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; } void InitGlobalLock() { pthread_mutexattr_t mutexattr; pthread_mutexattr_init(&mutexattr); pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init(&gMutex, &mutexattr); } void GetGlobalLock() { pthread_mutex_lock(&gMutex); } void ReleaseGlobalLock() { pthread_mutex_unlock(&gMutex); } // #define DUMP_COUNTERS void OS_DumpMemoryCounters() { #ifdef DUMP_COUNTERS struct rusage usage; if (getrusage(RUSAGE_SELF, &usage) == 0) printf("Working set size: %ld\n", usage.ru_maxrss * 1024); #else printf("Recompile with DUMP_COUNTERS defined to see counters.\n"); #endif } } // end namespace glslang glslang-8.13.3559/glslang/OSDependent/Web/000077500000000000000000000000001360464450000200165ustar00rootroot00000000000000glslang-8.13.3559/glslang/OSDependent/Web/CMakeLists.txt000066400000000000000000000016371360464450000225650ustar00rootroot00000000000000add_executable(glslang.js "glslang.js.cpp") glslang_set_link_args(glslang.js) target_link_libraries(glslang.js glslang SPIRV) 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_options(glslang.js PRIVATE "SHELL:--bind -s MODULARIZE=1") if(ENABLE_EMSCRIPTEN_ENVIRONMENT_NODE) target_link_options(glslang.js PRIVATE "SHELL:-s ENVIRONMENT=node -s BINARYEN_ASYNC_COMPILATION=0") else() target_link_options(glslang.js PRIVATE "SHELL:-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(EMSCRIPTEN) glslang-8.13.3559/glslang/OSDependent/Web/glslang.after.js000066400000000000000000000013321360464450000231020ustar00rootroot00000000000000export 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; }; })(); glslang-8.13.3559/glslang/OSDependent/Web/glslang.js.cpp000066400000000000000000000233301360464450000225650ustar00rootroot00000000000000// // 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, /* .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, 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); 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_1); shader.setEnvTarget(glslang::EShTargetSpv, glslang::EShTargetSpv_1_3); 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, &output, &output_len); assert(output != nullptr); assert(output_len != 0); destroy_output_buffer(id); return 0; } #endif // ifndef __EMSCRIPTEN__ glslang-8.13.3559/glslang/OSDependent/Web/glslang.pre.js000066400000000000000000000026551360464450000226000ustar00rootroot00000000000000Module['compileGLSLZeroCopy'] = function(glsl, shader_stage, gen_debug) { gen_debug = !!gen_debug; var shader_stage_int; if (shader_stage === 'vertex') { shader_stage_int = 0; } else if (shader_stage === 'fragment') { shader_stage_int = 4; } else if (shader_stage === 'compute') { shader_stage_int = 5; } else { throw new Error("shader_stage must be 'vertex', 'fragment', or 'compute'"); } 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'], [glsl, shader_stage_int, gen_debug, 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) { var compiled = Module['compileGLSLZeroCopy'](glsl, shader_stage, gen_debug); var ret = compiled['data'].slice() compiled['free'](); return ret; }; glslang-8.13.3559/glslang/OSDependent/Windows/000077500000000000000000000000001360464450000207335ustar00rootroot00000000000000glslang-8.13.3559/glslang/OSDependent/Windows/CMakeLists.txt000066400000000000000000000013451360464450000234760ustar00rootroot00000000000000set(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(WIN32) if(ENABLE_GLSLANG_INSTALL) install(TARGETS OSDependent EXPORT OSDependentTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(EXPORT OSDependentTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) glslang-8.13.3559/glslang/OSDependent/Windows/main.cpp000066400000000000000000000044241360464450000223670ustar00rootroot00000000000000// // 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; } glslang-8.13.3559/glslang/OSDependent/Windows/ossource.cpp000066400000000000000000000075121360464450000233060ustar00rootroot00000000000000// // 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 glslang-8.13.3559/glslang/OSDependent/osinclude.h000066400000000000000000000042431360464450000214420ustar00rootroot00000000000000// // 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 glslang-8.13.3559/glslang/Public/000077500000000000000000000000001360464450000163475ustar00rootroot00000000000000glslang-8.13.3559/glslang/Public/ShaderLang.h000077500000000000000000001131011360464450000205300ustar00rootroot00000000000000// // 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 //#ifdef SH_EXPORTING // #define SH_IMPORT_EXPORT __declspec(dllexport) //#else // #define SH_IMPORT_EXPORT __declspec(dllimport) //#endif #define SH_IMPORT_EXPORT #else #define SH_IMPORT_EXPORT #define C_DECL #endif // // This is the platform independent interface between an OGL driver // and the shading language compiler/linker. // #ifdef __cplusplus extern "C" { #endif // This should always increase, as some paths to do not consume // a more major number. // It should increment by one when new functionality is added. #define GLSLANG_MINOR_VERSION 13 // // Call before doing any other compiler/linker operations. // // (Call once per process, not once per thread.) // SH_IMPORT_EXPORT int ShInitialize(); // // Call this at process shutdown to clean up memory. // SH_IMPORT_EXPORT int ShFinalize(); // // Types of languages the compiler can consume. // typedef enum { EShLangVertex, EShLangTessControl, EShLangTessEvaluation, EShLangGeometry, EShLangFragment, EShLangCompute, EShLangRayGenNV, EShLangIntersectNV, EShLangAnyHitNV, EShLangClosestHitNV, EShLangMissNV, EShLangCallableNV, EShLangTaskNV, EShLangMeshNV, EShLangCount, } EShLanguage; // would be better as stage, but this is ancient now typedef enum { EShLangVertexMask = (1 << EShLangVertex), EShLangTessControlMask = (1 << EShLangTessControl), EShLangTessEvaluationMask = (1 << EShLangTessEvaluation), EShLangGeometryMask = (1 << EShLangGeometry), EShLangFragmentMask = (1 << EShLangFragment), EShLangComputeMask = (1 << EShLangCompute), EShLangRayGenNVMask = (1 << EShLangRayGenNV), EShLangIntersectNVMask = (1 << EShLangIntersectNV), EShLangAnyHitNVMask = (1 << EShLangAnyHitNV), EShLangClosestHitNVMask = (1 << EShLangClosestHitNV), EShLangMissNVMask = (1 << EShLangMissNV), EShLangCallableNVMask = (1 << EShLangCallableNV), EShLangTaskNVMask = (1 << EShLangTaskNV), EShLangMeshNVMask = (1 << EShLangMeshNV), } EShLanguageMask; namespace glslang { class TType; typedef enum { EShSourceNone, EShSourceGlsl, // GLSL, includes ESSL (OpenGL ES GLSL) EShSourceHlsl, // HLSL } EShSource; // if EShLanguage were EShStage, this could be EShLanguage instead typedef enum { EShClientNone, // use when there is no client, e.g. for validation EShClientVulkan, EShClientOpenGL, } EShClient; typedef enum { EShTargetNone, EShTargetSpv, // SPIR-V (preferred spelling) EshTargetSpv = EShTargetSpv, // legacy spelling } EShTargetLanguage; typedef enum { EShTargetVulkan_1_0 = (1 << 22), // Vulkan 1.0 EShTargetVulkan_1_1 = (1 << 22) | (1 << 12), // Vulkan 1.1 EShTargetOpenGL_450 = 450, // OpenGL } 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 } EShTargetLanguageVersion; struct TInputLanguage { EShSource languageFamily; // redundant information with other input, this one overrides when not EShSourceNone EShLanguage stage; // redundant information with other input, this one overrides when not EShSourceNone EShClient dialect; int dialectVersion; // version of client's language definition, not the client (when not EShClientNone) }; struct TClient { EShClient client; EShTargetClientVersion version; // version of client itself (not the client's input dialect) }; struct TTarget { EShTargetLanguage language; EShTargetLanguageVersion version; // version to target, if SPIR-V, defined by "word 1" of the SPIR-V header bool hlslFunctionality1; // can target hlsl_functionality1 extension(s) }; // All source/client/target versions and settings. // Can override previous methods of setting, when items are set here. // Expected to grow, as more are added, rather than growing parameter lists. struct TEnvironment { TInputLanguage input; // definition of the input language TClient client; // what client is the overall compilation being done for? TTarget target; // what to generate }; const char* StageName(EShLanguage); } // 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 } EShOptimizationLevel; // // Texture and Sampler transformation mode. // typedef enum { EShTexSampTransKeep, // keep textures and samplers as is (default) EShTexSampTransUpgradeTextureRemoveSampler, // change texture w/o embeded sampler into sampled texture and throw away all samplers } EShTextureSamplerTransformMode; // // Message choices for what errors and warnings are given. // enum EShMessages { 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 (right now only for samplers) EShMsgBuiltinSymbolTable = (1 << 14), // print the builtin symbol table }; // // 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 } 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. // SH_IMPORT_EXPORT ShHandle ShConstructCompiler(const EShLanguage, int debugOptions); // one per shader SH_IMPORT_EXPORT ShHandle ShConstructLinker(const EShExecutable, int debugOptions); // one per shader pair SH_IMPORT_EXPORT ShHandle ShConstructUniformMap(); // one per uniform namespace (currently entire program object) SH_IMPORT_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. // SH_IMPORT_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 ); SH_IMPORT_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. // SH_IMPORT_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. // SH_IMPORT_EXPORT const char* ShGetInfoLog(const ShHandle); SH_IMPORT_EXPORT const void* ShGetExecutable(const ShHandle); SH_IMPORT_EXPORT int ShSetVirtualAttributeBindings(const ShHandle, const ShBindingTable*); // to detect user aliasing SH_IMPORT_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 // SH_IMPORT_EXPORT int ShExcludeAttributes(const ShHandle, int *attributes, int count); // // Returns the location ID of the named uniform. // Returns -1 if error. // SH_IMPORT_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 { const char* GetEsslVersionString(); const char* GetGlslVersionString(); int GetKhronosToolId(); class TIntermediate; class TProgram; class TPoolAllocator; // Call this exactly once per process before using anything else bool InitializeProcess(); // Call once per process to tear down everything void FinalizeProcess(); // Resource type for IO resolver enum TResourceType { EResSampler, EResTexture, EResImage, EResUbo, EResSsbo, EResUav, EResCount }; // Make one TShader per shader that you will link into a program. Then // - provide the shader through setStrings() or setStringsWithLengths() // - optionally call setEnv*(), see below for more detail // - optionally use setPreamble() to set a special shader string that will be // processed before all others but won't affect the validity of #version // - call parse(): source language and target environment must be selected // either by correct setting of EShMessages sent to parse(), or by // explicitly calling setEnv*() // - query the info logs // // 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: explicit TShader(EShLanguage); virtual ~TShader(); void setStrings(const char* const* s, int n); void setStringsWithLengths(const char* const* s, const int* l, int n); void setStringsWithLengthsAndNames( const char* const* s, const int* l, const char* const* names, int n); void setPreamble(const char* s) { preamble = s; } void setEntryPoint(const char* entryPoint); void setSourceEntryPoint(const char* sourceEntryPointName); void addProcesses(const std::vector&); // IO resolver binding data: see comments in ShaderLang.cpp void setShiftBinding(TResourceType res, unsigned int base); void setShiftSamplerBinding(unsigned int base); // DEPRECATED: use setShiftBinding void setShiftTextureBinding(unsigned int base); // DEPRECATED: use setShiftBinding void setShiftImageBinding(unsigned int base); // DEPRECATED: use setShiftBinding void setShiftUboBinding(unsigned int base); // DEPRECATED: use setShiftBinding void setShiftUavBinding(unsigned int base); // DEPRECATED: use setShiftBinding void setShiftCbufferBinding(unsigned int base); // synonym for setShiftUboBinding void setShiftSsboBinding(unsigned int base); // DEPRECATED: use setShiftBinding void setShiftBindingForSet(TResourceType res, unsigned int base, unsigned int set); void setResourceSetBinding(const std::vector& base); void setAutoMapBindings(bool map); void setAutoMapLocations(bool map); void addUniformLocationOverride(const char* name, int loc); void setUniformLocationBase(int base); void setInvertY(bool invert); #ifdef ENABLE_HLSL void setHlslIoMapping(bool hlslIoMap); void setFlattenUniformArrays(bool flatten); #endif void setNoStorageFormat(bool useUnknownFormat); void setNanMinMaxClamp(bool nanMinMaxClamp); void setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode); // For setting up the environment (cleared to nothingness in the constructor). // These must be called so that parsing is done for the right source language and // target environment, either indirectly through TranslateEnvironment() based on // EShMessages et. al., or directly by the user. // // setEnvInput: The input source language and stage. If generating code for a // specific client, the input client semantics to use and the // version of the 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. // // 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 // 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 { } }; 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. bool preprocess(const TBuiltInResource* builtInResources, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile, bool forwardCompatible, EShMessages message, std::string* outputString, Includer& includer); const char* getInfoLog(); 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; const int* lengths; const char* const* stringNames; const char* preamble; int numStrings; // a function in the source string can be renamed FROM this TO the name given in setEntryPoint. std::string sourceEntryPointName; TEnvironment environment; friend class TProgram; private: TShader& operator=(TShader&); }; #ifndef GLSLANG_WEB // // 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: TObjectReflection(const std::string& pName, const TType& pType, int pOffset, int pGLDefineType, int pSize, int pIndex); const TType* getType() const { return type; } int getBinding() const; 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 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) = 0; }; #endif // GLSLANG_WEB // 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: TProgram(); virtual ~TProgram(); void addShader(TShader* shader) { stages[shader->stage].push_back(shader); } std::list& getShaders(EShLanguage stage) { return stages[stage]; } // Link Validation interface bool link(EShMessages); const char* getInfoLog(); const char* getInfoDebugLog(); TIntermediate* getIntermediate(EShLanguage stage) const { return intermediate[stage]; } #ifndef GLSLANG_WEB // Reflection Interface // call first, to do liveness analysis, index mapping, etc.; returns false on failure bool buildReflection(int opts = EShReflectionDefault); unsigned getLocalSize(int dim) const; // return dim'th local size int getReflectionIndex(const char *name) const; int getReflectionPipeIOIndex(const char* name, const bool inOrOut) const; int getNumUniformVariables() const; const TObjectReflection& getUniform(int index) const; int getNumUniformBlocks() const; const TObjectReflection& getUniformBlock(int index) const; int getNumPipeInputs() const; const TObjectReflection& getPipeInput(int index) const; int getNumPipeOutputs() const; const TObjectReflection& getPipeOutput(int index) const; int getNumBufferVariables() const; const TObjectReflection& getBufferVariable(int index) const; int getNumBufferBlocks() const; const TObjectReflection& getBufferBlock(int index) const; int getNumAtomicCounters() const; 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(); } void dumpReflection(); // I/O mapping: apply base offsets and map live unbound variables // If resolver is not provided it uses the previous approach // and respects auto assignment and offsets. bool mapIO(TIoMapResolver* pResolver = nullptr, TIoMapper* pIoMapper = nullptr); #endif protected: bool linkStage(EShLanguage, 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; #ifndef GLSLANG_WEB TReflection* reflection; #endif bool linked; private: TProgram(TProgram&); TProgram& operator=(TProgram&); }; } // end namespace glslang #endif // _COMPILER_INTERFACE_INCLUDED_ glslang-8.13.3559/glslang/updateGrammar000077500000000000000000000006241360464450000176520ustar00rootroot00000000000000#!/bin/bash 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 glslang-8.13.3559/gtests/000077500000000000000000000000001360464450000150135ustar00rootroot00000000000000glslang-8.13.3559/gtests/AST.FromFile.cpp000066400000000000000000000213121360464450000176470ustar00rootroot00000000000000// // 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_CASE_P( Glsl, CompileToAstTest, ::testing::ValuesIn(std::vector({ "sample.frag", "sample.vert", "decls.frag", "specExamples.frag", "specExamples.vert", "versionsClean.frag", "versionsClean.vert", "versionsErrors.frag", "versionsErrors.vert", "100.frag", "100samplerExternal.frag", "120.vert", "120.frag", "130.vert", "130.frag", "140.vert", "140.frag", "150.vert", "150.geom", "150.frag", "precision.frag", "precision.vert", "nonSquare.vert", "matrixError.vert", "cppSimple.vert", "cppIndent.vert", "cppIntMinOverNegativeOne.frag", "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", "constantUnaryConversion.comp", "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.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", })), FileNameAsCustomTestSuffix ); INSTANTIATE_TEST_CASE_P( Glsl, CompileToAstTestNV, ::testing::ValuesIn(std::vector({ "nvShaderNoperspectiveInterpolation.frag", })), FileNameAsCustomTestSuffix ); // clang-format on } // anonymous namespace } // namespace glslangtest glslang-8.13.3559/gtests/BuiltInResource.FromFile.cpp000066400000000000000000000042301360464450000222760ustar00rootroot00000000000000// // 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 glslang-8.13.3559/gtests/CMakeLists.txt000066400000000000000000000056731360464450000175660ustar00rootroot00000000000000if(BUILD_TESTING) if(TARGET gmock) message(STATUS "Google Mock found - building tests") set(TEST_SOURCES # Framework related source files ${CMAKE_CURRENT_SOURCE_DIR}/Initializer.h ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Settings.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Settings.h ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TestFixture.h # Test related source files ${CMAKE_CURRENT_SOURCE_DIR}/AST.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/BuiltInResource.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Config.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/HexFloat.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Hlsl.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.Vk.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Spv.FromFile.cpp) if(ENABLE_SPVREMAPPER) set(TEST_SOURCES ${TEST_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp) endif() glslang_pch(TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/pch.cpp) add_executable(glslangtests ${TEST_SOURCES}) set_property(TARGET glslangtests PROPERTY FOLDER tests) glslang_set_link_args(glslangtests) if(ENABLE_GLSLANG_INSTALL) install(TARGETS glslangtests EXPORT glslangtestsTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) install(EXPORT glslangtestsTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test") # Supply a default test root directory, so that manual testing # doesn't have to specify the --test-root option in the normal # case that you want to use the tests from the same source tree. target_compile_definitions(glslangtests PRIVATE GLSLANG_TEST_DIRECTORY="${GLSLANG_TEST_DIRECTORY}") target_include_directories(glslangtests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR} ${gmock_SOURCE_DIR}/include ${gtest_SOURCE_DIR}/include) set(LIBRARIES 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(ENABLE_HLSL) target_link_libraries(glslangtests PRIVATE ${LIBRARIES} gmock) add_test(NAME glslang-gtests COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}") endif() endif() glslang-8.13.3559/gtests/Config.FromFile.cpp000066400000000000000000000077551360464450000204440ustar00rootroot00000000000000// // 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_CASE_P( Glsl, ConfigTest, ::testing::ValuesIn(std::vector({ {"specExamples.vert", "baseResults/test.conf", "specExamplesConf.vert.out", (EShMessages)(EShMsgAST | EShMsgCascadingErrors)}, {"100Limits.vert", "100.conf", "100LimitsConf.vert.out", EShMsgCascadingErrors}, })) ); // clang-format on } // anonymous namespace } // namespace glslangtest glslang-8.13.3559/gtests/HexFloat.cpp000066400000000000000000001460611360464450000172410ustar00rootroot00000000000000// Copyright (c) 2015-2016 The Khronos Group Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #include #include #include #include #include #include #include #include "SPIRV/hex_float.h" namespace { using ::testing::Eq; using spvutils::BitwiseCast; using spvutils::Float16; using spvutils::FloatProxy; using spvutils::HexFloat; using spvutils::ParseNormalFloat; // In this file "encode" means converting a number into a string, // and "decode" means converting a string into a number. using HexFloatTest = ::testing::TestWithParam, std::string>>; using DecodeHexFloatTest = ::testing::TestWithParam>>; using HexDoubleTest = ::testing::TestWithParam, std::string>>; using DecodeHexDoubleTest = ::testing::TestWithParam>>; // Hex-encodes a float value. template std::string EncodeViaHexFloat(const T& value) { std::stringstream ss; ss << spvutils::HexFloat(value); return ss.str(); } // The following two tests can't be DRY because they take different parameter // types. TEST_P(HexFloatTest, EncodeCorrectly) { EXPECT_THAT(EncodeViaHexFloat(GetParam().first), Eq(GetParam().second)); } TEST_P(HexDoubleTest, EncodeCorrectly) { EXPECT_THAT(EncodeViaHexFloat(GetParam().first), Eq(GetParam().second)); } // Decodes a hex-float string. template FloatProxy Decode(const std::string& str) { spvutils::HexFloat> decoded(0.f); EXPECT_TRUE((std::stringstream(str) >> decoded).eof()); return decoded.value(); } TEST_P(HexFloatTest, DecodeCorrectly) { EXPECT_THAT(Decode(GetParam().second), Eq(GetParam().first)); } TEST_P(HexDoubleTest, DecodeCorrectly) { EXPECT_THAT(Decode(GetParam().second), Eq(GetParam().first)); } INSTANTIATE_TEST_CASE_P( Float32Tests, HexFloatTest, ::testing::ValuesIn(std::vector, std::string>>({ {0.f, "0x0p+0"}, {1.f, "0x1p+0"}, {2.f, "0x1p+1"}, {3.f, "0x1.8p+1"}, {0.5f, "0x1p-1"}, {0.25f, "0x1p-2"}, {0.75f, "0x1.8p-1"}, {-0.f, "-0x0p+0"}, {-1.f, "-0x1p+0"}, {-0.5f, "-0x1p-1"}, {-0.25f, "-0x1p-2"}, {-0.75f, "-0x1.8p-1"}, // Larger numbers {512.f, "0x1p+9"}, {-512.f, "-0x1p+9"}, {1024.f, "0x1p+10"}, {-1024.f, "-0x1p+10"}, {1024.f + 8.f, "0x1.02p+10"}, {-1024.f - 8.f, "-0x1.02p+10"}, // Small numbers {1.0f / 512.f, "0x1p-9"}, {1.0f / -512.f, "-0x1p-9"}, {1.0f / 1024.f, "0x1p-10"}, {1.0f / -1024.f, "-0x1p-10"}, {1.0f / 1024.f + 1.0f / 8.f, "0x1.02p-3"}, {1.0f / -1024.f - 1.0f / 8.f, "-0x1.02p-3"}, // lowest non-denorm {float(ldexp(1.0f, -126)), "0x1p-126"}, {float(ldexp(-1.0f, -126)), "-0x1p-126"}, // Denormalized values {float(ldexp(1.0f, -127)), "0x1p-127"}, {float(ldexp(1.0f, -127) / 2.0f), "0x1p-128"}, {float(ldexp(1.0f, -127) / 4.0f), "0x1p-129"}, {float(ldexp(1.0f, -127) / 8.0f), "0x1p-130"}, {float(ldexp(-1.0f, -127)), "-0x1p-127"}, {float(ldexp(-1.0f, -127) / 2.0f), "-0x1p-128"}, {float(ldexp(-1.0f, -127) / 4.0f), "-0x1p-129"}, {float(ldexp(-1.0f, -127) / 8.0f), "-0x1p-130"}, {float(ldexp(1.0, -127) + (ldexp(1.0, -127) / 2.0f)), "0x1.8p-127"}, {float(ldexp(1.0, -127) / 2.0 + (ldexp(1.0, -127) / 4.0f)), "0x1.8p-128"}, }))); INSTANTIATE_TEST_CASE_P( Float32NanTests, HexFloatTest, ::testing::ValuesIn(std::vector, std::string>>({ // Various NAN and INF cases {uint32_t(0xFF800000), "-0x1p+128"}, // -inf {uint32_t(0x7F800000), "0x1p+128"}, // inf {uint32_t(0xFFC00000), "-0x1.8p+128"}, // -nan {uint32_t(0xFF800100), "-0x1.0002p+128"}, // -nan {uint32_t(0xFF800c00), "-0x1.0018p+128"}, // -nan {uint32_t(0xFF80F000), "-0x1.01ep+128"}, // -nan {uint32_t(0xFFFFFFFF), "-0x1.fffffep+128"}, // -nan {uint32_t(0x7FC00000), "0x1.8p+128"}, // +nan {uint32_t(0x7F800100), "0x1.0002p+128"}, // +nan {uint32_t(0x7f800c00), "0x1.0018p+128"}, // +nan {uint32_t(0x7F80F000), "0x1.01ep+128"}, // +nan {uint32_t(0x7FFFFFFF), "0x1.fffffep+128"}, // +nan }))); INSTANTIATE_TEST_CASE_P( Float64Tests, HexDoubleTest, ::testing::ValuesIn( std::vector, std::string>>({ {0., "0x0p+0"}, {1., "0x1p+0"}, {2., "0x1p+1"}, {3., "0x1.8p+1"}, {0.5, "0x1p-1"}, {0.25, "0x1p-2"}, {0.75, "0x1.8p-1"}, {-0., "-0x0p+0"}, {-1., "-0x1p+0"}, {-0.5, "-0x1p-1"}, {-0.25, "-0x1p-2"}, {-0.75, "-0x1.8p-1"}, // Larger numbers {512., "0x1p+9"}, {-512., "-0x1p+9"}, {1024., "0x1p+10"}, {-1024., "-0x1p+10"}, {1024. + 8., "0x1.02p+10"}, {-1024. - 8., "-0x1.02p+10"}, // Large outside the range of normal floats {ldexp(1.0, 128), "0x1p+128"}, {ldexp(1.0, 129), "0x1p+129"}, {ldexp(-1.0, 128), "-0x1p+128"}, {ldexp(-1.0, 129), "-0x1p+129"}, {ldexp(1.0, 128) + ldexp(1.0, 90), "0x1.0000000004p+128"}, {ldexp(1.0, 129) + ldexp(1.0, 120), "0x1.008p+129"}, {ldexp(-1.0, 128) + ldexp(1.0, 90), "-0x1.fffffffff8p+127"}, {ldexp(-1.0, 129) + ldexp(1.0, 120), "-0x1.ffp+128"}, // Small numbers {1.0 / 512., "0x1p-9"}, {1.0 / -512., "-0x1p-9"}, {1.0 / 1024., "0x1p-10"}, {1.0 / -1024., "-0x1p-10"}, {1.0 / 1024. + 1.0 / 8., "0x1.02p-3"}, {1.0 / -1024. - 1.0 / 8., "-0x1.02p-3"}, // Small outside the range of normal floats {ldexp(1.0, -128), "0x1p-128"}, {ldexp(1.0, -129), "0x1p-129"}, {ldexp(-1.0, -128), "-0x1p-128"}, {ldexp(-1.0, -129), "-0x1p-129"}, {ldexp(1.0, -128) + ldexp(1.0, -90), "0x1.0000000004p-90"}, {ldexp(1.0, -129) + ldexp(1.0, -120), "0x1.008p-120"}, {ldexp(-1.0, -128) + ldexp(1.0, -90), "0x1.fffffffff8p-91"}, {ldexp(-1.0, -129) + ldexp(1.0, -120), "0x1.ffp-121"}, // lowest non-denorm {ldexp(1.0, -1022), "0x1p-1022"}, {ldexp(-1.0, -1022), "-0x1p-1022"}, // Denormalized values {ldexp(1.0, -1023), "0x1p-1023"}, {ldexp(1.0, -1023) / 2.0, "0x1p-1024"}, {ldexp(1.0, -1023) / 4.0, "0x1p-1025"}, {ldexp(1.0, -1023) / 8.0, "0x1p-1026"}, {ldexp(-1.0, -1024), "-0x1p-1024"}, {ldexp(-1.0, -1024) / 2.0, "-0x1p-1025"}, {ldexp(-1.0, -1024) / 4.0, "-0x1p-1026"}, {ldexp(-1.0, -1024) / 8.0, "-0x1p-1027"}, {ldexp(1.0, -1023) + (ldexp(1.0, -1023) / 2.0), "0x1.8p-1023"}, {ldexp(1.0, -1023) / 2.0 + (ldexp(1.0, -1023) / 4.0), "0x1.8p-1024"}, }))); INSTANTIATE_TEST_CASE_P( Float64NanTests, HexDoubleTest, ::testing::ValuesIn(std::vector< std::pair, std::string>>({ // Various NAN and INF cases {uint64_t(0xFFF0000000000000LL), "-0x1p+1024"}, //-inf {uint64_t(0x7FF0000000000000LL), "0x1p+1024"}, //+inf {uint64_t(0xFFF8000000000000LL), "-0x1.8p+1024"}, // -nan {uint64_t(0xFFF0F00000000000LL), "-0x1.0fp+1024"}, // -nan {uint64_t(0xFFF0000000000001LL), "-0x1.0000000000001p+1024"}, // -nan {uint64_t(0xFFF0000300000000LL), "-0x1.00003p+1024"}, // -nan {uint64_t(0xFFFFFFFFFFFFFFFFLL), "-0x1.fffffffffffffp+1024"}, // -nan {uint64_t(0x7FF8000000000000LL), "0x1.8p+1024"}, // +nan {uint64_t(0x7FF0F00000000000LL), "0x1.0fp+1024"}, // +nan {uint64_t(0x7FF0000000000001LL), "0x1.0000000000001p+1024"}, // -nan {uint64_t(0x7FF0000300000000LL), "0x1.00003p+1024"}, // -nan {uint64_t(0x7FFFFFFFFFFFFFFFLL), "0x1.fffffffffffffp+1024"}, // -nan }))); TEST(HexFloatStreamTest, OperatorLeftShiftPreservesFloatAndFill) { std::stringstream s; s << std::setw(4) << std::oct << std::setfill('x') << 8 << " " << FloatProxy(uint32_t(0xFF800100)) << " " << std::setw(4) << 9; EXPECT_THAT(s.str(), Eq(std::string("xx10 -0x1.0002p+128 xx11"))); } TEST(HexDoubleStreamTest, OperatorLeftShiftPreservesFloatAndFill) { std::stringstream s; s << std::setw(4) << std::oct << std::setfill('x') << 8 << " " << FloatProxy(uint64_t(0x7FF0F00000000000LL)) << " " << std::setw(4) << 9; EXPECT_THAT(s.str(), Eq(std::string("xx10 0x1.0fp+1024 xx11"))); } TEST_P(DecodeHexFloatTest, DecodeCorrectly) { EXPECT_THAT(Decode(GetParam().first), Eq(GetParam().second)); } TEST_P(DecodeHexDoubleTest, DecodeCorrectly) { EXPECT_THAT(Decode(GetParam().first), Eq(GetParam().second)); } INSTANTIATE_TEST_CASE_P( Float32DecodeTests, DecodeHexFloatTest, ::testing::ValuesIn(std::vector>>({ {"0x0p+000", 0.f}, {"0x0p0", 0.f}, {"0x0p-0", 0.f}, // flush to zero cases {"0x1p-500", 0.f}, // Exponent underflows. {"-0x1p-500", -0.f}, {"0x0.00000000001p-126", 0.f}, // Fraction causes underflow. {"-0x0.0000000001p-127", -0.f}, {"-0x0.01p-142", -0.f}, // Fraction causes additional underflow. {"0x0.01p-142", 0.f}, // Some floats that do not encode the same way as they decode. {"0x2p+0", 2.f}, {"0xFFp+0", 255.f}, {"0x0.8p+0", 0.5f}, {"0x0.4p+0", 0.25f}, }))); INSTANTIATE_TEST_CASE_P( Float32DecodeInfTests, DecodeHexFloatTest, ::testing::ValuesIn(std::vector>>({ // inf cases {"-0x1p+128", uint32_t(0xFF800000)}, // -inf {"0x32p+127", uint32_t(0x7F800000)}, // inf {"0x32p+500", uint32_t(0x7F800000)}, // inf {"-0x32p+127", uint32_t(0xFF800000)}, // -inf }))); INSTANTIATE_TEST_CASE_P( Float64DecodeTests, DecodeHexDoubleTest, ::testing::ValuesIn( std::vector>>({ {"0x0p+000", 0.}, {"0x0p0", 0.}, {"0x0p-0", 0.}, // flush to zero cases {"0x1p-5000", 0.}, // Exponent underflows. {"-0x1p-5000", -0.}, {"0x0.0000000000000001p-1023", 0.}, // Fraction causes underflow. {"-0x0.000000000000001p-1024", -0.}, {"-0x0.01p-1090", -0.f}, // Fraction causes additional underflow. {"0x0.01p-1090", 0.}, // Some floats that do not encode the same way as they decode. {"0x2p+0", 2.}, {"0xFFp+0", 255.}, {"0x0.8p+0", 0.5}, {"0x0.4p+0", 0.25}, }))); INSTANTIATE_TEST_CASE_P( Float64DecodeInfTests, DecodeHexDoubleTest, ::testing::ValuesIn( std::vector>>({ // inf cases {"-0x1p+1024", uint64_t(0xFFF0000000000000)}, // -inf {"0x32p+1023", uint64_t(0x7FF0000000000000)}, // inf {"0x32p+5000", uint64_t(0x7FF0000000000000)}, // inf {"-0x32p+1023", uint64_t(0xFFF0000000000000)}, // -inf }))); TEST(FloatProxy, ValidConversion) { EXPECT_THAT(FloatProxy(1.f).getAsFloat(), Eq(1.0f)); EXPECT_THAT(FloatProxy(32.f).getAsFloat(), Eq(32.0f)); EXPECT_THAT(FloatProxy(-1.f).getAsFloat(), Eq(-1.0f)); EXPECT_THAT(FloatProxy(0.f).getAsFloat(), Eq(0.0f)); EXPECT_THAT(FloatProxy(-0.f).getAsFloat(), Eq(-0.0f)); EXPECT_THAT(FloatProxy(1.2e32f).getAsFloat(), Eq(1.2e32f)); EXPECT_TRUE(std::isinf(FloatProxy(uint32_t(0xFF800000)).getAsFloat())); EXPECT_TRUE(std::isinf(FloatProxy(uint32_t(0x7F800000)).getAsFloat())); EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFFC00000)).getAsFloat())); EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF800100)).getAsFloat())); EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF800c00)).getAsFloat())); EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFF80F000)).getAsFloat())); EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0xFFFFFFFF)).getAsFloat())); EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7FC00000)).getAsFloat())); EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7F800100)).getAsFloat())); EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7f800c00)).getAsFloat())); EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7F80F000)).getAsFloat())); EXPECT_TRUE(std::isnan(FloatProxy(uint32_t(0x7FFFFFFF)).getAsFloat())); EXPECT_THAT(FloatProxy(uint32_t(0xFF800000)).data(), Eq(0xFF800000u)); EXPECT_THAT(FloatProxy(uint32_t(0x7F800000)).data(), Eq(0x7F800000u)); EXPECT_THAT(FloatProxy(uint32_t(0xFFC00000)).data(), Eq(0xFFC00000u)); EXPECT_THAT(FloatProxy(uint32_t(0xFF800100)).data(), Eq(0xFF800100u)); EXPECT_THAT(FloatProxy(uint32_t(0xFF800c00)).data(), Eq(0xFF800c00u)); EXPECT_THAT(FloatProxy(uint32_t(0xFF80F000)).data(), Eq(0xFF80F000u)); EXPECT_THAT(FloatProxy(uint32_t(0xFFFFFFFF)).data(), Eq(0xFFFFFFFFu)); EXPECT_THAT(FloatProxy(uint32_t(0x7FC00000)).data(), Eq(0x7FC00000u)); EXPECT_THAT(FloatProxy(uint32_t(0x7F800100)).data(), Eq(0x7F800100u)); EXPECT_THAT(FloatProxy(uint32_t(0x7f800c00)).data(), Eq(0x7f800c00u)); EXPECT_THAT(FloatProxy(uint32_t(0x7F80F000)).data(), Eq(0x7F80F000u)); EXPECT_THAT(FloatProxy(uint32_t(0x7FFFFFFF)).data(), Eq(0x7FFFFFFFu)); } TEST(FloatProxy, Nan) { EXPECT_TRUE(FloatProxy(uint32_t(0xFFC00000)).isNan()); EXPECT_TRUE(FloatProxy(uint32_t(0xFF800100)).isNan()); EXPECT_TRUE(FloatProxy(uint32_t(0xFF800c00)).isNan()); EXPECT_TRUE(FloatProxy(uint32_t(0xFF80F000)).isNan()); EXPECT_TRUE(FloatProxy(uint32_t(0xFFFFFFFF)).isNan()); EXPECT_TRUE(FloatProxy(uint32_t(0x7FC00000)).isNan()); EXPECT_TRUE(FloatProxy(uint32_t(0x7F800100)).isNan()); EXPECT_TRUE(FloatProxy(uint32_t(0x7f800c00)).isNan()); EXPECT_TRUE(FloatProxy(uint32_t(0x7F80F000)).isNan()); EXPECT_TRUE(FloatProxy(uint32_t(0x7FFFFFFF)).isNan()); } TEST(FloatProxy, Negation) { EXPECT_THAT((-FloatProxy(1.f)).getAsFloat(), Eq(-1.0f)); EXPECT_THAT((-FloatProxy(0.f)).getAsFloat(), Eq(-0.0f)); EXPECT_THAT((-FloatProxy(-1.f)).getAsFloat(), Eq(1.0f)); EXPECT_THAT((-FloatProxy(-0.f)).getAsFloat(), Eq(0.0f)); EXPECT_THAT((-FloatProxy(32.f)).getAsFloat(), Eq(-32.0f)); EXPECT_THAT((-FloatProxy(-32.f)).getAsFloat(), Eq(32.0f)); EXPECT_THAT((-FloatProxy(1.2e32f)).getAsFloat(), Eq(-1.2e32f)); EXPECT_THAT((-FloatProxy(-1.2e32f)).getAsFloat(), Eq(1.2e32f)); EXPECT_THAT( (-FloatProxy(std::numeric_limits::infinity())).getAsFloat(), Eq(-std::numeric_limits::infinity())); EXPECT_THAT((-FloatProxy(-std::numeric_limits::infinity())) .getAsFloat(), Eq(std::numeric_limits::infinity())); } // Test conversion of FloatProxy values to strings. // // In previous cases, we always wrapped the FloatProxy value in a HexFloat // before conversion to a string. In the following cases, the FloatProxy // decides for itself whether to print as a regular number or as a hex float. using FloatProxyFloatTest = ::testing::TestWithParam, std::string>>; using FloatProxyDoubleTest = ::testing::TestWithParam, std::string>>; // Converts a float value to a string via a FloatProxy. template std::string EncodeViaFloatProxy(const T& value) { std::stringstream ss; ss << value; return ss.str(); } // Converts a floating point string so that the exponent prefix // is 'e', and the exponent value does not have leading zeros. // The Microsoft runtime library likes to write things like "2.5E+010". // Convert that to "2.5e+10". // We don't care what happens to strings that are not floating point // strings. std::string NormalizeExponentInFloatString(std::string in) { std::string result; // Reserve one spot for the terminating null, even when the sscanf fails. std::vector prefix(in.size() + 1); char e; char plus_or_minus; int exponent; // in base 10 if ((4 == std::sscanf(in.c_str(), "%[-+.0123456789]%c%c%d", prefix.data(), &e, &plus_or_minus, &exponent)) && (e == 'e' || e == 'E') && (plus_or_minus == '-' || plus_or_minus == '+')) { // It looks like a floating point value with exponent. std::stringstream out; out << prefix.data() << 'e' << plus_or_minus << exponent; result = out.str(); } else { result = in; } return result; } TEST(NormalizeFloat, Sample) { EXPECT_THAT(NormalizeExponentInFloatString(""), Eq("")); EXPECT_THAT(NormalizeExponentInFloatString("1e-12"), Eq("1e-12")); EXPECT_THAT(NormalizeExponentInFloatString("1E+14"), Eq("1e+14")); EXPECT_THAT(NormalizeExponentInFloatString("1e-0012"), Eq("1e-12")); EXPECT_THAT(NormalizeExponentInFloatString("1.263E+014"), Eq("1.263e+14")); } // The following two tests can't be DRY because they take different parameter // types. TEST_P(FloatProxyFloatTest, EncodeCorrectly) { EXPECT_THAT( NormalizeExponentInFloatString(EncodeViaFloatProxy(GetParam().first)), Eq(GetParam().second)); } TEST_P(FloatProxyDoubleTest, EncodeCorrectly) { EXPECT_THAT( NormalizeExponentInFloatString(EncodeViaFloatProxy(GetParam().first)), Eq(GetParam().second)); } INSTANTIATE_TEST_CASE_P( Float32Tests, FloatProxyFloatTest, ::testing::ValuesIn(std::vector, std::string>>({ // Zero {0.f, "0"}, // Normal numbers {1.f, "1"}, {-0.25f, "-0.25"}, {1000.0f, "1000"}, // Still normal numbers, but with large magnitude exponents. {float(ldexp(1.f, 126)), "8.50706e+37"}, {float(ldexp(-1.f, -126)), "-1.17549e-38"}, // denormalized values are printed as hex floats. {float(ldexp(1.0f, -127)), "0x1p-127"}, {float(ldexp(1.5f, -128)), "0x1.8p-128"}, {float(ldexp(1.25, -129)), "0x1.4p-129"}, {float(ldexp(1.125, -130)), "0x1.2p-130"}, {float(ldexp(-1.0f, -127)), "-0x1p-127"}, {float(ldexp(-1.0f, -128)), "-0x1p-128"}, {float(ldexp(-1.0f, -129)), "-0x1p-129"}, {float(ldexp(-1.5f, -130)), "-0x1.8p-130"}, // NaNs {FloatProxy(uint32_t(0xFFC00000)), "-0x1.8p+128"}, {FloatProxy(uint32_t(0xFF800100)), "-0x1.0002p+128"}, {std::numeric_limits::infinity(), "0x1p+128"}, {-std::numeric_limits::infinity(), "-0x1p+128"}, }))); INSTANTIATE_TEST_CASE_P( Float64Tests, FloatProxyDoubleTest, ::testing::ValuesIn( std::vector, std::string>>({ {0., "0"}, {1., "1"}, {-0.25, "-0.25"}, {1000.0, "1000"}, // Large outside the range of normal floats {ldexp(1.0, 128), "3.40282366920938e+38"}, {ldexp(1.5, 129), "1.02084710076282e+39"}, {ldexp(-1.0, 128), "-3.40282366920938e+38"}, {ldexp(-1.5, 129), "-1.02084710076282e+39"}, // Small outside the range of normal floats {ldexp(1.5, -129), "2.20405190779179e-39"}, {ldexp(-1.5, -129), "-2.20405190779179e-39"}, // lowest non-denorm {ldexp(1.0, -1022), "2.2250738585072e-308"}, {ldexp(-1.0, -1022), "-2.2250738585072e-308"}, // Denormalized values {ldexp(1.125, -1023), "0x1.2p-1023"}, {ldexp(-1.375, -1024), "-0x1.6p-1024"}, // NaNs {uint64_t(0x7FF8000000000000LL), "0x1.8p+1024"}, {uint64_t(0xFFF0F00000000000LL), "-0x1.0fp+1024"}, // Infinity {std::numeric_limits::infinity(), "0x1p+1024"}, {-std::numeric_limits::infinity(), "-0x1p+1024"}, }))); // double is used so that unbiased_exponent can be used with the output // of ldexp directly. int32_t unbiased_exponent(double f) { return spvutils::HexFloat>( static_cast(f)).getUnbiasedNormalizedExponent(); } int16_t unbiased_half_exponent(uint16_t f) { return spvutils::HexFloat>(f) .getUnbiasedNormalizedExponent(); } TEST(HexFloatOperationTest, UnbiasedExponent) { // Float cases EXPECT_EQ(0, unbiased_exponent(ldexp(1.0f, 0))); EXPECT_EQ(-32, unbiased_exponent(ldexp(1.0f, -32))); EXPECT_EQ(42, unbiased_exponent(ldexp(1.0f, 42))); EXPECT_EQ(125, unbiased_exponent(ldexp(1.0f, 125))); // Saturates to 128 EXPECT_EQ(128, unbiased_exponent(ldexp(1.0f, 256))); EXPECT_EQ(-100, unbiased_exponent(ldexp(1.0f, -100))); EXPECT_EQ(-127, unbiased_exponent(ldexp(1.0f, -127))); // First denorm EXPECT_EQ(-128, unbiased_exponent(ldexp(1.0f, -128))); EXPECT_EQ(-129, unbiased_exponent(ldexp(1.0f, -129))); EXPECT_EQ(-140, unbiased_exponent(ldexp(1.0f, -140))); // Smallest representable number EXPECT_EQ(-126 - 23, unbiased_exponent(ldexp(1.0f, -126 - 23))); // Should get rounded to 0 first. EXPECT_EQ(0, unbiased_exponent(ldexp(1.0f, -127 - 23))); // Float16 cases // The exponent is represented in the bits 0x7C00 // The offset is -15 EXPECT_EQ(0, unbiased_half_exponent(0x3C00)); EXPECT_EQ(3, unbiased_half_exponent(0x4800)); EXPECT_EQ(-1, unbiased_half_exponent(0x3800)); EXPECT_EQ(-14, unbiased_half_exponent(0x0400)); EXPECT_EQ(16, unbiased_half_exponent(0x7C00)); EXPECT_EQ(10, unbiased_half_exponent(0x6400)); // Smallest representable number EXPECT_EQ(-24, unbiased_half_exponent(0x0001)); } // Creates a float that is the sum of 1/(2 ^ fractions[i]) for i in factions float float_fractions(const std::vector& fractions) { float f = 0; for(int32_t i: fractions) { f += std::ldexp(1.0f, -i); } return f; } // Returns the normalized significand of a HexFloat> // that was created by calling float_fractions with the input fractions, // raised to the power of exp. uint32_t normalized_significand(const std::vector& fractions, uint32_t exp) { return spvutils::HexFloat>( static_cast(ldexp(float_fractions(fractions), exp))) .getNormalizedSignificand(); } // Sets the bits from MSB to LSB of the significand part of a float. // For example 0 would set the bit 23 (counting from LSB to MSB), // and 1 would set the 22nd bit. uint32_t bits_set(const std::vector& bits) { const uint32_t top_bit = 1u << 22u; uint32_t val= 0; for(uint32_t i: bits) { val |= top_bit >> i; } return val; } // The same as bits_set but for a Float16 value instead of 32-bit floating // point. uint16_t half_bits_set(const std::vector& bits) { const uint32_t top_bit = 1u << 9u; uint32_t val= 0; for(uint32_t i: bits) { val |= top_bit >> i; } return static_cast(val); } TEST(HexFloatOperationTest, NormalizedSignificand) { // For normalized numbers (the following) it should be a simple matter // of getting rid of the top implicit bit EXPECT_EQ(bits_set({}), normalized_significand({0}, 0)); EXPECT_EQ(bits_set({0}), normalized_significand({0, 1}, 0)); EXPECT_EQ(bits_set({0, 1}), normalized_significand({0, 1, 2}, 0)); EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 0)); EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 32)); EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 126)); // For denormalized numbers we expect the normalized significand to // shift as if it were normalized. This means, in practice that the // top_most set bit will be cut off. Looks very similar to above (on purpose) EXPECT_EQ(bits_set({}), normalized_significand({0}, -127)); EXPECT_EQ(bits_set({3}), normalized_significand({0, 4}, -128)); EXPECT_EQ(bits_set({3}), normalized_significand({0, 4}, -127)); EXPECT_EQ(bits_set({}), normalized_significand({22}, -127)); EXPECT_EQ(bits_set({0}), normalized_significand({21, 22}, -127)); } // Returns the 32-bit floating point value created by // calling setFromSignUnbiasedExponentAndNormalizedSignificand // on a HexFloat> float set_from_sign(bool negative, int32_t unbiased_exponent, uint32_t significand, bool round_denorm_up) { spvutils::HexFloat> f(0.f); f.setFromSignUnbiasedExponentAndNormalizedSignificand( negative, unbiased_exponent, significand, round_denorm_up); return f.value().getAsFloat(); } TEST(HexFloatOperationTests, SetFromSignUnbiasedExponentAndNormalizedSignificand) { EXPECT_EQ(1.f, set_from_sign(false, 0, 0, false)); // Tests insertion of various denormalized numbers with and without round up. EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -149, 0, false)); EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -149, 0, true)); EXPECT_EQ(0.f, set_from_sign(false, -150, 1, false)); EXPECT_EQ(static_cast(ldexp(1.f, -149)), set_from_sign(false, -150, 1, true)); EXPECT_EQ(ldexp(1.0f, -127), set_from_sign(false, -127, 0, false)); EXPECT_EQ(ldexp(1.0f, -128), set_from_sign(false, -128, 0, false)); EXPECT_EQ(float_fractions({0, 1, 2, 5}), set_from_sign(false, 0, bits_set({0, 1, 4}), false)); EXPECT_EQ(ldexp(float_fractions({0, 1, 2, 5}), -32), set_from_sign(false, -32, bits_set({0, 1, 4}), false)); EXPECT_EQ(ldexp(float_fractions({0, 1, 2, 5}), -128), set_from_sign(false, -128, bits_set({0, 1, 4}), false)); // The negative cases from above. EXPECT_EQ(-1.f, set_from_sign(true, 0, 0, false)); EXPECT_EQ(-ldexp(1.0, -127), set_from_sign(true, -127, 0, false)); EXPECT_EQ(-ldexp(1.0, -128), set_from_sign(true, -128, 0, false)); EXPECT_EQ(-float_fractions({0, 1, 2, 5}), set_from_sign(true, 0, bits_set({0, 1, 4}), false)); EXPECT_EQ(-ldexp(float_fractions({0, 1, 2, 5}), -32), set_from_sign(true, -32, bits_set({0, 1, 4}), false)); EXPECT_EQ(-ldexp(float_fractions({0, 1, 2, 5}), -128), set_from_sign(true, -128, bits_set({0, 1, 4}), false)); } TEST(HexFloatOperationTests, NonRounding) { // Rounding from 32-bit hex-float to 32-bit hex-float should be trivial, // except in the denorm case which is a bit more complex. using HF = spvutils::HexFloat>; bool carry_bit = false; spvutils::round_direction rounding[] = { spvutils::kRoundToZero, spvutils::kRoundToNearestEven, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity}; // Everything fits, so this should be straight-forward for (spvutils::round_direction round : rounding) { EXPECT_EQ(bits_set({}), HF(0.f).getRoundedNormalizedSignificand( round, &carry_bit)); EXPECT_FALSE(carry_bit); EXPECT_EQ(bits_set({0}), HF(float_fractions({0, 1})) .getRoundedNormalizedSignificand(round, &carry_bit)); EXPECT_FALSE(carry_bit); EXPECT_EQ(bits_set({1, 3}), HF(float_fractions({0, 2, 4})) .getRoundedNormalizedSignificand(round, &carry_bit)); EXPECT_FALSE(carry_bit); EXPECT_EQ( bits_set({0, 1, 4}), HF(static_cast(-ldexp(float_fractions({0, 1, 2, 5}), -128))) .getRoundedNormalizedSignificand(round, &carry_bit)); EXPECT_FALSE(carry_bit); EXPECT_EQ( bits_set({0, 1, 4, 22}), HF(static_cast(float_fractions({0, 1, 2, 5, 23}))) .getRoundedNormalizedSignificand(round, &carry_bit)); EXPECT_FALSE(carry_bit); } } struct RoundSignificandCase { float source_float; std::pair expected_results; spvutils::round_direction round; }; using HexFloatRoundTest = ::testing::TestWithParam; TEST_P(HexFloatRoundTest, RoundDownToFP16) { using HF = spvutils::HexFloat>; using HF16 = spvutils::HexFloat>; HF input_value(GetParam().source_float); bool carry_bit = false; EXPECT_EQ(GetParam().expected_results.first, input_value.getRoundedNormalizedSignificand( GetParam().round, &carry_bit)); EXPECT_EQ(carry_bit, GetParam().expected_results.second); } // clang-format off INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatRoundTest, ::testing::ValuesIn(std::vector( { {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToZero}, {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNearestEven}, {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToPositiveInfinity}, {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNegativeInfinity}, {float_fractions({0, 1}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNearestEven}, {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToZero}, {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToPositiveInfinity}, {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity}, {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToNearestEven}, {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToPositiveInfinity}, {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity}, {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, // Carries {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToZero}, {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToPositiveInfinity}, {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToNegativeInfinity}, {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToNearestEven}, // Cases where original number was denorm. Note: this should have no effect // the number is pre-normalized. {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -128)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -129)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -131)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, {static_cast(ldexp(float_fractions({0, 1, 11, 13}), -130)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, }))); // clang-format on struct UpCastSignificandCase { uint16_t source_half; uint32_t expected_result; }; using HexFloatRoundUpSignificandTest = ::testing::TestWithParam; TEST_P(HexFloatRoundUpSignificandTest, Widening) { using HF = spvutils::HexFloat>; using HF16 = spvutils::HexFloat>; bool carry_bit = false; spvutils::round_direction rounding[] = { spvutils::kRoundToZero, spvutils::kRoundToNearestEven, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity}; // Everything fits, so everything should just be bit-shifts. for (spvutils::round_direction round : rounding) { carry_bit = false; HF16 input_value(GetParam().source_half); EXPECT_EQ( GetParam().expected_result, input_value.getRoundedNormalizedSignificand(round, &carry_bit)) << std::hex << "0x" << input_value.getRoundedNormalizedSignificand(round, &carry_bit) << " 0x" << GetParam().expected_result; EXPECT_FALSE(carry_bit); } } INSTANTIATE_TEST_CASE_P(F16toF32, HexFloatRoundUpSignificandTest, // 0xFC00 of the source 16-bit hex value cover the sign and the exponent. // They are ignored for this test. ::testing::ValuesIn(std::vector( { {0x3F00, 0x600000}, {0x0F00, 0x600000}, {0x0F01, 0x602000}, {0x0FFF, 0x7FE000}, }))); struct DownCastTest { float source_float; uint16_t expected_half; std::vector directions; }; std::string get_round_text(spvutils::round_direction direction) { #define CASE(round_direction) \ case round_direction: \ return #round_direction switch (direction) { CASE(spvutils::kRoundToZero); CASE(spvutils::kRoundToPositiveInfinity); CASE(spvutils::kRoundToNegativeInfinity); CASE(spvutils::kRoundToNearestEven); } #undef CASE return ""; } using HexFloatFP32To16Tests = ::testing::TestWithParam; TEST_P(HexFloatFP32To16Tests, NarrowingCasts) { using HF = spvutils::HexFloat>; using HF16 = spvutils::HexFloat>; HF f(GetParam().source_float); for (auto round : GetParam().directions) { HF16 half(0); f.castTo(half, round); EXPECT_EQ(GetParam().expected_half, half.value().getAsFloat().get_value()) << get_round_text(round) << " " << std::hex << spvutils::BitwiseCast(GetParam().source_float) << " cast to: " << half.value().getAsFloat().get_value(); } } const uint16_t positive_infinity = 0x7C00; const uint16_t negative_infinity = 0xFC00; INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatFP32To16Tests, ::testing::ValuesIn(std::vector( { // Exactly representable as half. {0.f, 0x0, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {-0.f, 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {1.0f, 0x3C00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {-1.0f, 0xBC00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {float_fractions({0, 1, 10}) , 0x3E01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {-float_fractions({0, 1, 10}) , 0xBE01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {static_cast(ldexp(float_fractions({0, 1, 10}), 3)), 0x4A01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {static_cast(-ldexp(float_fractions({0, 1, 10}), 3)), 0xCA01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, // Underflow {static_cast(ldexp(1.0f, -25)), 0x0, {spvutils::kRoundToZero, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {static_cast(ldexp(1.0f, -25)), 0x1, {spvutils::kRoundToPositiveInfinity}}, {static_cast(-ldexp(1.0f, -25)), 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNearestEven}}, {static_cast(-ldexp(1.0f, -25)), 0x8001, {spvutils::kRoundToNegativeInfinity}}, {static_cast(ldexp(1.0f, -24)), 0x1, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, // Overflow {static_cast(ldexp(1.0f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {static_cast(ldexp(1.0f, 18)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {static_cast(ldexp(1.3f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {static_cast(-ldexp(1.0f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {static_cast(-ldexp(1.0f, 18)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {static_cast(-ldexp(1.3f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, // Transfer of Infinities {std::numeric_limits::infinity(), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, {-std::numeric_limits::infinity(), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, // Nans are below because we cannot test for equality. }))); struct UpCastCase{ uint16_t source_half; float expected_float; }; using HexFloatFP16To32Tests = ::testing::TestWithParam; TEST_P(HexFloatFP16To32Tests, WideningCasts) { using HF = spvutils::HexFloat>; using HF16 = spvutils::HexFloat>; HF16 f(GetParam().source_half); spvutils::round_direction rounding[] = { spvutils::kRoundToZero, spvutils::kRoundToNearestEven, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity}; // Everything fits, so everything should just be bit-shifts. for (spvutils::round_direction round : rounding) { HF flt(0.f); f.castTo(flt, round); EXPECT_EQ(GetParam().expected_float, flt.value().getAsFloat()) << get_round_text(round) << " " << std::hex << spvutils::BitwiseCast(GetParam().source_half) << " cast to: " << flt.value().getAsFloat(); } } INSTANTIATE_TEST_CASE_P(F16ToF32, HexFloatFP16To32Tests, ::testing::ValuesIn(std::vector( { {0x0000, 0.f}, {0x8000, -0.f}, {0x3C00, 1.0f}, {0xBC00, -1.0f}, {0x3F00, float_fractions({0, 1, 2})}, {0xBF00, -float_fractions({0, 1, 2})}, {0x3F01, float_fractions({0, 1, 2, 10})}, {0xBF01, -float_fractions({0, 1, 2, 10})}, // denorm {0x0001, static_cast(ldexp(1.0, -24))}, {0x0002, static_cast(ldexp(1.0, -23))}, {0x8001, static_cast(-ldexp(1.0, -24))}, {0x8011, static_cast(-ldexp(1.0, -20) + -ldexp(1.0, -24))}, // inf {0x7C00, std::numeric_limits::infinity()}, {0xFC00, -std::numeric_limits::infinity()}, }))); TEST(HexFloatOperationTests, NanTests) { using HF = spvutils::HexFloat>; using HF16 = spvutils::HexFloat>; spvutils::round_direction rounding[] = { spvutils::kRoundToZero, spvutils::kRoundToNearestEven, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity}; // Everything fits, so everything should just be bit-shifts. for (spvutils::round_direction round : rounding) { HF16 f16(0); HF f(0.f); HF(std::numeric_limits::quiet_NaN()).castTo(f16, round); EXPECT_TRUE(f16.value().isNan()); HF(std::numeric_limits::signaling_NaN()).castTo(f16, round); EXPECT_TRUE(f16.value().isNan()); HF16(0x7C01).castTo(f, round); EXPECT_TRUE(f.value().isNan()); HF16(0x7C11).castTo(f, round); EXPECT_TRUE(f.value().isNan()); HF16(0xFC01).castTo(f, round); EXPECT_TRUE(f.value().isNan()); HF16(0x7C10).castTo(f, round); EXPECT_TRUE(f.value().isNan()); HF16(0xFF00).castTo(f, round); EXPECT_TRUE(f.value().isNan()); } } // A test case for parsing good and bad HexFloat> literals. template struct FloatParseCase { std::string literal; bool negate_value; bool expect_success; HexFloat> expected_value; }; using ParseNormalFloatTest = ::testing::TestWithParam>; TEST_P(ParseNormalFloatTest, Samples) { std::stringstream input(GetParam().literal); HexFloat> parsed_value(0.0f); ParseNormalFloat(input, GetParam().negate_value, parsed_value); EXPECT_NE(GetParam().expect_success, input.fail()) << " literal: " << GetParam().literal << " negate: " << GetParam().negate_value; if (GetParam().expect_success) { EXPECT_THAT(parsed_value.value(), Eq(GetParam().expected_value.value())) << " literal: " << GetParam().literal << " negate: " << GetParam().negate_value; } } // Returns a FloatParseCase with expected failure. template FloatParseCase BadFloatParseCase(std::string literal, bool negate_value, T expected_value) { HexFloat> proxy_expected_value(expected_value); return FloatParseCase{literal, negate_value, false, proxy_expected_value}; } // Returns a FloatParseCase that should successfully parse to a given value. template FloatParseCase GoodFloatParseCase(std::string literal, bool negate_value, T expected_value) { HexFloat> proxy_expected_value(expected_value); return FloatParseCase{literal, negate_value, true, proxy_expected_value}; } INSTANTIATE_TEST_CASE_P( FloatParse, ParseNormalFloatTest, ::testing::ValuesIn(std::vector>{ // Failing cases due to trivially incorrect syntax. BadFloatParseCase("abc", false, 0.0f), BadFloatParseCase("abc", true, 0.0f), // Valid cases. GoodFloatParseCase("0", false, 0.0f), GoodFloatParseCase("0.0", false, 0.0f), GoodFloatParseCase("-0.0", false, -0.0f), GoodFloatParseCase("2.0", false, 2.0f), GoodFloatParseCase("-2.0", false, -2.0f), GoodFloatParseCase("+2.0", false, 2.0f), // Cases with negate_value being true. GoodFloatParseCase("0.0", true, -0.0f), GoodFloatParseCase("2.0", true, -2.0f), // When negate_value is true, we should not accept a // leading minus or plus. BadFloatParseCase("-0.0", true, 0.0f), BadFloatParseCase("-2.0", true, 0.0f), BadFloatParseCase("+0.0", true, 0.0f), BadFloatParseCase("+2.0", true, 0.0f), // Overflow is an error for 32-bit float parsing. BadFloatParseCase("1e40", false, FLT_MAX), BadFloatParseCase("1e40", true, -FLT_MAX), BadFloatParseCase("-1e40", false, -FLT_MAX), // We can't have -1e40 and negate_value == true since // that represents an original case of "--1e40" which // is invalid. })); using ParseNormalFloat16Test = ::testing::TestWithParam>; TEST_P(ParseNormalFloat16Test, Samples) { std::stringstream input(GetParam().literal); HexFloat> parsed_value(0); ParseNormalFloat(input, GetParam().negate_value, parsed_value); EXPECT_NE(GetParam().expect_success, input.fail()) << " literal: " << GetParam().literal << " negate: " << GetParam().negate_value; if (GetParam().expect_success) { EXPECT_THAT(parsed_value.value(), Eq(GetParam().expected_value.value())) << " literal: " << GetParam().literal << " negate: " << GetParam().negate_value; } } INSTANTIATE_TEST_CASE_P( Float16Parse, ParseNormalFloat16Test, ::testing::ValuesIn(std::vector>{ // Failing cases due to trivially incorrect syntax. BadFloatParseCase("abc", false, uint16_t{0}), BadFloatParseCase("abc", true, uint16_t{0}), // Valid cases. GoodFloatParseCase("0", false, uint16_t{0}), GoodFloatParseCase("0.0", false, uint16_t{0}), GoodFloatParseCase("-0.0", false, uint16_t{0x8000}), GoodFloatParseCase("2.0", false, uint16_t{0x4000}), GoodFloatParseCase("-2.0", false, uint16_t{0xc000}), GoodFloatParseCase("+2.0", false, uint16_t{0x4000}), // Cases with negate_value being true. GoodFloatParseCase("0.0", true, uint16_t{0x8000}), GoodFloatParseCase("2.0", true, uint16_t{0xc000}), // When negate_value is true, we should not accept a leading minus or // plus. BadFloatParseCase("-0.0", true, uint16_t{0}), BadFloatParseCase("-2.0", true, uint16_t{0}), BadFloatParseCase("+0.0", true, uint16_t{0}), BadFloatParseCase("+2.0", true, uint16_t{0}), })); // A test case for detecting infinities. template struct OverflowParseCase { std::string input; bool expect_success; T expected_value; }; using FloatProxyParseOverflowFloatTest = ::testing::TestWithParam>; TEST_P(FloatProxyParseOverflowFloatTest, Sample) { std::istringstream input(GetParam().input); HexFloat> value(0.0f); input >> value; EXPECT_NE(GetParam().expect_success, input.fail()); if (GetParam().expect_success) { EXPECT_THAT(value.value().getAsFloat(), GetParam().expected_value); } } INSTANTIATE_TEST_CASE_P( FloatOverflow, FloatProxyParseOverflowFloatTest, ::testing::ValuesIn(std::vector>({ {"0", true, 0.0f}, {"0.0", true, 0.0f}, {"1.0", true, 1.0f}, {"1e38", true, 1e38f}, {"-1e38", true, -1e38f}, {"1e40", false, FLT_MAX}, {"-1e40", false, -FLT_MAX}, {"1e400", false, FLT_MAX}, {"-1e400", false, -FLT_MAX}, }))); using FloatProxyParseOverflowDoubleTest = ::testing::TestWithParam>; TEST_P(FloatProxyParseOverflowDoubleTest, Sample) { std::istringstream input(GetParam().input); HexFloat> value(0.0); input >> value; EXPECT_NE(GetParam().expect_success, input.fail()); if (GetParam().expect_success) { EXPECT_THAT(value.value().getAsFloat(), Eq(GetParam().expected_value)); } } INSTANTIATE_TEST_CASE_P( DoubleOverflow, FloatProxyParseOverflowDoubleTest, ::testing::ValuesIn(std::vector>({ {"0", true, 0.0}, {"0.0", true, 0.0}, {"1.0", true, 1.0}, {"1e38", true, 1e38}, {"-1e38", true, -1e38}, {"1e40", true, 1e40}, {"-1e40", true, -1e40}, {"1e400", false, DBL_MAX}, {"-1e400", false, -DBL_MAX}, }))); using FloatProxyParseOverflowFloat16Test = ::testing::TestWithParam>; TEST_P(FloatProxyParseOverflowFloat16Test, Sample) { std::istringstream input(GetParam().input); HexFloat> value(0); input >> value; EXPECT_NE(GetParam().expect_success, input.fail()) << " literal: " << GetParam().input; if (GetParam().expect_success) { EXPECT_THAT(value.value().data(), Eq(GetParam().expected_value)) << " literal: " << GetParam().input; } } INSTANTIATE_TEST_CASE_P( Float16Overflow, FloatProxyParseOverflowFloat16Test, ::testing::ValuesIn(std::vector>({ {"0", true, uint16_t{0}}, {"0.0", true, uint16_t{0}}, {"1.0", true, uint16_t{0x3c00}}, // Overflow for 16-bit float is an error, and returns max or // lowest value. {"1e38", false, uint16_t{0x7bff}}, {"1e40", false, uint16_t{0x7bff}}, {"1e400", false, uint16_t{0x7bff}}, {"-1e38", false, uint16_t{0xfbff}}, {"-1e40", false, uint16_t{0xfbff}}, {"-1e400", false, uint16_t{0xfbff}}, }))); TEST(FloatProxy, Max) { EXPECT_THAT(FloatProxy::max().getAsFloat().get_value(), Eq(uint16_t{0x7bff})); EXPECT_THAT(FloatProxy::max().getAsFloat(), Eq(std::numeric_limits::max())); EXPECT_THAT(FloatProxy::max().getAsFloat(), Eq(std::numeric_limits::max())); } TEST(FloatProxy, Lowest) { EXPECT_THAT(FloatProxy::lowest().getAsFloat().get_value(), Eq(uint16_t{0xfbff})); EXPECT_THAT(FloatProxy::lowest().getAsFloat(), Eq(std::numeric_limits::lowest())); EXPECT_THAT(FloatProxy::lowest().getAsFloat(), Eq(std::numeric_limits::lowest())); } // TODO(awoloszyn): Add fp16 tests and HexFloatTraits. } // anonymous namespace glslang-8.13.3559/gtests/Hlsl.FromFile.cpp000077500000000000000000000540051360464450000201320ustar00rootroot00000000000000// // Copyright (C) 2016 Google, Inc. // Copyright (C) 2016 LunarG, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. #include #include "TestFixture.h" namespace glslangtest { namespace { struct FileNameEntryPointPair { const char* fileName; const char* entryPoint; }; // We are using FileNameEntryPointPair objects as parameters for instantiating // the template, so the global FileNameAsCustomTestSuffix() won't work since // it assumes std::string as parameters. Thus, an overriding one here. std::string FileNameAsCustomTestSuffix( const ::testing::TestParamInfo& info) { std::string name = info.param.fileName; // A valid test case suffix cannot have '.' and '-' inside. std::replace(name.begin(), name.end(), '.', '_'); std::replace(name.begin(), name.end(), '-', '_'); return name; } using HlslCompileTest = GlslangTest<::testing::TestWithParam>; using HlslVulkan1_1CompileTest = GlslangTest<::testing::TestWithParam>; using HlslCompileAndFlattenTest = GlslangTest<::testing::TestWithParam>; using HlslLegalizeTest = GlslangTest<::testing::TestWithParam>; 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(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_CASE_P( ToSpirv, HlslCompileTest, ::testing::ValuesIn(std::vector{ {"hlsl.amend.frag", "f1"}, {"hlsl.aliasOpaque.frag", "main"}, {"hlsl.array.frag", "PixelShaderFunction"}, {"hlsl.array.implicit-size.frag", "PixelShaderFunction"}, {"hlsl.array.multidim.frag", "main"}, {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.attribute.frag", "PixelShaderFunction"}, {"hlsl.attribute.expression.comp", "main"}, {"hlsl.attributeC11.frag", "main"}, {"hlsl.attributeGlobalBuffer.frag", "main"}, {"hlsl.basic.comp", "main"}, {"hlsl.basic.geom", "main"}, {"hlsl.boolConv.vert", "main"}, {"hlsl.buffer.frag", "PixelShaderFunction"}, {"hlsl.calculatelod.dx10.frag", "main"}, {"hlsl.calculatelodunclamped.dx10.frag", "main"}, {"hlsl.cast.frag", "PixelShaderFunction"}, {"hlsl.cbuffer-identifier.vert", "main"}, {"hlsl.charLit.vert", "main"}, {"hlsl.clip.frag", "main"}, {"hlsl.clipdistance-1.frag", "main"}, {"hlsl.clipdistance-1.geom", "main"}, {"hlsl.clipdistance-1.vert", "main"}, {"hlsl.clipdistance-2.frag", "main"}, {"hlsl.clipdistance-2.geom", "main"}, {"hlsl.clipdistance-2.vert", "main"}, {"hlsl.clipdistance-3.frag", "main"}, {"hlsl.clipdistance-3.geom", "main"}, {"hlsl.clipdistance-3.vert", "main"}, {"hlsl.clipdistance-4.frag", "main"}, {"hlsl.clipdistance-4.geom", "main"}, {"hlsl.clipdistance-4.vert", "main"}, {"hlsl.clipdistance-5.frag", "main"}, {"hlsl.clipdistance-5.vert", "main"}, {"hlsl.clipdistance-6.frag", "main"}, {"hlsl.clipdistance-6.vert", "main"}, {"hlsl.clipdistance-7.frag", "main"}, {"hlsl.clipdistance-7.vert", "main"}, {"hlsl.clipdistance-8.frag", "main"}, {"hlsl.clipdistance-8.vert", "main"}, {"hlsl.clipdistance-9.frag", "main"}, {"hlsl.clipdistance-9.vert", "main"}, {"hlsl.color.hull.tesc", "main"}, {"hlsl.comparison.vec.frag", "main"}, {"hlsl.conditional.frag", "PixelShaderFunction"}, {"hlsl.constantbuffer.frag", "main"}, {"hlsl.constructArray.vert", "main"}, {"hlsl.constructexpr.frag", "main"}, {"hlsl.constructimat.frag", "main"}, {"hlsl.coverage.frag", "main"}, {"hlsl.depthGreater.frag", "PixelShaderFunction"}, {"hlsl.depthLess.frag", "PixelShaderFunction"}, {"hlsl.discard.frag", "PixelShaderFunction"}, {"hlsl.doLoop.frag", "PixelShaderFunction"}, {"hlsl.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.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.imagefetch-subvec4.comp", "main"}, {"hlsl.implicitBool.frag", "main"}, {"hlsl.inf.vert", "main"}, {"hlsl.inoutquals.frag", "main"}, {"hlsl.init.frag", "ShaderFunction"}, {"hlsl.init2.frag", "main"}, {"hlsl.isfinite.frag", "main"}, {"hlsl.intrinsics.barriers.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.evalfns.frag", "main"}, {"hlsl.intrinsics.d3dcolortoubyte4.frag", "main"}, {"hlsl.intrinsics.double.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.f1632.frag", "main"}, {"hlsl.intrinsics.f3216.frag", "main"}, {"hlsl.intrinsics.frag", "main"}, {"hlsl.intrinsic.frexp.frag", "main"}, {"hlsl.intrinsics.lit.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, {"hlsl.intrinsics.promote.frag", "main"}, {"hlsl.intrinsics.promote.down.frag", "main"}, {"hlsl.intrinsics.promote.outputs.frag", "main"}, {"hlsl.layout.frag", "main"}, {"hlsl.layoutOverride.vert", "main"}, {"hlsl.load.2dms.dx10.frag", "main"}, {"hlsl.load.array.dx10.frag", "main"}, {"hlsl.load.basic.dx10.frag", "main"}, {"hlsl.load.basic.dx10.vert", "main"}, {"hlsl.load.buffer.dx10.frag", "main"}, {"hlsl.load.buffer.float.dx10.frag", "main"}, {"hlsl.load.rwbuffer.dx10.frag", "main"}, {"hlsl.load.rwtexture.dx10.frag", "main"}, {"hlsl.load.rwtexture.array.dx10.frag", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, {"hlsl.localStructuredBuffer.comp", "main"}, {"hlsl.logical.binary.frag", "main"}, {"hlsl.logical.binary.vec.frag", "main"}, {"hlsl.logicalConvert.frag", "main"}, {"hlsl.logical.unary.frag", "main"}, {"hlsl.loopattr.frag", "main"}, {"hlsl.matpack-pragma.frag", "main"}, {"hlsl.mip.operator.frag", "main"}, {"hlsl.mip.negative.frag", "main"}, {"hlsl.mip.negative2.frag", "main"}, {"hlsl.namespace.frag", "main"}, {"hlsl.nonint-index.frag", "main"}, {"hlsl.matNx1.frag", "main"}, {"hlsl.matpack-1.frag", "main"}, {"hlsl.matrixSwizzle.vert", "ShaderFunction"}, {"hlsl.memberFunCall.frag", "main"}, {"hlsl.mintypes.frag", "main"}, {"hlsl.mul-truncate.frag", "main"}, {"hlsl.multiEntry.vert", "RealEntrypoint"}, {"hlsl.multiReturn.frag", "main"}, {"hlsl.matrixindex.frag", "main"}, {"hlsl.nonstaticMemberFunction.frag", "main"}, {"hlsl.numericsuffixes.frag", "main"}, {"hlsl.numthreads.comp", "main_aux2"}, {"hlsl.overload.frag", "PixelShaderFunction"}, {"hlsl.opaque-type-bug.frag", "main"}, {"hlsl.params.default.frag", "main"}, {"hlsl.params.default.negative.frag", "main"}, {"hlsl.partialInit.frag", "PixelShaderFunction"}, {"hlsl.partialFlattenLocal.vert", "main"}, {"hlsl.PointSize.geom", "main"}, {"hlsl.PointSize.vert", "main"}, {"hlsl.pp.vert", "main"}, {"hlsl.pp.line.frag", "main"}, {"hlsl.precise.frag", "main"}, {"hlsl.promote.atomic.frag", "main"}, {"hlsl.promote.binary.frag", "main"}, {"hlsl.promote.vec1.frag", "main"}, {"hlsl.promotions.frag", "main"}, {"hlsl.rw.atomics.frag", "main"}, {"hlsl.rw.bracket.frag", "main"}, {"hlsl.rw.register.frag", "main"}, {"hlsl.rw.scalar.bracket.frag", "main"}, {"hlsl.rw.swizzle.frag", "main"}, {"hlsl.rw.vec2.bracket.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, {"hlsl.sample.basic.dx10.frag", "main"}, {"hlsl.sample.offset.dx10.frag", "main"}, {"hlsl.sample.offsetarray.dx10.frag", "main"}, {"hlsl.samplebias.array.dx10.frag", "main"}, {"hlsl.samplebias.basic.dx10.frag", "main"}, {"hlsl.samplebias.offset.dx10.frag", "main"}, {"hlsl.samplebias.offsetarray.dx10.frag", "main"}, {"hlsl.samplecmp.array.dx10.frag", "main"}, {"hlsl.samplecmp.basic.dx10.frag", "main"}, {"hlsl.samplecmp.dualmode.frag", "main"}, {"hlsl.samplecmp.offset.dx10.frag", "main"}, {"hlsl.samplecmp.offsetarray.dx10.frag", "main"}, {"hlsl.samplecmp.negative.frag", "main"}, {"hlsl.samplecmp.negative2.frag", "main"}, {"hlsl.samplecmplevelzero.array.dx10.frag", "main"}, {"hlsl.samplecmplevelzero.basic.dx10.frag", "main"}, {"hlsl.samplecmplevelzero.offset.dx10.frag", "main"}, {"hlsl.samplecmplevelzero.offsetarray.dx10.frag", "main"}, {"hlsl.samplegrad.array.dx10.frag", "main"}, {"hlsl.samplegrad.basic.dx10.frag", "main"}, {"hlsl.samplegrad.basic.dx10.vert", "main"}, {"hlsl.samplegrad.offset.dx10.frag", "main"}, {"hlsl.samplegrad.offsetarray.dx10.frag", "main"}, {"hlsl.samplelevel.array.dx10.frag", "main"}, {"hlsl.samplelevel.basic.dx10.frag", "main"}, {"hlsl.samplelevel.basic.dx10.vert", "main"}, {"hlsl.samplelevel.offset.dx10.frag", "main"}, {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, {"hlsl.sample.sub-vec4.dx10.frag", "main"}, {"hlsl.scalar-length.frag", "main"}, {"hlsl.scalarCast.vert", "main"}, {"hlsl.semicolons.frag", "main"}, {"hlsl.shapeConv.frag", "main"}, {"hlsl.shapeConvRet.frag", "main"}, {"hlsl.self_cast.frag", "main"}, {"hlsl.snorm.uav.comp", "main"}, {"hlsl.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.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_CASE_P( ToSpirv, HlslVulkan1_1CompileTest, ::testing::ValuesIn(std::vector{ {"hlsl.wavebroadcast.comp", "CSMain"}, {"hlsl.waveprefix.comp", "CSMain"}, {"hlsl.wavequad.comp", "CSMain"}, {"hlsl.wavequery.comp", "CSMain"}, {"hlsl.wavequery.frag", "PixelShaderFunction"}, {"hlsl.wavereduction.comp", "CSMain"}, {"hlsl.wavevote.comp", "CSMain"}, { "hlsl.type.type.conversion.valid.frag", "main" }, {"hlsl.int.dot.frag", "main"} }), FileNameAsCustomTestSuffix ); // clang-format on // clang-format off INSTANTIATE_TEST_CASE_P( ToSpirv, HlslCompileAndFlattenTest, ::testing::ValuesIn(std::vector{ {"hlsl.array.flatten.frag", "main"}, {"hlsl.partialFlattenMixed.vert", "main"}, }), FileNameAsCustomTestSuffix ); // clang-format on #if ENABLE_OPT // clang-format off INSTANTIATE_TEST_CASE_P( ToSpirv, HlslLegalizeTest, ::testing::ValuesIn(std::vector{ {"hlsl.aliasOpaque.frag", "main"}, {"hlsl.flattenOpaque.frag", "main"}, {"hlsl.flattenOpaqueInit.vert", "main"}, {"hlsl.flattenOpaqueInitMix.vert", "main"}, {"hlsl.flattenSubset.frag", "main"}, {"hlsl.flattenSubset2.frag", "main"}, {"hlsl.partialFlattenLocal.vert", "main"}, {"hlsl.partialFlattenMixed.vert", "main"} }), FileNameAsCustomTestSuffix ); // clang-format on #endif // clang-format off INSTANTIATE_TEST_CASE_P( ToSpirv, HlslDebugTest, ::testing::ValuesIn(std::vector{ {"hlsl.pp.line2.frag", "MainPs"} }), FileNameAsCustomTestSuffix ); INSTANTIATE_TEST_CASE_P( ToSpirv, HlslDX9CompatibleTest, ::testing::ValuesIn(std::vector{ {"hlsl.sample.dx9.frag", "main"}, {"hlsl.sample.dx9.vert", "main"}, }), FileNameAsCustomTestSuffix ); // clang-format off INSTANTIATE_TEST_CASE_P( ToSpirv, HlslLegalDebugTest, ::testing::ValuesIn(std::vector{ {"hlsl.pp.line4.frag", "MainPs"} }), FileNameAsCustomTestSuffix ); // clang-format on } // anonymous namespace } // namespace glslangtest glslang-8.13.3559/gtests/Initializer.h000066400000000000000000000041221360464450000174460ustar00rootroot00000000000000// // 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 glslang-8.13.3559/gtests/Link.FromFile.Vk.cpp000066400000000000000000000106261360464450000205020ustar00rootroot00000000000000// // Copyright (C) 2016-2017 Google, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. #include #include #include "TestFixture.h" namespace glslangtest { namespace { using LinkTestVulkan = GlslangTest< ::testing::TestWithParam>>; TEST_P(LinkTestVulkan, FromFile) { const auto& fileNames = GetParam(); const size_t fileCount = fileNames.size(); const EShMessages controls = DeriveOptions(Source::GLSL, Semantics::Vulkan, Target::AST); GlslangResult result; // Compile each input shader file. bool success = true; std::vector> shaders; for (size_t i = 0; i < fileCount; ++i) { std::string contents; tryLoadFile(GlobalTestSettings.testRoot + "/" + fileNames[i], "input", &contents); shaders.emplace_back( new glslang::TShader(GetShaderStage(GetSuffix(fileNames[i])))); auto* shader = shaders.back().get(); shader->setAutoMapLocations(true); success &= compile(shader, contents, "", controls); result.shaderResults.push_back( {fileNames[i], shader->getInfoLog(), shader->getInfoDebugLog()}); } // Link all of them. glslang::TProgram program; for (const auto& shader : shaders) program.addShader(shader.get()); success &= program.link(controls); result.linkingOutput = program.getInfoLog(); result.linkingError = program.getInfoDebugLog(); if (success && (controls & EShMsgSpvRules)) { spv::SpvBuildLogger logger; std::vector spirv_binary; 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_CASE_P( Glsl, LinkTestVulkan, ::testing::ValuesIn(std::vector>({ {"link1.vk.frag", "link2.vk.frag"}, {"spv.unit1.frag", "spv.unit2.frag", "spv.unit3.frag"}, })) ); // clang-format on } // anonymous namespace } // namespace glslangtest glslang-8.13.3559/gtests/Link.FromFile.cpp000066400000000000000000000100621360464450000201150ustar00rootroot00000000000000// // 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_CASE_P( Glsl, LinkTest, ::testing::ValuesIn(std::vector>({ {"mains1.frag", "mains2.frag", "noMain1.geom", "noMain2.geom"}, {"noMain.vert", "mains.frag"}, {"link1.frag", "link2.frag", "link3.frag"}, {"recurse1.vert", "recurse1.frag", "recurse2.frag"}, {"300link.frag"}, {"300link2.frag"}, {"300link3.frag"}, {"empty.frag", "empty2.frag", "empty3.frag"}, {"150.tesc", "150.tese", "400.tesc", "400.tese", "410.tesc", "420.tesc", "420.tese"}, {"max_vertices_0.geom"}, {"es-link1.frag", "es-link2.frag"}, {"missingBodies.vert"} })) ); // clang-format on } // anonymous namespace } // namespace glslangtest glslang-8.13.3559/gtests/Pp.FromFile.cpp000066400000000000000000000054001360464450000175770ustar00rootroot00000000000000// // Copyright (C) 2016 Google, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. #include #include "TestFixture.h" namespace glslangtest { namespace { using PreprocessingTest = GlslangTest<::testing::TestWithParam>; TEST_P(PreprocessingTest, FromFile) { loadFilePreprocessAndCheck(GlobalTestSettings.testRoot, GetParam()); } // clang-format off INSTANTIATE_TEST_CASE_P( Glsl, PreprocessingTest, ::testing::ValuesIn(std::vector({ "preprocessor.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 glslang-8.13.3559/gtests/README.md000066400000000000000000000022741360464450000162770ustar00rootroot00000000000000Glslang 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 glslang-8.13.3559/gtests/Remap.FromFile.cpp000066400000000000000000000136621360464450000202750ustar00rootroot00000000000000// // Copyright (C) 2016 LunarG, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. #include #include "TestFixture.h" namespace glslangtest { namespace { struct RemapTestArgs { const char* fileName; const char* entryPoint; Source sourceLanguage; unsigned int remapOpts; }; // We are using FileNameEntryPointPair objects as parameters for instantiating // the template, so the global FileNameAsCustomTestSuffix() won't work since // it assumes std::string as parameters. Thus, an overriding one here. std::string FileNameAsCustomTestSuffix( const ::testing::TestParamInfo& info) { std::string name = info.param.fileName; // A valid test case suffix cannot have '.' and '-' inside. std::replace(name.begin(), name.end(), '.', '_'); std::replace(name.begin(), name.end(), '-', '_'); return name; } using RemapTest = GlslangTest<::testing::TestWithParam>; // Remapping SPIR-V modules. TEST_P(RemapTest, FromFile) { if (GetSuffix(GetParam().fileName) == "spv") { loadFileRemapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, GetParam().sourceLanguage, Semantics::Vulkan, Target::Spv, GetParam().remapOpts); } else { loadFileCompileRemapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, GetParam().sourceLanguage, Semantics::Vulkan, Target::Spv, GetParam().entryPoint, GetParam().remapOpts); } } // clang-format off INSTANTIATE_TEST_CASE_P( ToSpirv, RemapTest, ::testing::ValuesIn(std::vector{ // GLSL remapper tests // testname entry language remapper_options { "remap.basic.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, { "remap.basic.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, { "remap.basic.dcefunc.frag", "main", Source::GLSL, spv::spirvbin_t::DCE_FUNCS }, { "remap.basic.strip.frag", "main", Source::GLSL, spv::spirvbin_t::STRIP }, { "remap.specconst.comp", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, { "remap.switch.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, { "remap.switch.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, { "remap.literal64.none.spv", "main", Source::GLSL, spv::spirvbin_t::NONE }, { "remap.literal64.everything.spv", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, { "remap.if.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, { "remap.if.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, { "remap.similar_1a.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, { "remap.similar_1b.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, { "remap.similar_1a.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, { "remap.similar_1b.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, { "remap.uniformarray.none.frag", "main", Source::GLSL, spv::spirvbin_t::NONE }, { "remap.uniformarray.everything.frag", "main", Source::GLSL, spv::spirvbin_t::DO_EVERYTHING }, // HLSL remapper tests { "remap.hlsl.sample.basic.strip.frag", "main", Source::HLSL, spv::spirvbin_t::STRIP }, { "remap.hlsl.sample.basic.everything.frag", "main", Source::HLSL, spv::spirvbin_t::DO_EVERYTHING }, { "remap.hlsl.sample.basic.none.frag", "main", Source::HLSL, spv::spirvbin_t::NONE }, { "remap.hlsl.templatetypes.none.frag", "main", Source::HLSL, spv::spirvbin_t::NONE }, { "remap.hlsl.templatetypes.everything.frag", "main", Source::HLSL, spv::spirvbin_t::DO_EVERYTHING }, }), FileNameAsCustomTestSuffix ); // clang-format on } // anonymous namespace } // namespace glslangtest glslang-8.13.3559/gtests/Settings.cpp000066400000000000000000000042361360464450000173240ustar00rootroot00000000000000// // 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 glslang-8.13.3559/gtests/Settings.h000066400000000000000000000041361360464450000167700ustar00rootroot00000000000000// // 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 glslang-8.13.3559/gtests/Spv.FromFile.cpp000066400000000000000000000612671360464450000200050ustar00rootroot00000000000000 // // Copyright (C) 2016 Google, Inc. // Copyright (C) 2019 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 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 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 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); } // 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(CompileUpgradeTextureToSampledTextureAndDropSamplersTest, FromFile) { loadCompileUpgradeTextureToSampledTextureAndDropSamplersAndCheck(GlobalTestSettings.testRoot, GetParam(), Source::GLSL, Semantics::Vulkan, Target::Spv); } // clang-format off INSTANTIATE_TEST_CASE_P( Glsl, CompileVulkanToSpirvTest, ::testing::ValuesIn(std::vector({ // Test looping constructs. // No tests yet for making sure break and continue from a nested loop // goes to the innermost target. "spv.barrier.vert", "spv.do-simple.vert", "spv.do-while-continue-break.vert", "spv.for-complex-condition.vert", "spv.for-continue-break.vert", "spv.for-simple.vert", "spv.for-notest.vert", "spv.for-nobody.vert", "spv.while-continue-break.vert", "spv.while-simple.vert", // vulkan-specific tests "spv.set.vert", "spv.double.comp", "spv.100ops.frag", "spv.130.frag", "spv.140.frag", "spv.150.geom", "spv.150.vert", "spv.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.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.demoteDisabled.frag", "spv.deepRvalue.frag", "spv.depthOut.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.interpOps.frag", "spv.int64.frag", "spv.intcoopmat.comp", "spv.intOps.vert", "spv.layoutNested.vert", "spv.length.frag", "spv.localAggregates.frag", "spv.loops.frag", "spv.loopsArtificial.frag", "spv.matFun.vert", "spv.matrix.frag", "spv.matrix2.frag", "spv.memoryQualifier.frag", "spv.merge-unreachable.frag", "spv.multiStruct.comp", "spv.multiStructFuncall.frag", "spv.newTexture.frag", "spv.noDeadDecorations.vert", "spv.nonSquare.vert", "spv.nonuniform.frag", "spv.nonuniform2.frag", "spv.noWorkgroup.comp", "spv.offsets.frag", "spv.Operations.frag", "spv.paramMemory.frag", "spv.precision.frag", "spv.precisionNonESSamp.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.types.frag", "spv.uint.frag", "spv.uniformArray.frag", "spv.variableArrayIndex.frag", "spv.varyingArray.frag", "spv.varyingArrayIndirect.frag", "spv.vecMatConstruct.frag", "spv.voidFunction.frag", "spv.whileLoop.frag", "spv.AofA.frag", "spv.queryL.frag", "spv.separate.frag", "spv.shortCircuit.frag", "spv.pushConstant.vert", "spv.pushConstantAnon.vert", "spv.subpass.frag", "spv.specConstant.vert", "spv.specConstant.comp", "spv.specConstantComposite.vert", "spv.specConstantOperations.vert", "spv.storageBuffer.vert", "spv.precise.tese", "spv.precise.tesc", "spv.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", })), FileNameAsCustomTestSuffix ); // Cases with deliberately unreachable code. // By default the compiler will aggressively eliminate // unreachable merges and continues. INSTANTIATE_TEST_CASE_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_CASE_P( Glsl, CompileVulkanToDebugSpirvTest, ::testing::ValuesIn(std::vector({ "spv.pp.line.frag", })), FileNameAsCustomTestSuffix ); // clang-format off INSTANTIATE_TEST_CASE_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.float32.frag", "spv.float64.frag", "spv.memoryScopeSemantics.comp", "spv.memoryScopeSemantics_Error.comp", "spv.multiView.frag", "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_CASE_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.OpSelect.frag", "spv.1.4.OpCopyLogical.comp", "spv.1.4.OpCopyLogicalBool.comp", "spv.1.4.OpCopyLogical.funcall.frag", "spv.1.4.image.frag", "spv.1.4.sparseTexture.frag", "spv.1.4.texture.frag", "spv.1.4.constructComposite.comp", })), FileNameAsCustomTestSuffix ); // clang-format off INSTANTIATE_TEST_CASE_P( Hlsl, HlslIoMap, ::testing::ValuesIn(std::vector{ { "spv.register.autoassign.frag", "main_ep", 5, 10, 0, 20, 30, true, false }, { "spv.register.noautoassign.frag", "main_ep", 5, 10, 0, 15, 30, false, false }, { "spv.register.autoassign-2.frag", "main", 5, 10, 0, 15, 30, true, true }, { "spv.register.subpass.frag", "main", 0, 20, 0, 0, 0, true, true }, { "spv.buffer.autoassign.frag", "main", 5, 10, 0, 15, 30, true, true }, { "spv.ssbo.autoassign.frag", "main", 5, 10, 0, 15, 30, true, true }, { "spv.ssboAlias.frag", "main", 0, 0, 0, 0, 83, true, false }, { "spv.rw.autoassign.frag", "main", 5, 10, 20, 15, 30, true, true }, { "spv.register.autoassign.rangetest.frag", "main", glslang::TQualifier::layoutBindingEnd-2, glslang::TQualifier::layoutBindingEnd+5, 20, 30, true, false }, }), FileNameAsCustomTestSuffixIoMap ); // clang-format off INSTANTIATE_TEST_CASE_P( Hlsl, GlslIoMap, ::testing::ValuesIn(std::vector{ { "spv.glsl.register.autoassign.frag", "main", 5, 10, 0, 20, 30, true, false }, { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 0, 15, 30, false, false }, }), FileNameAsCustomTestSuffixIoMap ); // clang-format off INSTANTIATE_TEST_CASE_P( Glsl, CompileOpenGLToSpirvTest, ::testing::ValuesIn(std::vector({ "spv.460.frag", "spv.460.vert", "spv.460.comp", "spv.atomic.comp", "spv.glFragColor.frag", "spv.rankShift.comp", "spv.specConst.vert", "spv.OVR_multiview.vert", "spv.xfbOffsetOnBlockMembersAssignment.vert", "spv.xfbOffsetOnStructMembersAssignment.vert", "spv.xfbOverlapOffsetCheckWithBlockAndMember.vert", "spv.xfbStrideJustOnce.vert", })), FileNameAsCustomTestSuffix ); INSTANTIATE_TEST_CASE_P( Glsl, VulkanSemantics, ::testing::ValuesIn(std::vector({ "vulkan.frag", "vulkan.vert", "vulkan.comp", "samplerlessTextureFunctions.frag", "spv.specConstArrayCheck.vert", })), FileNameAsCustomTestSuffix ); INSTANTIATE_TEST_CASE_P( Glsl, OpenGLSemantics, ::testing::ValuesIn(std::vector({ "glspv.esversion.vert", "glspv.version.frag", "glspv.version.vert", "glspv.frag", "glspv.vert", })), FileNameAsCustomTestSuffix ); INSTANTIATE_TEST_CASE_P( Glsl, VulkanAstSemantics, ::testing::ValuesIn(std::vector({ "vulkan.ast.vert", })), FileNameAsCustomTestSuffix ); INSTANTIATE_TEST_CASE_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_CASE_P( Glsl, CompileVulkanToSpirvTestNV, ::testing::ValuesIn(std::vector({ "spv.sampleMaskOverrideCoverage.frag", "spv.GeometryShaderPassthrough.geom", "spv.viewportArray2.vert", "spv.viewportArray2.tesc", "spv.stereoViewRendering.vert", "spv.stereoViewRendering.tesc", "spv.multiviewPerViewAttributes.vert", "spv.multiviewPerViewAttributes.tesc", "spv.atomicInt64.comp", "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_CASE_P( Glsl, CompileUpgradeTextureToSampledTextureAndDropSamplersTest, ::testing::ValuesIn(std::vector({ "spv.texture.sampler.transform.frag", })), FileNameAsCustomTestSuffix ); // clang-format on } // anonymous namespace } // namespace glslangtest glslang-8.13.3559/gtests/TestFixture.cpp000066400000000000000000000136411360464450000200120ustar00rootroot00000000000000// // 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 EShLangRayGenNV; } else if (stage == "rint") { return EShLangIntersectNV; } else if (stage == "rahit") { return EShLangAnyHitNV; } else if (stage == "rchit") { return EShLangClosestHitNV; } else if (stage == "rmiss") { return EShLangMissNV; } else if (stage == "rcall") { return EShLangCallableNV; } 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 glslang-8.13.3559/gtests/TestFixture.h000077500000000000000000000757011360464450000174670ustar00rootroot00000000000000// // 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); spv::SpvBuildLogger logger; if (success && (controls & EShMsgSpvRules)) { 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); #ifndef GLSLANG_WEB 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); spv::SpvBuildLogger logger; if (success && (controls & EShMsgSpvRules)) { 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 glslang-8.13.3559/gtests/main.cpp000066400000000000000000000057531360464450000164550ustar00rootroot00000000000000// // 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; } glslang-8.13.3559/gtests/pch.cpp000066400000000000000000000031231360464450000162700ustar00rootroot00000000000000// // 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 "pch.h" glslang-8.13.3559/gtests/pch.h000066400000000000000000000032161360464450000157400ustar00rootroot00000000000000#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 */ glslang-8.13.3559/hlsl/000077500000000000000000000000001360464450000144445ustar00rootroot00000000000000glslang-8.13.3559/hlsl/CMakeLists.txt000066400000000000000000000023111360464450000172010ustar00rootroot00000000000000set(SOURCES hlslAttributes.cpp hlslParseHelper.cpp hlslScanContext.cpp hlslOpMap.cpp hlslTokenStream.cpp hlslGrammar.cpp hlslParseables.cpp) set(HEADERS hlslAttributes.h hlslParseHelper.h hlslTokens.h hlslScanContext.h hlslOpMap.h hlslTokenStream.h hlslGrammar.h hlslParseables.h) glslang_pch(SOURCES pch.cpp) add_library(HLSL ${LIB_TYPE} ${SOURCES} ${HEADERS}) set_property(TARGET HLSL PROPERTY FOLDER hlsl) set_property(TARGET HLSL PROPERTY POSITION_INDEPENDENT_CODE ON) if(WIN32 AND BUILD_SHARED_LIBS) set_target_properties(HLSL PROPERTIES PREFIX "") endif() if(WIN32) source_group("Source" FILES ${SOURCES} ${HEADERS}) endif(WIN32) if(ENABLE_GLSLANG_INSTALL) if(BUILD_SHARED_LIBS) install(TARGETS HLSL 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(ENABLE_GLSLANG_INSTALL) glslang-8.13.3559/hlsl/hlslAttributes.cpp000066400000000000000000000156071360464450000201720ustar00rootroot00000000000000// // 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 glslang-8.13.3559/hlsl/hlslAttributes.h000066400000000000000000000041441360464450000176310ustar00rootroot00000000000000// // Copyright (C) 2016 LunarG, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of Google, Inc., nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // #ifndef HLSLATTRIBUTES_H_ #define HLSLATTRIBUTES_H_ #include #include #include "../glslang/MachineIndependent/attribute.h" #include "../glslang/MachineIndependent/SymbolTable.h" #include "hlslScanContext.h" namespace glslang { class TFunctionDeclarator { public: TFunctionDeclarator() : function(nullptr), body(nullptr) { } TSourceLoc loc; TFunction* function; TAttributes attributes; TVector* body; }; } // end namespace glslang #endif // HLSLATTRIBUTES_H_ glslang-8.13.3559/hlsl/hlslGrammar.cpp000066400000000000000000004000321360464450000174200ustar00rootroot00000000000000// // 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)) 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; // declarator_list // : declarator // : identifier HlslToken idToken; TIntermAggregate* initializers = nullptr; while (acceptIdentifier(idToken)) { TString *fullName = idToken.string; if (parseContext.symbolTable.atGlobalLevel()) parseContext.getFullNamespaceName(fullName); if (peekTokenClass(EHTokLeftParen)) { // looks like function parameters // merge in the attributes into the return type parseContext.transferTypeAttributes(token.loc, declarator.attributes, declaredType, true); // Potentially rename shader entry point function. No-op most of the time. parseContext.renameShaderFunction(fullName); // function_parameters declarator.function = new TFunction(fullName, declaredType); if (!acceptFunctionParameters(*declarator.function)) { expected("function parameter list"); return false; } // post_decls acceptPostDecls(declarator.function->getWritableType().getQualifier()); // compound_statement (function body definition) or just a prototype? declarator.loc = token.loc; if (peekTokenClass(EHTokLeftBrace)) { if (declarator_list) parseContext.error(idToken.loc, "function body can't be in a declarator list", "{", ""); if (typedefDecl) parseContext.error(idToken.loc, "function body can't be in a typedef", "{", ""); return acceptFunctionDefinition(declarator, nodeList, nullptr); } else { if (typedefDecl) parseContext.error(idToken.loc, "function typedefs not implemented", "{", ""); parseContext.handleFunctionDeclarator(declarator.loc, *declarator.function, true); } } else { // A variable declaration. // merge in the attributes, the first time around, into the shared type if (! declarator_list) parseContext.transferTypeAttributes(token.loc, declarator.attributes, declaredType); // Fix the storage qualifier if it's a global. if (declaredType.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) declaredType.getQualifier().storage = EvqUniform; // recognize array_specifier TArraySizes* arraySizes = nullptr; acceptArraySpecifier(arraySizes); // We can handle multiple variables per type declaration, so // the number of types can expand when arrayness is different. TType variableType; variableType.shallowCopy(declaredType); // In the most general case, arrayness is potentially coming both from the // declared type and from the variable: "int[] a[];" or just one or the other. // Merge it all to the variableType, so all arrayness is part of the variableType. variableType.transferArraySizes(arraySizes); variableType.copyArrayInnerSizes(declaredType.getArraySizes()); // samplers accept immediate sampler state if (variableType.getBasicType() == EbtSampler) { if (! acceptSamplerState()) return false; } // post_decls acceptPostDecls(variableType.getQualifier()); // EQUAL assignment_expression TIntermTyped* expressionNode = nullptr; if (acceptTokenClass(EHTokAssign)) { if (typedefDecl) parseContext.error(idToken.loc, "can't have an initializer", "typedef", ""); if (! acceptAssignmentExpression(expressionNode)) { expected("initializer"); return false; } } // TODO: things scoped within an annotation need their own name space; // TODO: strings are not yet handled. if (variableType.getBasicType() != EbtString && parseContext.getAnnotationNestingLevel() == 0) { if (typedefDecl) parseContext.declareTypedef(idToken.loc, *fullName, variableType); else if (variableType.getBasicType() == EbtBlock) { if (expressionNode) parseContext.error(idToken.loc, "buffer aliasing not yet supported", "block initializer", ""); parseContext.declareBlock(idToken.loc, variableType, fullName); parseContext.declareStructBufferCounter(idToken.loc, variableType, *fullName); } else { if (variableType.getQualifier().storage == EvqUniform && ! variableType.containsOpaque()) { // this isn't really an individual variable, but a member of the $Global buffer parseContext.growGlobalUniformBlock(idToken.loc, variableType, *fullName); } else { // Declare the variable and add any initializer code to the AST. // The top-level node is always made into an aggregate, as that's // historically how the AST has been. initializers = intermediate.growAggregate(initializers, parseContext.declareVariable(idToken.loc, *fullName, variableType, expressionNode), idToken.loc); } } } } // COMMA if (acceptTokenClass(EHTokComma)) declarator_list = true; } // The top-level initializer node is a sequence. if (initializers != nullptr) initializers->setOperator(EOpSequence); // 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: 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) { // 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(arguments->getLoc(), constructorFunction, arguments); return node != nullptr; } return false; } // The function_call identifier was already recognized, and passed in as idToken. // // function_call // : [idToken] arguments // bool HlslGrammar::acceptFunctionCall(const TSourceLoc& loc, TString& name, TIntermTyped*& node, TIntermTyped* baseObject) { // name TString* functionName = nullptr; if (baseObject == nullptr) { functionName = &name; } else if (parseContext.isBuiltInMethod(loc, baseObject, name)) { // Built-in methods are not in the symbol table as methods, but as global functions // taking an explicit 'this' as the first argument. functionName = NewPoolTString(BUILTIN_PREFIX); functionName->append(name); } else { if (! baseObject->getType().isStruct()) { expected("structure"); return false; } functionName = NewPoolTString(""); functionName->append(baseObject->getType().getTypeName()); parseContext.addScopeMangler(*functionName); functionName->append(name); } // function TFunction* function = new TFunction(functionName, TType(EbtVoid)); // arguments TIntermTyped* arguments = nullptr; if (baseObject != nullptr) { // Non-static member functions have an implicit first argument of the base object. parseContext.handleFunctionArgument(function, arguments, baseObject); } if (! acceptArguments(function, arguments)) return false; // call node = parseContext.handleFunctionCall(loc, function, arguments); return node != nullptr; } // arguments // : LEFT_PAREN expression COMMA expression COMMA ... RIGHT_PAREN // // The arguments are pushed onto the 'function' argument list and // onto the 'arguments' aggregate. // bool HlslGrammar::acceptArguments(TFunction* function, TIntermTyped*& arguments) { // LEFT_PAREN if (! acceptTokenClass(EHTokLeftParen)) return false; // RIGHT_PAREN if (acceptTokenClass(EHTokRightParen)) return true; // must now be at least one expression... do { // expression TIntermTyped* arg; if (! acceptAssignmentExpression(arg)) return false; // hook it up parseContext.handleFunctionArgument(function, arguments, arg); // COMMA if (! acceptTokenClass(EHTokComma)) break; } while (true); // RIGHT_PAREN if (! acceptTokenClass(EHTokRightParen)) { expected(")"); return false; } return true; } bool HlslGrammar::acceptLiteral(TIntermTyped*& node) { switch (token.tokenClass) { case EHTokIntConstant: node = intermediate.addConstantUnion(token.i, token.loc, true); break; case EHTokUintConstant: node = intermediate.addConstantUnion(token.u, token.loc, true); break; case EHTokFloat16Constant: node = intermediate.addConstantUnion(token.d, EbtFloat16, token.loc, true); break; case EHTokFloatConstant: node = intermediate.addConstantUnion(token.d, EbtFloat, token.loc, true); break; case EHTokDoubleConstant: node = intermediate.addConstantUnion(token.d, EbtDouble, token.loc, true); break; case EHTokBoolConstant: node = intermediate.addConstantUnion(token.b, token.loc, true); break; case EHTokStringConstant: node = intermediate.addConstantUnion(token.string, token.loc, true); break; default: return false; } advanceToken(); return true; } // simple_statement // : SEMICOLON // | declaration_statement // | expression SEMICOLON // bool HlslGrammar::acceptSimpleStatement(TIntermNode*& statement) { // SEMICOLON if (acceptTokenClass(EHTokSemicolon)) return true; // declaration if (acceptDeclaration(statement)) return true; // expression TIntermTyped* node; if (acceptExpression(node)) statement = node; else return false; // SEMICOLON (following an expression) if (acceptTokenClass(EHTokSemicolon)) return true; else { expected(";"); return false; } } // compound_statement // : LEFT_CURLY statement statement ... RIGHT_CURLY // bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) { TIntermAggregate* compoundStatement = nullptr; // LEFT_CURLY if (! acceptTokenClass(EHTokLeftBrace)) return false; // statement statement ... TIntermNode* statement = nullptr; while (acceptStatement(statement)) { TIntermBranch* branch = statement ? statement->getAsBranchNode() : nullptr; if (branch != nullptr && (branch->getFlowOp() == EOpCase || branch->getFlowOp() == EOpDefault)) { // hook up individual subsequences within a switch statement parseContext.wrapupSwitchSubsequence(compoundStatement, statement); compoundStatement = nullptr; } else { // hook it up to the growing compound statement compoundStatement = intermediate.growAggregate(compoundStatement, statement); } } if (compoundStatement) compoundStatement->setOperator(EOpSequence); retStatement = compoundStatement; // RIGHT_CURLY return acceptTokenClass(EHTokRightBrace); } bool HlslGrammar::acceptScopedStatement(TIntermNode*& statement) { parseContext.pushScope(); bool result = acceptStatement(statement); parseContext.popScope(); return result; } bool HlslGrammar::acceptScopedCompoundStatement(TIntermNode*& statement) { parseContext.pushScope(); bool result = acceptCompoundStatement(statement); parseContext.popScope(); return result; } // statement // : attributes attributed_statement // // attributed_statement // : compound_statement // | simple_statement // | selection_statement // | switch_statement // | case_label // | default_label // | iteration_statement // | jump_statement // bool HlslGrammar::acceptStatement(TIntermNode*& statement) { statement = nullptr; // attributes TAttributes attributes; acceptAttributes(attributes); // attributed_statement switch (peek()) { case EHTokLeftBrace: return acceptScopedCompoundStatement(statement); case EHTokIf: return acceptSelectionStatement(statement, attributes); case EHTokSwitch: return acceptSwitchStatement(statement, attributes); case EHTokFor: case EHTokDo: case EHTokWhile: return acceptIterationStatement(statement, attributes); case EHTokContinue: case EHTokBreak: case EHTokDiscard: case EHTokReturn: return acceptJumpStatement(statement); case EHTokCase: return acceptCaseLabel(statement); case EHTokDefault: return acceptDefaultLabel(statement); case EHTokRightBrace: // Performance: not strictly necessary, but stops a bunch of hunting early, // and is how sequences of statements end. return false; default: return acceptSimpleStatement(statement); } return true; } // attributes // : [zero or more:] bracketed-attribute // // bracketed-attribute: // : LEFT_BRACKET scoped-attribute RIGHT_BRACKET // : LEFT_BRACKET LEFT_BRACKET scoped-attribute RIGHT_BRACKET RIGHT_BRACKET // // scoped-attribute: // : attribute // | namespace COLON COLON attribute // // attribute: // : UNROLL // | UNROLL LEFT_PAREN literal RIGHT_PAREN // | FASTOPT // | ALLOW_UAV_CONDITION // | BRANCH // | FLATTEN // | FORCECASE // | CALL // | DOMAIN // | EARLYDEPTHSTENCIL // | INSTANCE // | MAXTESSFACTOR // | OUTPUTCONTROLPOINTS // | OUTPUTTOPOLOGY // | PARTITIONING // | PATCHCONSTANTFUNC // | NUMTHREADS LEFT_PAREN x_size, y_size,z z_size RIGHT_PAREN // void HlslGrammar::acceptAttributes(TAttributes& attributes) { // For now, accept the [ XXX(X) ] syntax, but drop all but // numthreads, which is used to set the CS local size. // TODO: subset to correct set? Pass on? do { HlslToken attributeToken; // LEFT_BRACKET? if (! acceptTokenClass(EHTokLeftBracket)) return; // another LEFT_BRACKET? bool doubleBrackets = false; if (acceptTokenClass(EHTokLeftBracket)) doubleBrackets = true; // attribute? (could be namespace; will adjust later) if (!acceptIdentifier(attributeToken)) { if (!peekTokenClass(EHTokRightBracket)) { expected("namespace or attribute identifier"); advanceToken(); } } TString nameSpace; if (acceptTokenClass(EHTokColonColon)) { // namespace COLON COLON nameSpace = *attributeToken.string; // attribute if (!acceptIdentifier(attributeToken)) { expected("attribute identifier"); return; } } TIntermAggregate* expressions = nullptr; // (x, ...) if (acceptTokenClass(EHTokLeftParen)) { expressions = new TIntermAggregate; TIntermTyped* node; bool expectingExpression = false; while (acceptAssignmentExpression(node)) { expectingExpression = false; expressions->getSequence().push_back(node); if (acceptTokenClass(EHTokComma)) expectingExpression = true; } // 'expressions' is an aggregate with the expressions in it if (! acceptTokenClass(EHTokRightParen)) expected(")"); // Error for partial or missing expression if (expectingExpression || expressions->getSequence().empty()) expected("expression"); } // RIGHT_BRACKET if (!acceptTokenClass(EHTokRightBracket)) { expected("]"); return; } // another RIGHT_BRACKET? if (doubleBrackets && !acceptTokenClass(EHTokRightBracket)) { expected("]]"); return; } // Add any values we found into the attribute map. if (attributeToken.string != nullptr) { TAttributeType attributeType = parseContext.attributeFromName(nameSpace, *attributeToken.string); if (attributeType == EatNone) parseContext.warn(attributeToken.loc, "unrecognized attribute", attributeToken.string->c_str(), ""); else { TAttributeArgs attributeArgs = { attributeType, expressions }; attributes.push_back(attributeArgs); } } } while (true); } // selection_statement // : IF LEFT_PAREN expression RIGHT_PAREN statement // : IF LEFT_PAREN expression RIGHT_PAREN statement ELSE statement // bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement, const TAttributes& attributes) { TSourceLoc loc = token.loc; // IF if (! acceptTokenClass(EHTokIf)) return false; // so that something declared in the condition is scoped to the lifetimes // of the then-else statements parseContext.pushScope(); // LEFT_PAREN expression RIGHT_PAREN TIntermTyped* condition; if (! acceptParenExpression(condition)) return false; condition = parseContext.convertConditionalExpression(loc, condition); if (condition == nullptr) return false; // create the child statements TIntermNodePair thenElse = { nullptr, nullptr }; ++parseContext.controlFlowNestingLevel; // this only needs to work right if no errors // then statement if (! acceptScopedStatement(thenElse.node1)) { expected("then statement"); return false; } // ELSE if (acceptTokenClass(EHTokElse)) { // else statement if (! acceptScopedStatement(thenElse.node2)) { expected("else statement"); return false; } } // Put the pieces together statement = intermediate.addSelection(condition, thenElse, loc); parseContext.handleSelectionAttributes(loc, statement->getAsSelectionNode(), attributes); parseContext.popScope(); --parseContext.controlFlowNestingLevel; return true; } // switch_statement // : SWITCH LEFT_PAREN expression RIGHT_PAREN compound_statement // bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement, const TAttributes& attributes) { // SWITCH TSourceLoc loc = token.loc; if (! acceptTokenClass(EHTokSwitch)) return false; // LEFT_PAREN expression RIGHT_PAREN parseContext.pushScope(); TIntermTyped* switchExpression; if (! acceptParenExpression(switchExpression)) { parseContext.popScope(); return false; } // compound_statement parseContext.pushSwitchSequence(new TIntermSequence); ++parseContext.controlFlowNestingLevel; bool statementOkay = acceptCompoundStatement(statement); --parseContext.controlFlowNestingLevel; if (statementOkay) statement = parseContext.addSwitch(loc, switchExpression, statement ? statement->getAsAggregate() : nullptr, attributes); parseContext.popSwitchSequence(); parseContext.popScope(); return statementOkay; } // iteration_statement // : WHILE LEFT_PAREN condition RIGHT_PAREN statement // | DO LEFT_BRACE statement RIGHT_BRACE WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON // | FOR LEFT_PAREN for_init_statement for_rest_statement RIGHT_PAREN statement // // Non-speculative, only call if it needs to be found; WHILE or DO or FOR already seen. bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement, const TAttributes& attributes) { TSourceLoc loc = token.loc; TIntermTyped* condition = nullptr; EHlslTokenClass loop = peek(); assert(loop == EHTokDo || loop == EHTokFor || loop == EHTokWhile); // WHILE or DO or FOR advanceToken(); TIntermLoop* loopNode = nullptr; switch (loop) { case EHTokWhile: // so that something declared in the condition is scoped to the lifetime // of the while sub-statement parseContext.pushScope(); // this only needs to work right if no errors parseContext.nestLooping(); ++parseContext.controlFlowNestingLevel; // LEFT_PAREN condition RIGHT_PAREN if (! acceptParenExpression(condition)) return false; condition = parseContext.convertConditionalExpression(loc, condition); if (condition == nullptr) return false; // statement if (! acceptScopedStatement(statement)) { expected("while sub-statement"); return false; } parseContext.unnestLooping(); parseContext.popScope(); --parseContext.controlFlowNestingLevel; loopNode = intermediate.addLoop(statement, condition, nullptr, true, loc); statement = loopNode; break; case EHTokDo: parseContext.nestLooping(); // this only needs to work right if no errors ++parseContext.controlFlowNestingLevel; // statement if (! acceptScopedStatement(statement)) { expected("do sub-statement"); return false; } // WHILE if (! acceptTokenClass(EHTokWhile)) { expected("while"); return false; } // LEFT_PAREN condition RIGHT_PAREN if (! acceptParenExpression(condition)) return false; condition = parseContext.convertConditionalExpression(loc, condition); if (condition == nullptr) return false; if (! acceptTokenClass(EHTokSemicolon)) expected(";"); parseContext.unnestLooping(); --parseContext.controlFlowNestingLevel; loopNode = intermediate.addLoop(statement, condition, 0, false, loc); statement = loopNode; break; case EHTokFor: { // LEFT_PAREN if (! acceptTokenClass(EHTokLeftParen)) expected("("); // so that something declared in the condition is scoped to the lifetime // of the for sub-statement parseContext.pushScope(); // initializer TIntermNode* initNode = nullptr; if (! acceptSimpleStatement(initNode)) expected("for-loop initializer statement"); parseContext.nestLooping(); // this only needs to work right if no errors ++parseContext.controlFlowNestingLevel; // condition SEMI_COLON acceptExpression(condition); if (! acceptTokenClass(EHTokSemicolon)) expected(";"); if (condition != nullptr) { condition = parseContext.convertConditionalExpression(loc, condition); if (condition == nullptr) return false; } // iterator SEMI_COLON TIntermTyped* iterator = nullptr; acceptExpression(iterator); if (! acceptTokenClass(EHTokRightParen)) expected(")"); // statement if (! acceptScopedStatement(statement)) { expected("for sub-statement"); return false; } statement = intermediate.addForLoop(statement, initNode, condition, iterator, true, loc, loopNode); parseContext.popScope(); parseContext.unnestLooping(); --parseContext.controlFlowNestingLevel; break; } default: return false; } parseContext.handleLoopAttributes(loc, loopNode, attributes); return true; } // jump_statement // : CONTINUE SEMICOLON // | BREAK SEMICOLON // | DISCARD SEMICOLON // | RETURN SEMICOLON // | RETURN expression SEMICOLON // bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) { EHlslTokenClass jump = peek(); switch (jump) { case EHTokContinue: case EHTokBreak: case EHTokDiscard: case EHTokReturn: advanceToken(); break; default: // not something we handle in this function return false; } switch (jump) { case EHTokContinue: statement = intermediate.addBranch(EOpContinue, token.loc); if (parseContext.loopNestingLevel == 0) { expected("loop"); return false; } break; case EHTokBreak: statement = intermediate.addBranch(EOpBreak, token.loc); if (parseContext.loopNestingLevel == 0 && parseContext.switchSequenceStack.size() == 0) { expected("loop or switch"); return false; } break; case EHTokDiscard: statement = intermediate.addBranch(EOpKill, token.loc); break; case EHTokReturn: { // expression TIntermTyped* node; if (acceptExpression(node)) { // hook it up statement = parseContext.handleReturnValue(token.loc, node); } else statement = intermediate.addBranch(EOpReturn, token.loc); break; } default: assert(0); return false; } // SEMICOLON if (! acceptTokenClass(EHTokSemicolon)) expected(";"); return true; } // case_label // : CASE expression COLON // bool HlslGrammar::acceptCaseLabel(TIntermNode*& statement) { TSourceLoc loc = token.loc; if (! acceptTokenClass(EHTokCase)) return false; TIntermTyped* expression; if (! acceptExpression(expression)) { expected("case expression"); return false; } if (! acceptTokenClass(EHTokColon)) { expected(":"); return false; } statement = parseContext.intermediate.addBranch(EOpCase, expression, loc); return true; } // default_label // : DEFAULT COLON // bool HlslGrammar::acceptDefaultLabel(TIntermNode*& statement) { TSourceLoc loc = token.loc; if (! acceptTokenClass(EHTokDefault)) return false; if (! acceptTokenClass(EHTokColon)) { expected(":"); return false; } statement = parseContext.intermediate.addBranch(EOpDefault, loc); return true; } // array_specifier // : LEFT_BRACKET integer_expression RGHT_BRACKET ... // optional // : LEFT_BRACKET RGHT_BRACKET // optional // void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) { arraySizes = nullptr; // Early-out if there aren't any array dimensions if (!peekTokenClass(EHTokLeftBracket)) return; // If we get here, we have at least one array dimension. This will track the sizes we find. arraySizes = new TArraySizes; // Collect each array dimension. while (acceptTokenClass(EHTokLeftBracket)) { TSourceLoc loc = token.loc; TIntermTyped* sizeExpr = nullptr; // Array sizing expression is optional. If omitted, array will be later sized by initializer list. const bool hasArraySize = acceptAssignmentExpression(sizeExpr); if (! acceptTokenClass(EHTokRightBracket)) { expected("]"); return; } if (hasArraySize) { TArraySize arraySize; parseContext.arraySizeCheck(loc, sizeExpr, arraySize); arraySizes->addInnerSize(arraySize); } else { arraySizes->addInnerSize(0); // sized by initializers. } } } // post_decls // : COLON semantic // optional // COLON PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN // optional // COLON REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt (COMMA SPACEN)opt RIGHT_PAREN // optional // COLON LAYOUT layout_qualifier_list // annotations // optional // // Return true if any tokens were accepted. That is, // false can be returned on successfully recognizing nothing, // not necessarily meaning bad syntax. // bool HlslGrammar::acceptPostDecls(TQualifier& qualifier) { bool found = false; do { // COLON if (acceptTokenClass(EHTokColon)) { found = true; HlslToken idToken; if (peekTokenClass(EHTokLayout)) acceptLayoutQualifierList(qualifier); else if (acceptTokenClass(EHTokPackOffset)) { // PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN if (! acceptTokenClass(EHTokLeftParen)) { expected("("); return false; } HlslToken locationToken; if (! acceptIdentifier(locationToken)) { expected("c[subcomponent][.component]"); return false; } HlslToken componentToken; if (acceptTokenClass(EHTokDot)) { if (! acceptIdentifier(componentToken)) { expected("component"); return false; } } if (! acceptTokenClass(EHTokRightParen)) { expected(")"); break; } parseContext.handlePackOffset(locationToken.loc, qualifier, *locationToken.string, componentToken.string); } else if (! acceptIdentifier(idToken)) { expected("layout, semantic, packoffset, or register"); return false; } else if (*idToken.string == "register") { // REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt (COMMA SPACEN)opt RIGHT_PAREN // LEFT_PAREN if (! acceptTokenClass(EHTokLeftParen)) { expected("("); return false; } HlslToken registerDesc; // for Type# HlslToken profile; if (! acceptIdentifier(registerDesc)) { expected("register number description"); return false; } if (registerDesc.string->size() > 1 && !isdigit((*registerDesc.string)[1]) && acceptTokenClass(EHTokComma)) { // Then we didn't really see the registerDesc yet, it was // actually the profile. Adjust... profile = registerDesc; if (! acceptIdentifier(registerDesc)) { expected("register number description"); return false; } } int subComponent = 0; if (acceptTokenClass(EHTokLeftBracket)) { // LEFT_BRACKET subcomponent RIGHT_BRACKET if (! peekTokenClass(EHTokIntConstant)) { expected("literal integer"); return false; } subComponent = token.i; advanceToken(); if (! acceptTokenClass(EHTokRightBracket)) { expected("]"); break; } } // (COMMA SPACEN)opt HlslToken spaceDesc; if (acceptTokenClass(EHTokComma)) { if (! acceptIdentifier(spaceDesc)) { expected ("space identifier"); return false; } } // RIGHT_PAREN if (! acceptTokenClass(EHTokRightParen)) { expected(")"); break; } parseContext.handleRegister(registerDesc.loc, qualifier, profile.string, *registerDesc.string, subComponent, spaceDesc.string); } else { // semantic, in idToken.string TString semanticUpperCase = *idToken.string; std::transform(semanticUpperCase.begin(), semanticUpperCase.end(), semanticUpperCase.begin(), ::toupper); parseContext.handleSemantic(idToken.loc, qualifier, mapSemantic(semanticUpperCase.c_str()), semanticUpperCase); } } else if (peekTokenClass(EHTokLeftAngle)) { found = true; acceptAnnotations(qualifier); } else break; } while (true); return found; } // // Get the stream of tokens from the scanner, but skip all syntactic/semantic // processing. // bool HlslGrammar::captureBlockTokens(TVector& tokens) { if (! peekTokenClass(EHTokLeftBrace)) return false; int braceCount = 0; do { switch (peek()) { case EHTokLeftBrace: ++braceCount; break; case EHTokRightBrace: --braceCount; break; case EHTokNone: // End of input before balance { } is bad... return false; default: break; } tokens.push_back(token); advanceToken(); } while (braceCount > 0); return true; } // Return a string for just the types that can also be declared as an identifier. const char* HlslGrammar::getTypeString(EHlslTokenClass tokenClass) const { switch (tokenClass) { case EHTokSample: return "sample"; case EHTokHalf: return "half"; case EHTokHalf1x1: return "half1x1"; case EHTokHalf1x2: return "half1x2"; case EHTokHalf1x3: return "half1x3"; case EHTokHalf1x4: return "half1x4"; case EHTokHalf2x1: return "half2x1"; case EHTokHalf2x2: return "half2x2"; case EHTokHalf2x3: return "half2x3"; case EHTokHalf2x4: return "half2x4"; case EHTokHalf3x1: return "half3x1"; case EHTokHalf3x2: return "half3x2"; case EHTokHalf3x3: return "half3x3"; case EHTokHalf3x4: return "half3x4"; case EHTokHalf4x1: return "half4x1"; case EHTokHalf4x2: return "half4x2"; case EHTokHalf4x3: return "half4x3"; case EHTokHalf4x4: return "half4x4"; case EHTokBool: return "bool"; case EHTokFloat: return "float"; case EHTokDouble: return "double"; case EHTokInt: return "int"; case EHTokUint: return "uint"; case EHTokMin16float: return "min16float"; case EHTokMin10float: return "min10float"; case EHTokMin16int: return "min16int"; case EHTokMin12int: return "min12int"; case EHTokConstantBuffer: return "ConstantBuffer"; case EHTokLayout: return "layout"; default: return nullptr; } } } // end namespace glslang glslang-8.13.3559/hlsl/hlslGrammar.h000066400000000000000000000150171360464450000170720ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/hlsl/hlslOpMap.cpp000066400000000000000000000131011360464450000170430ustar00rootroot00000000000000// // 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 glslang-8.13.3559/hlsl/hlslOpMap.h000066400000000000000000000044271360464450000165230ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/hlsl/hlslParseHelper.cpp000077500000000000000000015103011360464450000202510ustar00rootroot00000000000000// // 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 "../glslang/Include/Common.h" #include "../glslang/MachineIndependent/Scan.h" #include "../glslang/MachineIndependent/preprocessor/PpContext.h" #include "../glslang/OSDependent/osinclude.h" #include #include #include #include #include namespace glslang { HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, const TString sourceEntryPointName, bool forwardCompatible, EShMessages messages) : TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, forwardCompatible, messages, &sourceEntryPointName), annotationNestingLevel(0), inputPatch(nullptr), nextInLocation(0), nextOutLocation(0), entryPointFunction(nullptr), entryPointFunctionBody(nullptr), gsStreamOutput(nullptr), clipDistanceOutput(nullptr), cullDistanceOutput(nullptr), clipDistanceInput(nullptr), cullDistanceInput(nullptr) { globalUniformDefaults.clear(); globalUniformDefaults.layoutMatrix = ElmRowMajor; globalUniformDefaults.layoutPacking = ElpStd140; globalBufferDefaults.clear(); globalBufferDefaults.layoutMatrix = ElmRowMajor; globalBufferDefaults.layoutPacking = ElpStd430; globalInputDefaults.clear(); globalOutputDefaults.clear(); clipSemanticNSizeIn.fill(0); cullSemanticNSizeIn.fill(0); clipSemanticNSizeOut.fill(0); cullSemanticNSizeOut.fill(0); // "Shaders in the transform // feedback capturing mode have an initial global default of // layout(xfb_buffer = 0) out;" if (language == EShLangVertex || language == EShLangTessControl || language == EShLangTessEvaluation || language == EShLangGeometry) globalOutputDefaults.layoutXfbBuffer = 0; if (language == EShLangGeometry) globalOutputDefaults.layoutStream = 0; } 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) { if (sbArray == nullptr) return nullptr; // Now we'll apply the [] index to that array const TOperator idxOp = (index->getQualifier().storage == EvqConst) ? EOpIndexDirect : EOpIndexIndirect; TIntermTyped* element = intermediate.addIndex(idxOp, sbArray, index, loc); const TType derefType(sbArray->getType(), 0); element->setType(derefType); return element; } return nullptr; } // // Cast index value to a uint if it isn't already (for operator[], load indexes, etc) TIntermTyped* HlslParseContext::makeIntegerIndex(TIntermTyped* index) { const TBasicType indexBasicType = index->getType().getBasicType(); const int vecSize = index->getType().getVectorSize(); // We can use int types directly as the index if (indexBasicType == EbtInt || indexBasicType == EbtUint || indexBasicType == EbtInt64 || indexBasicType == EbtUint64) return index; // Cast index to unsigned integer if it isn't one. return intermediate.addConversion(EOpConstructUint, TType(EbtUint, EvqTemporary, vecSize), index); } // // Handle seeing a base[index] dereference in the grammar. // TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) { index = makeIntegerIndex(index); if (index == nullptr) { error(loc, " unknown index type ", "", ""); return nullptr; } TIntermTyped* result = handleBracketOperator(loc, base, index); if (result != nullptr) return result; // it was handled as an operator[] bool flattened = false; int indexValue = 0; if (index->getQualifier().isFrontEndConstant()) indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); variableCheck(base); if (! base->isArray() && ! base->isMatrix() && ! base->isVector()) { if (base->getAsSymbolNode()) error(loc, " left of '[' is not of type array, matrix, or vector ", base->getAsSymbolNode()->getName().c_str(), ""); else error(loc, " left of '[' is not of type array, matrix, or vector ", "expression", ""); } else if (base->getType().getQualifier().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) { const TType& type = variable.getType(); // If it's a standalone built-in, there is nothing to flatten if (type.isBuiltIn() && !type.isStruct()) return; auto entry = flattenMap.insert(std::make_pair(variable.getUniqueId(), TFlattenData(type.getQualifier().layoutBinding, type.getQualifier().layoutLocation))); // the item is a map pair, so first->second is the TFlattenData itself. flatten(variable, type, entry.first->second, variable.getName(), linkage, type.getQualifier(), nullptr); } // Recursively flatten the given variable at the provided type, building the flattenData as we go. // // This is mutually recursive with flattenStruct and flattenArray. // We are going to flatten an arbitrarily nested composite structure into a linear sequence of // members, and later on, we want to turn a path through the tree structure into a final // location in this linear sequence. // // If the tree was N-ary, that can be directly calculated. However, we are dealing with // arbitrary numbers - perhaps a struct of 7 members containing an array of 3. Thus, we must // build a data structure to allow the sequence of bracket and dot operators on arrays and // structs to arrive at the proper member. // // To avoid storing a tree with pointers, we are going to flatten the tree into a vector of integers. // The leaves are the indexes into the flattened member array. // Each level will have the next location for the Nth item stored sequentially, so for instance: // // struct { float2 a[2]; int b; float4 c[3] }; // // This will produce the following flattened tree: // Pos: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 // (3, 7, 8, 5, 6, 0, 1, 2, 11, 12, 13, 3, 4, 5} // // Given a reference to mystruct.c[1], the access chain is (2,1), so we traverse: // (0+2) = 8 --> (8+1) = 12 --> 12 = 4 // // so the 4th flattened member in traversal order is ours. // int HlslParseContext::flatten(const TVariable& variable, const TType& type, TFlattenData& flattenData, TString name, bool linkage, const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes) { // If something is an arrayed struct, the array flattener will recursively call flatten() // to then flatten the struct, so this is an "if else": we don't do both. if (type.isArray()) return flattenArray(variable, type, flattenData, name, linkage, outerQualifier); else if (type.isStruct()) return flattenStruct(variable, type, flattenData, name, linkage, outerQualifier, builtInArraySizes); else { assert(0); // should never happen return -1; } } // Add a single flattened member to the flattened data being tracked for the composite // Returns true for the final flattening level. int HlslParseContext::addFlattenedMember(const TVariable& variable, const TType& type, TFlattenData& flattenData, const TString& memberName, bool linkage, const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes) { if (!shouldFlatten(type, outerQualifier.storage, false)) { // This is as far as we flatten. Insert the variable. TVariable* memberVariable = makeInternalVariable(memberName, type); mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier()); if (flattenData.nextBinding != TQualifier::layoutBindingEnd) memberVariable->getWritableType().getQualifier().layoutBinding = flattenData.nextBinding++; if (memberVariable->getType().isBuiltIn()) { // inherited locations are nonsensical for built-ins (TODO: what if semantic had a number) memberVariable->getWritableType().getQualifier().layoutLocation = TQualifier::layoutLocationEnd; } else { // inherited locations must be auto bumped, not replicated if (flattenData.nextLocation != TQualifier::layoutLocationEnd) { memberVariable->getWritableType().getQualifier().layoutLocation = flattenData.nextLocation; flattenData.nextLocation += intermediate.computeTypeLocationSize(memberVariable->getType(), language); nextOutLocation = std::max(nextOutLocation, flattenData.nextLocation); } } flattenData.offsets.push_back(static_cast(flattenData.members.size())); flattenData.members.push_back(memberVariable); if (linkage) trackLinkage(*memberVariable); return static_cast(flattenData.offsets.size()) - 1; // location of the member reference } else { // Further recursion required return flatten(variable, type, flattenData, memberName, linkage, outerQualifier, builtInArraySizes); } } // Figure out the mapping between an aggregate's top members and an // equivalent set of individual variables. // // Assumes shouldFlatten() or equivalent was called first. int HlslParseContext::flattenStruct(const TVariable& variable, const TType& type, TFlattenData& flattenData, TString name, bool linkage, const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes) { assert(type.isStruct()); auto members = *type.getStruct(); // Reserve space for this tree level. int start = static_cast(flattenData.offsets.size()); int pos = start; flattenData.offsets.resize(int(pos + members.size()), -1); for (int member = 0; member < (int)members.size(); ++member) { TType& dereferencedType = *members[member].type; if (dereferencedType.isBuiltIn()) splitBuiltIn(variable.getName(), dereferencedType, builtInArraySizes, outerQualifier); else { const int mpos = addFlattenedMember(variable, dereferencedType, flattenData, name + "." + dereferencedType.getFieldName(), linkage, outerQualifier, builtInArraySizes == nullptr && dereferencedType.isArray() ? dereferencedType.getArraySizes() : builtInArraySizes); flattenData.offsets[pos++] = mpos; } } return start; } // Figure out mapping between an array's members and an // equivalent set of individual variables. // // Assumes shouldFlatten() or equivalent was called first. int HlslParseContext::flattenArray(const TVariable& variable, const TType& type, TFlattenData& flattenData, TString name, bool linkage, const TQualifier& outerQualifier) { assert(type.isSizedArray()); const int size = type.getOuterArraySize(); const TType dereferencedType(type, 0); if (name.empty()) name = variable.getName(); // Reserve space for this tree level. int start = static_cast(flattenData.offsets.size()); int pos = start; flattenData.offsets.resize(int(pos + size), -1); for (int element=0; element < size; ++element) { char elementNumBuf[20]; // sufficient for MAXINT snprintf(elementNumBuf, sizeof(elementNumBuf)-1, "[%d]", element); const int mpos = addFlattenedMember(variable, dereferencedType, flattenData, name + elementNumBuf, linkage, outerQualifier, type.getArraySizes()); flattenData.offsets[pos++] = mpos; } return start; } // Return true if we have flattened this node. bool HlslParseContext::wasFlattened(const TIntermTyped* node) const { return node != nullptr && node->getAsSymbolNode() != nullptr && wasFlattened(node->getAsSymbolNode()->getId()); } // Return true if we have split this structure bool HlslParseContext::wasSplit(const TIntermTyped* node) const { return node != nullptr && node->getAsSymbolNode() != nullptr && wasSplit(node->getAsSymbolNode()->getId()); } // Turn an access into an aggregate that was flattened to instead be // an access to the individual variable the member was flattened to. // Assumes wasFlattened() or equivalent was called first. TIntermTyped* HlslParseContext::flattenAccess(TIntermTyped* base, int member) { const TType dereferencedType(base->getType(), member); // dereferenced type const TIntermSymbol& symbolNode = *base->getAsSymbolNode(); TIntermTyped* flattened = flattenAccess(symbolNode.getId(), member, base->getQualifier().storage, dereferencedType, symbolNode.getFlattenSubset()); return flattened ? flattened : base; } TIntermTyped* HlslParseContext::flattenAccess(int uniqueId, int member, TStorageQualifier outerStorage, const TType& dereferencedType, int subset) { const auto flattenData = flattenMap.find(uniqueId); if (flattenData == flattenMap.end()) return nullptr; // Calculate new cumulative offset from the packed tree int newSubset = flattenData->second.offsets[subset >= 0 ? subset + member : member]; TIntermSymbol* subsetSymbol; if (!shouldFlatten(dereferencedType, outerStorage, false)) { // Finished flattening: create symbol for variable member = flattenData->second.offsets[newSubset]; const TVariable* memberVariable = flattenData->second.members[member]; subsetSymbol = intermediate.addSymbol(*memberVariable); subsetSymbol->setFlattenSubset(-1); } else { // If this is not the final flattening, accumulate the position and return // an object of the partially dereferenced type. subsetSymbol = new TIntermSymbol(uniqueId, "flattenShadow", dereferencedType); subsetSymbol->setFlattenSubset(newSubset); } return subsetSymbol; } // For finding where the first leaf is in a subtree of a multi-level aggregate // that is just getting a subset assigned. Follows the same logic as flattenAccess, // but logically going down the "left-most" tree branch each step of the way. // // Returns the offset into the first leaf of the subset. int HlslParseContext::findSubtreeOffset(const TIntermNode& node) const { const TIntermSymbol* sym = node.getAsSymbolNode(); if (sym == nullptr) return 0; if (!sym->isArray() && !sym->isStruct()) return 0; int subset = sym->getFlattenSubset(); if (subset == -1) return 0; // Getting this far means a partial aggregate is identified by the flatten subset. // Find the first leaf of the subset. const auto flattenData = flattenMap.find(sym->getId()); if (flattenData == flattenMap.end()) return 0; return findSubtreeOffset(sym->getType(), subset, flattenData->second.offsets); do { subset = flattenData->second.offsets[subset]; } while (true); } // Recursively do the desent int HlslParseContext::findSubtreeOffset(const TType& type, int subset, const TVector& offsets) const { if (!type.isArray() && !type.isStruct()) return offsets[subset]; TType derefType(type, 0); return findSubtreeOffset(derefType, offsets[subset], offsets); }; // Find and return the split IO TVariable for id, or nullptr if none. TVariable* HlslParseContext::getSplitNonIoVar(int id) const { const auto splitNonIoVar = splitNonIoVars.find(id); if (splitNonIoVar == splitNonIoVars.end()) return nullptr; return splitNonIoVar->second; } // Pass through to base class after remembering built-in mappings. void HlslParseContext::trackLinkage(TSymbol& symbol) { TBuiltInVariable biType = symbol.getType().getQualifier().builtIn; if (biType != EbvNone) builtInTessLinkageSymbols[biType] = symbol.clone(); TParseContextBase::trackLinkage(symbol); } // Returns true if the built-in is a clip or cull distance variable. bool HlslParseContext::isClipOrCullDistance(TBuiltInVariable builtIn) { return builtIn == EbvClipDistance || builtIn == EbvCullDistance; } // Some types require fixed array sizes in SPIR-V, but can be scalars or // arrays of sizes SPIR-V doesn't allow. For example, tessellation factors. // This creates the right size. A conversion is performed when the internal // type is copied to or from the external type. This corrects the externally // facing input or output type to abide downstream semantics. void HlslParseContext::fixBuiltInIoType(TType& type) { int requiredArraySize = 0; int requiredVectorSize = 0; switch (type.getQualifier().builtIn) { case EbvTessLevelOuter: requiredArraySize = 4; break; case EbvTessLevelInner: requiredArraySize = 2; break; case EbvSampleMask: { // Promote scalar to array of size 1. Leave existing arrays alone. if (!type.isArray()) requiredArraySize = 1; break; } case EbvWorkGroupId: requiredVectorSize = 3; break; case EbvGlobalInvocationId: requiredVectorSize = 3; break; case EbvLocalInvocationId: requiredVectorSize = 3; break; case EbvTessCoord: requiredVectorSize = 3; break; default: if (isClipOrCullDistance(type)) { const int loc = type.getQualifier().layoutLocation; if (type.getQualifier().builtIn == EbvClipDistance) { if (type.getQualifier().storage == EvqVaryingIn) clipSemanticNSizeIn[loc] = type.getVectorSize(); else clipSemanticNSizeOut[loc] = type.getVectorSize(); } else { if (type.getQualifier().storage == EvqVaryingIn) cullSemanticNSizeIn[loc] = type.getVectorSize(); else cullSemanticNSizeOut[loc] = type.getVectorSize(); } } return; } // Alter or set vector size as needed. if (requiredVectorSize > 0) { TType newType(type.getBasicType(), type.getQualifier().storage, requiredVectorSize); newType.getQualifier() = type.getQualifier(); type.shallowCopy(newType); } // Alter or set array size as needed. if (requiredArraySize > 0) { if (!type.isArray() || type.getOuterArraySize() != requiredArraySize) { TArraySizes* arraySizes = new TArraySizes; arraySizes->addInnerSize(requiredArraySize); type.transferArraySizes(arraySizes); } } } // Variables that correspond to the user-interface in and out of a stage // (not the built-in interface) are // - assigned locations // - registered as a linkage node (part of the stage's external interface). // Assumes it is called in the order in which locations should be assigned. void HlslParseContext::assignToInterface(TVariable& variable) { const auto assignLocation = [&](TVariable& variable) { TType& type = variable.getWritableType(); if (!type.isStruct() || type.getStruct()->size() > 0) { TQualifier& qualifier = type.getQualifier(); if (qualifier.storage == EvqVaryingIn || qualifier.storage == EvqVaryingOut) { if (qualifier.builtIn == EbvNone && !qualifier.hasLocation()) { // Strip off the outer array dimension for those having an extra one. int size; if (type.isArray() && qualifier.isArrayedIo(language)) { TType elementType(type, 0); size = intermediate.computeTypeLocationSize(elementType, language); } else size = intermediate.computeTypeLocationSize(type, language); if (qualifier.storage == EvqVaryingIn) { variable.getWritableType().getQualifier().layoutLocation = nextInLocation; nextInLocation += size; } else { variable.getWritableType().getQualifier().layoutLocation = nextOutLocation; nextOutLocation += size; } } trackLinkage(variable); } } }; if (wasFlattened(variable.getUniqueId())) { auto& memberList = flattenMap[variable.getUniqueId()].members; for (auto member = memberList.begin(); member != memberList.end(); ++member) assignLocation(**member); } else if (wasSplit(variable.getUniqueId())) { TVariable* splitIoVar = getSplitNonIoVar(variable.getUniqueId()); assignLocation(*splitIoVar); } else { assignLocation(variable); } } // // Handle seeing a function declarator in the grammar. This is the precursor // to recognizing a function prototype or function definition. // void HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFunction& function, bool prototype) { // // Multiple declarations of the same function name are allowed. // // If this is a definition, the definition production code will check for redefinitions // (we don't know at this point if it's a definition or not). // bool builtIn; TSymbol* symbol = symbolTable.find(function.getMangledName(), &builtIn); const TFunction* prevDec = symbol ? symbol->getAsFunction() : 0; if (prototype) { // All built-in functions are defined, even though they don't have a body. // Count their prototype as a definition instead. if (symbolTable.atBuiltInLevel()) function.setDefined(); else { if (prevDec && ! builtIn) symbol->getAsFunction()->setPrototyped(); // need a writable one, but like having prevDec as a const function.setPrototyped(); } } // This insert won't actually insert it if it's a duplicate signature, but it will still check for // other forms of name collisions. if (! symbolTable.insert(function)) error(loc, "function name is redeclaration of existing name", function.getName().c_str(), ""); } // For struct buffers with counters, we must pass the counter buffer as hidden parameter. // This adds the hidden parameter to the parameter list in 'paramNodes' if needed. // Otherwise, it's a no-op void HlslParseContext::addStructBufferHiddenCounterParam(const TSourceLoc& loc, TParameter& param, TIntermAggregate*& paramNodes) { if (! hasStructBuffCounter(*param.type)) return; const TString counterBlockName(intermediate.addCounterBufferName(*param.name)); TType counterType; counterBufferType(loc, counterType); TVariable *variable = makeInternalVariable(counterBlockName, counterType); if (! symbolTable.insert(*variable)) error(loc, "redefinition", variable->getName().c_str(), ""); paramNodes = intermediate.growAggregate(paramNodes, intermediate.addSymbol(*variable, loc), loc); } // // Handle seeing the function prototype in front of a function definition in the grammar. // The body is handled after this function returns. // // Returns an aggregate of parameter-symbol nodes. // TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function, const TAttributes& attributes, TIntermNode*& entryPointTree) { currentCaller = function.getMangledName(); TSymbol* symbol = symbolTable.find(function.getMangledName()); TFunction* prevDec = symbol ? symbol->getAsFunction() : nullptr; if (prevDec == nullptr) error(loc, "can't find function", function.getName().c_str(), ""); // Note: 'prevDec' could be 'function' if this is the first time we've seen function // as it would have just been put in the symbol table. Otherwise, we're looking up // an earlier occurrence. if (prevDec && prevDec->isDefined()) { // Then this function already has a body. error(loc, "function already has a body", function.getName().c_str(), ""); } if (prevDec && ! prevDec->isDefined()) { prevDec->setDefined(); // Remember the return type for later checking for RETURN statements. currentFunctionType = &(prevDec->getType()); } else currentFunctionType = new TType(EbtVoid); functionReturnsValue = false; // Entry points need different I/O and other handling, transform it so the // rest of this function doesn't care. entryPointTree = transformEntryPoint(loc, function, attributes); // // New symbol table scope for body of function plus its arguments // pushScope(); // // Insert parameters into the symbol table. // If the parameter has no name, it's not an error, just don't insert it // (could be used for unused args). // // Also, accumulate the list of parameters into the AST, so lower level code // knows where to find parameters. // TIntermAggregate* paramNodes = new TIntermAggregate; for (int i = 0; i < function.getParamCount(); i++) { TParameter& param = function[i]; if (param.name != nullptr) { TVariable *variable = new TVariable(param.name, *param.type); if (i == 0 && function.hasImplicitThis()) { // Anonymous 'this' members are already in a symbol-table level, // and we need to know what function parameter to map them to. symbolTable.makeInternalVariable(*variable); pushImplicitThis(variable); } // Insert the parameters with name in the symbol table. if (! symbolTable.insert(*variable)) error(loc, "redefinition", variable->getName().c_str(), ""); // Add parameters to the AST list. if (shouldFlatten(variable->getType(), variable->getType().getQualifier().storage, true)) { // Expand the AST parameter nodes (but not the name mangling or symbol table view) // for structures that need to be flattened. flatten(*variable, false); const TTypeList* structure = variable->getType().getStruct(); for (int mem = 0; mem < (int)structure->size(); ++mem) { paramNodes = intermediate.growAggregate(paramNodes, flattenAccess(variable->getUniqueId(), mem, variable->getType().getQualifier().storage, *(*structure)[mem].type), loc); } } else { // Add the parameter to the AST paramNodes = intermediate.growAggregate(paramNodes, intermediate.addSymbol(*variable, loc), loc); } // Add hidden AST parameter for struct buffer counters, if needed. addStructBufferHiddenCounterParam(loc, param, paramNodes); } else paramNodes = intermediate.growAggregate(paramNodes, intermediate.addSymbol(*param.type, loc), loc); } if (function.hasIllegalImplicitThis()) pushImplicitThis(nullptr); intermediate.setAggregateOperator(paramNodes, EOpParameters, TType(EbtVoid), loc); loopNestingLevel = 0; controlFlowNestingLevel = 0; postEntryPointReturn = false; return paramNodes; } // Handle all [attrib] attribute for the shader entry point void HlslParseContext::handleEntryPointAttributes(const TSourceLoc& loc, const TAttributes& attributes) { for (auto it = attributes.begin(); it != attributes.end(); ++it) { switch (it->name) { case EatNumThreads: { const TIntermSequence& sequence = it->args->getSequence(); for (int lid = 0; lid < int(sequence.size()); ++lid) intermediate.setLocalSize(lid, sequence[lid]->getAsConstantUnion()->getConstArray()[0].getIConst()); break; } case EatMaxVertexCount: { int maxVertexCount; if (! it->getInt(maxVertexCount)) { error(loc, "invalid maxvertexcount", "", ""); } else { if (! intermediate.setVertices(maxVertexCount)) error(loc, "cannot change previously set maxvertexcount attribute", "", ""); } break; } case EatPatchConstantFunc: { TString pcfName; if (! it->getString(pcfName, 0, false)) { error(loc, "invalid patch constant function", "", ""); } else { patchConstantFunctionName = pcfName; } break; } case EatDomain: { // Handle [domain("...")] TString domainStr; if (! it->getString(domainStr)) { error(loc, "invalid domain", "", ""); } else { TLayoutGeometry domain = ElgNone; if (domainStr == "tri") { domain = ElgTriangles; } else if (domainStr == "quad") { domain = ElgQuads; } else if (domainStr == "isoline") { domain = ElgIsolines; } else { error(loc, "unsupported domain type", domainStr.c_str(), ""); } if (language == EShLangTessEvaluation) { if (! intermediate.setInputPrimitive(domain)) error(loc, "cannot change previously set domain", TQualifier::getGeometryString(domain), ""); } else { if (! intermediate.setOutputPrimitive(domain)) error(loc, "cannot change previously set domain", TQualifier::getGeometryString(domain), ""); } } break; } case EatOutputTopology: { // Handle [outputtopology("...")] TString topologyStr; if (! it->getString(topologyStr)) { error(loc, "invalid outputtopology", "", ""); } else { TVertexOrder vertexOrder = EvoNone; TLayoutGeometry primitive = ElgNone; if (topologyStr == "point") { intermediate.setPointMode(); } else if (topologyStr == "line") { primitive = ElgIsolines; } else if (topologyStr == "triangle_cw") { vertexOrder = EvoCw; primitive = ElgTriangles; } else if (topologyStr == "triangle_ccw") { vertexOrder = EvoCcw; primitive = ElgTriangles; } else { error(loc, "unsupported outputtopology type", topologyStr.c_str(), ""); } if (vertexOrder != EvoNone) { if (! intermediate.setVertexOrder(vertexOrder)) { error(loc, "cannot change previously set outputtopology", TQualifier::getVertexOrderString(vertexOrder), ""); } } if (primitive != ElgNone) intermediate.setOutputPrimitive(primitive); } break; } case EatPartitioning: { // Handle [partitioning("...")] TString partitionStr; if (! it->getString(partitionStr)) { error(loc, "invalid partitioning", "", ""); } else { TVertexSpacing partitioning = EvsNone; if (partitionStr == "integer") { partitioning = EvsEqual; } else if (partitionStr == "fractional_even") { partitioning = EvsFractionalEven; } else if (partitionStr == "fractional_odd") { partitioning = EvsFractionalOdd; //} else if (partition == "pow2") { // TODO: currently nothing to map this to. } else { error(loc, "unsupported partitioning type", partitionStr.c_str(), ""); } if (! intermediate.setVertexSpacing(partitioning)) error(loc, "cannot change previously set partitioning", TQualifier::getVertexSpacingString(partitioning), ""); } break; } case EatOutputControlPoints: { // Handle [outputcontrolpoints("...")] int ctrlPoints; if (! it->getInt(ctrlPoints)) { error(loc, "invalid outputcontrolpoints", "", ""); } else { if (! intermediate.setVertices(ctrlPoints)) { error(loc, "cannot change previously set outputcontrolpoints attribute", "", ""); } } break; } case 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 (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 (userFunction.getName().compare(intermediate.getEntryPointName().c_str()) != 0) { remapNonEntryPointIO(userFunction); return nullptr; } entryPointFunction = &userFunction; // needed in finish() // Handle entry point attributes handleEntryPointAttributes(loc, attributes); // entry point logic... // Move parameters and return value to shader in/out TVariable* entryPointOutput; // gets created in remapEntryPointIO TVector inputs; TVector outputs; remapEntryPointIO(userFunction, entryPointOutput, inputs, outputs); // Further this return/in/out transform by flattening, splitting, and assigning locations const auto makeVariableInOut = [&](TVariable& variable) { if (variable.getType().isStruct()) { if (variable.getType().getQualifier().isArrayedIo(language)) { if (variable.getType().containsBuiltIn()) split(variable); } else if (shouldFlatten(variable.getType(), EvqVaryingIn /* not assigned yet, but close enough */, true)) flatten(variable, false /* don't track linkage here, it will be tracked in assignToInterface() */); } // TODO: flatten arrays too // TODO: flatten everything in I/O // TODO: replace all split with flatten, make all paths can create flattened I/O, then split code can be removed // For clip and cull distance, multiple output variables potentially get merged // into one in assignClipCullDistance. That code in assignClipCullDistance // handles the interface logic, so we avoid it here in that case. if (!isClipOrCullDistance(variable.getType())) assignToInterface(variable); }; if (entryPointOutput != nullptr) makeVariableInOut(*entryPointOutput); for (auto it = inputs.begin(); it != inputs.end(); ++it) if (!isDsPcfInput((*it)->getType())) // wait until the end for PCF input (see comment below) makeVariableInOut(*(*it)); for (auto it = outputs.begin(); it != outputs.end(); ++it) makeVariableInOut(*(*it)); // In the domain shader, PCF input must be at the end of the linkage. That's because in the // hull shader there is no ordering: the output comes from the separate PCF, which does not // participate in the argument list. That is always put at the end of the HS linkage, so the // input side of the DS must match. The argument may be in any position in the DS argument list // however, so this ensures the linkage is built in the correct order regardless of argument order. if (language == EShLangTessEvaluation) { for (auto it = inputs.begin(); it != inputs.end(); ++it) if (isDsPcfInput((*it)->getType())) makeVariableInOut(*(*it)); } // Synthesize the call pushScope(); // matches the one in handleFunctionBody() // new signature TType voidType(EbtVoid); TFunction synthEntryPoint(&userFunction.getName(), voidType); TIntermAggregate* synthParams = new TIntermAggregate(); intermediate.setAggregateOperator(synthParams, EOpParameters, voidType, loc); intermediate.setEntryPointMangledName(synthEntryPoint.getMangledName().c_str()); intermediate.incrementEntryPointCount(); TFunction callee(&userFunction.getName(), voidType); // call based on old name, which is still in the symbol table // change original name userFunction.addPrefix("@"); // change the name in the function, but not in the symbol table // Copy inputs (shader-in -> calling arg), while building up the call node TVector argVars; TIntermAggregate* synthBody = new TIntermAggregate(); auto inputIt = inputs.begin(); TIntermTyped* callingArgs = nullptr; for (int i = 0; i < userFunction.getParamCount(); i++) { TParameter& param = userFunction[i]; argVars.push_back(makeInternalVariable(*param.name, *param.type)); argVars.back()->getWritableType().getQualifier().makeTemporary(); // Track the input patch, which is the only non-builtin supported by hull shader PCF. if (param.getDeclaredBuiltIn() == EbvInputPatch) inputPatch = argVars.back(); TIntermSymbol* arg = intermediate.addSymbol(*argVars.back()); handleFunctionArgument(&callee, callingArgs, arg); if (param.type->getQualifier().isParamInput()) { intermediate.growAggregate(synthBody, handleAssign(loc, EOpAssign, arg, intermediate.addSymbol(**inputIt))); inputIt++; } } // Call currentCaller = synthEntryPoint.getMangledName(); TIntermTyped* callReturn = handleFunctionCall(loc, &callee, callingArgs); currentCaller = userFunction.getMangledName(); // Return value if (entryPointOutput) { TIntermTyped* returnAssign; // For hull shaders, the wrapped entry point return value is written to // an array element as indexed by invocation ID, which we might have to make up. // This is required to match SPIR-V semantics. if (language == EShLangTessControl) { TIntermSymbol* invocationIdSym = findTessLinkageSymbol(EbvInvocationId); // If there is no user declared invocation ID, we must make one. if (invocationIdSym == nullptr) { TType invocationIdType(EbtUint, EvqIn, 1); TString* invocationIdName = NewPoolTString("InvocationId"); invocationIdType.getQualifier().builtIn = EbvInvocationId; TVariable* variable = makeInternalVariable(*invocationIdName, invocationIdType); globalQualifierFix(loc, variable->getWritableType().getQualifier()); trackLinkage(*variable); invocationIdSym = intermediate.addSymbol(*variable); } TIntermTyped* element = intermediate.addIndex(EOpIndexIndirect, intermediate.addSymbol(*entryPointOutput), invocationIdSym, loc); // Set the type of the array element being dereferenced const TType derefElementType(entryPointOutput->getType(), 0); element->setType(derefElementType); returnAssign = handleAssign(loc, EOpAssign, element, callReturn); } else { returnAssign = handleAssign(loc, EOpAssign, intermediate.addSymbol(*entryPointOutput), callReturn); } intermediate.growAggregate(synthBody, returnAssign); } else intermediate.growAggregate(synthBody, callReturn); // Output copies auto outputIt = outputs.begin(); for (int i = 0; i < userFunction.getParamCount(); i++) { TParameter& param = userFunction[i]; // GS outputs are via emit, so we do not copy them here. if (param.type->getQualifier().isParamOutput()) { if (param.getDeclaredBuiltIn() == EbvGsOutputStream) { // GS output stream does not assign outputs here: it's the Append() method // which writes to the output, probably multiple times separated by Emit. // We merely remember the output to use, here. gsStreamOutput = *outputIt; } else { intermediate.growAggregate(synthBody, handleAssign(loc, EOpAssign, intermediate.addSymbol(**outputIt), intermediate.addSymbol(*argVars[i]))); } outputIt++; } } // Put the pieces together to form a full function subtree // for the synthesized entry point. synthBody->setOperator(EOpSequence); TIntermNode* synthFunctionDef = synthParams; handleFunctionBody(loc, synthEntryPoint, synthBody, synthFunctionDef); entryPointFunctionBody = synthBody; return synthFunctionDef; } void HlslParseContext::handleFunctionBody(const TSourceLoc& loc, TFunction& function, TIntermNode* functionBody, TIntermNode*& node) { node = intermediate.growAggregate(node, functionBody); intermediate.setAggregateOperator(node, EOpFunction, function.getType(), loc); node->getAsAggregate()->setName(function.getMangledName().c_str()); popScope(); if (function.hasImplicitThis()) popImplicitThis(); if (function.getType().getBasicType() != EbtVoid && ! functionReturnsValue) error(loc, "function does not return a value:", "", function.getName().c_str()); } // AST I/O is done through shader globals declared in the 'in' or 'out' // storage class. An HLSL entry point has a return value, input parameters // and output parameters. These need to get remapped to the AST I/O. void HlslParseContext::remapEntryPointIO(TFunction& function, TVariable*& returnValue, TVector& inputs, TVector& outputs) { // We might have in input structure type with no decorations that caused it // to look like an input type, yet it has (e.g.) interpolation types that // must be modified that turn it into an input type. // Hence, a missing ioTypeMap for 'input' might need to be synthesized. const auto synthesizeEditedInput = [this](TType& type) { // True if a type needs to be 'flat' const auto needsFlat = [](const TType& type) { return type.containsBasicType(EbtInt) || type.containsBasicType(EbtUint) || type.containsBasicType(EbtInt64) || type.containsBasicType(EbtUint64) || type.containsBasicType(EbtBool) || type.containsBasicType(EbtDouble); }; if (language == EShLangFragment && needsFlat(type)) { if (type.isStruct()) { TTypeList* finalList = nullptr; auto it = ioTypeMap.find(type.getStruct()); if (it == ioTypeMap.end() || it->second.input == nullptr) { // Getting here means we have no input struct, but we need one. auto list = new TTypeList; for (auto member = type.getStruct()->begin(); member != type.getStruct()->end(); ++member) { TType* newType = new TType; newType->shallowCopy(*member->type); TTypeLoc typeLoc = { newType, member->loc }; list->push_back(typeLoc); } // install the new input type if (it == ioTypeMap.end()) { tIoKinds newLists = { list, nullptr, nullptr }; ioTypeMap[type.getStruct()] = newLists; } else it->second.input = list; finalList = list; } else finalList = it->second.input; // edit for 'flat' for (auto member = finalList->begin(); member != finalList->end(); ++member) { if (needsFlat(*member->type)) { member->type->getQualifier().clearInterpolation(); member->type->getQualifier().flat = true; } } } else { type.getQualifier().clearInterpolation(); type.getQualifier().flat = true; } } }; // Do the actual work to make a type be a shader input or output variable, // and clear the original to be non-IO (for use as a normal function parameter/return). const auto makeIoVariable = [this](const char* name, TType& type, TStorageQualifier storage) -> TVariable* { TVariable* ioVariable = makeInternalVariable(name, type); clearUniformInputOutput(type.getQualifier()); if (type.isStruct()) { auto newLists = ioTypeMap.find(ioVariable->getType().getStruct()); if (newLists != ioTypeMap.end()) { if (storage == EvqVaryingIn && newLists->second.input) ioVariable->getWritableType().setStruct(newLists->second.input); else if (storage == EvqVaryingOut && newLists->second.output) ioVariable->getWritableType().setStruct(newLists->second.output); } } if (storage == EvqVaryingIn) { correctInput(ioVariable->getWritableType().getQualifier()); if (language == EShLangTessEvaluation) if (!ioVariable->getType().isArray()) ioVariable->getWritableType().getQualifier().patch = true; } else { correctOutput(ioVariable->getWritableType().getQualifier()); } ioVariable->getWritableType().getQualifier().storage = storage; fixBuiltInIoType(ioVariable->getWritableType()); return ioVariable; }; // return value is actually a shader-scoped output (out) if (function.getType().getBasicType() == EbtVoid) { returnValue = nullptr; } else { if (language == EShLangTessControl) { // tessellation evaluation in HLSL writes a per-ctrl-pt value, but it needs to be an // array in SPIR-V semantics. We'll write to it indexed by invocation ID. returnValue = makeIoVariable("@entryPointOutput", function.getWritableType(), EvqVaryingOut); TType outputType; outputType.shallowCopy(function.getType()); // vertices has necessarily already been set when handling entry point attributes. TArraySizes* arraySizes = new TArraySizes; arraySizes->addInnerSize(intermediate.getVertices()); outputType.transferArraySizes(arraySizes); clearUniformInputOutput(function.getWritableType().getQualifier()); returnValue = makeIoVariable("@entryPointOutput", outputType, EvqVaryingOut); } else { returnValue = makeIoVariable("@entryPointOutput", function.getWritableType(), EvqVaryingOut); } } // parameters are actually shader-scoped inputs and outputs (in or out) for (int i = 0; i < function.getParamCount(); i++) { TType& paramType = *function[i].type; if (paramType.getQualifier().isParamInput()) { synthesizeEditedInput(paramType); TVariable* argAsGlobal = makeIoVariable(function[i].name->c_str(), paramType, EvqVaryingIn); inputs.push_back(argAsGlobal); } if (paramType.getQualifier().isParamOutput()) { TVariable* argAsGlobal = makeIoVariable(function[i].name->c_str(), paramType, EvqVaryingOut); outputs.push_back(argAsGlobal); } } } // An HLSL function that looks like an entry point, but is not, // declares entry point IO built-ins, but these have to be undone. void HlslParseContext::remapNonEntryPointIO(TFunction& function) { // return value if (function.getType().getBasicType() != EbtVoid) clearUniformInputOutput(function.getWritableType().getQualifier()); // parameters. // References to structuredbuffer types are left unmodified for (int i = 0; i < function.getParamCount(); i++) if (!isReference(*function[i].type)) clearUniformInputOutput(function[i].type->getQualifier()); } // Handle function returns, including type conversions to the function return type // if necessary. TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) { functionReturnsValue = true; if (currentFunctionType->getBasicType() == EbtVoid) { error(loc, "void function cannot return a value", "return", ""); return intermediate.addBranch(EOpReturn, loc); } else if (*currentFunctionType != value->getType()) { value = intermediate.addConversion(EOpReturn, *currentFunctionType, value); if (value && *currentFunctionType != value->getType()) value = intermediate.addUniShapeConversion(EOpReturn, *currentFunctionType, value); if (value == nullptr || *currentFunctionType != value->getType()) { error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); return value; } } return intermediate.addBranch(EOpReturn, value, loc); } void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped*& arguments, TIntermTyped* newArg) { TParameter param = { 0, new TType, nullptr }; param.type->shallowCopy(newArg->getType()); function->addParameter(param); if (arguments) arguments = intermediate.growAggregate(arguments, newArg); else arguments = newArg; } // Position may require special handling: we can optionally invert Y. // See: https://github.com/KhronosGroup/glslang/issues/1173 // https://github.com/KhronosGroup/glslang/issues/494 TIntermTyped* HlslParseContext::assignPosition(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) { // If we are not asked for Y inversion, use a plain old assign. if (!intermediate.getInvertY()) return intermediate.addAssign(op, left, right, loc); // If we get here, we should invert Y. TIntermAggregate* assignList = nullptr; // If this is a complex rvalue, we don't want to dereference it many times. Create a temporary. TVariable* rhsTempVar = nullptr; rhsTempVar = makeInternalVariable("@position", right->getType()); rhsTempVar->getWritableType().getQualifier().makeTemporary(); { TIntermTyped* rhsTempSym = intermediate.addSymbol(*rhsTempVar, loc); assignList = intermediate.growAggregate(assignList, intermediate.addAssign(EOpAssign, rhsTempSym, right, loc), loc); } // pos.y = -pos.y { const int Y = 1; TIntermTyped* tempSymL = intermediate.addSymbol(*rhsTempVar, loc); TIntermTyped* tempSymR = intermediate.addSymbol(*rhsTempVar, loc); TIntermTyped* index = intermediate.addConstantUnion(Y, loc); TIntermTyped* lhsElement = intermediate.addIndex(EOpIndexDirect, tempSymL, index, loc); TIntermTyped* rhsElement = intermediate.addIndex(EOpIndexDirect, tempSymR, index, loc); const TType derefType(right->getType(), 0); lhsElement->setType(derefType); rhsElement->setType(derefType); TIntermTyped* yNeg = intermediate.addUnaryMath(EOpNegative, rhsElement, loc); assignList = intermediate.growAggregate(assignList, intermediate.addAssign(EOpAssign, lhsElement, yNeg, loc)); } // Assign the rhs temp (now with Y inversion) to the final output { TIntermTyped* rhsTempSym = intermediate.addSymbol(*rhsTempVar, loc); assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, left, rhsTempSym, loc)); } assert(assignList != nullptr); assignList->setOperator(EOpSequence); return assignList; } // Clip and cull distance require special handling due to a semantic mismatch. In HLSL, // these can be float scalar, float vector, or arrays of float scalar or float vector. // In SPIR-V, they are arrays of scalar floats in all cases. We must copy individual components // (e.g, both x and y components of a float2) out into the destination float array. // // The values are assigned to sequential members of the output array. The inner dimension // is vector components. The outer dimension is array elements. TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc, TOperator op, int semanticId, TIntermTyped* left, TIntermTyped* right) { switch (language) { case EShLangFragment: case EShLangVertex: case EShLangGeometry: break; default: error(loc, "unimplemented: clip/cull not currently implemented for this stage", "", ""); return nullptr; } TVariable** clipCullVar = nullptr; // Figure out if we are assigning to, or from, clip or cull distance. const bool isOutput = isClipOrCullDistance(left->getType()); // This is the rvalue or lvalue holding the clip or cull distance. TIntermTyped* clipCullNode = isOutput ? left : right; // This is the value going into or out of the clip or cull distance. TIntermTyped* internalNode = isOutput ? right : left; const TBuiltInVariable builtInType = clipCullNode->getQualifier().builtIn; decltype(clipSemanticNSizeIn)* semanticNSize = nullptr; // Refer to either the clip or the cull distance, depending on semantic. switch (builtInType) { case EbvClipDistance: clipCullVar = isOutput ? &clipDistanceOutput : &clipDistanceInput; semanticNSize = isOutput ? &clipSemanticNSizeOut : &clipSemanticNSizeIn; break; case EbvCullDistance: clipCullVar = isOutput ? &cullDistanceOutput : &cullDistanceInput; semanticNSize = isOutput ? &cullSemanticNSizeOut : &cullSemanticNSizeIn; break; // called invalidly: we expected a clip or a cull distance. // static compile time problem: should not happen. default: assert(0); return nullptr; } // This is the offset in the destination array of a given semantic's data std::array semanticOffset; // Calculate offset of variable of semantic N in destination array int arrayLoc = 0; int vecItems = 0; for (int x = 0; x < maxClipCullRegs; ++x) { // See if we overflowed the vec4 packing if ((vecItems + (*semanticNSize)[x]) > 4) { arrayLoc = (arrayLoc + 3) & (~0x3); // round up to next multiple of 4 vecItems = 0; } semanticOffset[x] = arrayLoc; vecItems += (*semanticNSize)[x]; arrayLoc += (*semanticNSize)[x]; } // It can have up to 2 array dimensions (in the case of geometry shader inputs) const TArraySizes* const internalArraySizes = internalNode->getType().getArraySizes(); const int internalArrayDims = internalNode->getType().isArray() ? internalArraySizes->getNumDims() : 0; // vector sizes: const int internalVectorSize = internalNode->getType().getVectorSize(); // array sizes, or 1 if it's not an array: const int internalInnerArraySize = (internalArrayDims > 0 ? internalArraySizes->getDimSize(internalArrayDims-1) : 1); const int internalOuterArraySize = (internalArrayDims > 1 ? internalArraySizes->getDimSize(0) : 1); // The created type may be an array of arrays, e.g, for geometry shader inputs. const bool isImplicitlyArrayed = (language == EShLangGeometry && !isOutput); // If we haven't created the output already, create it now. if (*clipCullVar == nullptr) { // ClipDistance and CullDistance are handled specially in the entry point input/output copy // algorithm, because they may need to be unpacked from components of vectors (or a scalar) // into a float array, or vice versa. Here, we make the array the right size and type, // which depends on the incoming data, which has several potential dimensions: // * Semantic ID // * vector size // * array size // Of those, semantic ID and array size cannot appear simultaneously. // // Also to note: for implicitly arrayed forms (e.g, geometry shader inputs), we need to create two // array dimensions. The shader's declaration may have one or two array dimensions. One is always // the geometry's dimension. const bool useInnerSize = internalArrayDims > 1 || !isImplicitlyArrayed; const int requiredInnerArraySize = arrayLoc * (useInnerSize ? internalInnerArraySize : 1); const int requiredOuterArraySize = (internalArrayDims > 0) ? internalArraySizes->getDimSize(0) : 1; TType clipCullType(EbtFloat, clipCullNode->getType().getQualifier().storage, 1); clipCullType.getQualifier() = clipCullNode->getType().getQualifier(); // Create required array dimension TArraySizes* arraySizes = new TArraySizes; if (isImplicitlyArrayed) arraySizes->addInnerSize(requiredOuterArraySize); arraySizes->addInnerSize(requiredInnerArraySize); clipCullType.transferArraySizes(arraySizes); // Obtain symbol name: we'll use that for the symbol we introduce. TIntermSymbol* sym = clipCullNode->getAsSymbolNode(); assert(sym != nullptr); // We are moving the semantic ID from the layout location, so it is no longer needed or // desired there. clipCullType.getQualifier().layoutLocation = TQualifier::layoutLocationEnd; // Create variable and track its linkage *clipCullVar = makeInternalVariable(sym->getName().c_str(), clipCullType); trackLinkage(**clipCullVar); } // Create symbol for the clip or cull variable. TIntermSymbol* clipCullSym = intermediate.addSymbol(**clipCullVar); // vector sizes: const int clipCullVectorSize = clipCullSym->getType().getVectorSize(); // array sizes, or 1 if it's not an array: const TArraySizes* const clipCullArraySizes = clipCullSym->getType().getArraySizes(); const int clipCullOuterArraySize = isImplicitlyArrayed ? clipCullArraySizes->getDimSize(0) : 1; const int clipCullInnerArraySize = clipCullArraySizes->getDimSize(isImplicitlyArrayed ? 1 : 0); // clipCullSym has got to be an array of scalar floats, per SPIR-V semantics. // fixBuiltInIoType() should have handled that upstream. assert(clipCullSym->getType().isArray()); assert(clipCullSym->getType().getVectorSize() == 1); assert(clipCullSym->getType().getBasicType() == EbtFloat); // We may be creating multiple sub-assignments. This is an aggregate to hold them. // TODO: it would be possible to be clever sometimes and avoid the sequence node if not needed. TIntermAggregate* assignList = nullptr; // Holds individual component assignments as we make them. TIntermTyped* clipCullAssign = nullptr; // If the types are homomorphic, use a simple assign. No need to mess about with // individual components. if (clipCullSym->getType().isArray() == internalNode->getType().isArray() && clipCullInnerArraySize == internalInnerArraySize && clipCullOuterArraySize == internalOuterArraySize && clipCullVectorSize == internalVectorSize) { if (isOutput) clipCullAssign = intermediate.addAssign(op, clipCullSym, internalNode, loc); else clipCullAssign = intermediate.addAssign(op, internalNode, clipCullSym, loc); assignList = intermediate.growAggregate(assignList, clipCullAssign); assignList->setOperator(EOpSequence); return assignList; } // We are going to copy each component of the internal (per array element if indicated) to sequential // array elements of the clipCullSym. This tracks the lhs element we're writing to as we go along. // We may be starting in the middle - e.g, for a non-zero semantic ID calculated above. int clipCullInnerArrayPos = semanticOffset[semanticId]; int clipCullOuterArrayPos = 0; // Lambda to add an index to a node, set the type of the result, and return the new node. const auto addIndex = [this, &loc](TIntermTyped* node, int pos) -> TIntermTyped* { const TType derefType(node->getType(), 0); node = intermediate.addIndex(EOpIndexDirect, node, intermediate.addConstantUnion(pos, loc), loc); node->setType(derefType); return node; }; // Loop through every component of every element of the internal, and copy to or from the matching external. for (int internalOuterArrayPos = 0; internalOuterArrayPos < internalOuterArraySize; ++internalOuterArrayPos) { for (int internalInnerArrayPos = 0; internalInnerArrayPos < internalInnerArraySize; ++internalInnerArrayPos) { for (int internalComponent = 0; internalComponent < internalVectorSize; ++internalComponent) { // clip/cull array member to read from / write to: TIntermTyped* clipCullMember = clipCullSym; // If implicitly arrayed, there is an outer array dimension involved if (isImplicitlyArrayed) clipCullMember = addIndex(clipCullMember, clipCullOuterArrayPos); // Index into proper array position for clip cull member clipCullMember = addIndex(clipCullMember, clipCullInnerArrayPos++); // if needed, start over with next outer array slice. if (isImplicitlyArrayed && clipCullInnerArrayPos >= clipCullInnerArraySize) { clipCullInnerArrayPos = semanticOffset[semanticId]; ++clipCullOuterArrayPos; } // internal member to read from / write to: TIntermTyped* internalMember = internalNode; // If internal node has outer array dimension, index appropriately. if (internalArrayDims > 1) internalMember = addIndex(internalMember, internalOuterArrayPos); // If internal node has inner array dimension, index appropriately. if (internalArrayDims > 0) internalMember = addIndex(internalMember, internalInnerArrayPos); // If internal node is a vector, extract the component of interest. if (internalNode->getType().isVector()) internalMember = addIndex(internalMember, internalComponent); // Create an assignment: output from internal to clip cull, or input from clip cull to internal. if (isOutput) clipCullAssign = intermediate.addAssign(op, clipCullMember, internalMember, loc); else clipCullAssign = intermediate.addAssign(op, internalMember, clipCullMember, loc); // Track assignment in the sequence. assignList = intermediate.growAggregate(assignList, clipCullAssign); } } } assert(assignList != nullptr); assignList->setOperator(EOpSequence); return assignList; } // Some simple source assignments need to be flattened to a sequence // of AST assignments. Catch these and flatten, otherwise, pass through // to intermediate.addAssign(). // // Also, assignment to matrix swizzles requires multiple component assignments, // intercept those as well. TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) { if (left == nullptr || right == nullptr) return nullptr; // writing to opaques will require fixing transforms if (left->getType().containsOpaque()) intermediate.setNeedsLegalization(); if (left->getAsOperator() && left->getAsOperator()->getOp() == EOpMatrixSwizzle) return handleAssignToMatrixSwizzle(loc, op, left, right); // Return true if the given node is an index operation into a split variable. const auto indexesSplit = [this](const TIntermTyped* node) -> bool { const TIntermBinary* binaryNode = node->getAsBinaryNode(); if (binaryNode == nullptr) return false; return (binaryNode->getOp() == EOpIndexDirect || binaryNode->getOp() == EOpIndexIndirect) && wasSplit(binaryNode->getLeft()); }; // Return true if this stage assigns clip position with potentially inverted Y const auto assignsClipPos = [this](const TIntermTyped* node) -> bool { return node->getType().getQualifier().builtIn == EbvPosition && (language == EShLangVertex || language == EShLangGeometry || language == EShLangTessEvaluation); }; const bool isSplitLeft = wasSplit(left) || indexesSplit(left); const bool isSplitRight = wasSplit(right) || indexesSplit(right); const bool isFlattenLeft = wasFlattened(left); const bool isFlattenRight = wasFlattened(right); // OK to do a single assign if neither side is split or flattened. Otherwise, // fall through to a member-wise copy. if (!isFlattenLeft && !isFlattenRight && !isSplitLeft && !isSplitRight) { // Clip and cull distance requires more processing. See comment above assignClipCullDistance. if (isClipOrCullDistance(left->getType()) || isClipOrCullDistance(right->getType())) { const bool isOutput = isClipOrCullDistance(left->getType()); const int semanticId = (isOutput ? left : right)->getType().getQualifier().layoutLocation; return assignClipCullDistance(loc, op, semanticId, left, right); } else if (assignsClipPos(left)) { // Position can require special handling: see comment above assignPosition return assignPosition(loc, op, left, right); } else if (left->getQualifier().builtIn == EbvSampleMask) { // Certain builtins are required to be arrayed outputs in SPIR-V, but may internally be scalars // in the shader. Copy the scalar RHS into the LHS array element zero, if that happens. if (left->isArray() && !right->isArray()) { const TType derefType(left->getType(), 0); left = intermediate.addIndex(EOpIndexDirect, left, intermediate.addConstantUnion(0, loc), loc); left->setType(derefType); // Fall through to add assign. } } return intermediate.addAssign(op, left, right, loc); } TIntermAggregate* assignList = nullptr; const TVector* leftVariables = nullptr; const TVector* rightVariables = nullptr; // A temporary to store the right node's value, so we don't keep indirecting into it // if it's not a simple symbol. TVariable* rhsTempVar = nullptr; // If the RHS is a simple symbol node, we'll copy it for each member. TIntermSymbol* cloneSymNode = nullptr; int memberCount = 0; // Track how many items there are to copy. if (left->getType().isStruct()) memberCount = (int)left->getType().getStruct()->size(); if (left->getType().isArray()) memberCount = left->getType().getCumulativeArraySize(); if (isFlattenLeft) leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second.members; if (isFlattenRight) { rightVariables = &flattenMap.find(right->getAsSymbolNode()->getId())->second.members; } else { // The RHS is not flattened. There are several cases: // 1. 1 item to copy: Use the RHS directly. // 2. >1 item, simple symbol RHS: we'll create a new TIntermSymbol node for each, but no assign to temp. // 3. >1 item, complex RHS: assign it to a new temp variable, and create a TIntermSymbol for each member. if (memberCount <= 1) { // case 1: we'll use the symbol directly below. Nothing to do. } else { if (right->getAsSymbolNode() != nullptr) { // case 2: we'll copy the symbol per iteration below. cloneSymNode = right->getAsSymbolNode(); } else { // case 3: assign to a temp, and indirect into that. rhsTempVar = makeInternalVariable("flattenTemp", right->getType()); rhsTempVar->getWritableType().getQualifier().makeTemporary(); TIntermTyped* noFlattenRHS = intermediate.addSymbol(*rhsTempVar, loc); // Add this to the aggregate being built. assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, noFlattenRHS, right, loc), loc); } } } // When dealing with split arrayed structures of built-ins, the arrayness is moved to the extracted built-in // variables, which is awkward when copying between split and unsplit structures. This variable tracks // array indirections so they can be percolated from outer structs to inner variables. std::vector arrayElement; TStorageQualifier leftStorage = left->getType().getQualifier().storage; TStorageQualifier rightStorage = right->getType().getQualifier().storage; int leftOffset = findSubtreeOffset(*left); int rightOffset = findSubtreeOffset(*right); const auto getMember = [&](bool isLeft, const TType& type, int member, TIntermTyped* splitNode, int splitMember, bool flattened) -> TIntermTyped * { const bool split = isLeft ? isSplitLeft : isSplitRight; TIntermTyped* subTree; const TType derefType(type, member); const TVariable* builtInVar = nullptr; if ((flattened || split) && derefType.isBuiltIn()) { auto splitPair = splitBuiltIns.find(HlslParseContext::tInterstageIoData( derefType.getQualifier().builtIn, isLeft ? leftStorage : rightStorage)); if (splitPair != splitBuiltIns.end()) builtInVar = splitPair->second; } if (builtInVar != nullptr) { // copy from interstage IO built-in if needed subTree = intermediate.addSymbol(*builtInVar); if (subTree->getType().isArray()) { // Arrayness of builtIn symbols isn't handled by the normal recursion: // it's been extracted and moved to the built-in. if (!arrayElement.empty()) { const TType splitDerefType(subTree->getType(), arrayElement.back()); subTree = intermediate.addIndex(EOpIndexDirect, subTree, intermediate.addConstantUnion(arrayElement.back(), loc), loc); subTree->setType(splitDerefType); } else if (splitNode->getAsOperator() != nullptr && (splitNode->getAsOperator()->getOp() == EOpIndexIndirect)) { // This might also be a stage with arrayed outputs, in which case there's an index // operation we should transfer to the output builtin. const TType splitDerefType(subTree->getType(), 0); subTree = intermediate.addIndex(splitNode->getAsOperator()->getOp(), subTree, splitNode->getAsBinaryNode()->getRight(), loc); subTree->setType(splitDerefType); } } } else if (flattened && !shouldFlatten(derefType, isLeft ? leftStorage : rightStorage, false)) { if (isLeft) subTree = intermediate.addSymbol(*(*leftVariables)[leftOffset++]); else subTree = intermediate.addSymbol(*(*rightVariables)[rightOffset++]); } else { // Index operator if it's an aggregate, else EOpNull const TOperator accessOp = type.isArray() ? EOpIndexDirect : type.isStruct() ? EOpIndexDirectStruct : EOpNull; if (accessOp == EOpNull) { subTree = splitNode; } else { subTree = intermediate.addIndex(accessOp, splitNode, intermediate.addConstantUnion(splitMember, loc), loc); const TType splitDerefType(splitNode->getType(), splitMember); subTree->setType(splitDerefType); } } return subTree; }; // Use the proper RHS node: a new symbol from a TVariable, copy // of an TIntermSymbol node, or sometimes the right node directly. right = rhsTempVar != nullptr ? intermediate.addSymbol(*rhsTempVar, loc) : cloneSymNode != nullptr ? intermediate.addSymbol(*cloneSymNode) : right; // Cannot use auto here, because this is recursive, and auto can't work out the type without seeing the // whole thing. So, we'll resort to an explicit type via std::function. const std::function traverse = [&](TIntermTyped* left, TIntermTyped* right, TIntermTyped* splitLeft, TIntermTyped* splitRight, bool topLevel) -> void { // If we get here, we are assigning to or from a whole array or struct that must be // flattened, so have to do member-by-member assignment: bool shouldFlattenSubsetLeft = isFlattenLeft && shouldFlatten(left->getType(), leftStorage, topLevel); bool shouldFlattenSubsetRight = isFlattenRight && shouldFlatten(right->getType(), rightStorage, topLevel); if ((left->getType().isArray() || right->getType().isArray()) && (shouldFlattenSubsetLeft || isSplitLeft || shouldFlattenSubsetRight || isSplitRight)) { const int elementsL = left->getType().isArray() ? left->getType().getOuterArraySize() : 1; const int elementsR = right->getType().isArray() ? right->getType().getOuterArraySize() : 1; // The arrays might not be the same size, // e.g., if the size has been forced for EbvTessLevelInner/Outer. const int elementsToCopy = std::min(elementsL, elementsR); // array case for (int element = 0; element < elementsToCopy; ++element) { arrayElement.push_back(element); // Add a new AST symbol node if we have a temp variable holding a complex RHS. TIntermTyped* subLeft = getMember(true, left->getType(), element, left, element, shouldFlattenSubsetLeft); TIntermTyped* subRight = getMember(false, right->getType(), element, right, element, shouldFlattenSubsetRight); TIntermTyped* subSplitLeft = isSplitLeft ? getMember(true, left->getType(), element, splitLeft, element, shouldFlattenSubsetLeft) : subLeft; TIntermTyped* subSplitRight = isSplitRight ? getMember(false, right->getType(), element, splitRight, element, shouldFlattenSubsetRight) : subRight; traverse(subLeft, subRight, subSplitLeft, subSplitRight, false); arrayElement.pop_back(); } } else if (left->getType().isStruct() && (shouldFlattenSubsetLeft || isSplitLeft || shouldFlattenSubsetRight || isSplitRight)) { // struct case const auto& membersL = *left->getType().getStruct(); const auto& membersR = *right->getType().getStruct(); // These track the members in the split structures corresponding to the same in the unsplit structures, // which we traverse in parallel. int memberL = 0; int memberR = 0; // Handle empty structure assignment if (int(membersL.size()) == 0 && int(membersR.size()) == 0) assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, left, right, loc), loc); for (int member = 0; member < int(membersL.size()); ++member) { const TType& typeL = *membersL[member].type; const TType& typeR = *membersR[member].type; TIntermTyped* subLeft = getMember(true, left->getType(), member, left, member, shouldFlattenSubsetLeft); TIntermTyped* subRight = getMember(false, right->getType(), member, right, member, shouldFlattenSubsetRight); // If there is no splitting, use the same values to avoid inefficiency. TIntermTyped* subSplitLeft = isSplitLeft ? getMember(true, left->getType(), member, splitLeft, memberL, shouldFlattenSubsetLeft) : subLeft; TIntermTyped* subSplitRight = isSplitRight ? getMember(false, right->getType(), member, splitRight, memberR, shouldFlattenSubsetRight) : subRight; if (isClipOrCullDistance(subSplitLeft->getType()) || isClipOrCullDistance(subSplitRight->getType())) { // Clip and cull distance built-in assignment is complex in its own right, and is handled in // a separate function dedicated to that task. See comment above assignClipCullDistance; const bool isOutput = isClipOrCullDistance(subSplitLeft->getType()); // Since all clip/cull semantics boil down to the same built-in type, we need to get the // semantic ID from the dereferenced type's layout location, to avoid an N-1 mapping. const TType derefType((isOutput ? left : right)->getType(), member); const int semanticId = derefType.getQualifier().layoutLocation; TIntermAggregate* clipCullAssign = assignClipCullDistance(loc, op, semanticId, subSplitLeft, subSplitRight); assignList = intermediate.growAggregate(assignList, clipCullAssign, loc); } else if (assignsClipPos(subSplitLeft)) { // Position can require special handling: see comment above assignPosition TIntermTyped* positionAssign = assignPosition(loc, op, subSplitLeft, subSplitRight); assignList = intermediate.growAggregate(assignList, positionAssign, loc); } else if (!shouldFlattenSubsetLeft && !shouldFlattenSubsetRight && !typeL.containsBuiltIn() && !typeR.containsBuiltIn()) { // If this is the final flattening (no nested types below to flatten) // we'll copy the member, else recurse into the type hierarchy. // However, if splitting the struct, that means we can copy a whole // subtree here IFF it does not itself contain any interstage built-in // IO variables, so we only have to recurse into it if there's something // for splitting to do. That can save a lot of AST verbosity for // a bunch of memberwise copies. assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subSplitLeft, subSplitRight, loc), loc); } else { traverse(subLeft, subRight, subSplitLeft, subSplitRight, false); } memberL += (typeL.isBuiltIn() ? 0 : 1); memberR += (typeR.isBuiltIn() ? 0 : 1); } } else { // Member copy assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, left, right, loc), loc); } }; TIntermTyped* splitLeft = left; TIntermTyped* splitRight = right; // If either left or right was a split structure, we must read or write it, but still have to // parallel-recurse through the unsplit structure to identify the built-in IO vars. // The left can be either a symbol, or an index into a symbol (e.g, array reference) if (isSplitLeft) { if (indexesSplit(left)) { // Index case: Refer to the indexed symbol, if the left is an index operator. const TIntermSymbol* symNode = left->getAsBinaryNode()->getLeft()->getAsSymbolNode(); TIntermTyped* splitLeftNonIo = intermediate.addSymbol(*getSplitNonIoVar(symNode->getId()), loc); splitLeft = intermediate.addIndex(left->getAsBinaryNode()->getOp(), splitLeftNonIo, left->getAsBinaryNode()->getRight(), loc); const TType derefType(splitLeftNonIo->getType(), 0); splitLeft->setType(derefType); } else { // Symbol case: otherwise, if not indexed, we have the symbol directly. const TIntermSymbol* symNode = left->getAsSymbolNode(); splitLeft = intermediate.addSymbol(*getSplitNonIoVar(symNode->getId()), loc); } } if (isSplitRight) splitRight = intermediate.addSymbol(*getSplitNonIoVar(right->getAsSymbolNode()->getId()), loc); // This makes the whole assignment, recursing through subtypes as needed. traverse(left, right, splitLeft, splitRight, true); assert(assignList != nullptr); assignList->setOperator(EOpSequence); return assignList; } // An assignment to matrix swizzle must be decomposed into individual assignments. // These must be selected component-wise from the RHS and stored component-wise // into the LHS. TIntermTyped* HlslParseContext::handleAssignToMatrixSwizzle(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) { assert(left->getAsOperator() && left->getAsOperator()->getOp() == EOpMatrixSwizzle); if (op != EOpAssign) error(loc, "only simple assignment to non-simple matrix swizzle is supported", "assign", ""); // isolate the matrix and swizzle nodes TIntermTyped* matrix = left->getAsBinaryNode()->getLeft()->getAsTyped(); const TIntermSequence& swizzle = left->getAsBinaryNode()->getRight()->getAsAggregate()->getSequence(); // if the RHS isn't already a simple vector, let's store into one TIntermSymbol* vector = right->getAsSymbolNode(); TIntermTyped* vectorAssign = nullptr; if (vector == nullptr) { // create a new intermediate vector variable to assign to TType vectorType(matrix->getBasicType(), EvqTemporary, matrix->getQualifier().precision, (int)swizzle.size()/2); vector = intermediate.addSymbol(*makeInternalVariable("intermVec", vectorType), loc); // assign the right to the new vector vectorAssign = handleAssign(loc, op, vector, right); } // Assign the vector components to the matrix components. // Store this as a sequence, so a single aggregate node represents this // entire operation. TIntermAggregate* result = intermediate.makeAggregate(vectorAssign); TType columnType(matrix->getType(), 0); TType componentType(columnType, 0); TType indexType(EbtInt); for (int i = 0; i < (int)swizzle.size(); i += 2) { // the right component, single index into the RHS vector TIntermTyped* rightComp = intermediate.addIndex(EOpIndexDirect, vector, intermediate.addConstantUnion(i/2, loc), loc); // the left component, double index into the LHS matrix TIntermTyped* leftComp = intermediate.addIndex(EOpIndexDirect, matrix, intermediate.addConstantUnion(swizzle[i]->getAsConstantUnion()->getConstArray(), indexType, loc), loc); leftComp->setType(columnType); leftComp = intermediate.addIndex(EOpIndexDirect, leftComp, intermediate.addConstantUnion(swizzle[i+1]->getAsConstantUnion()->getConstArray(), indexType, loc), loc); leftComp->setType(componentType); // Add the assignment to the aggregate result = intermediate.growAggregate(result, intermediate.addAssign(op, leftComp, rightComp, loc)); } result->setOp(EOpSequence); return result; } // // HLSL atomic operations have slightly different arguments than // GLSL/AST/SPIRV. The semantics are converted below in decomposeIntrinsic. // This provides the post-decomposition equivalent opcode. // TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage) { switch (op) { case EOpInterlockedAdd: return isImage ? EOpImageAtomicAdd : EOpAtomicAdd; case EOpInterlockedAnd: return isImage ? EOpImageAtomicAnd : EOpAtomicAnd; case EOpInterlockedCompareExchange: return isImage ? EOpImageAtomicCompSwap : EOpAtomicCompSwap; case EOpInterlockedMax: return isImage ? EOpImageAtomicMax : EOpAtomicMax; case EOpInterlockedMin: return isImage ? EOpImageAtomicMin : EOpAtomicMin; case EOpInterlockedOr: return isImage ? EOpImageAtomicOr : EOpAtomicOr; case EOpInterlockedXor: return isImage ? EOpImageAtomicXor : EOpAtomicXor; case EOpInterlockedExchange: return isImage ? EOpImageAtomicExchange : EOpAtomicExchange; case EOpInterlockedCompareStore: // TODO: ... default: error(loc, "unknown atomic operation", "unknown op", ""); return EOpNull; } } // // Create a combined sampler/texture from separate sampler and texture. // TIntermAggregate* HlslParseContext::handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler) { TIntermAggregate* txcombine = new TIntermAggregate(EOpConstructTextureSampler); txcombine->getSequence().push_back(argTex); txcombine->getSequence().push_back(argSampler); TSampler samplerType = argTex->getType().getSampler(); samplerType.combined = true; // TODO: // This block exists until the spec no longer requires shadow modes on texture objects. // It can be deleted after that, along with the shadowTextureVariant member. { const bool shadowMode = argSampler->getType().getSampler().shadow; TIntermSymbol* texSymbol = argTex->getAsSymbolNode(); if (texSymbol == nullptr) texSymbol = argTex->getAsBinaryNode()->getLeft()->getAsSymbolNode(); if (texSymbol == nullptr) { error(loc, "unable to find texture symbol", "", ""); return nullptr; } // This forces the texture's shadow state to be the sampler's // shadow state. This depends on downstream optimization to // DCE one variant in [shadow, nonshadow] if both are present, // or the SPIR-V module would be invalid. int newId = texSymbol->getId(); // Check to see if this texture has been given a shadow mode already. // If so, look up the one we already have. const auto textureShadowEntry = textureShadowVariant.find(texSymbol->getId()); if (textureShadowEntry != textureShadowVariant.end()) newId = textureShadowEntry->second->get(shadowMode); else textureShadowVariant[texSymbol->getId()] = 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: 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: break; } TIntermAggregate* constructCoord = new TIntermAggregate(constructOp); constructCoord->getSequence().push_back(arg1); constructCoord->setLoc(loc); // The input vector should never be less than 2, since there's always a bias. // The max is for safety, and should be a no-op. constructCoord->setType(TType(arg1->getBasicType(), EvqTemporary, std::max(arg1->getVectorSize() - 1, 0))); TIntermAggregate* tex = new TIntermAggregate(EOpTexture); tex->getSequence().push_back(arg0); // sampler tex->getSequence().push_back(constructCoord); // coordinate tex->getSequence().push_back(bias); // bias node = convertReturn(tex, sampler); break; } // **** DX10 methods: **** case EOpMethodSample: // fall through case EOpMethodSampleBias: // ... { TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); TIntermTyped* argBias = nullptr; TIntermTyped* argOffset = nullptr; const TSampler& sampler = argTex->getType().getSampler(); int nextArg = 3; if (op == EOpMethodSampleBias) // SampleBias has a bias arg argBias = argAggregate->getSequence()[nextArg++]->getAsTyped(); TOperator textureOp = EOpTexture; if ((int)argAggregate->getSequence().size() == (nextArg+1)) { // last parameter is offset form textureOp = EOpTextureOffset; argOffset = argAggregate->getSequence()[nextArg++]->getAsTyped(); } TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); TIntermAggregate* txsample = new TIntermAggregate(textureOp); txsample->getSequence().push_back(txcombine); txsample->getSequence().push_back(argCoord); if (argBias != nullptr) txsample->getSequence().push_back(argBias); if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); node = convertReturn(txsample, sampler); break; } case EOpMethodSampleGrad: // ... { TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); TIntermTyped* argDDX = argAggregate->getSequence()[3]->getAsTyped(); TIntermTyped* argDDY = argAggregate->getSequence()[4]->getAsTyped(); TIntermTyped* argOffset = nullptr; const TSampler& sampler = argTex->getType().getSampler(); TOperator textureOp = EOpTextureGrad; if (argAggregate->getSequence().size() == 6) { // last parameter is offset form textureOp = EOpTextureGradOffset; argOffset = argAggregate->getSequence()[5]->getAsTyped(); } TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); TIntermAggregate* txsample = new TIntermAggregate(textureOp); txsample->getSequence().push_back(txcombine); txsample->getSequence().push_back(argCoord); txsample->getSequence().push_back(argDDX); txsample->getSequence().push_back(argDDY); if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); node = convertReturn(txsample, sampler); break; } case EOpMethodGetDimensions: { // AST returns a vector of results, which we break apart component-wise into // separate values to assign to the HLSL method's outputs, ala: // tx . GetDimensions(width, height); // float2 sizeQueryTemp = EOpTextureQuerySize // width = sizeQueryTemp.X; // height = sizeQueryTemp.Y; TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); const TType& texType = argTex->getType(); assert(texType.getBasicType() == EbtSampler); const TSampler& sampler = texType.getSampler(); const TSamplerDim dim = sampler.dim; const bool isImage = sampler.isImage(); const bool isMs = sampler.isMultiSample(); const int numArgs = (int)argAggregate->getSequence().size(); int numDims = 0; switch (dim) { case Esd1D: numDims = 1; break; // W case Esd2D: numDims = 2; break; // W, H case Esd3D: numDims = 3; break; // W, H, D case EsdCube: numDims = 2; break; // W, H (cube) case EsdBuffer: numDims = 1; break; // W (buffers) case EsdRect: numDims = 2; break; // W, H (rect) default: assert(0 && "unhandled texture dimension"); } // Arrayed adds another dimension for the number of array elements if (sampler.isArrayed()) ++numDims; // Establish whether the method itself is querying mip levels. This can be false even // if the underlying query requires a MIP level, due to the available HLSL method overloads. const bool mipQuery = (numArgs > (numDims + 1 + (isMs ? 1 : 0))); // Establish whether we must use the LOD form of query (even if the method did not supply a mip level to query). // True if: // 1. 1D/2D/3D/Cube AND multisample==0 AND NOT image (those can be sent to the non-LOD query) // or, // 2. There is a LOD (because the non-LOD query cannot be used in that case, per spec) const bool mipRequired = ((dim == Esd1D || dim == Esd2D || dim == Esd3D || dim == EsdCube) && !isMs && !isImage) || // 1... mipQuery; // 2... // AST assumes integer return. Will be converted to float if required. TIntermAggregate* sizeQuery = new TIntermAggregate(isImage ? EOpImageQuerySize : EOpTextureQuerySize); sizeQuery->getSequence().push_back(argTex); // If we're building an LOD query, add the LOD. if (mipRequired) { // If the base HLSL query had no MIP level given, use level 0. TIntermTyped* queryLod = mipQuery ? argAggregate->getSequence()[1]->getAsTyped() : intermediate.addConstantUnion(0, loc, true); sizeQuery->getSequence().push_back(queryLod); } sizeQuery->setType(TType(EbtUint, EvqTemporary, numDims)); sizeQuery->setLoc(loc); // Return value from size query TVariable* tempArg = makeInternalVariable("sizeQueryTemp", sizeQuery->getType()); tempArg->getWritableType().getQualifier().makeTemporary(); TIntermTyped* sizeQueryAssign = intermediate.addAssign(EOpAssign, intermediate.addSymbol(*tempArg, loc), sizeQuery, loc); // Compound statement for assigning outputs TIntermAggregate* compoundStatement = intermediate.makeAggregate(sizeQueryAssign, loc); // Index of first output parameter const int outParamBase = mipQuery ? 2 : 1; for (int compNum = 0; compNum < numDims; ++compNum) { TIntermTyped* indexedOut = nullptr; TIntermSymbol* sizeQueryReturn = intermediate.addSymbol(*tempArg, loc); if (numDims > 1) { TIntermTyped* component = intermediate.addConstantUnion(compNum, loc, true); indexedOut = intermediate.addIndex(EOpIndexDirect, sizeQueryReturn, component, loc); indexedOut->setType(TType(EbtUint, EvqTemporary, 1)); indexedOut->setLoc(loc); } else { indexedOut = sizeQueryReturn; } TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + compNum]->getAsTyped(); TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, indexedOut, loc); compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); } // handle mip level parameter if (mipQuery) { TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + numDims]->getAsTyped(); TIntermAggregate* levelsQuery = new TIntermAggregate(EOpTextureQueryLevels); levelsQuery->getSequence().push_back(argTex); levelsQuery->setType(TType(EbtUint, EvqTemporary, 1)); levelsQuery->setLoc(loc); TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, levelsQuery, loc); compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); } // 2DMS formats query # samples, which needs a different query op if (sampler.isMultiSample()) { TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + numDims]->getAsTyped(); TIntermAggregate* samplesQuery = new TIntermAggregate(EOpImageQuerySamples); samplesQuery->getSequence().push_back(argTex); samplesQuery->setType(TType(EbtUint, EvqTemporary, 1)); samplesQuery->setLoc(loc); TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, samplesQuery, loc); compoundStatement = intermediate.growAggregate(compoundStatement, compAssign); } compoundStatement->setOperator(EOpSequence); compoundStatement->setLoc(loc); compoundStatement->setType(TType(EbtVoid)); node = compoundStatement; break; } case EOpMethodSampleCmp: // fall through... case EOpMethodSampleCmpLevelZero: { TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); TIntermTyped* argCmpVal = argAggregate->getSequence()[3]->getAsTyped(); TIntermTyped* argOffset = nullptr; // Sampler argument should be a sampler. if (argSamp->getType().getBasicType() != EbtSampler) { error(loc, "expected: sampler type", "", ""); return; } // Sampler should be a SamplerComparisonState if (! argSamp->getType().getSampler().isShadow()) { error(loc, "expected: SamplerComparisonState", "", ""); return; } // optional offset value if (argAggregate->getSequence().size() > 4) argOffset = argAggregate->getSequence()[4]->getAsTyped(); const int coordDimWithCmpVal = argCoord->getType().getVectorSize() + 1; // +1 for cmp // AST wants comparison value as one of the texture coordinates TOperator constructOp = EOpNull; switch (coordDimWithCmpVal) { // 1D can't happen: there's always at least 1 coordinate dimension + 1 cmp val case 2: constructOp = EOpConstructVec2; break; case 3: constructOp = EOpConstructVec3; break; case 4: constructOp = EOpConstructVec4; break; case 5: constructOp = EOpConstructVec4; break; // cubeArrayShadow, cmp value is separate arg. default: assert(0); break; } TIntermAggregate* coordWithCmp = new TIntermAggregate(constructOp); coordWithCmp->getSequence().push_back(argCoord); if (coordDimWithCmpVal != 5) // cube array shadow is special. coordWithCmp->getSequence().push_back(argCmpVal); coordWithCmp->setLoc(loc); coordWithCmp->setType(TType(argCoord->getBasicType(), EvqTemporary, std::min(coordDimWithCmpVal, 4))); TOperator textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLod : EOpTexture); if (argOffset != nullptr) textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLodOffset : EOpTextureOffset); // Create combined sampler & texture op TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); TIntermAggregate* txsample = new TIntermAggregate(textureOp); txsample->getSequence().push_back(txcombine); txsample->getSequence().push_back(coordWithCmp); if (coordDimWithCmpVal == 5) // cube array shadow is special: cmp val follows coord. txsample->getSequence().push_back(argCmpVal); // the LevelZero form uses 0 as an explicit LOD if (op == EOpMethodSampleCmpLevelZero) txsample->getSequence().push_back(intermediate.addConstantUnion(0.0, EbtFloat, loc, true)); // Add offset if present if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); txsample->setType(node->getType()); txsample->setLoc(loc); node = txsample; break; } case EOpMethodLoad: { TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); TIntermTyped* argCoord = argAggregate->getSequence()[1]->getAsTyped(); TIntermTyped* argOffset = nullptr; TIntermTyped* lodComponent = nullptr; TIntermTyped* coordSwizzle = nullptr; const TSampler& sampler = argTex->getType().getSampler(); const bool isMS = sampler.isMultiSample(); const bool isBuffer = sampler.dim == EsdBuffer; const bool isImage = sampler.isImage(); const TBasicType coordBaseType = argCoord->getType().getBasicType(); // Last component of coordinate is the mip level, for non-MS. we separate them here: if (isMS || isBuffer || isImage) { // MS, Buffer, and Image have no LOD coordSwizzle = argCoord; } else { // Extract coordinate int swizzleSize = argCoord->getType().getVectorSize() - (isMS ? 0 : 1); TSwizzleSelectors coordFields; for (int i = 0; i < swizzleSize; ++i) coordFields.push_back(i); TIntermTyped* coordIdx = intermediate.addSwizzle(coordFields, loc); coordSwizzle = intermediate.addIndex(EOpVectorSwizzle, argCoord, coordIdx, loc); coordSwizzle->setType(TType(coordBaseType, EvqTemporary, coordFields.size())); // Extract LOD TIntermTyped* lodIdx = intermediate.addConstantUnion(coordFields.size(), loc, true); lodComponent = intermediate.addIndex(EOpIndexDirect, argCoord, lodIdx, loc); lodComponent->setType(TType(coordBaseType, EvqTemporary, 1)); } const int numArgs = (int)argAggregate->getSequence().size(); const bool hasOffset = ((!isMS && numArgs == 3) || (isMS && numArgs == 4)); // Create texel fetch const TOperator fetchOp = (isImage ? EOpImageLoad : hasOffset ? EOpTextureFetchOffset : EOpTextureFetch); TIntermAggregate* txfetch = new TIntermAggregate(fetchOp); // Build up the fetch txfetch->getSequence().push_back(argTex); txfetch->getSequence().push_back(coordSwizzle); if (isMS) { // add 2DMS sample index TIntermTyped* argSampleIdx = argAggregate->getSequence()[2]->getAsTyped(); txfetch->getSequence().push_back(argSampleIdx); } else if (isBuffer) { // Nothing else to do for buffers. } else if (isImage) { // Nothing else to do for images. } else { // 2DMS and buffer have no LOD, but everything else does. txfetch->getSequence().push_back(lodComponent); } // Obtain offset arg, if there is one. if (hasOffset) { const int offsetPos = (isMS ? 3 : 2); argOffset = argAggregate->getSequence()[offsetPos]->getAsTyped(); txfetch->getSequence().push_back(argOffset); } node = convertReturn(txfetch, sampler); break; } case EOpMethodSampleLevel: { TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); TIntermTyped* argLod = argAggregate->getSequence()[3]->getAsTyped(); TIntermTyped* argOffset = nullptr; const TSampler& sampler = argTex->getType().getSampler(); const int numArgs = (int)argAggregate->getSequence().size(); if (numArgs == 5) // offset, if present argOffset = argAggregate->getSequence()[4]->getAsTyped(); const TOperator textureOp = (argOffset == nullptr ? EOpTextureLod : EOpTextureLodOffset); TIntermAggregate* txsample = new TIntermAggregate(textureOp); TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); txsample->getSequence().push_back(txcombine); txsample->getSequence().push_back(argCoord); txsample->getSequence().push_back(argLod); if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); node = convertReturn(txsample, sampler); break; } case EOpMethodGather: { TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); TIntermTyped* argOffset = nullptr; // Offset is optional if (argAggregate->getSequence().size() > 3) argOffset = argAggregate->getSequence()[3]->getAsTyped(); const TOperator textureOp = (argOffset == nullptr ? EOpTextureGather : EOpTextureGatherOffset); TIntermAggregate* txgather = new TIntermAggregate(textureOp); TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); txgather->getSequence().push_back(txcombine); txgather->getSequence().push_back(argCoord); // Offset if not given is implicitly channel 0 (red) if (argOffset != nullptr) txgather->getSequence().push_back(argOffset); txgather->setType(node->getType()); txgather->setLoc(loc); node = txgather; break; } case EOpMethodGatherRed: // fall through... case EOpMethodGatherGreen: // ... case EOpMethodGatherBlue: // ... case EOpMethodGatherAlpha: // ... case EOpMethodGatherCmpRed: // ... case EOpMethodGatherCmpGreen: // ... case EOpMethodGatherCmpBlue: // ... case EOpMethodGatherCmpAlpha: // ... { int channel = 0; // the channel we are gathering int cmpValues = 0; // 1 if there is a compare value (handier than a bool below) switch (op) { case EOpMethodGatherCmpRed: cmpValues = 1; // fall through case EOpMethodGatherRed: channel = 0; break; case EOpMethodGatherCmpGreen: cmpValues = 1; // fall through case EOpMethodGatherGreen: channel = 1; break; case EOpMethodGatherCmpBlue: cmpValues = 1; // fall through case EOpMethodGatherBlue: channel = 2; break; case EOpMethodGatherCmpAlpha: cmpValues = 1; // fall through case EOpMethodGatherAlpha: channel = 3; break; default: assert(0); break; } // For now, we have nothing to map the component-wise comparison forms // to, because neither GLSL nor SPIR-V has such an opcode. Issue an // unimplemented error instead. Most of the machinery is here if that // should ever become available. However, red can be passed through // to OpImageDrefGather. G/B/A cannot, because that opcode does not // accept a component. if (cmpValues != 0 && op != EOpMethodGatherCmpRed) { error(loc, "unimplemented: component-level gather compare", "", ""); return; } int arg = 0; TIntermTyped* argTex = argAggregate->getSequence()[arg++]->getAsTyped(); TIntermTyped* argSamp = argAggregate->getSequence()[arg++]->getAsTyped(); TIntermTyped* argCoord = argAggregate->getSequence()[arg++]->getAsTyped(); TIntermTyped* argOffset = nullptr; TIntermTyped* argOffsets[4] = { nullptr, nullptr, nullptr, nullptr }; // TIntermTyped* argStatus = nullptr; // TODO: residency TIntermTyped* argCmp = nullptr; const TSamplerDim dim = argTex->getType().getSampler().dim; const int argSize = (int)argAggregate->getSequence().size(); bool hasStatus = (argSize == (5+cmpValues) || argSize == (8+cmpValues)); bool hasOffset1 = false; bool hasOffset4 = false; // Sampler argument should be a sampler. if (argSamp->getType().getBasicType() != EbtSampler) { error(loc, "expected: sampler type", "", ""); return; } // Cmp forms require SamplerComparisonState if (cmpValues > 0 && ! argSamp->getType().getSampler().isShadow()) { error(loc, "expected: SamplerComparisonState", "", ""); return; } // Only 2D forms can have offsets. Discover if we have 0, 1 or 4 offsets. if (dim == Esd2D) { hasOffset1 = (argSize == (4+cmpValues) || argSize == (5+cmpValues)); hasOffset4 = (argSize == (7+cmpValues) || argSize == (8+cmpValues)); } assert(!(hasOffset1 && hasOffset4)); TOperator textureOp = EOpTextureGather; // Compare forms have compare value if (cmpValues != 0) argCmp = argOffset = argAggregate->getSequence()[arg++]->getAsTyped(); // Some forms have single offset if (hasOffset1) { textureOp = EOpTextureGatherOffset; // single offset form argOffset = argAggregate->getSequence()[arg++]->getAsTyped(); } // Some forms have 4 gather offsets if (hasOffset4) { textureOp = EOpTextureGatherOffsets; // note plural, for 4 offset form for (int offsetNum = 0; offsetNum < 4; ++offsetNum) argOffsets[offsetNum] = argAggregate->getSequence()[arg++]->getAsTyped(); } // Residency status if (hasStatus) { // argStatus = argAggregate->getSequence()[arg++]->getAsTyped(); error(loc, "unimplemented: residency status", "", ""); return; } TIntermAggregate* txgather = new TIntermAggregate(textureOp); TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); TIntermTyped* argChannel = intermediate.addConstantUnion(channel, loc, true); txgather->getSequence().push_back(txcombine); txgather->getSequence().push_back(argCoord); // AST wants an array of 4 offsets, where HLSL has separate args. Here // we construct an array from the separate args. if (hasOffset4) { TType arrayType(EbtInt, EvqTemporary, 2); TArraySizes* arraySizes = new TArraySizes; arraySizes->addInnerSize(4); arrayType.transferArraySizes(arraySizes); TIntermAggregate* initList = new TIntermAggregate(EOpNull); for (int offsetNum = 0; offsetNum < 4; ++offsetNum) initList->getSequence().push_back(argOffsets[offsetNum]); argOffset = addConstructor(loc, initList, arrayType); } // Add comparison value if we have one if (argCmp != nullptr) txgather->getSequence().push_back(argCmp); // Add offset (either 1, or an array of 4) if we have one if (argOffset != nullptr) txgather->getSequence().push_back(argOffset); // Add channel value if the sampler is not shadow if (! argSamp->getType().getSampler().isShadow()) txgather->getSequence().push_back(argChannel); txgather->setType(node->getType()); txgather->setLoc(loc); node = txgather; break; } case EOpMethodCalculateLevelOfDetail: case EOpMethodCalculateLevelOfDetailUnclamped: { TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped(); TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped(); TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); TIntermAggregate* txquerylod = new TIntermAggregate(EOpTextureQueryLod); TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp); txquerylod->getSequence().push_back(txcombine); txquerylod->getSequence().push_back(argCoord); TIntermTyped* lodComponent = intermediate.addConstantUnion( 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) { // 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: // Make sure the first argument is an interpolant, or an array element of an interpolant if (arg0->getType().getQualifier().storage != EvqVaryingIn) { // It might still be an array element. // // We could check more, but the semantics of the first argument are already met; the // only way to turn an array into a float/vec* is array dereference and swizzle. // // ES and desktop 4.3 and earlier: swizzles may not be used // desktop 4.4 and later: swizzles may be used const TIntermTyped* base = TIntermediate::findLValueBase(arg0, true); if (base == nullptr || base->getType().getQualifier().storage != EvqVaryingIn) error(loc, "first argument must be an interpolant, or interpolant-array element", fnCandidate.getName().c_str(), ""); } break; default: break; } } // // Handle seeing something in a grammar production that can be done by calling // a constructor. // // The constructor still must be "handled" by handleFunctionCall(), which will // then call handleConstructor(). // TFunction* HlslParseContext::makeConstructorCall(const TSourceLoc& loc, const TType& type) { TOperator op = intermediate.mapTypeToConstructorOp(type); if (op == EOpNull) { error(loc, "cannot construct this type", type.getBasicString(), ""); return nullptr; } TString empty(""); return new TFunction(&empty, type, op); } // // Handle seeing a "COLON semantic" at the end of a type declaration, // by updating the type according to the semantic. // void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, TBuiltInVariable builtIn, const TString& upperCase) { // Parse and return semantic number. If limit is 0, it will be ignored. Otherwise, if the parsed // semantic number is >= limit, errorMsg is issued and 0 is returned. // TODO: it would be nicer if limit and errorMsg had default parameters, but some compilers don't yet // accept those in lambda functions. const auto getSemanticNumber = [this, loc](const TString& semantic, unsigned int limit, const char* errorMsg) -> unsigned int { size_t pos = semantic.find_last_not_of("0123456789"); if (pos == std::string::npos) return 0u; unsigned int semanticNum = (unsigned int)atoi(semantic.c_str() + pos + 1); if (limit != 0 && semanticNum >= limit) { error(loc, errorMsg, semantic.c_str(), ""); return 0u; } return semanticNum; }; switch(builtIn) { case EbvNone: // Get location numbers from fragment outputs, instead of // auto-assigning them. if (language == EShLangFragment && upperCase.compare(0, 9, "SV_TARGET") == 0) { qualifier.layoutLocation = getSemanticNumber(upperCase, 0, nullptr); nextOutLocation = std::max(nextOutLocation, qualifier.layoutLocation + 1u); } else if (upperCase.compare(0, 15, "SV_CLIPDISTANCE") == 0) { builtIn = EbvClipDistance; qualifier.layoutLocation = getSemanticNumber(upperCase, maxClipCullRegs, "invalid clip semantic"); } else if (upperCase.compare(0, 15, "SV_CULLDISTANCE") == 0) { builtIn = EbvCullDistance; qualifier.layoutLocation = getSemanticNumber(upperCase, maxClipCullRegs, "invalid cull semantic"); } break; case EbvPosition: // adjust for stage in/out if (language == EShLangFragment) builtIn = EbvFragCoord; break; case EbvFragStencilRef: error(loc, "unimplemented; need ARB_shader_stencil_export", "SV_STENCILREF", ""); break; case EbvTessLevelInner: case EbvTessLevelOuter: qualifier.patch = true; break; default: break; } if (qualifier.builtIn == EbvNone) qualifier.builtIn = builtIn; qualifier.semanticName = intermediate.addSemanticName(upperCase); } // // Handle seeing something like "PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN" // // 'location' has the "c[Subcomponent]" part. // 'component' points to the "component" part, or nullptr if not present. // void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TQualifier& qualifier, const glslang::TString& location, const glslang::TString* component) { if (location.size() == 0 || location[0] != 'c') { error(loc, "expected 'c'", "packoffset", ""); return; } if (location.size() == 1) return; if (! isdigit(location[1])) { error(loc, "expected number after 'c'", "packoffset", ""); return; } qualifier.layoutOffset = 16 * atoi(location.substr(1, location.size()).c_str()); if (component != nullptr) { int componentOffset = 0; switch ((*component)[0]) { case 'x': componentOffset = 0; break; case 'y': componentOffset = 4; break; case 'z': componentOffset = 8; break; case 'w': componentOffset = 12; break; default: componentOffset = -1; break; } if (componentOffset < 0 || component->size() > 1) { error(loc, "expected {x, y, z, w} for component", "packoffset", ""); return; } qualifier.layoutOffset += componentOffset; } } // // Handle seeing something like "REGISTER LEFT_PAREN [shader_profile,] Type# RIGHT_PAREN" // // 'profile' points to the shader_profile part, or nullptr if not present. // 'desc' is the type# part. // void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifier, const glslang::TString* profile, const glslang::TString& desc, int subComponent, const glslang::TString* spaceDesc) { if (profile != nullptr) warn(loc, "ignoring shader_profile", "register", ""); if (desc.size() < 1) { error(loc, "expected register type", "register", ""); return; } int regNumber = 0; if (desc.size() > 1) { if (isdigit(desc[1])) regNumber = atoi(desc.substr(1, desc.size()).c_str()); else { error(loc, "expected register number after register type", "register", ""); return; } } // 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'. // If there is duplication, issue error messages, unless 'force' // is specified, which means to just override default settings. // // Also, when force is false, it will be assumed that 'src' follows // 'dst', for the purpose of error checking order for versions // that require specific orderings of qualifiers. // void HlslParseContext::mergeQualifiers(TQualifier& dst, const TQualifier& src) { // Storage qualification if (dst.storage == EvqTemporary || dst.storage == EvqGlobal) dst.storage = src.storage; else if ((dst.storage == EvqIn && src.storage == EvqOut) || (dst.storage == EvqOut && src.storage == EvqIn)) dst.storage = EvqInOut; else if ((dst.storage == EvqIn && src.storage == EvqConst) || (dst.storage == EvqConst && src.storage == EvqIn)) dst.storage = EvqConstReadOnly; // Layout qualifiers mergeObjectLayoutQualifiers(dst, src, false); // individual qualifiers bool repeated = false; #define MERGE_SINGLETON(field) repeated |= dst.field && src.field; dst.field |= src.field; MERGE_SINGLETON(invariant); MERGE_SINGLETON(noContraction); MERGE_SINGLETON(centroid); MERGE_SINGLETON(smooth); MERGE_SINGLETON(flat); MERGE_SINGLETON(nopersp); MERGE_SINGLETON(patch); MERGE_SINGLETON(sample); MERGE_SINGLETON(coherent); MERGE_SINGLETON(volatil); MERGE_SINGLETON(restrict); MERGE_SINGLETON(readonly); MERGE_SINGLETON(writeonly); MERGE_SINGLETON(specConstant); MERGE_SINGLETON(nonUniform); } // used to flatten the sampler type space into a single dimension // correlates with the declaration of defaultSamplerPrecision[] int HlslParseContext::computeSamplerTypeIndex(TSampler& sampler) { int arrayIndex = sampler.arrayed ? 1 : 0; int shadowIndex = sampler.shadow ? 1 : 0; int externalIndex = sampler.external ? 1 : 0; return EsdNumDims * (EbtNumTypes * (2 * (2 * arrayIndex + shadowIndex) + externalIndex) + sampler.type) + sampler.dim; } // // Do size checking for an array type's size. // void HlslParseContext::arraySizeCheck(const TSourceLoc& loc, TIntermTyped* expr, TArraySize& sizePair) { bool isConst = false; sizePair.size = 1; sizePair.node = nullptr; TIntermConstantUnion* constant = expr->getAsConstantUnion(); if (constant) { // handle true (non-specialization) constant sizePair.size = constant->getConstArray()[0].getIConst(); isConst = true; } else { // see if it's a specialization constant instead if (expr->getQualifier().isSpecConstant()) { isConst = true; sizePair.node = expr; TIntermSymbol* symbol = expr->getAsSymbolNode(); if (symbol && symbol->getConstArray().size() > 0) sizePair.size = symbol->getConstArray()[0].getIConst(); } } if (! isConst || (expr->getBasicType() != EbtInt && expr->getBasicType() != EbtUint)) { error(loc, "array size must be a constant integer expression", "", ""); return; } if (sizePair.size <= 0) { error(loc, "array size must be a positive integer", "", ""); return; } } // // Require array to be completely sized // void HlslParseContext::arraySizeRequiredCheck(const TSourceLoc& loc, const TArraySizes& arraySizes) { if (arraySizes.hasUnsized()) error(loc, "array size required", "", ""); } void HlslParseContext::structArrayCheck(const TSourceLoc& /*loc*/, const TType& type) { const TTypeList& structure = *type.getStruct(); for (int m = 0; m < (int)structure.size(); ++m) { const TType& member = *structure[m].type; if (member.isArray()) arraySizeRequiredCheck(structure[m].loc, *member.getArraySizes()); } } // // Do all the semantic checking for declaring or redeclaring an array, with and // without a size, and make the right changes to the symbol table. // void HlslParseContext::declareArray(const TSourceLoc& loc, const TString& identifier, const TType& type, TSymbol*& symbol, bool track) { if (symbol == nullptr) { bool currentScope; symbol = symbolTable.find(identifier, nullptr, ¤tScope); if (symbol && builtInName(identifier) && ! symbolTable.atBuiltInLevel()) { // bad shader (errors already reported) trying to redeclare a built-in name as an array return; } if (symbol == nullptr || ! currentScope) { // // Successfully process a new definition. // (Redeclarations have to take place at the same scope; otherwise they are hiding declarations) // symbol = new TVariable(&identifier, type); symbolTable.insert(*symbol); if (track && symbolTable.atGlobalLevel()) trackLinkage(*symbol); return; } if (symbol->getAsAnonMember()) { error(loc, "cannot redeclare a user-block member array", identifier.c_str(), ""); symbol = nullptr; return; } } // // Process a redeclaration. // if (symbol == nullptr) { error(loc, "array variable name expected", identifier.c_str(), ""); return; } // redeclareBuiltinVariable() should have already done the copyUp() TType& existingType = symbol->getWritableType(); if (existingType.isSizedArray()) { // be more lenient for input arrays to geometry shaders and tessellation control outputs, // where the redeclaration is the same size return; } existingType.updateArraySizes(type); } // // Enforce non-initializer type/qualifier rules. // void HlslParseContext::fixConstInit(const TSourceLoc& loc, const TString& identifier, TType& type, TIntermTyped*& initializer) { // // Make the qualifier make sense, given that there is an initializer. // if (initializer == nullptr) { if (type.getQualifier().storage == EvqConst || type.getQualifier().storage == EvqConstReadOnly) { initializer = intermediate.makeAggregate(loc); warn(loc, "variable with qualifier 'const' not initialized; zero initializing", identifier.c_str(), ""); } } } // // See if the identifier is a built-in symbol that can be redeclared, and if so, // copy the symbol table's read-only built-in variable to the current // global level, where it can be modified based on the passed in type. // // Returns nullptr if no redeclaration took place; meaning a normal declaration still // needs to occur for it, not necessarily an error. // // Returns a redeclared and type-modified variable if a redeclared occurred. // TSymbol* HlslParseContext::redeclareBuiltinVariable(const TSourceLoc& /*loc*/, const TString& identifier, const TQualifier& /*qualifier*/, const TShaderQualifiers& /*publicType*/) { if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel()) return nullptr; return nullptr; } // // Generate index to the array element in a structure buffer (SSBO) // TIntermTyped* HlslParseContext::indexStructBufferContent(const TSourceLoc& loc, TIntermTyped* buffer) const { // Bail out if not a struct buffer if (buffer == nullptr || ! isStructBufferType(buffer->getType())) return nullptr; // Runtime sized array is always the last element. const TTypeList* bufferStruct = buffer->getType().getStruct(); TIntermTyped* arrayPosition = intermediate.addConstantUnion(unsigned(bufferStruct->size()-1), loc); TIntermTyped* argArray = intermediate.addIndex(EOpIndexDirectStruct, buffer, arrayPosition, loc); argArray->setType(*(*bufferStruct)[bufferStruct->size()-1].type); return argArray; } // // IFF type is a structuredbuffer/byteaddressbuffer type, return the content // (template) type. E.g, StructuredBuffer -> MyType. Else return nullptr. // TType* HlslParseContext::getStructBufferContentType(const TType& type) const { if (type.getBasicType() != EbtBlock || type.getQualifier().storage != EvqBuffer) return nullptr; const int memberCount = (int)type.getStruct()->size(); assert(memberCount > 0); TType* contentType = (*type.getStruct())[memberCount-1].type; return contentType->isUnsizedArray() ? contentType : nullptr; } // // If an existing struct buffer has a sharable type, then share it. // void HlslParseContext::shareStructBufferType(TType& type) { // PackOffset must be equivalent to share types on a per-member basis. // Note: cannot use auto type due to recursion. Thus, this is a std::function. const std::function compareQualifiers = [&](TType& lhs, TType& rhs) -> bool { if (lhs.getQualifier().layoutOffset != rhs.getQualifier().layoutOffset) return false; if (lhs.isStruct() != rhs.isStruct()) return false; if (lhs.isStruct() && rhs.isStruct()) { if (lhs.getStruct()->size() != rhs.getStruct()->size()) return false; for (int i = 0; i < int(lhs.getStruct()->size()); ++i) if (!compareQualifiers(*(*lhs.getStruct())[i].type, *(*rhs.getStruct())[i].type)) return false; } return true; }; // We need to compare certain qualifiers in addition to the type. const auto typeEqual = [compareQualifiers](TType& lhs, TType& rhs) -> bool { if (lhs.getQualifier().readonly != rhs.getQualifier().readonly) return false; // If both are structures, recursively look for packOffset equality // as well as type equality. return compareQualifiers(lhs, rhs) && lhs == rhs; }; // This is an exhaustive O(N) search, but real world shaders have // only a small number of these. for (int idx = 0; idx < int(structBufferTypes.size()); ++idx) { // If the deep structure matches, modulo qualifiers, use it if (typeEqual(*structBufferTypes[idx], type)) { type.shallowCopy(*structBufferTypes[idx]); return; } } // Otherwise, remember it: TType* typeCopy = new TType; typeCopy->shallowCopy(type); structBufferTypes.push_back(typeCopy); } void HlslParseContext::paramFix(TType& type) { switch (type.getQualifier().storage) { case EvqConst: type.getQualifier().storage = EvqConstReadOnly; break; case EvqGlobal: case EvqUniform: case EvqTemporary: type.getQualifier().storage = EvqIn; break; case EvqBuffer: { // SSBO parameter. These do not go through the declareBlock path since they are fn parameters. correctUniform(type.getQualifier()); TQualifier bufferQualifier = globalBufferDefaults; mergeObjectLayoutQualifiers(bufferQualifier, type.getQualifier(), true); bufferQualifier.storage = type.getQualifier().storage; bufferQualifier.readonly = type.getQualifier().readonly; bufferQualifier.coherent = type.getQualifier().coherent; bufferQualifier.declaredBuiltIn = type.getQualifier().declaredBuiltIn; type.getQualifier() = bufferQualifier; break; } default: break; } } void HlslParseContext::specializationCheck(const TSourceLoc& loc, const TType& type, const char* op) { if (type.containsSpecializationSize()) error(loc, "can't use with types containing arrays sized with a specialization constant", op, ""); } // // Layout qualifier stuff. // // Put the id's layout qualification into the public type, for qualifiers not having a number set. // This is before we know any type information for error checking. void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qualifier, TString& id) { std::transform(id.begin(), id.end(), id.begin(), ::tolower); if (id == TQualifier::getLayoutMatrixString(ElmColumnMajor)) { qualifier.layoutMatrix = ElmRowMajor; return; } if (id == TQualifier::getLayoutMatrixString(ElmRowMajor)) { qualifier.layoutMatrix = ElmColumnMajor; return; } if (id == "push_constant") { requireVulkan(loc, "push_constant"); qualifier.layoutPushConstant = true; return; } if (language == EShLangGeometry || language == EShLangTessEvaluation) { if (id == TQualifier::getGeometryString(ElgTriangles)) { // publicType.shaderQualifiers.geometry = ElgTriangles; warn(loc, "ignored", id.c_str(), ""); return; } if (language == EShLangGeometry) { if (id == TQualifier::getGeometryString(ElgPoints)) { // publicType.shaderQualifiers.geometry = ElgPoints; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgLineStrip)) { // publicType.shaderQualifiers.geometry = ElgLineStrip; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgLines)) { // publicType.shaderQualifiers.geometry = ElgLines; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgLinesAdjacency)) { // publicType.shaderQualifiers.geometry = ElgLinesAdjacency; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgTrianglesAdjacency)) { // publicType.shaderQualifiers.geometry = ElgTrianglesAdjacency; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgTriangleStrip)) { // publicType.shaderQualifiers.geometry = ElgTriangleStrip; warn(loc, "ignored", id.c_str(), ""); return; } } else { assert(language == EShLangTessEvaluation); // input primitive if (id == TQualifier::getGeometryString(ElgTriangles)) { // publicType.shaderQualifiers.geometry = ElgTriangles; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgQuads)) { // publicType.shaderQualifiers.geometry = ElgQuads; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getGeometryString(ElgIsolines)) { // publicType.shaderQualifiers.geometry = ElgIsolines; warn(loc, "ignored", id.c_str(), ""); return; } // vertex spacing if (id == TQualifier::getVertexSpacingString(EvsEqual)) { // publicType.shaderQualifiers.spacing = EvsEqual; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getVertexSpacingString(EvsFractionalEven)) { // publicType.shaderQualifiers.spacing = EvsFractionalEven; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getVertexSpacingString(EvsFractionalOdd)) { // publicType.shaderQualifiers.spacing = EvsFractionalOdd; warn(loc, "ignored", id.c_str(), ""); return; } // triangle order if (id == TQualifier::getVertexOrderString(EvoCw)) { // publicType.shaderQualifiers.order = EvoCw; warn(loc, "ignored", id.c_str(), ""); return; } if (id == TQualifier::getVertexOrderString(EvoCcw)) { // publicType.shaderQualifiers.order = EvoCcw; warn(loc, "ignored", id.c_str(), ""); return; } // point mode if (id == "point_mode") { // publicType.shaderQualifiers.pointMode = true; warn(loc, "ignored", id.c_str(), ""); return; } } } if (language == EShLangFragment) { if (id == "origin_upper_left") { // publicType.shaderQualifiers.originUpperLeft = true; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "pixel_center_integer") { // publicType.shaderQualifiers.pixelCenterInteger = true; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "early_fragment_tests") { // publicType.shaderQualifiers.earlyFragmentTests = true; warn(loc, "ignored", id.c_str(), ""); return; } for (TLayoutDepth depth = (TLayoutDepth)(EldNone + 1); depth < EldCount; depth = (TLayoutDepth)(depth + 1)) { if (id == TQualifier::getLayoutDepthString(depth)) { // publicType.shaderQualifiers.layoutDepth = depth; warn(loc, "ignored", id.c_str(), ""); return; } } if (id.compare(0, 13, "blend_support") == 0) { bool found = false; for (TBlendEquationShift be = (TBlendEquationShift)0; be < EBlendCount; be = (TBlendEquationShift)(be + 1)) { if (id == TQualifier::getBlendEquationString(be)) { requireExtensions(loc, 1, &E_GL_KHR_blend_equation_advanced, "blend equation"); intermediate.addBlendEquation(be); // publicType.shaderQualifiers.blendEquation = true; warn(loc, "ignored", id.c_str(), ""); found = true; break; } } if (! found) error(loc, "unknown blend equation", "blend_support", ""); return; } } error(loc, "unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)", id.c_str(), ""); } // Put the id's layout qualifier value into the public type, for qualifiers having a number set. // This is before we know any type information for error checking. void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qualifier, TString& id, const TIntermTyped* node) { const char* feature = "layout-id value"; // const char* nonLiteralFeature = "non-literal layout-id value"; integerCheck(node, feature); const TIntermConstantUnion* constUnion = node->getAsConstantUnion(); int value = 0; if (constUnion) { value = constUnion->getConstArray()[0].getIConst(); } std::transform(id.begin(), id.end(), id.begin(), ::tolower); if (id == "offset") { qualifier.layoutOffset = value; return; } else if (id == "align") { // "The specified alignment must be a power of 2, or a compile-time error results." if (! IsPow2(value)) error(loc, "must be a power of 2", "align", ""); else qualifier.layoutAlign = value; return; } else if (id == "location") { if ((unsigned int)value >= TQualifier::layoutLocationEnd) error(loc, "location is too large", id.c_str(), ""); else qualifier.layoutLocation = value; return; } else if (id == "set") { if ((unsigned int)value >= TQualifier::layoutSetEnd) error(loc, "set is too large", id.c_str(), ""); else qualifier.layoutSet = value; return; } else if (id == "binding") { if ((unsigned int)value >= TQualifier::layoutBindingEnd) error(loc, "binding is too large", id.c_str(), ""); else qualifier.layoutBinding = value; return; } else if (id == "component") { if ((unsigned)value >= TQualifier::layoutComponentEnd) error(loc, "component is too large", id.c_str(), ""); else qualifier.layoutComponent = value; return; } else if (id.compare(0, 4, "xfb_") == 0) { // "Any shader making any static use (after preprocessing) of any of these // *xfb_* qualifiers will cause the shader to be in a transform feedback // capturing mode and hence responsible for describing the transform feedback // setup." intermediate.setXfbMode(); if (id == "xfb_buffer") { // "It is a compile-time error to specify an *xfb_buffer* that is greater than // the implementation-dependent constant gl_MaxTransformFeedbackBuffers." if (value >= resources.maxTransformFeedbackBuffers) error(loc, "buffer is too large:", id.c_str(), "gl_MaxTransformFeedbackBuffers is %d", resources.maxTransformFeedbackBuffers); if (value >= (int)TQualifier::layoutXfbBufferEnd) error(loc, "buffer is too large:", id.c_str(), "internal max is %d", TQualifier::layoutXfbBufferEnd - 1); else qualifier.layoutXfbBuffer = value; return; } else if (id == "xfb_offset") { if (value >= (int)TQualifier::layoutXfbOffsetEnd) error(loc, "offset is too large:", id.c_str(), "internal max is %d", TQualifier::layoutXfbOffsetEnd - 1); else qualifier.layoutXfbOffset = value; return; } else if (id == "xfb_stride") { // "The resulting stride (implicit or explicit), when divided by 4, must be less than or equal to the // implementation-dependent constant gl_MaxTransformFeedbackInterleavedComponents." if (value > 4 * resources.maxTransformFeedbackInterleavedComponents) error(loc, "1/4 stride is too large:", id.c_str(), "gl_MaxTransformFeedbackInterleavedComponents is %d", resources.maxTransformFeedbackInterleavedComponents); else if (value >= (int)TQualifier::layoutXfbStrideEnd) error(loc, "stride is too large:", id.c_str(), "internal max is %d", TQualifier::layoutXfbStrideEnd - 1); if (value < (int)TQualifier::layoutXfbStrideEnd) qualifier.layoutXfbStride = value; return; } } if (id == "input_attachment_index") { requireVulkan(loc, "input_attachment_index"); if (value >= (int)TQualifier::layoutAttachmentEnd) error(loc, "attachment index is too large", id.c_str(), ""); else qualifier.layoutAttachment = value; return; } if (id == "constant_id") { setSpecConstantId(loc, qualifier, value); return; } switch (language) { case EShLangVertex: break; case EShLangTessControl: if (id == "vertices") { if (value == 0) error(loc, "must be greater than 0", "vertices", ""); else // publicType.shaderQualifiers.vertices = value; warn(loc, "ignored", id.c_str(), ""); return; } break; case EShLangTessEvaluation: break; case EShLangGeometry: if (id == "invocations") { if (value == 0) error(loc, "must be at least 1", "invocations", ""); else // publicType.shaderQualifiers.invocations = value; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "max_vertices") { // publicType.shaderQualifiers.vertices = value; warn(loc, "ignored", id.c_str(), ""); if (value > resources.maxGeometryOutputVertices) error(loc, "too large, must be less than gl_MaxGeometryOutputVertices", "max_vertices", ""); return; } if (id == "stream") { qualifier.layoutStream = value; return; } break; case EShLangFragment: if (id == "index") { qualifier.layoutIndex = value; return; } break; case EShLangCompute: if (id.compare(0, 11, "local_size_") == 0) { if (id == "local_size_x") { // publicType.shaderQualifiers.localSize[0] = value; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_y") { // publicType.shaderQualifiers.localSize[1] = value; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_z") { // publicType.shaderQualifiers.localSize[2] = value; warn(loc, "ignored", id.c_str(), ""); return; } if (spvVersion.spv != 0) { if (id == "local_size_x_id") { // publicType.shaderQualifiers.localSizeSpecId[0] = value; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_y_id") { // publicType.shaderQualifiers.localSizeSpecId[1] = value; warn(loc, "ignored", id.c_str(), ""); return; } if (id == "local_size_z_id") { // publicType.shaderQualifiers.localSizeSpecId[2] = value; warn(loc, "ignored", id.c_str(), ""); return; } } } break; default: break; } error(loc, "there is no such layout identifier for this stage taking an assigned value", id.c_str(), ""); } void HlslParseContext::setSpecConstantId(const TSourceLoc& loc, TQualifier& qualifier, int value) { if (value >= (int)TQualifier::layoutSpecConstantIdEnd) { error(loc, "specialization-constant id is too large", "constant_id", ""); } else { qualifier.layoutSpecConstantId = value; qualifier.specConstant = true; if (! intermediate.addUsedConstantId(value)) error(loc, "specialization-constant id already used", "constant_id", ""); } return; } // Merge any layout qualifier information from src into dst, leaving everything else in dst alone // // "More than one layout qualifier may appear in a single declaration. // Additionally, the same layout-qualifier-name can occur multiple times // within a layout qualifier or across multiple layout qualifiers in the // same declaration. When the same layout-qualifier-name occurs // multiple times, in a single declaration, the last occurrence overrides // the former occurrence(s). Further, if such a layout-qualifier-name // will effect subsequent declarations or other observable behavior, it // is only the last occurrence that will have any effect, behaving as if // the earlier occurrence(s) within the declaration are not present. // This is also true for overriding layout-qualifier-names, where one // overrides the other (e.g., row_major vs. column_major); only the last // occurrence has any effect." // void HlslParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQualifier& src, bool inheritOnly) { if (src.hasMatrix()) dst.layoutMatrix = src.layoutMatrix; if (src.hasPacking()) dst.layoutPacking = src.layoutPacking; if (src.hasStream()) dst.layoutStream = src.layoutStream; if (src.hasFormat()) dst.layoutFormat = src.layoutFormat; if (src.hasXfbBuffer()) dst.layoutXfbBuffer = src.layoutXfbBuffer; if (src.hasAlign()) dst.layoutAlign = src.layoutAlign; if (! inheritOnly) { if (src.hasLocation()) dst.layoutLocation = src.layoutLocation; if (src.hasComponent()) dst.layoutComponent = src.layoutComponent; if (src.hasIndex()) dst.layoutIndex = src.layoutIndex; if (src.hasOffset()) dst.layoutOffset = src.layoutOffset; if (src.hasSet()) dst.layoutSet = src.layoutSet; if (src.layoutBinding != TQualifier::layoutBindingEnd) dst.layoutBinding = src.layoutBinding; if (src.hasXfbStride()) dst.layoutXfbStride = src.layoutXfbStride; if (src.hasXfbOffset()) dst.layoutXfbOffset = src.layoutXfbOffset; if (src.hasAttachment()) dst.layoutAttachment = src.layoutAttachment; if (src.hasSpecConstantId()) dst.layoutSpecConstantId = src.layoutSpecConstantId; if (src.layoutPushConstant) dst.layoutPushConstant = true; } } // // Look up a function name in the symbol table, and make sure it is a function. // // First, look for an exact match. If there is none, use the generic selector // TParseContextBase::selectFunction() to find one, parameterized by the // convertible() and better() predicates defined below. // // Return the function symbol if found, otherwise nullptr. // const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, TFunction& call, bool& builtIn, int& thisDepth, TIntermTyped*& args) { if (symbolTable.isFunctionNameVariable(call.getName())) { error(loc, "can't use function syntax on variable", call.getName().c_str(), ""); return nullptr; } // first, look for an exact match bool dummyScope; TSymbol* symbol = symbolTable.find(call.getMangledName(), &builtIn, &dummyScope, &thisDepth); if (symbol) return symbol->getAsFunction(); // no exact match, use the generic selector, parameterized by the GLSL rules // create list of candidates to send TVector candidateList; symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); // These built-in ops can accept any type, so we bypass the argument selection if (candidateList.size() == 1 && builtIn && (candidateList[0]->getBuiltInOp() == EOpMethodAppend || candidateList[0]->getBuiltInOp() == EOpMethodRestartStrip || candidateList[0]->getBuiltInOp() == EOpMethodIncrementCounter || candidateList[0]->getBuiltInOp() == EOpMethodDecrementCounter || candidateList[0]->getBuiltInOp() == EOpMethodAppend || candidateList[0]->getBuiltInOp() == EOpMethodConsume)) { return candidateList[0]; } bool allowOnlyUpConversions = true; // can 'from' convert to 'to'? const auto convertible = [&](const TType& from, const TType& to, TOperator op, int arg) -> bool { if (from == to) return true; // no aggregate conversions if (from.isArray() || to.isArray() || from.isStruct() || to.isStruct()) return false; switch (op) { case EOpInterlockedAdd: case EOpInterlockedAnd: case EOpInterlockedCompareExchange: case EOpInterlockedCompareStore: case EOpInterlockedExchange: case EOpInterlockedMax: case EOpInterlockedMin: case EOpInterlockedOr: case EOpInterlockedXor: // We do not promote the texture or image type for these ocodes. Normally that would not // be an issue because it's a buffer, but we haven't decomposed the opcode yet, and at this // stage it's merely e.g, a basic integer type. // // Instead, we want to promote other arguments, but stay within the same family. In other // words, InterlockedAdd(RWBuffer, ...) will always use the int flavor, never the uint flavor, // but it is allowed to promote its other arguments. if (arg == 0) return false; break; case EOpMethodSample: case EOpMethodSampleBias: case EOpMethodSampleCmp: case EOpMethodSampleCmpLevelZero: case EOpMethodSampleGrad: case EOpMethodSampleLevel: case EOpMethodLoad: case EOpMethodGetDimensions: case EOpMethodGetSamplePosition: case EOpMethodGather: case EOpMethodCalculateLevelOfDetail: case EOpMethodCalculateLevelOfDetailUnclamped: case EOpMethodGatherRed: case EOpMethodGatherGreen: case EOpMethodGatherBlue: case EOpMethodGatherAlpha: case EOpMethodGatherCmp: case EOpMethodGatherCmpRed: case EOpMethodGatherCmpGreen: case EOpMethodGatherCmpBlue: case EOpMethodGatherCmpAlpha: case EOpMethodAppend: case EOpMethodRestartStrip: // those are method calls, the object type can not be changed // they are equal if the dim and type match (is dim sufficient?) if (arg == 0) return from.getSampler().type == to.getSampler().type && from.getSampler().arrayed == to.getSampler().arrayed && from.getSampler().shadow == to.getSampler().shadow && from.getSampler().ms == to.getSampler().ms && from.getSampler().dim == to.getSampler().dim; break; default: break; } // basic types have to be convertible if (allowOnlyUpConversions) if (! intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType(), EOpFunctionCall)) return false; // shapes have to be convertible if ((from.isScalarOrVec1() && to.isScalarOrVec1()) || (from.isScalarOrVec1() && to.isVector()) || (from.isScalarOrVec1() && to.isMatrix()) || (from.isVector() && to.isVector() && from.getVectorSize() >= to.getVectorSize())) return true; // TODO: what are the matrix rules? they go here return false; }; // Is 'to2' a better conversion than 'to1'? // Ties should not be considered as better. // Assumes 'convertible' already said true. const auto better = [](const TType& from, const TType& to1, const TType& to2) -> bool { // exact match is always better than mismatch if (from == to2) return from != to1; if (from == to1) return false; // shape changes are always worse if (from.isScalar() || from.isVector()) { if (from.getVectorSize() == to2.getVectorSize() && from.getVectorSize() != to1.getVectorSize()) return true; if (from.getVectorSize() == to1.getVectorSize() && from.getVectorSize() != to2.getVectorSize()) return false; } // Handle sampler betterness: An exact sampler match beats a non-exact match. // (If we just looked at basic type, all EbtSamplers would look the same). // If any type is not a sampler, just use the linearize function below. if (from.getBasicType() == EbtSampler && to1.getBasicType() == EbtSampler && to2.getBasicType() == EbtSampler) { // We can ignore the vector size in the comparison. TSampler to1Sampler = to1.getSampler(); TSampler to2Sampler = to2.getSampler(); to1Sampler.vectorSize = to2Sampler.vectorSize = from.getSampler().vectorSize; if (from.getSampler() == to2Sampler) return from.getSampler() != to1Sampler; if (from.getSampler() == to1Sampler) return false; } // Might or might not be changing shape, which means basic type might // or might not match, so within that, the question is how big a // basic-type conversion is being done. // // Use a hierarchy of domains, translated to order of magnitude // in a linearized view: // - floating-point vs. integer // - 32 vs. 64 bit (or width in general) // - bool vs. non bool // - signed vs. not signed const auto linearize = [](const TBasicType& basicType) -> int { switch (basicType) { case EbtBool: return 1; case EbtInt: return 10; case EbtUint: return 11; case EbtInt64: return 20; case EbtUint64: return 21; case EbtFloat: return 100; case EbtDouble: return 110; default: return 0; } }; return abs(linearize(to2.getBasicType()) - linearize(from.getBasicType())) < abs(linearize(to1.getBasicType()) - linearize(from.getBasicType())); }; // for ambiguity reporting bool tie = false; // send to the generic selector const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie); if (bestMatch == nullptr) { // If there is nothing selected by allowing only up-conversions (to a larger linearize() value), // we instead try down-conversions, which are valid in HLSL, but not preferred if there are any // upconversions possible. allowOnlyUpConversions = false; bestMatch = selectFunction(candidateList, call, convertible, better, tie); } if (bestMatch == nullptr) { error(loc, "no matching overloaded function found", call.getName().c_str(), ""); return nullptr; } // For built-ins, we can convert across the arguments. This will happen in several steps: // Step 1: If there's an exact match, use it. // Step 2a: Otherwise, get the operator from the best match and promote arguments: // Step 2b: reconstruct the TFunction based on the new arg types // Step 3: Re-select after type promotion is applied, to find proper candidate. if (builtIn) { // Step 1: If there's an exact match, use it. if (call.getMangledName() == bestMatch->getMangledName()) return bestMatch; // Step 2a: Otherwise, get the operator from the best match and promote arguments as if we // are that kind of operator. if (args != nullptr) { // The arg list can be a unary node, or an aggregate. We have to handle both. // We will use the normal promote() facilities, which require an interm node. TIntermOperator* promote = nullptr; if (call.getParamCount() == 1) { promote = new TIntermUnary(bestMatch->getBuiltInOp()); promote->getAsUnaryNode()->setOperand(args->getAsTyped()); } else { promote = new TIntermAggregate(bestMatch->getBuiltInOp()); promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence()); } if (! intermediate.promote(promote)) return nullptr; // Obtain the promoted arg list. if (call.getParamCount() == 1) { args = promote->getAsUnaryNode()->getOperand(); } else { promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence()); } } // Step 2b: reconstruct the TFunction based on the new arg types TFunction convertedCall(&call.getName(), call.getType(), call.getBuiltInOp()); if (args->getAsAggregate()) { // Handle aggregates: put all args into the new function call for (int arg=0; arggetAsAggregate()->getSequence().size()); ++arg) { // TODO: But for constness, we could avoid the new & shallowCopy, and use the pointer directly. TParameter param = { 0, new TType, nullptr }; param.type->shallowCopy(args->getAsAggregate()->getSequence()[arg]->getAsTyped()->getType()); convertedCall.addParameter(param); } } else if (args->getAsUnaryNode()) { // Handle unaries: put all args into the new function call TParameter param = { 0, new TType, nullptr }; param.type->shallowCopy(args->getAsUnaryNode()->getOperand()->getAsTyped()->getType()); convertedCall.addParameter(param); } else if (args->getAsTyped()) { // Handle bare e.g, floats, not in an aggregate. TParameter param = { 0, new TType, nullptr }; param.type->shallowCopy(args->getAsTyped()->getType()); convertedCall.addParameter(param); } else { assert(0); // unknown argument list. return nullptr; } // Step 3: Re-select after type promotion, to find proper candidate // send to the generic selector bestMatch = selectFunction(candidateList, convertedCall, convertible, better, tie); // At this point, there should be no tie. } if (tie) error(loc, "ambiguous best function under implicit type conversion", call.getName().c_str(), ""); // Append default parameter values if needed if (!tie && bestMatch != nullptr) { for (int defParam = call.getParamCount(); defParam < bestMatch->getParamCount(); ++defParam) { handleFunctionArgument(&call, args, (*bestMatch)[defParam].defaultValue); } } return bestMatch; } // // Do everything necessary to handle a typedef declaration, for a single symbol. // // 'parseType' is the type part of the declaration (to the left) // 'arraySizes' is the arrayness tagged on the identifier (to the right) // void HlslParseContext::declareTypedef(const TSourceLoc& loc, const TString& identifier, const TType& parseType) { TVariable* typeSymbol = new TVariable(&identifier, parseType, true); if (! symbolTable.insert(*typeSymbol)) error(loc, "name already defined", "typedef", identifier.c_str()); } // Do everything necessary to handle a struct declaration, including // making IO aliases because HLSL allows mixed IO in a struct that specializes // based on the usage (input, output, uniform, none). void HlslParseContext::declareStruct(const TSourceLoc& loc, TString& structName, TType& type) { // If it was named, which means the type can be reused later, add // it to the symbol table. (Unless it's a block, in which // case the name is not a type.) if (type.getBasicType() == EbtBlock || structName.size() == 0) return; TVariable* userTypeDef = new TVariable(&structName, type, true); if (! symbolTable.insert(*userTypeDef)) { error(loc, "redefinition", structName.c_str(), "struct"); return; } // See if we need IO aliases for the structure typeList const auto condAlloc = [](bool pred, TTypeList*& list) { if (pred && list == nullptr) list = new TTypeList; }; tIoKinds newLists = { nullptr, nullptr, nullptr }; // allocate for each kind found for (auto member = type.getStruct()->begin(); member != type.getStruct()->end(); ++member) { condAlloc(hasUniform(member->type->getQualifier()), newLists.uniform); condAlloc( hasInput(member->type->getQualifier()), newLists.input); condAlloc( hasOutput(member->type->getQualifier()), newLists.output); if (member->type->isStruct()) { auto it = ioTypeMap.find(member->type->getStruct()); if (it != ioTypeMap.end()) { condAlloc(it->second.uniform != nullptr, newLists.uniform); condAlloc(it->second.input != nullptr, newLists.input); condAlloc(it->second.output != nullptr, newLists.output); } } } if (newLists.uniform == nullptr && newLists.input == nullptr && newLists.output == nullptr) { // Won't do any IO caching, clear up the type and get out now. for (auto member = type.getStruct()->begin(); member != type.getStruct()->end(); ++member) clearUniformInputOutput(member->type->getQualifier()); return; } // We have IO involved. // Make a pure typeList for the symbol table, and cache side copies of IO versions. for (auto member = type.getStruct()->begin(); member != type.getStruct()->end(); ++member) { const auto inheritStruct = [&](TTypeList* s, TTypeLoc& ioMember) { if (s != nullptr) { ioMember.type = new TType; ioMember.type->shallowCopy(*member->type); ioMember.type->setStruct(s); } }; const auto newMember = [&](TTypeLoc& m) { if (m.type == nullptr) { m.type = new TType; m.type->shallowCopy(*member->type); } }; TTypeLoc newUniformMember = { nullptr, member->loc }; TTypeLoc newInputMember = { nullptr, member->loc }; TTypeLoc newOutputMember = { nullptr, member->loc }; if (member->type->isStruct()) { // swap in an IO child if there is one auto it = ioTypeMap.find(member->type->getStruct()); if (it != ioTypeMap.end()) { inheritStruct(it->second.uniform, newUniformMember); inheritStruct(it->second.input, newInputMember); inheritStruct(it->second.output, newOutputMember); } } if (newLists.uniform) { newMember(newUniformMember); // inherit default matrix layout (changeable via #pragma pack_matrix), if none given. if (member->type->isMatrix() && member->type->getQualifier().layoutMatrix == ElmNone) newUniformMember.type->getQualifier().layoutMatrix = globalUniformDefaults.layoutMatrix; correctUniform(newUniformMember.type->getQualifier()); newLists.uniform->push_back(newUniformMember); } if (newLists.input) { newMember(newInputMember); correctInput(newInputMember.type->getQualifier()); newLists.input->push_back(newInputMember); } if (newLists.output) { newMember(newOutputMember); correctOutput(newOutputMember.type->getQualifier()); newLists.output->push_back(newOutputMember); } // make original pure clearUniformInputOutput(member->type->getQualifier()); } ioTypeMap[type.getStruct()] = newLists; } // Lookup a user-type by name. // If found, fill in the type and return the defining symbol. // If not found, return nullptr. TSymbol* HlslParseContext::lookupUserType(const TString& typeName, TType& type) { TSymbol* symbol = symbolTable.find(typeName); if (symbol && symbol->getAsVariable() && symbol->getAsVariable()->isUserType()) { type.shallowCopy(symbol->getType()); return symbol; } else return nullptr; } // // Do everything necessary to handle a variable (non-block) declaration. // Either redeclaring a variable, or making a new one, updating the symbol // table, and all error checking. // // Returns a subtree node that computes an initializer, if needed. // Returns nullptr if there is no code to execute for initialization. // // 'parseType' is the type part of the declaration (to the left) // 'arraySizes' is the arrayness tagged on the identifier (to the right) // TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, const TString& identifier, TType& type, TIntermTyped* initializer) { if (voidErrorCheck(loc, identifier, type.getBasicType())) return nullptr; // Global consts with initializers that are non-const act like EvqGlobal in HLSL. // This test is implicitly recursive, because initializers propagate constness // up the aggregate node tree during creation. E.g, for: // { { 1, 2 }, { 3, 4 } } // the initializer list is marked EvqConst at the top node, and remains so here. However: // { 1, { myvar, 2 }, 3 } // is not a const intializer, and still becomes EvqGlobal here. const bool nonConstInitializer = (initializer != nullptr && initializer->getQualifier().storage != EvqConst); if (type.getQualifier().storage == EvqConst && symbolTable.atGlobalLevel() && nonConstInitializer) { // Force to global type.getQualifier().storage = EvqGlobal; } // make const and initialization consistent fixConstInit(loc, identifier, type, initializer); // Check for redeclaration of built-ins and/or attempting to declare a reserved name TSymbol* symbol = nullptr; inheritGlobalDefaults(type.getQualifier()); const bool flattenVar = shouldFlatten(type, type.getQualifier().storage, true); // correct IO in the type switch (type.getQualifier().storage) { case EvqGlobal: case EvqTemporary: clearUniformInputOutput(type.getQualifier()); break; case EvqUniform: case EvqBuffer: correctUniform(type.getQualifier()); if (type.isStruct()) { auto it = ioTypeMap.find(type.getStruct()); if (it != ioTypeMap.end()) type.setStruct(it->second.uniform); } break; default: break; } // Declare the variable if (type.isArray()) { // array case declareArray(loc, identifier, type, symbol, !flattenVar); } else { // non-array case if (symbol == nullptr) symbol = declareNonArray(loc, identifier, type, !flattenVar); else if (type != symbol->getType()) error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str()); } if (symbol == nullptr) return nullptr; if (flattenVar) flatten(*symbol->getAsVariable(), symbolTable.atGlobalLevel()); if (initializer == nullptr) return nullptr; // Deal with initializer TVariable* variable = symbol->getAsVariable(); if (variable == nullptr) { error(loc, "initializer requires a variable, not a member", identifier.c_str(), ""); return nullptr; } return executeInitializer(loc, initializer, variable); } // Pick up global defaults from the provide global defaults into dst. void HlslParseContext::inheritGlobalDefaults(TQualifier& dst) const { if (dst.storage == EvqVaryingOut) { if (! dst.hasStream() && language == EShLangGeometry) dst.layoutStream = globalOutputDefaults.layoutStream; if (! dst.hasXfbBuffer()) dst.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer; } } // // Make an internal-only variable whose name is for debug purposes only // and won't be searched for. Callers will only use the return value to use // the variable, not the name to look it up. It is okay if the name // is the same as other names; there won't be any conflict. // TVariable* HlslParseContext::makeInternalVariable(const char* name, const TType& type) const { TString* nameString = NewPoolTString(name); TVariable* variable = new TVariable(nameString, type); symbolTable.makeInternalVariable(*variable); return variable; } // Make a symbol node holding a new internal temporary variable. TIntermSymbol* HlslParseContext::makeInternalVariableNode(const TSourceLoc& loc, const char* name, const TType& type) const { TVariable* tmpVar = makeInternalVariable(name, type); tmpVar->getWritableType().getQualifier().makeTemporary(); return intermediate.addSymbol(*tmpVar, loc); } // // Declare a non-array variable, the main point being there is no redeclaration // for resizing allowed. // // Return the successfully declared variable. // TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, const TString& identifier, const TType& type, bool track) { // make a new variable TVariable* variable = new TVariable(&identifier, type); // add variable to symbol table if (symbolTable.insert(*variable)) { if (track && symbolTable.atGlobalLevel()) trackLinkage(*variable); return variable; } error(loc, "redefinition", variable->getName().c_str(), ""); return nullptr; } // // Handle all types of initializers from the grammar. // // Returning nullptr just means there is no code to execute to handle the // initializer, which will, for example, be the case for constant initializers. // // 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) { switch (geometry) { case ElgPoints: // fall through case ElgLines: // ... case ElgTriangles: // ... case ElgLinesAdjacency: // ... case ElgTrianglesAdjacency: // ... if (! intermediate.setInputPrimitive(geometry)) { error(loc, "input primitive geometry redefinition", TQualifier::getGeometryString(geometry), ""); return false; } break; default: error(loc, "cannot apply to 'in'", TQualifier::getGeometryString(geometry), ""); return false; } return true; } // // Update the intermediate for the given output geometry // bool HlslParseContext::handleOutputGeometry(const TSourceLoc& loc, const TLayoutGeometry& geometry) { // If this is not a geometry shader, ignore. It might be a mixed shader including several stages. // Since that's an OK situation, return true for success. if (language != EShLangGeometry) return true; switch (geometry) { case ElgPoints: case ElgLineStrip: case ElgTriangleStrip: if (! intermediate.setOutputPrimitive(geometry)) { error(loc, "output primitive geometry redefinition", TQualifier::getGeometryString(geometry), ""); return false; } break; default: error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(geometry), ""); return false; } return true; } // // Selection attributes // void HlslParseContext::handleSelectionAttributes(const TSourceLoc& loc, TIntermSelection* selection, const TAttributes& attributes) { if (selection == nullptr) return; for (auto it = attributes.begin(); it != attributes.end(); ++it) { switch (it->name) { case EatFlatten: selection->setFlatten(); break; case EatBranch: selection->setDontFlatten(); break; default: warn(loc, "attribute does not apply to a selection", "", ""); break; } } } // // Switch attributes // void HlslParseContext::handleSwitchAttributes(const TSourceLoc& loc, TIntermSwitch* selection, const TAttributes& attributes) { if (selection == nullptr) return; for (auto it = attributes.begin(); it != attributes.end(); ++it) { switch (it->name) { case EatFlatten: selection->setFlatten(); break; case EatBranch: selection->setDontFlatten(); break; default: warn(loc, "attribute does not apply to a switch", "", ""); break; } } } // // Loop attributes // void HlslParseContext::handleLoopAttributes(const TSourceLoc& loc, TIntermLoop* loop, const TAttributes& attributes) { if (loop == nullptr) return; for (auto it = attributes.begin(); it != attributes.end(); ++it) { switch (it->name) { case EatUnroll: loop->setUnroll(); break; case EatLoop: loop->setDontUnroll(); break; default: warn(loc, "attribute does not apply to a loop", "", ""); break; } } } // // Updating default qualifier for the case of a declaration with just a qualifier, // no type, block, or identifier. // void HlslParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, const TPublicType& publicType) { if (publicType.shaderQualifiers.vertices != TQualifier::layoutNotSet) { assert(language == EShLangTessControl || language == EShLangGeometry); // const char* id = (language == EShLangTessControl) ? "vertices" : "max_vertices"; } if (publicType.shaderQualifiers.invocations != TQualifier::layoutNotSet) { if (! intermediate.setInvocations(publicType.shaderQualifiers.invocations)) error(loc, "cannot change previously set layout value", "invocations", ""); } if (publicType.shaderQualifiers.geometry != ElgNone) { if (publicType.qualifier.storage == EvqVaryingIn) { switch (publicType.shaderQualifiers.geometry) { case ElgPoints: case ElgLines: case ElgLinesAdjacency: case ElgTriangles: case ElgTrianglesAdjacency: case ElgQuads: case ElgIsolines: break; default: error(loc, "cannot apply to input", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); } } else if (publicType.qualifier.storage == EvqVaryingOut) { handleOutputGeometry(loc, publicType.shaderQualifiers.geometry); } else error(loc, "cannot apply to:", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), GetStorageQualifierString(publicType.qualifier.storage)); } if (publicType.shaderQualifiers.spacing != EvsNone) intermediate.setVertexSpacing(publicType.shaderQualifiers.spacing); if (publicType.shaderQualifiers.order != EvoNone) intermediate.setVertexOrder(publicType.shaderQualifiers.order); if (publicType.shaderQualifiers.pointMode) intermediate.setPointMode(); for (int i = 0; i < 3; ++i) { if (publicType.shaderQualifiers.localSize[i] > 1) { int max = 0; switch (i) { case 0: max = resources.maxComputeWorkGroupSizeX; break; case 1: max = resources.maxComputeWorkGroupSizeY; break; case 2: max = resources.maxComputeWorkGroupSizeZ; break; default: break; } if (intermediate.getLocalSize(i) > (unsigned int)max) error(loc, "too large; see gl_MaxComputeWorkGroupSize", "local_size", ""); // Fix the existing constant gl_WorkGroupSize with this new information. TVariable* workGroupSize = getEditableVariable("gl_WorkGroupSize"); workGroupSize->getWritableConstArray()[i].setUConst(intermediate.getLocalSize(i)); } if (publicType.shaderQualifiers.localSizeSpecId[i] != TQualifier::layoutNotSet) { intermediate.setLocalSizeSpecId(i, publicType.shaderQualifiers.localSizeSpecId[i]); // Set the workgroup built-in variable as a specialization constant TVariable* workGroupSize = getEditableVariable("gl_WorkGroupSize"); workGroupSize->getWritableType().getQualifier().specConstant = true; } } if (publicType.shaderQualifiers.earlyFragmentTests) intermediate.setEarlyFragmentTests(); const TQualifier& qualifier = publicType.qualifier; switch (qualifier.storage) { case EvqUniform: if (qualifier.hasMatrix()) globalUniformDefaults.layoutMatrix = qualifier.layoutMatrix; if (qualifier.hasPacking()) globalUniformDefaults.layoutPacking = qualifier.layoutPacking; break; case EvqBuffer: if (qualifier.hasMatrix()) globalBufferDefaults.layoutMatrix = qualifier.layoutMatrix; if (qualifier.hasPacking()) globalBufferDefaults.layoutPacking = qualifier.layoutPacking; break; case EvqVaryingIn: break; case EvqVaryingOut: if (qualifier.hasStream()) globalOutputDefaults.layoutStream = qualifier.layoutStream; if (qualifier.hasXfbBuffer()) globalOutputDefaults.layoutXfbBuffer = qualifier.layoutXfbBuffer; if (globalOutputDefaults.hasXfbBuffer() && qualifier.hasXfbStride()) { if (! intermediate.setXfbBufferStride(globalOutputDefaults.layoutXfbBuffer, qualifier.layoutXfbStride)) error(loc, "all stride settings must match for xfb buffer", "xfb_stride", "%d", qualifier.layoutXfbBuffer); } break; default: error(loc, "default qualifier requires 'uniform', 'buffer', 'in', or 'out' storage qualification", "", ""); return; } } // // Take the sequence of statements that has been built up since the last case/default, // put it on the list of top-level nodes for the current (inner-most) switch statement, // and follow that by the case/default we are on now. (See switch topology comment on // TIntermSwitch.) // void HlslParseContext::wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode) { TIntermSequence* switchSequence = switchSequenceStack.back(); if (statements) { statements->setOperator(EOpSequence); switchSequence->push_back(statements); } if (branchNode) { // check all previous cases for the same label (or both are 'default') for (unsigned int s = 0; s < switchSequence->size(); ++s) { TIntermBranch* prevBranch = (*switchSequence)[s]->getAsBranchNode(); if (prevBranch) { TIntermTyped* prevExpression = prevBranch->getExpression(); TIntermTyped* newExpression = branchNode->getAsBranchNode()->getExpression(); if (prevExpression == nullptr && newExpression == nullptr) error(branchNode->getLoc(), "duplicate label", "default", ""); else if (prevExpression != nullptr && newExpression != nullptr && prevExpression->getAsConstantUnion() && newExpression->getAsConstantUnion() && prevExpression->getAsConstantUnion()->getConstArray()[0].getIConst() == newExpression->getAsConstantUnion()->getConstArray()[0].getIConst()) error(branchNode->getLoc(), "duplicated value", "case", ""); } } switchSequence->push_back(branchNode); } } // // Turn the top-level node sequence built up of wrapupSwitchSubsequence // into a switch node. // TIntermNode* HlslParseContext::addSwitch(const TSourceLoc& loc, TIntermTyped* expression, TIntermAggregate* lastStatements, const TAttributes& attributes) { wrapupSwitchSubsequence(lastStatements, nullptr); if (expression == nullptr || (expression->getBasicType() != EbtInt && expression->getBasicType() != EbtUint) || expression->getType().isArray() || expression->getType().isMatrix() || expression->getType().isVector()) error(loc, "condition must be a scalar integer expression", "switch", ""); // If there is nothing to do, drop the switch but still execute the expression TIntermSequence* switchSequence = switchSequenceStack.back(); if (switchSequence->size() == 0) return expression; if (lastStatements == nullptr) { // emulate a break for error recovery lastStatements = intermediate.makeAggregate(intermediate.addBranch(EOpBreak, loc)); lastStatements->setOperator(EOpSequence); switchSequence->push_back(lastStatements); } TIntermAggregate* body = new TIntermAggregate(EOpSequence); body->getSequence() = *switchSequenceStack.back(); body->setLoc(loc); TIntermSwitch* switchNode = new TIntermSwitch(expression, body); switchNode->setLoc(loc); handleSwitchAttributes(loc, switchNode, attributes); return switchNode; } // Make a new symbol-table level that is made out of the members of a structure. // This should be done as an anonymous struct (name is "") so that the symbol table // finds the members with no explicit reference to a 'this' variable. void HlslParseContext::pushThisScope(const TType& thisStruct, const TVector& functionDeclarators) { // member variables TVariable& thisVariable = *new TVariable(NewPoolTString(""), thisStruct); symbolTable.pushThis(thisVariable); // member functions for (auto it = functionDeclarators.begin(); it != functionDeclarators.end(); ++it) { // member should have a prefix matching currentTypePrefix.back() // but, symbol lookup within the class scope will just use the // unprefixed name. Hence, there are two: one fully prefixed and // one with no prefix. TFunction& member = *it->function->clone(); member.removePrefix(currentTypePrefix.back()); symbolTable.insert(member); } } // Track levels of class/struct/namespace nesting with a prefix string using // the type names separated by the scoping operator. E.g., two levels // would look like: // // outer::inner // // The string is empty when at normal global level. // void HlslParseContext::pushNamespace(const TString& typeName) { // make new type prefix TString newPrefix; if (currentTypePrefix.size() > 0) newPrefix = currentTypePrefix.back(); newPrefix.append(typeName); newPrefix.append(scopeMangler); currentTypePrefix.push_back(newPrefix); } // Opposite of pushNamespace(), see above void HlslParseContext::popNamespace() { currentTypePrefix.pop_back(); } // Use the class/struct nesting string to create a global name for // a member of a class/struct. void HlslParseContext::getFullNamespaceName(TString*& name) const { if (currentTypePrefix.size() == 0) return; TString* fullName = NewPoolTString(currentTypePrefix.back().c_str()); fullName->append(*name); name = fullName; } // Helper function to add the namespace scope mangling syntax to a string. void HlslParseContext::addScopeMangler(TString& name) { name.append(scopeMangler); } // Return true if this has uniform-interface like decorations. bool HlslParseContext::hasUniform(const TQualifier& qualifier) const { return qualifier.hasUniformLayout() || qualifier.layoutPushConstant; } // Potentially not the opposite of hasUniform(), as if some characteristic is // ever used for more than one thing (e.g., uniform or input), hasUniform() should // say it exists, but clearUniform() should leave it in place. void HlslParseContext::clearUniform(TQualifier& qualifier) { qualifier.clearUniformLayout(); qualifier.layoutPushConstant = false; } // Return false if builtIn by itself doesn't force this qualifier to be an input qualifier. bool HlslParseContext::isInputBuiltIn(const TQualifier& qualifier) const { switch (qualifier.builtIn) { case EbvPosition: case EbvPointSize: return language != EShLangVertex && language != EShLangCompute && language != EShLangFragment; case EbvClipDistance: case EbvCullDistance: return language != EShLangVertex && language != EShLangCompute; case EbvFragCoord: case EbvFace: case EbvHelperInvocation: case EbvLayer: case EbvPointCoord: case EbvSampleId: case EbvSampleMask: case EbvSamplePosition: case EbvViewportIndex: return language == EShLangFragment; case EbvGlobalInvocationId: case EbvLocalInvocationIndex: case EbvLocalInvocationId: case EbvNumWorkGroups: case EbvWorkGroupId: case EbvWorkGroupSize: return language == EShLangCompute; case EbvInvocationId: return language == EShLangTessControl || language == EShLangTessEvaluation || language == EShLangGeometry; case EbvPatchVertices: return language == EShLangTessControl || language == EShLangTessEvaluation; case EbvInstanceId: case EbvInstanceIndex: case EbvVertexId: case EbvVertexIndex: return language == EShLangVertex; case EbvPrimitiveId: return language == EShLangGeometry || language == EShLangFragment || language == EShLangTessControl; case EbvTessLevelInner: case EbvTessLevelOuter: return language == EShLangTessEvaluation; case EbvTessCoord: return language == EShLangTessEvaluation; default: return false; } } // Return true if there are decorations to preserve for input-like storage. bool HlslParseContext::hasInput(const TQualifier& qualifier) const { if (qualifier.hasAnyLocation()) return true; if (language == EShLangFragment && (qualifier.isInterpolation() || qualifier.centroid || qualifier.sample)) return true; if (language == EShLangTessEvaluation && qualifier.patch) return true; if (isInputBuiltIn(qualifier)) return true; return false; } // Return false if builtIn by itself doesn't force this qualifier to be an output qualifier. bool HlslParseContext::isOutputBuiltIn(const TQualifier& qualifier) const { switch (qualifier.builtIn) { case EbvPosition: case EbvPointSize: case EbvClipVertex: case EbvClipDistance: case EbvCullDistance: return language != EShLangFragment && language != EShLangCompute; case EbvFragDepth: case EbvFragDepthGreater: case EbvFragDepthLesser: case EbvSampleMask: return language == EShLangFragment; case EbvLayer: case EbvViewportIndex: return language == EShLangGeometry || language == EShLangVertex; case EbvPrimitiveId: return language == EShLangGeometry; case EbvTessLevelInner: case EbvTessLevelOuter: return language == EShLangTessControl; default: return false; } } // Return true if there are decorations to preserve for output-like storage. bool HlslParseContext::hasOutput(const TQualifier& qualifier) const { if (qualifier.hasAnyLocation()) return true; if (language != EShLangFragment && language != EShLangCompute && qualifier.hasXfb()) return true; if (language == EShLangTessControl && qualifier.patch) return true; if (language == EShLangGeometry && qualifier.hasStream()) return true; if (isOutputBuiltIn(qualifier)) return true; return false; } // Make the IO decorations etc. be appropriate only for an input interface. void HlslParseContext::correctInput(TQualifier& qualifier) { clearUniform(qualifier); if (language == EShLangVertex) qualifier.clearInterstage(); if (language != EShLangTessEvaluation) qualifier.patch = false; if (language != EShLangFragment) { qualifier.clearInterpolation(); qualifier.sample = false; } qualifier.clearStreamLayout(); qualifier.clearXfbLayout(); if (! isInputBuiltIn(qualifier)) qualifier.builtIn = EbvNone; } // Make the IO decorations etc. be appropriate only for an output interface. void HlslParseContext::correctOutput(TQualifier& qualifier) { clearUniform(qualifier); if (language == EShLangFragment) qualifier.clearInterstage(); if (language != EShLangGeometry) qualifier.clearStreamLayout(); if (language == EShLangFragment) qualifier.clearXfbLayout(); if (language != EShLangTessControl) qualifier.patch = false; switch (qualifier.builtIn) { case EbvFragDepth: intermediate.setDepthReplacing(); intermediate.setDepth(EldAny); break; case EbvFragDepthGreater: intermediate.setDepthReplacing(); intermediate.setDepth(EldGreater); qualifier.builtIn = EbvFragDepth; break; case EbvFragDepthLesser: intermediate.setDepthReplacing(); intermediate.setDepth(EldLess); qualifier.builtIn = EbvFragDepth; break; default: break; } if (! isOutputBuiltIn(qualifier)) qualifier.builtIn = EbvNone; } // Make the IO decorations etc. be appropriate only for uniform type interfaces. void HlslParseContext::correctUniform(TQualifier& qualifier) { if (qualifier.declaredBuiltIn == EbvNone) qualifier.declaredBuiltIn = qualifier.builtIn; qualifier.builtIn = EbvNone; qualifier.clearInterstage(); qualifier.clearInterstageLayout(); } // Clear out all IO/Uniform stuff, so this has nothing to do with being an IO interface. void HlslParseContext::clearUniformInputOutput(TQualifier& qualifier) { clearUniform(qualifier); correctUniform(qualifier); } // Set texture return type. Returns success (not all types are valid). bool HlslParseContext::setTextureReturnType(TSampler& sampler, const TType& retType, const TSourceLoc& loc) { // Seed the output with an invalid index. We will set it to a valid one if we can. sampler.structReturnIndex = TSampler::noReturnStruct; // Arrays aren't supported. if (retType.isArray()) { error(loc, "Arrays not supported in texture template types", "", ""); return false; } // If return type is a vector, remember the vector size in the sampler, and return. if (retType.isVector() || retType.isScalar()) { sampler.vectorSize = retType.getVectorSize(); return true; } // If it wasn't a vector, it must be a struct meeting certain requirements. The requirements // are checked below: just check for struct-ness here. if (!retType.isStruct()) { error(loc, "Invalid texture template type", "", ""); return false; } // TODO: Subpass doesn't handle struct returns, due to some oddities with fn overloading. if (sampler.isSubpass()) { error(loc, "Unimplemented: structure template type in subpass input", "", ""); return false; } TTypeList* members = retType.getWritableStruct(); // Check for too many or not enough structure members. if (members->size() > 4 || members->size() == 0) { error(loc, "Invalid member count in texture template structure", "", ""); return false; } // Error checking: We must have <= 4 total components, all of the same basic type. unsigned totalComponents = 0; for (unsigned m = 0; m < members->size(); ++m) { // Check for bad member types if (!(*members)[m].type->isScalar() && !(*members)[m].type->isVector()) { error(loc, "Invalid texture template struct member type", "", ""); return false; } const unsigned memberVectorSize = (*members)[m].type->getVectorSize(); totalComponents += memberVectorSize; // too many total member components if (totalComponents > 4) { error(loc, "Too many components in texture template structure type", "", ""); return false; } // All members must be of a common basic type if ((*members)[m].type->getBasicType() != (*members)[0].type->getBasicType()) { error(loc, "Texture template structure members must same basic type", "", ""); return false; } } // If the structure in the return type already exists in the table, we'll use it. Otherwise, we'll make // a new entry. This is a linear search, but it hardly ever happens, and the list cannot be very large. for (unsigned int idx = 0; idx < textureReturnStruct.size(); ++idx) { if (textureReturnStruct[idx] == members) { sampler.structReturnIndex = idx; return true; } } // It wasn't found as an existing entry. See if we have room for a new one. if (textureReturnStruct.size() >= TSampler::structReturnSlots) { error(loc, "Texture template struct return slots exceeded", "", ""); return false; } // Insert it in the vector that tracks struct return types. sampler.structReturnIndex = unsigned(textureReturnStruct.size()); textureReturnStruct.push_back(members); // Success! return true; } // Return the sampler return type in retType. void HlslParseContext::getTextureReturnType(const TSampler& sampler, TType& retType) const { if (sampler.hasReturnStruct()) { assert(textureReturnStruct.size() >= sampler.structReturnIndex); // We land here if the texture return is a structure. TTypeList* blockStruct = textureReturnStruct[sampler.structReturnIndex]; const TType resultType(blockStruct, ""); retType.shallowCopy(resultType); } else { // We land here if the texture return is a vector or scalar. const TType resultType(sampler.type, EvqTemporary, sampler.getVectorSize()); retType.shallowCopy(resultType); } } // Return a symbol for the tessellation linkage variable of the given TBuiltInVariable type TIntermSymbol* HlslParseContext::findTessLinkageSymbol(TBuiltInVariable biType) const { const auto it = builtInTessLinkageSymbols.find(biType); if (it == builtInTessLinkageSymbols.end()) // if it wasn't declared by the user, return nullptr return nullptr; return intermediate.addSymbol(*it->second->getAsVariable()); } // Find the patch constant function (issues error, returns nullptr if not found) const TFunction* HlslParseContext::findPatchConstantFunction(const TSourceLoc& loc) { if (symbolTable.isFunctionNameVariable(patchConstantFunctionName)) { error(loc, "can't use variable in patch constant function", patchConstantFunctionName.c_str(), ""); return nullptr; } const TString mangledName = patchConstantFunctionName + "("; // create list of PCF candidates TVector candidateList; bool builtIn; symbolTable.findFunctionNameList(mangledName, candidateList, builtIn); // We have to have one and only one, or we don't know which to pick: the patchconstantfunc does not // allow any disambiguation of overloads. if (candidateList.empty()) { error(loc, "patch constant function not found", patchConstantFunctionName.c_str(), ""); return nullptr; } // Based on directed experiments, it appears that if there are overloaded patchconstantfunctions, // HLSL picks the last one in shader source order. Since that isn't yet implemented here, error // out if there is more than one candidate. if (candidateList.size() > 1) { error(loc, "ambiguous patch constant function", patchConstantFunctionName.c_str(), ""); return nullptr; } return candidateList[0]; } // Finalization step: Add patch constant function invocation void HlslParseContext::addPatchConstantInvocation() { TSourceLoc loc; loc.init(); // If there's no patch constant function, or we're not a HS, do nothing. if (patchConstantFunctionName.empty() || language != EShLangTessControl) return; // Look for built-in variables in a function's parameter list. const auto findBuiltIns = [&](const TFunction& function, std::set& builtIns) { for (int p=0; pgetQualifier().storage; if (storage == EvqConstReadOnly) // treated identically to input storage = EvqIn; if (function[p].getDeclaredBuiltIn() != EbvNone) builtIns.insert(HlslParseContext::tInterstageIoData(function[p].getDeclaredBuiltIn(), storage)); else builtIns.insert(HlslParseContext::tInterstageIoData(function[p].type->getQualifier().builtIn, storage)); } }; // If we synthesize a built-in interface variable, we must add it to the linkage. const auto addToLinkage = [&](const TType& type, const TString* name, TIntermSymbol** symbolNode) { if (name == nullptr) { error(loc, "unable to locate patch function parameter name", "", ""); return; } else { TVariable& variable = *new TVariable(name, type); if (! symbolTable.insert(variable)) { error(loc, "unable to declare patch constant function interface variable", name->c_str(), ""); return; } globalQualifierFix(loc, variable.getWritableType().getQualifier()); if (symbolNode != nullptr) *symbolNode = intermediate.addSymbol(variable); trackLinkage(variable); } }; const auto isOutputPatch = [](TFunction& patchConstantFunction, int param) { const TType& type = *patchConstantFunction[param].type; const TBuiltInVariable biType = patchConstantFunction[param].getDeclaredBuiltIn(); return type.isSizedArray() && biType == EbvOutputPatch; }; // We will perform these steps. Each is in a scoped block for separation: they could // become separate functions to make addPatchConstantInvocation shorter. // // 1. Union the interfaces, and create built-ins for anything present in the PCF and // declared as a built-in variable that isn't present in the entry point's signature. // // 2. Synthesizes a call to the patchconstfunction using built-in variables from either main, // or the ones we created. Matching is based on built-in type. We may use synthesized // variables from (1) above. // // 2B: Synthesize per control point invocations of wrapped entry point if the PCF requires them. // // 3. Create a return sequence: copy the return value (if any) from the PCF to a // (non-sanitized) output variable. In case this may involve multiple copies, such as for // an arrayed variable, a temporary copy of the PCF output is created to avoid multiple // indirections into a complex R-value coming from the call to the PCF. // // 4. Create a barrier. // // 5/5B. Call the PCF inside an if test for (invocation id == 0). TFunction* patchConstantFunctionPtr = const_cast(findPatchConstantFunction(loc)); if (patchConstantFunctionPtr == nullptr) return; TFunction& patchConstantFunction = *patchConstantFunctionPtr; const int pcfParamCount = patchConstantFunction.getParamCount(); TIntermSymbol* invocationIdSym = findTessLinkageSymbol(EbvInvocationId); TIntermSequence& epBodySeq = entryPointFunctionBody->getAsAggregate()->getSequence(); int outPatchParam = -1; // -1 means there isn't one. // ================ Step 1A: Union Interfaces ================ // Our patch constant function. { std::set pcfBuiltIns; // patch constant function built-ins std::set epfBuiltIns; // entry point function built-ins assert(entryPointFunction); assert(entryPointFunctionBody); findBuiltIns(patchConstantFunction, pcfBuiltIns); findBuiltIns(*entryPointFunction, epfBuiltIns); // Find the set of built-ins in the PCF that are not present in the entry point. std::set notInEntryPoint; notInEntryPoint = pcfBuiltIns; // std::set_difference not usable on unordered containers for (auto bi = epfBuiltIns.begin(); bi != epfBuiltIns.end(); ++bi) notInEntryPoint.erase(*bi); // Now we'll add those to the entry and to the linkage. for (int p=0; pgetQualifier().storage; // Track whether there is an output patch param if (isOutputPatch(patchConstantFunction, p)) { if (outPatchParam >= 0) { // Presently we only support one per ctrl pt input. error(loc, "unimplemented: multiple output patches in patch constant function", "", ""); return; } outPatchParam = p; } if (biType != EbvNone) { TType* paramType = patchConstantFunction[p].type->clone(); if (storage == EvqConstReadOnly) // treated identically to input storage = EvqIn; // Presently, the only non-built-in we support is InputPatch, which is treated as // a pseudo-built-in. if (biType == EbvInputPatch) { builtInTessLinkageSymbols[biType] = inputPatch; } else if (biType == EbvOutputPatch) { // Nothing... } else { // Use the original declaration type for the linkage paramType->getQualifier().builtIn = biType; if (notInEntryPoint.count(tInterstageIoData(biType, storage)) == 1) addToLinkage(*paramType, patchConstantFunction[p].name, nullptr); } } } // If we didn't find it because the shader made one, add our own. if (invocationIdSym == nullptr) { TType invocationIdType(EbtUint, EvqIn, 1); TString* invocationIdName = NewPoolTString("InvocationId"); invocationIdType.getQualifier().builtIn = EbvInvocationId; addToLinkage(invocationIdType, invocationIdName, &invocationIdSym); } assert(invocationIdSym); } TIntermTyped* pcfArguments = nullptr; TVariable* perCtrlPtVar = nullptr; // ================ Step 1B: Argument synthesis ================ // Create pcfArguments for synthesis of patchconstantfunction invocation { for (int p=0; pgetWritableType().getQualifier().makeTemporary(); } inputArg = intermediate.addSymbol(*perCtrlPtVar, loc); } else { // find which built-in it is const TBuiltInVariable biType = patchConstantFunction[p].getDeclaredBuiltIn(); if (biType == EbvInputPatch && inputPatch == nullptr) { error(loc, "unimplemented: PCF input patch without entry point input patch parameter", "", ""); return; } inputArg = findTessLinkageSymbol(biType); if (inputArg == nullptr) { error(loc, "unable to find patch constant function built-in variable", "", ""); return; } } if (pcfParamCount == 1) pcfArguments = inputArg; else pcfArguments = intermediate.growAggregate(pcfArguments, inputArg); } } // ================ Step 2: Synthesize call to PCF ================ TIntermAggregate* pcfCallSequence = nullptr; TIntermTyped* pcfCall = nullptr; { // Create a function call to the patchconstantfunction if (pcfArguments) addInputArgumentConversions(patchConstantFunction, pcfArguments); // Synthetic call. pcfCall = intermediate.setAggregateOperator(pcfArguments, EOpFunctionCall, patchConstantFunction.getType(), loc); pcfCall->getAsAggregate()->setUserDefined(); pcfCall->getAsAggregate()->setName(patchConstantFunction.getMangledName()); intermediate.addToCallGraph(infoSink, intermediate.getEntryPointMangledName().c_str(), patchConstantFunction.getMangledName()); if (pcfCall->getAsAggregate()) { TQualifierList& qualifierList = pcfCall->getAsAggregate()->getQualifierList(); for (int i = 0; i < patchConstantFunction.getParamCount(); ++i) { TStorageQualifier qual = patchConstantFunction[i].type->getQualifier().storage; qualifierList.push_back(qual); } pcfCall = addOutputArgumentConversions(patchConstantFunction, *pcfCall->getAsOperator()); } } // ================ Step 2B: Per Control Point synthesis ================ // If there is per control point data, we must either emulate that with multiple // invocations of the entry point to build up an array, or (TODO:) use a yet // unavailable extension to look across the SIMD lanes. This is the former // as a placeholder for the latter. if (outPatchParam >= 0) { // We must introduce a local temp variable of the type wanted by the PCF input. const int arraySize = patchConstantFunction[outPatchParam].type->getOuterArraySize(); if (entryPointFunction->getType().getBasicType() == EbtVoid) { error(loc, "entry point must return a value for use with patch constant function", "", ""); return; } // Create calls to wrapped main to fill in the array. We will substitute fixed values // of invocation ID when calling the wrapped main. // This is the type of the each member of the per ctrl point array. const TType derefType(perCtrlPtVar->getType(), 0); for (int cpt = 0; cpt < arraySize; ++cpt) { // TODO: improve. substr(1) here is to avoid the '@' that was grafted on but isn't in the symtab // for this function. const TString origName = entryPointFunction->getName().substr(1); TFunction callee(&origName, TType(EbtVoid)); TIntermTyped* callingArgs = nullptr; for (int i = 0; i < entryPointFunction->getParamCount(); i++) { TParameter& param = (*entryPointFunction)[i]; TType& paramType = *param.type; if (paramType.getQualifier().isParamOutput()) { error(loc, "unimplemented: entry point outputs in patch constant function invocation", "", ""); return; } if (paramType.getQualifier().isParamInput()) { TIntermTyped* arg = nullptr; if ((*entryPointFunction)[i].getDeclaredBuiltIn() == EbvInvocationId) { // substitute invocation ID with the array element ID arg = intermediate.addConstantUnion(cpt, loc); } else { TVariable* argVar = makeInternalVariable(*param.name, *param.type); argVar->getWritableType().getQualifier().makeTemporary(); arg = intermediate.addSymbol(*argVar); } handleFunctionArgument(&callee, callingArgs, arg); } } // Call and assign to per ctrl point variable currentCaller = intermediate.getEntryPointMangledName().c_str(); TIntermTyped* callReturn = handleFunctionCall(loc, &callee, callingArgs); TIntermTyped* index = intermediate.addConstantUnion(cpt, loc); TIntermSymbol* perCtrlPtSym = intermediate.addSymbol(*perCtrlPtVar, loc); TIntermTyped* element = intermediate.addIndex(EOpIndexDirect, perCtrlPtSym, index, loc); element->setType(derefType); element->setLoc(loc); pcfCallSequence = intermediate.growAggregate(pcfCallSequence, handleAssign(loc, EOpAssign, element, callReturn)); } } // ================ Step 3: Create return Sequence ================ // Return sequence: copy PCF result to a temporary, then to shader output variable. if (pcfCall->getBasicType() != EbtVoid) { const TType* retType = &patchConstantFunction.getType(); // return type from the PCF TType outType; // output type that goes with the return type. outType.shallowCopy(*retType); // substitute the output type const auto newLists = ioTypeMap.find(retType->getStruct()); if (newLists != ioTypeMap.end()) outType.setStruct(newLists->second.output); // Substitute the top level type's built-in type if (patchConstantFunction.getDeclaredBuiltInType() != EbvNone) outType.getQualifier().builtIn = patchConstantFunction.getDeclaredBuiltInType(); outType.getQualifier().patch = true; // make it a per-patch variable TVariable* pcfOutput = makeInternalVariable("@patchConstantOutput", outType); pcfOutput->getWritableType().getQualifier().storage = EvqVaryingOut; if (pcfOutput->getType().containsBuiltIn()) split(*pcfOutput); assignToInterface(*pcfOutput); TIntermSymbol* pcfOutputSym = intermediate.addSymbol(*pcfOutput, loc); // The call to the PCF is a complex R-value: we want to store it in a temp to avoid // repeated calls to the PCF: TVariable* pcfCallResult = makeInternalVariable("@patchConstantResult", *retType); pcfCallResult->getWritableType().getQualifier().makeTemporary(); TIntermSymbol* pcfResultVar = intermediate.addSymbol(*pcfCallResult, loc); TIntermNode* pcfResultAssign = handleAssign(loc, EOpAssign, pcfResultVar, pcfCall); TIntermNode* pcfResultToOut = handleAssign(loc, EOpAssign, pcfOutputSym, intermediate.addSymbol(*pcfCallResult, loc)); pcfCallSequence = intermediate.growAggregate(pcfCallSequence, pcfResultAssign); pcfCallSequence = intermediate.growAggregate(pcfCallSequence, pcfResultToOut); } else { pcfCallSequence = intermediate.growAggregate(pcfCallSequence, pcfCall); } // ================ Step 4: Barrier ================ TIntermTyped* barrier = new TIntermAggregate(EOpBarrier); barrier->setLoc(loc); barrier->setType(TType(EbtVoid)); epBodySeq.insert(epBodySeq.end(), barrier); // ================ Step 5: Test on invocation ID ================ TIntermTyped* zero = intermediate.addConstantUnion(0, loc, true); TIntermTyped* cmp = intermediate.addBinaryNode(EOpEqual, invocationIdSym, zero, loc, TType(EbtBool)); // ================ Step 5B: Create if statement on Invocation ID == 0 ================ intermediate.setAggregateOperator(pcfCallSequence, EOpSequence, TType(EbtVoid), loc); TIntermTyped* invocationIdTest = new TIntermSelection(cmp, pcfCallSequence, nullptr); invocationIdTest->setLoc(loc); // add our test sequence before the return. epBodySeq.insert(epBodySeq.end(), invocationIdTest); } // Finalization step: remove unused buffer blocks from linkage (we don't know until the // shader is entirely compiled). // Preserve order of remaining symbols. void HlslParseContext::removeUnusedStructBufferCounters() { const auto endIt = std::remove_if(linkageSymbols.begin(), linkageSymbols.end(), [this](const TSymbol* sym) { const auto sbcIt = structBufferCounter.find(sym->getName()); return sbcIt != structBufferCounter.end() && !sbcIt->second; }); linkageSymbols.erase(endIt, linkageSymbols.end()); } // Finalization step: patch texture shadow modes to match samplers they were combined with void HlslParseContext::fixTextureShadowModes() { for (auto symbol = linkageSymbols.begin(); symbol != linkageSymbols.end(); ++symbol) { TSampler& sampler = (*symbol)->getWritableType().getSampler(); if (sampler.isTexture()) { const auto shadowMode = textureShadowVariant.find((*symbol)->getUniqueId()); if (shadowMode != textureShadowVariant.end()) { if (shadowMode->second->overloaded()) // Texture needs legalization if it's been seen with both shadow and non-shadow modes. intermediate.setNeedsLegalization(); sampler.shadow = shadowMode->second->isShadowId((*symbol)->getUniqueId()); } } } } // Finalization step: patch append methods to use proper stream output, which isn't known until // main is parsed, which could happen after the append method is parsed. void HlslParseContext::finalizeAppendMethods() { TSourceLoc loc; loc.init(); // Nothing to do: bypass test for valid stream output. if (gsAppends.empty()) return; if (gsStreamOutput == nullptr) { error(loc, "unable to find output symbol for Append()", "", ""); return; } // Patch append sequences, now that we know the stream output symbol. for (auto append = gsAppends.begin(); append != gsAppends.end(); ++append) { append->node->getSequence()[0] = handleAssign(append->loc, EOpAssign, intermediate.addSymbol(*gsStreamOutput, append->loc), append->node->getSequence()[0]->getAsTyped()); } } // post-processing void HlslParseContext::finish() { // Error check: There was a dangling .mips operator. These are not nested constructs in the grammar, so // cannot be detected there. This is not strictly needed in a non-validating parser; it's just helpful. if (! mipsOperatorMipArg.empty()) { error(mipsOperatorMipArg.back().loc, "unterminated mips operator:", "", ""); } removeUnusedStructBufferCounters(); addPatchConstantInvocation(); fixTextureShadowModes(); finalizeAppendMethods(); // Communicate out (esp. for command line) that we formed AST that will make // illegal AST SPIR-V and it needs transforms to legalize it. if (intermediate.needsLegalization() && (messages & EShMsgHlslLegalization)) infoSink.info << "WARNING: AST will form illegal SPIR-V; need to transform to legalize"; TParseContextBase::finish(); } } // end namespace glslang glslang-8.13.3559/hlsl/hlslParseHelper.h000066400000000000000000000665021360464450000177230ustar00rootroot00000000000000// // 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 "../glslang/MachineIndependent/parseVersions.h" #include "../glslang/MachineIndependent/ParseHelper.h" #include "../glslang/MachineIndependent/attribute.h" #include namespace glslang { class TFunctionDeclarator; class HlslParseContext : public TParseContextBase { public: HlslParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins, int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&, const TString sourceEntryPointName, bool forwardCompatible = false, EShMessages messages = EShMsgDefault); virtual ~HlslParseContext(); void initializeExtensionBehavior() override; void setLimits(const TBuiltInResource&) override; bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false) override; virtual const char* getGlobalUniformBlockName() const override { return "$Global"; } virtual void setUniformBlockDefaults(TType& block) const override { block.getQualifier().layoutPacking = ElpStd140; block.getQualifier().layoutMatrix = ElmRowMajor; } void reservedPpErrorCheck(const TSourceLoc&, const char* /*name*/, const char* /*op*/) override { } bool lineContinuationCheck(const TSourceLoc&, bool /*endOfComment*/) override { return true; } bool lineDirectiveShouldSetNextLine() const override { return true; } bool builtInName(const TString&); void handlePragma(const TSourceLoc&, const TVector&) override; TIntermTyped* handleVariable(const TSourceLoc&, const TString* string); TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); TIntermTyped* handleBracketOperator(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleUnaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* childNode); TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); bool isBuiltInMethod(const TSourceLoc&, TIntermTyped* base, const TString& field); void assignToInterface(TVariable& variable); void handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&, const TAttributes&, TIntermNode*& entryPointTree); TIntermNode* transformEntryPoint(const TSourceLoc&, TFunction&, const TAttributes&); void handleEntryPointAttributes(const TSourceLoc&, const TAttributes&); void transferTypeAttributes(const TSourceLoc&, const TAttributes&, TType&, bool allowEntry = false); void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node); void remapEntryPointIO(TFunction& function, TVariable*& returnValue, TVector& inputs, TVector& outputs); void remapNonEntryPointIO(TFunction& function); TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); TIntermTyped* handleAssign(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleAssignToMatrixSwizzle(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermTyped*); TIntermAggregate* assignClipCullDistance(const TSourceLoc&, TOperator, int semanticId, TIntermTyped* left, TIntermTyped* right); TIntermTyped* assignPosition(const TSourceLoc&, TOperator, TIntermTyped* left, TIntermTyped* right); void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void decomposeStructBufferMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void decomposeGeometryMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void pushFrontArguments(TIntermTyped* front, TIntermTyped*& arguments); void addInputArgumentConversions(const TFunction&, TIntermTyped*&); void expandArguments(const TSourceLoc&, const TFunction&, TIntermTyped*&); TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermOperator&); void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); TFunction* makeConstructorCall(const TSourceLoc&, const TType&); void handleSemantic(TSourceLoc, TQualifier&, TBuiltInVariable, const TString& upperCase); void handlePackOffset(const TSourceLoc&, TQualifier&, const glslang::TString& location, const glslang::TString* component); void handleRegister(const TSourceLoc&, TQualifier&, const glslang::TString* profile, const glslang::TString& desc, int subComponent, const glslang::TString*); TIntermTyped* convertConditionalExpression(const TSourceLoc&, TIntermTyped*, bool mustBeScalar = true); TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler); bool parseMatrixSwizzleSelector(const TSourceLoc&, const TString&, int cols, int rows, TSwizzleSelectors&); int getMatrixComponentsColumn(int rows, const TSwizzleSelectors&); void assignError(const TSourceLoc&, const char* op, TString left, TString right); void unaryOpError(const TSourceLoc&, const char* op, TString operand); void binaryOpError(const TSourceLoc&, const char* op, TString left, TString right); void variableCheck(TIntermTyped*& nodePtr); void constantValueCheck(TIntermTyped* node, const char* token); void integerCheck(const TIntermTyped* node, const char* token); void globalCheck(const TSourceLoc&, const char* token); bool constructorError(const TSourceLoc&, TIntermNode*, TFunction&, TOperator, TType&); 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 pushSwitchSequence(TIntermSequence* sequence) { switchSequenceStack.push_back(sequence); } void popSwitchSequence() { switchSequenceStack.pop_back(); } virtual void growGlobalUniformBlock(const TSourceLoc&, TType&, const TString& memberName, TTypeList* typeList = nullptr) override; // Apply L-value conversions. E.g, turning a write to a RWTexture into an ImageStore. TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped*& node); bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&); bool handleOutputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); bool handleInputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); // Determine selection control from attributes void handleSelectionAttributes(const TSourceLoc& loc, TIntermSelection*, const TAttributes& attributes); void handleSwitchAttributes(const TSourceLoc& loc, TIntermSwitch*, const TAttributes& attributes); // Determine loop control from attributes void handleLoopAttributes(const TSourceLoc& loc, TIntermLoop*, const TAttributes& attributes); // Share struct buffer deep types void shareStructBufferType(TType&); // Set texture return type of the given sampler. Returns success (not all types are valid). bool setTextureReturnType(TSampler& sampler, const TType& retType, const TSourceLoc& loc); // Obtain the sampler return type of the given sampler in retType. void getTextureReturnType(const TSampler& sampler, TType& retType) const; TAttributeType attributeFromName(const TString& nameSpace, const TString& name) const; protected: struct TFlattenData { TFlattenData() : nextBinding(TQualifier::layoutBindingEnd), nextLocation(TQualifier::layoutLocationEnd) { } TFlattenData(int nb, int nl) : nextBinding(nb), nextLocation(nl) { } TVector members; // individual flattened variables TVector offsets; // offset to next tree level unsigned int nextBinding; // next binding to use. unsigned int nextLocation; // next location to use }; void fixConstInit(const TSourceLoc&, const TString& identifier, TType& type, TIntermTyped*& initializer); void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; TVariable* makeInternalVariable(const TString& name, const TType& type) const { return makeInternalVariable(name.c_str(), type); } TIntermSymbol* makeInternalVariableNode(const TSourceLoc&, const char* name, const TType&) const; TVariable* declareNonArray(const TSourceLoc&, const TString& identifier, const TType&, bool track); void declareArray(const TSourceLoc&, const TString& identifier, const TType&, TSymbol*&, bool track); TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer, TIntermTyped* scalarInit); bool isScalarConstructor(const TIntermNode*); TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage); // Return true if this node requires L-value conversion (e.g, to an imageStore). bool shouldConvertLValue(const TIntermNode*) const; // Array and struct flattening TIntermTyped* flattenAccess(TIntermTyped* base, int member); TIntermTyped* flattenAccess(int uniqueId, int member, TStorageQualifier outerStorage, const TType&, int subset = -1); int findSubtreeOffset(const TIntermNode&) const; int findSubtreeOffset(const TType&, int subset, const TVector& offsets) const; bool shouldFlatten(const TType&, TStorageQualifier, bool topLevel) const; bool wasFlattened(const TIntermTyped* node) const; bool wasFlattened(int id) const { return flattenMap.find(id) != flattenMap.end(); } int addFlattenedMember(const TVariable&, const TType&, TFlattenData&, const TString& name, bool linkage, const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes); // Structure splitting (splits interstage built-in types into its own struct) void split(const TVariable&); void splitBuiltIn(const TString& baseName, const TType& memberType, const TArraySizes*, const TQualifier&); const TType& split(const TType& type, const TString& name, const TQualifier&); bool wasSplit(const TIntermTyped* node) const; bool wasSplit(int id) const { return splitNonIoVars.find(id) != splitNonIoVars.end(); } TVariable* getSplitNonIoVar(int id) const; void addPatchConstantInvocation(); void fixTextureShadowModes(); void finalizeAppendMethods(); TIntermTyped* makeIntegerIndex(TIntermTyped*); void fixBuiltInIoType(TType&); void flatten(const TVariable& variable, bool linkage); int flatten(const TVariable& variable, const TType&, TFlattenData&, TString name, bool linkage, const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes); int flattenStruct(const TVariable& variable, const TType&, TFlattenData&, TString name, bool linkage, const TQualifier& outerQualifier, const TArraySizes* builtInArraySizes); int flattenArray(const TVariable& variable, const TType&, TFlattenData&, TString name, bool linkage, const TQualifier& outerQualifier); bool hasUniform(const TQualifier& qualifier) const; void clearUniform(TQualifier& qualifier); bool isInputBuiltIn(const TQualifier& qualifier) const; bool hasInput(const TQualifier& qualifier) const; void correctOutput(TQualifier& qualifier); bool isOutputBuiltIn(const TQualifier& qualifier) const; bool hasOutput(const TQualifier& qualifier) const; void correctInput(TQualifier& qualifier); void correctUniform(TQualifier& qualifier); void clearUniformInputOutput(TQualifier& qualifier); // Test method names bool isStructBufferMethod(const TString& name) const; void counterBufferType(const TSourceLoc& loc, TType& type); // Return standard sample position array TIntermConstantUnion* getSamplePosArray(int count); TType* getStructBufferContentType(const TType& type) const; bool isStructBufferType(const TType& type) const { return getStructBufferContentType(type) != nullptr; } TIntermTyped* indexStructBufferContent(const TSourceLoc& loc, TIntermTyped* buffer) const; TIntermTyped* getStructBufferCounter(const TSourceLoc& loc, TIntermTyped* buffer); TString getStructBuffCounterName(const TString&) const; void addStructBuffArguments(const TSourceLoc& loc, TIntermAggregate*&); void addStructBufferHiddenCounterParam(const TSourceLoc& loc, TParameter&, TIntermAggregate*&); // Return true if this type is a reference. This is not currently a type method in case that's // a language specific answer. bool isReference(const TType& type) const { return isStructBufferType(type); } // Return true if this a buffer type that has an associated counter buffer. bool hasStructBuffCounter(const TType&) const; // Finalization step: remove unused buffer blocks from linkage (we don't know until the // shader is entirely compiled) void removeUnusedStructBufferCounters(); static bool isClipOrCullDistance(TBuiltInVariable); static bool isClipOrCullDistance(const TQualifier& qual) { return isClipOrCullDistance(qual.builtIn); } static bool isClipOrCullDistance(const TType& type) { return isClipOrCullDistance(type.getQualifier()); } // Find the patch constant function (issues error, returns nullptr if not found) const TFunction* findPatchConstantFunction(const TSourceLoc& loc); // Pass through to base class after remembering built-in mappings. using TParseContextBase::trackLinkage; void trackLinkage(TSymbol& variable) override; void finish() override; // post-processing // Linkage symbol helpers TIntermSymbol* findTessLinkageSymbol(TBuiltInVariable biType) const; // Current state of parsing int annotationNestingLevel; // 0 if outside all annotations HlslParseContext(HlslParseContext&); HlslParseContext& operator=(HlslParseContext&); static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2)); // see computeSamplerTypeIndex() TQualifier globalBufferDefaults; TQualifier globalUniformDefaults; TQualifier globalInputDefaults; TQualifier globalOutputDefaults; TString currentCaller; // name of last function body entered (not valid when at global scope) TIdSetType inductiveLoopIds; TVector needsIndexLimitationChecking; // // Geometry shader input arrays: // - array sizing is based on input primitive and/or explicit size // // Tessellation control output arrays: // - array sizing is based on output layout(vertices=...) and/or explicit size // // Both: // - array sizing is retroactive // - built-in block redeclarations interact with this // // Design: // - use a per-context "resize-list", a list of symbols whose array sizes // can be fixed // // - the resize-list starts empty at beginning of user-shader compilation, it does // not have built-ins in it // // - on built-in array use: copyUp() symbol and add it to the resize-list // // - on user array declaration: add it to the resize-list // // - on block redeclaration: copyUp() symbol and add it to the resize-list // * note, that appropriately gives an error if redeclaring a block that // was already used and hence already copied-up // // - on seeing a layout declaration that sizes the array, fix everything in the // resize-list, giving errors for mismatch // // - on seeing an array size declaration, give errors on mismatch between it and previous // array-sizing declarations // TVector ioArraySymbolResizeList; TMap flattenMap; // IO-type map. Maps a pure symbol-table form of a structure-member list into // each of the (up to) three kinds of IO, as each as different allowed decorations, // but HLSL allows mixing all in the same structure. struct tIoKinds { TTypeList* input; TTypeList* output; TTypeList* uniform; }; TMap ioTypeMap; // Structure splitting data: TMap splitNonIoVars; // variables with the built-in interstage IO removed, indexed by unique ID. // Structuredbuffer shared types. Typically there are only a few. TVector structBufferTypes; // This tracks texture sample user structure return types. Only a limited number are supported, as // may fit in TSampler::structReturnIndex. TVector textureReturnStruct; TMap structBufferCounter; // true if counter buffer is in use // The built-in interstage IO map considers e.g, EvqPosition on input and output separately, so that we // can build the linkage correctly if position appears on both sides. Otherwise, multiple positions // are considered identical. struct tInterstageIoData { tInterstageIoData(TBuiltInVariable bi, TStorageQualifier q) : builtIn(bi), storage(q) { } TBuiltInVariable builtIn; TStorageQualifier storage; // ordering for maps bool operator<(const tInterstageIoData d) const { return (builtIn != d.builtIn) ? (builtIn < d.builtIn) : (storage < d.storage); } }; TMap splitBuiltIns; // split built-ins, indexed by built-in type. TVariable* inputPatch; // input patch is special for PCF: it's the only non-builtin PCF input, // and is handled as a pseudo-builtin. unsigned int nextInLocation; unsigned int nextOutLocation; TFunction* entryPointFunction; TIntermNode* entryPointFunctionBody; TString patchConstantFunctionName; // hull shader patch constant function name, from function level attribute. TMap builtInTessLinkageSymbols; // used for tessellation, finding declared built-ins TVector currentTypePrefix; // current scoping prefix for nested structures TVector implicitThisStack; // currently active 'this' variables for nested structures TVariable* gsStreamOutput; // geometry shader stream outputs, for emit (Append method) TVariable* clipDistanceOutput; // synthesized clip distance out variable (shader might have >1) TVariable* cullDistanceOutput; // synthesized cull distance out variable (shader might have >1) TVariable* clipDistanceInput; // synthesized clip distance in variable (shader might have >1) TVariable* cullDistanceInput; // synthesized cull distance in variable (shader might have >1) static const int maxClipCullRegs = 2; std::array clipSemanticNSizeIn; // vector, indexed by clip semantic ID std::array cullSemanticNSizeIn; // vector, indexed by cull semantic ID std::array clipSemanticNSizeOut; // vector, indexed by clip semantic ID std::array cullSemanticNSizeOut; // vector, indexed by cull semantic ID // This tracks the first (mip level) argument to the .mips[][] operator. Since this can be nested as // in tx.mips[tx.mips[0][1].x][2], we need a stack. We also track the TSourceLoc for error reporting // purposes. struct tMipsOperatorData { tMipsOperatorData(TSourceLoc l, TIntermTyped* m) : loc(l), mipLevel(m) { } TSourceLoc loc; TIntermTyped* mipLevel; }; TVector mipsOperatorMipArg; // The geometry output stream is not copied out from the entry point as a typical output variable // is. It's written via EmitVertex (hlsl=Append), which may happen in arbitrary control flow. // For this we need the real output symbol. Since it may not be known at the time and Append() // method is parsed, the sequence will be patched during finalization. struct tGsAppendData { TIntermAggregate* node; TSourceLoc loc; }; TVector gsAppends; // A texture object may be used with shadow and non-shadow samplers, but both may not be // alive post-DCE in the same shader. We do not know at compilation time which are alive: that's // only known post-DCE. If a texture is used both ways, we create two textures, and // leave the elimiation of one to the optimizer. This maps the shader variant to // the shadow variant. // // This can be removed if and when the texture shadow code in // HlslParseContext::handleSamplerTextureCombine is removed. struct tShadowTextureSymbols { tShadowTextureSymbols() { symId.fill(-1); } void set(bool shadow, int id) { symId[int(shadow)] = id; } int get(bool shadow) const { return symId[int(shadow)]; } // True if this texture has been seen with both shadow and non-shadow modes bool overloaded() const { return symId[0] != -1 && symId[1] != -1; } bool isShadowId(int id) const { return symId[1] == id; } private: std::array symId; }; TMap textureShadowVariant; }; // This is the prefix we use for built-in methods to avoid namespace collisions with // global scope user functions. // TODO: this would be better as a nonparseable character, but that would // require changing the scanner. #define BUILTIN_PREFIX "__BI_" } // end namespace glslang #endif // HLSL_PARSE_INCLUDED_ glslang-8.13.3559/hlsl/hlslParseables.cpp000066400000000000000000002553041360464450000201250ustar00rootroot00000000000000// // Copyright (C) 2016 LunarG, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of 3Dlabs Inc. Ltd. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // // // Create strings that declare built-in definitions, add built-ins programmatically // that cannot be expressed in the strings, and establish mappings between // built-in functions and operators. // // Where to put a built-in: // TBuiltInParseablesHlsl::initialize(version,profile) context-independent textual built-ins; add them to the right string // TBuiltInParseablesHlsl::initialize(resources,...) context-dependent textual built-ins; add them to the right string // TBuiltInParseablesHlsl::identifyBuiltIns(...,symbolTable) context-independent programmatic additions/mappings to the symbol table, // including identifying what extensions are needed if a version does not allow a symbol // TBuiltInParseablesHlsl::identifyBuiltIns(...,symbolTable, resources) context-dependent programmatic additions/mappings to the // symbol table, including identifying what extensions are needed if a version does // not allow a symbol // #include "hlslParseables.h" #include "hlslParseHelper.h" #include #include #include namespace { // anonymous namespace functions const bool UseHlslTypes = true; const char* BaseTypeName(const char argOrder, const char* scalarName, const char* vecName, const char* matName) { switch (argOrder) { case 'S': return scalarName; case 'V': return vecName; case 'M': return matName; default: return "UNKNOWN_TYPE"; } } // arg order queries bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } bool IsArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&' || argOrder == '#'; } bool IsTextureNonMS(const char argOrder) { return argOrder == '%'; } bool IsSubpassInput(const char argOrder) { return argOrder == '[' || argOrder == ']'; } bool IsArrayedTexture(const char argOrder) { return argOrder == '@'; } bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } bool IsMS(const char argOrder) { return IsTextureMS(argOrder) || argOrder == ']'; } bool IsBuffer(const char argOrder) { return argOrder == '*' || argOrder == '~'; } bool IsImage(const char argOrder) { return argOrder == '!' || argOrder == '#' || argOrder == '~'; } bool IsTextureType(const char argOrder) { return IsTextureNonMS(argOrder) || IsArrayedTexture(argOrder) || IsTextureMS(argOrder) || IsBuffer(argOrder) || IsImage(argOrder); } // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim0) { const bool isArrayed = IsArrayed(*argOrder); const bool isMS = IsTextureMS(*argOrder); const bool isBuffer = IsBuffer(*argOrder); // there are no 3D arrayed textures, or 3D SampleCmp(LevelZero) if (dim0 == 3 && (isArrayed || name == "SampleCmp" || name == "SampleCmpLevelZero")) return true; const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1; // Reject invalid offset forms with cubemaps if (dim0 == 4) { if ((name == "Sample" && numArgs >= 4) || (name == "SampleBias" && numArgs >= 5) || (name == "SampleCmp" && numArgs >= 5) || (name == "SampleCmpLevelZero" && numArgs >= 5) || (name == "SampleGrad" && numArgs >= 6) || (name == "SampleLevel" && numArgs >= 5)) return true; } const bool isGather = (name == "Gather" || name == "GatherRed" || name == "GatherGreen" || name == "GatherBlue" || name == "GatherAlpha"); const bool isGatherCmp = (name == "GatherCmp" || name == "GatherCmpRed" || name == "GatherCmpGreen" || name == "GatherCmpBlue" || name == "GatherCmpAlpha"); // Reject invalid Gathers if (isGather || isGatherCmp) { if (dim0 == 1 || dim0 == 3) // there are no 1D or 3D gathers return true; // no offset on cube or cube array gathers if (dim0 == 4) { if ((isGather && numArgs > 3) || (isGatherCmp && numArgs > 4)) return true; } } // Reject invalid Loads if (name == "Load" && dim0 == 4) return true; // Load does not support any cubemaps, arrayed or not. // Multisample formats are only 2D and 2Darray if (isMS && dim0 != 2) return true; // Buffer are only 1D if (isBuffer && dim0 != 1) return true; return false; } // Return the number of the coordinate arg, if any int CoordinateArgPos(const glslang::TString& name, bool isTexture) { if (!isTexture || (name == "GetDimensions")) return -1; // has none else if (name == "Load") return 1; else return 2; // other texture methods are 2 } // Some texture methods use an addition coordinate dimension for the mip bool HasMipInCoord(const glslang::TString& name, bool isMS, bool isBuffer, bool isImage) { return name == "Load" && !isMS && !isBuffer && !isImage; } // LOD calculations don't pass the array level in the coordinate. bool NoArrayCoord(const glslang::TString& name) { return name == "CalculateLevelOfDetail" || name == "CalculateLevelOfDetailUnclamped"; } // Handle IO params marked with > or < const char* IoParam(glslang::TString& s, const char* nthArgOrder) { if (*nthArgOrder == '>') { // output params ++nthArgOrder; s.append("out "); } else if (*nthArgOrder == '<') { // input params ++nthArgOrder; s.append("in "); } return nthArgOrder; } // Handle repeated args void HandleRepeatArg(const char*& arg, const char*& prev, const char* current) { if (*arg == ',' || *arg == '\0') arg = prev; else prev = current; } // Return true for the end of a single argument key, which can be the end of the string, or // the comma separator. inline bool IsEndOfArg(const char* arg) { return arg == nullptr || *arg == '\0' || *arg == ','; } // If this is a fixed vector size, such as V3, return the size. Else return 0. int FixedVecSize(const char* arg) { while (!IsEndOfArg(arg)) { if (isdigit(*arg)) return *arg - '0'; ++arg; } return 0; // none found. } // Create and return a type name. This is done in GLSL, not HLSL conventions, until such // time as builtins are parsed using the HLSL parser. // // order: S = scalar, V = vector, M = matrix // argType: F = float, D = double, I = int, U = uint, B = bool, S = sampler // dim0 = vector dimension, or matrix 1st dimension // dim1 = matrix 2nd dimension glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, const char* argType, int dim0, int dim1) { const bool isTranspose = (argOrder[0] == '^'); const bool isTexture = IsTextureType(argOrder[0]); const bool isArrayed = IsArrayed(argOrder[0]); const bool isSampler = IsSamplerType(argType[0]); const bool isMS = IsMS(argOrder[0]); const bool isBuffer = IsBuffer(argOrder[0]); const bool isImage = IsImage(argOrder[0]); const bool isSubpass = IsSubpassInput(argOrder[0]); char type = *argType; if (isTranspose) { // Take transpose of matrix dimensions std::swap(dim0, dim1); } else if (isTexture || isSubpass) { if (type == 'F') // map base type to texture of that type. type = 'T'; // e.g, int -> itexture, uint -> utexture, etc. else if (type == 'I') type = 'i'; else if (type == 'U') type = 'u'; } if (isTranspose) ++argOrder; char order = *argOrder; if (UseHlslTypes) { switch (type) { case '-': s += "void"; break; case 'F': s += "float"; break; case 'D': s += "double"; break; case 'I': s += "int"; break; case 'U': s += "uint"; break; case 'L': s += "int64_t"; break; case 'M': s += "uint64_t"; break; case 'B': s += "bool"; break; case 'S': s += "sampler"; break; case 's': s += "SamplerComparisonState"; break; case 'T': s += ((isBuffer && isImage) ? "RWBuffer" : isSubpass ? "SubpassInput" : isBuffer ? "Buffer" : isImage ? "RWTexture" : "Texture"); break; case 'i': s += ((isBuffer && isImage) ? "RWBuffer" : isSubpass ? "SubpassInput" : isBuffer ? "Buffer" : isImage ? "RWTexture" : "Texture"); break; case 'u': s += ((isBuffer && isImage) ? "RWBuffer" : isSubpass ? "SubpassInput" : isBuffer ? "Buffer" : isImage ? "RWTexture" : "Texture"); break; default: s += "UNKNOWN_TYPE"; break; } if (isSubpass && isMS) s += "MS"; } else { switch (type) { case '-': s += "void"; break; case 'F': s += BaseTypeName(order, "float", "vec", "mat"); break; case 'D': s += BaseTypeName(order, "double", "dvec", "dmat"); break; case 'I': s += BaseTypeName(order, "int", "ivec", "imat"); break; case 'U': s += BaseTypeName(order, "uint", "uvec", "umat"); break; case 'B': s += BaseTypeName(order, "bool", "bvec", "bmat"); break; case 'S': s += "sampler"; break; case 's': s += "samplerShadow"; break; case 'T': // fall through case 'i': // ... case 'u': // ... if (type != 'T') // create itexture, utexture, etc s += type; s += ((isImage && isBuffer) ? "imageBuffer" : isSubpass ? "subpassInput" : isImage ? "image" : isBuffer ? "samplerBuffer" : "texture"); break; default: s += "UNKNOWN_TYPE"; break; } } // handle fixed vector sizes, such as float3, and only ever 3. const int fixedVecSize = FixedVecSize(argOrder); if (fixedVecSize != 0) dim0 = dim1 = fixedVecSize; const char dim0Char = ('0' + char(dim0)); const char dim1Char = ('0' + char(dim1)); // Add sampler dimensions if (isSampler || isTexture) { if ((order == 'V' || isTexture) && !isBuffer) { switch (dim0) { case 1: s += "1D"; break; case 2: s += (isMS ? "2DMS" : "2D"); break; case 3: s += "3D"; break; case 4: s += "Cube"; break; default: s += "UNKNOWN_SAMPLER"; break; } } } else { // Non-sampler type: // verify dimensions if (((order == 'V' || order == 'M') && (dim0 < 1 || dim0 > 4)) || (order == 'M' && (dim1 < 1 || dim1 > 4))) { s += "UNKNOWN_DIMENSION"; return s; } switch (order) { case '-': break; // no dimensions for voids case 'S': break; // no dimensions on scalars case 'V': s += dim0Char; break; case 'M': s += dim0Char; s += 'x'; s += dim1Char; break; default: break; } } // handle arrayed textures if (isArrayed) s += "Array"; // For HLSL, append return type for texture types if (UseHlslTypes) { switch (type) { case 'i': s += " 0) // handle fixed sized vectors dim0Min = dim0Max = fixedVecSize; } } // end anonymous namespace namespace glslang { TBuiltInParseablesHlsl::TBuiltInParseablesHlsl() { } // // Handle creation of mat*mat specially, since it doesn't fall conveniently out of // the generic prototype creation code below. // void TBuiltInParseablesHlsl::createMatTimesMat() { TString& s = commonBuiltins; const int first = (UseHlslTypes ? 1 : 2); for (int xRows = first; xRows <=4; xRows++) { for (int xCols = first; xCols <=4; xCols++) { const int yRows = xCols; for (int yCols = first; yCols <=4; yCols++) { const int retRows = xRows; const int retCols = yCols; // Create a mat * mat of the appropriate dimensions AppendTypeName(s, "M", "F", retRows, retCols); // add return type s.append(" "); // space between type and name s.append("mul"); // intrinsic name s.append("("); // open paren AppendTypeName(s, "M", "F", xRows, xCols); // add X input s.append(", "); AppendTypeName(s, "M", "F", yRows, yCols); // add Y input s.append(");\n"); // close paren } // Create M*V AppendTypeName(s, "V", "F", xRows, 1); // add return type s.append(" "); // space between type and name s.append("mul"); // intrinsic name s.append("("); // open paren AppendTypeName(s, "M", "F", xRows, xCols); // add X input s.append(", "); AppendTypeName(s, "V", "F", xCols, 1); // add Y input s.append(");\n"); // close paren // Create V*M AppendTypeName(s, "V", "F", xCols, 1); // add return type s.append(" "); // space between type and name s.append("mul"); // intrinsic name s.append("("); // open paren AppendTypeName(s, "V", "F", xRows, 1); // add Y input s.append(", "); AppendTypeName(s, "M", "F", xRows, xCols); // add X input s.append(");\n"); // close paren } } } // // Add all context-independent built-in functions and variables that are present // for the given version and profile. Share common ones across stages, otherwise // make stage-specific entries. // // Most built-ins variables can be added as simple text strings. Some need to // be added programmatically, which is done later in IdentifyBuiltIns() below. // void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/) { static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1); // These are the actual stage masks defined in the documentation, in case they are // needed for future validation. For now, they are commented out, and set below // to EShLangAll, to allow any intrinsic to be used in any shader, which is legal // if it is not called. // // static const EShLanguageMask EShLangPSCS = EShLanguageMask(EShLangFragmentMask | EShLangComputeMask); // static const EShLanguageMask EShLangVSPSGS = EShLanguageMask(EShLangVertexMask | EShLangFragmentMask | EShLangGeometryMask); // static const EShLanguageMask EShLangCS = EShLangComputeMask; // static const EShLanguageMask EShLangPS = EShLangFragmentMask; // static const EShLanguageMask EShLangHS = EShLangTessControlMask; // This set uses EShLangAll for everything. static const EShLanguageMask EShLangPSCS = EShLangAll; static const EShLanguageMask EShLangVSPSGS = EShLangAll; static const EShLanguageMask EShLangCS = EShLangAll; static const EShLanguageMask EShLangPS = EShLangAll; static const EShLanguageMask EShLangHS = EShLangAll; static const EShLanguageMask EShLangGS = EShLangAll; // This structure encodes the prototype information for each HLSL intrinsic. // Because explicit enumeration would be cumbersome, it's procedurally generated. // orderKey can be: // S = scalar, V = vector, M = matrix, - = void // typekey can be: // D = double, F = float, U = uint, I = int, B = bool, S = sampler, s = shadowSampler, M = uint64_t, L = int64_t // An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM. // '>' as first letter of order creates an output parameter // '<' as first letter of order creates an input parameter // '^' as first letter of order takes transpose dimensions // '%' as first letter of order creates texture of given F/I/U type (texture, itexture, etc) // '@' as first letter of order creates arrayed texture of given type // '$' / '&' as first letter of order creates 2DMS / 2DMSArray textures // '*' as first letter of order creates buffer object // '!' as first letter of order creates image object // '#' as first letter of order creates arrayed image object // '~' as first letter of order creates an image buffer object // '[' / ']' as first letter of order creates a SubpassInput/SubpassInputMS object static const struct { const char* name; // intrinsic name const char* retOrder; // return type key: empty matches order of 1st argument const char* retType; // return type key: empty matches type of 1st argument const char* argOrder; // argument order key const char* argType; // argument type key unsigned int stage; // stage mask bool method; // true if it's a method. } hlslIntrinsics[] = { // name retOrd retType argOrder argType stage mask method // ---------------------------------------------------------------------------------------------------------------- { "abort", nullptr, nullptr, "-", "-", EShLangAll, false }, { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll, false }, { "acos", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "all", "S", "B", "SVM", "BFIU", EShLangAll, false }, { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS, false }, { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS, false }, { "any", "S", "B", "SVM", "BFIU", EShLangAll, false }, { "asdouble", "S", "D", "S,", "UI,", EShLangAll, false }, { "asdouble", "V2", "D", "V2,", "UI,", EShLangAll, false }, { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll, false }, { "asin", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "asint", nullptr, "I", "SVM", "FIU", EShLangAll, false }, { "asuint", nullptr, "U", "SVM", "FIU", EShLangAll, false }, { "atan", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangPSCS, false }, { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll, false }, { "clip", "-", "-", "SVM", "FUI", EShLangPS, false }, { "cos", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "countbits", nullptr, nullptr, "SV", "UI", EShLangAll, false }, { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll, false }, { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll, false }, { "ddx", nullptr, nullptr, "SVM", "F", EShLangPS, false }, { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangPS, false }, { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangPS, false }, { "ddy", nullptr, nullptr, "SVM", "F", EShLangPS, false }, { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangPS, false }, { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangPS, false }, { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "determinant", "S", "F", "M", "F", EShLangAll, false }, { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangPSCS, false }, { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS, false }, { "distance", "S", "F", "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", "-", "-", "", "", EShLangAll, false }, TODO: varargs { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS, false }, { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS, false }, { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangHS, false }, { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangHS, false }, { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS, false }, { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS, false }, { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangHS, false }, { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS, false }, { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS, false }, { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangHS, false }, { "radians", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll, false }, { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll, false }, { "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll, false }, { "reversebits", nullptr, nullptr, "SV", "UI", EShLangAll, false }, { "round", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll, false }, { "sign", nullptr, nullptr, "SVM", "FI", EShLangAll, false }, { "sin", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll, false }, { "sinh", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll, false }, { "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll, false }, { "tan", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll, false }, { "tex1D", "V4", "F", "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,", EShLangPS, true }, { "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangPS, true }, // TODO: FXC accepts int/uint samplers here. unclear what that means. { "SampleCmp", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,", EShLangPS, true }, { "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,,I", EShLangPS, true }, // TODO: FXC accepts int/uint samplers here. unclear what that means. { "SampleCmpLevelZero", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,F", EShLangPS, true }, { "SampleCmpLevelZero", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,F,I", EShLangPS, true }, { "SampleGrad", /*!O*/ "V4", nullptr, "%@,S,V,,", "FIU,S,F,,", EShLangAll, true }, { "SampleGrad", /* O*/ "V4", nullptr, "%@,S,V,,,", "FIU,S,F,,,I", EShLangAll, true }, { "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll, true }, { "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll, true }, { "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll, true }, { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll, true }, { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll, true }, { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll, true }, // RWTexture loads { "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll, true }, // (RW)Buffer loads { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll, true }, { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll, true }, { "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS, true }, { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangPS, true }, { "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS,true }, // // UINT Width // UINT MipLevel, UINT Width, UINT NumberOfLevels { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,U", EShLangAll, true }, { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,F", EShLangAll, true }, { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll, true }, { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll, true }, // UINT Width, UINT Elements // UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,U,", EShLangAll, true }, { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,F,", EShLangAll, true }, { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll, true }, { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll, true }, // UINT Width, UINT Height // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,U,", EShLangAll, true }, { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,F,", EShLangAll, true }, { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll, true }, { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll, true }, // UINT Width, UINT Height, UINT Elements // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,U,,", EShLangAll, true }, { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,F,F,F", EShLangAll, true }, { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll, true }, { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll, true }, // UINT Width, UINT Height, UINT Depth // UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,U,,", EShLangAll, true }, { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,F,,", EShLangAll, true }, { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll, true }, { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll, true }, // UINT Width, UINT Height // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,U,", EShLangAll, true }, { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,F,", EShLangAll, true }, { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,,,", EShLangAll, true }, { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,F,,", EShLangAll, true }, // UINT Width, UINT Height, UINT Elements // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,U,,", EShLangAll, true }, { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,F,,", EShLangAll, true }, { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,,,,", EShLangAll, true }, { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,F,,,", EShLangAll, true }, // UINT Width, UINT Height, UINT Samples // UINT Width, UINT Height, UINT Elements, UINT Samples { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll, true }, { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll, true }, { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll, true }, { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll, true }, // SM5 texture methods { "GatherRed", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, { "GatherRed", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, { "GatherRed", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, { "GatherRed", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, { "GatherRed", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, { "GatherGreen", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, { "GatherGreen", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, { "GatherGreen", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, { "GatherGreen", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, { "GatherGreen", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, { "GatherBlue", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, { "GatherBlue", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, { "GatherBlue", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, { "GatherBlue", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, { "GatherBlue", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, { "GatherAlpha", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll, true }, { "GatherAlpha", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll, true }, { "GatherAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll, true }, { "GatherAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll, true }, { "GatherAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U", EShLangAll, true }, { "GatherCmp", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, { "GatherCmp", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, { "GatherCmp", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, { "GatherCmp", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, { "GatherCmp", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll, true }, { "GatherCmpRed", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, { "GatherCmpRed", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, { "GatherCmpRed", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, { "GatherCmpRed", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, { "GatherCmpRed", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll, true }, { "GatherCmpGreen", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, { "GatherCmpGreen", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, { "GatherCmpGreen", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, { "GatherCmpGreen", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, { "GatherCmpGreen", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll, true }, { "GatherCmpBlue", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, { "GatherCmpBlue", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, { "GatherCmpBlue", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, { "GatherCmpBlue", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, { "GatherCmpBlue", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll, true }, { "GatherCmpAlpha", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll, true }, { "GatherCmpAlpha", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll, true }, { "GatherCmpAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll, true }, { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll, true }, { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll, true }, // geometry methods { "Append", "-", "-", "-", "-", EShLangGS , true }, { "RestartStrip", "-", "-", "-", "-", EShLangGS , true }, // Methods for structurebuffers. TODO: wildcard type matching. { "Load", nullptr, nullptr, "-", "-", EShLangAll, true }, { "Load2", nullptr, nullptr, "-", "-", EShLangAll, true }, { "Load3", nullptr, nullptr, "-", "-", EShLangAll, true }, { "Load4", nullptr, nullptr, "-", "-", EShLangAll, true }, { "Store", nullptr, nullptr, "-", "-", EShLangAll, true }, { "Store2", nullptr, nullptr, "-", "-", EShLangAll, true }, { "Store3", nullptr, nullptr, "-", "-", EShLangAll, true }, { "Store4", nullptr, nullptr, "-", "-", EShLangAll, true }, { "GetDimensions", nullptr, nullptr, "-", "-", EShLangAll, true }, { "InterlockedAdd", nullptr, nullptr, "-", "-", EShLangAll, true }, { "InterlockedAnd", nullptr, nullptr, "-", "-", EShLangAll, true }, { "InterlockedCompareExchange", nullptr, nullptr, "-", "-", EShLangAll, true }, { "InterlockedCompareStore", nullptr, nullptr, "-", "-", EShLangAll, true }, { "InterlockedExchange", nullptr, nullptr, "-", "-", EShLangAll, true }, { "InterlockedMax", nullptr, nullptr, "-", "-", EShLangAll, true }, { "InterlockedMin", nullptr, nullptr, "-", "-", EShLangAll, true }, { "InterlockedOr", nullptr, nullptr, "-", "-", EShLangAll, true }, { "InterlockedXor", nullptr, nullptr, "-", "-", EShLangAll, true }, { "IncrementCounter", nullptr, nullptr, "-", "-", EShLangAll, true }, { "DecrementCounter", nullptr, nullptr, "-", "-", EShLangAll, true }, { "Consume", nullptr, nullptr, "-", "-", EShLangAll, true }, // SM 6.0 { "WaveIsFirstLane", "S", "B", "-", "-", EShLangPSCS, false}, { "WaveGetLaneCount", "S", "U", "-", "-", EShLangPSCS, false}, { "WaveGetLaneIndex", "S", "U", "-", "-", EShLangPSCS, false}, { "WaveActiveAnyTrue", "S", "B", "S", "B", EShLangPSCS, false}, { "WaveActiveAllTrue", "S", "B", "S", "B", EShLangPSCS, false}, { "WaveActiveBallot", "V4", "U", "S", "B", EShLangPSCS, false}, { "WaveReadLaneAt", nullptr, nullptr, "SV,S", "DFUI,U", EShLangPSCS, false}, { "WaveReadLaneFirst", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "WaveActiveAllEqual", "S", "B", "SV", "DFUI", EShLangPSCS, false}, { "WaveActiveAllEqualBool", "S", "B", "S", "B", EShLangPSCS, false}, { "WaveActiveCountBits", "S", "U", "S", "B", EShLangPSCS, false}, { "WaveActiveSum", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "WaveActiveProduct", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "WaveActiveBitAnd", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "WaveActiveBitOr", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "WaveActiveBitXor", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "WaveActiveMin", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "WaveActiveMax", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "WavePrefixSum", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "WavePrefixProduct", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "WavePrefixCountBits", "S", "U", "S", "B", EShLangPSCS, false}, { "QuadReadAcrossX", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "QuadReadAcrossY", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "QuadReadAcrossDiagonal", nullptr, nullptr, "SV", "DFUI", EShLangPSCS, false}, { "QuadReadLaneAt", nullptr, nullptr, "SV,S", "DFUI,U", EShLangPSCS, false}, // Methods for subpass input objects { "SubpassLoad", "V4", nullptr, "[", "FIU", EShLangPS, true }, { "SubpassLoad", "V4", nullptr, "],S", "FIU,I", EShLangPS, true }, // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0, false }, }; // Create prototypes for the intrinsics. TODO: Avoid ranged based for until all compilers can handle it. for (int icount = 0; hlslIntrinsics[icount].name; ++icount) { const auto& intrinsic = hlslIntrinsics[icount]; for (int stage = 0; stage < EShLangCount; ++stage) { // for each stage... if ((intrinsic.stage & (1< 0 ? std::min(dim0, 3) : dim0; s.append(arg > 0 ? ", ": ""); // comma separator if needed const char* orderBegin = nthArgOrder; nthArgOrder = IoParam(s, nthArgOrder); // Comma means use the previous argument order and type. HandleRepeatArg(nthArgOrder, prevArgOrder, orderBegin); HandleRepeatArg(nthArgType, prevArgType, nthArgType); // In case the repeated arg has its own I/O marker nthArgOrder = IoParam(s, nthArgOrder); // arrayed textures have one extra coordinate dimension, except for // the CalculateLevelOfDetail family. if (isArrayed && arg == coordArg && !NoArrayCoord(intrinsic.name)) argDim0++; // Some texture methods use an addition arg dimension to hold mip if (arg == coordArg && mipInCoord) argDim0++; // For textures, the 1D case isn't a 1-vector, but a scalar. if (isTexture && argDim0 == 1 && arg > 0 && *nthArgOrder == 'V') nthArgOrder = "S"; AppendTypeName(s, nthArgOrder, nthArgType, argDim0, dim1); // Add arguments } s.append(");\n"); // close paren and trailing semicolon } // dim 1 loop } // dim 0 loop } // arg type loop // skip over special characters if (isTexture && isalpha(argOrder[1])) ++argOrder; if (isdigit(argOrder[1])) ++argOrder; } // arg order loop if (intrinsic.stage == EShLangAll) // common builtins are only added once. break; } } createMatTimesMat(); // handle this case separately, for convenience // printf("Common:\n%s\n", getCommonString().c_str()); // printf("Frag:\n%s\n", getStageString(EShLangFragment).c_str()); // printf("Vertex:\n%s\n", getStageString(EShLangVertex).c_str()); // printf("Geo:\n%s\n", getStageString(EShLangGeometry).c_str()); // printf("TessCtrl:\n%s\n", getStageString(EShLangTessControl).c_str()); // printf("TessEval:\n%s\n", getStageString(EShLangTessEvaluation).c_str()); // printf("Compute:\n%s\n", getStageString(EShLangCompute).c_str()); } // // Add context-dependent built-in functions and variables that are present // for the given version and profile. All the results are put into just the // commonBuiltins, because it is called for just a specific stage. So, // add stage-specific entries to the commonBuiltins, and only if that stage // was requested. // void TBuiltInParseablesHlsl::initialize(const TBuiltInResource& /*resources*/, int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/, EShLanguage /*language*/) { } // // Finish adding/processing context-independent built-in symbols. // 1) Programmatically add symbols that could not be added by simple text strings above. // 2) Map built-in functions to operators, for those that will turn into an operation node // instead of remaining a function call. // 3) Tag extension-related symbols added to their base version with their extensions, so // that if an early version has the extension turned off, there is an error reported on use. // void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/, EShLanguage /*language*/, TSymbolTable& symbolTable) { // symbolTable.relateToOperator("abort", EOpAbort); symbolTable.relateToOperator("abs", EOpAbs); symbolTable.relateToOperator("acos", EOpAcos); symbolTable.relateToOperator("all", EOpAll); symbolTable.relateToOperator("AllMemoryBarrier", EOpMemoryBarrier); symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync", EOpAllMemoryBarrierWithGroupSync); symbolTable.relateToOperator("any", EOpAny); symbolTable.relateToOperator("asdouble", EOpAsDouble); symbolTable.relateToOperator("asfloat", EOpIntBitsToFloat); symbolTable.relateToOperator("asin", EOpAsin); symbolTable.relateToOperator("asint", EOpFloatBitsToInt); symbolTable.relateToOperator("asuint", EOpFloatBitsToUint); symbolTable.relateToOperator("atan", EOpAtan); symbolTable.relateToOperator("atan2", EOpAtan); symbolTable.relateToOperator("ceil", EOpCeil); // symbolTable.relateToOperator("CheckAccessFullyMapped"); symbolTable.relateToOperator("clamp", EOpClamp); symbolTable.relateToOperator("clip", EOpClip); symbolTable.relateToOperator("cos", EOpCos); symbolTable.relateToOperator("cosh", EOpCosh); symbolTable.relateToOperator("countbits", EOpBitCount); symbolTable.relateToOperator("cross", EOpCross); symbolTable.relateToOperator("D3DCOLORtoUBYTE4", EOpD3DCOLORtoUBYTE4); symbolTable.relateToOperator("ddx", EOpDPdx); symbolTable.relateToOperator("ddx_coarse", EOpDPdxCoarse); symbolTable.relateToOperator("ddx_fine", EOpDPdxFine); symbolTable.relateToOperator("ddy", EOpDPdy); symbolTable.relateToOperator("ddy_coarse", EOpDPdyCoarse); symbolTable.relateToOperator("ddy_fine", EOpDPdyFine); symbolTable.relateToOperator("degrees", EOpDegrees); symbolTable.relateToOperator("determinant", EOpDeterminant); symbolTable.relateToOperator("DeviceMemoryBarrier", EOpDeviceMemoryBarrier); symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync", EOpDeviceMemoryBarrierWithGroupSync); symbolTable.relateToOperator("distance", EOpDistance); symbolTable.relateToOperator("dot", EOpDot); symbolTable.relateToOperator("dst", EOpDst); // symbolTable.relateToOperator("errorf", EOpErrorf); symbolTable.relateToOperator("EvaluateAttributeAtCentroid", EOpInterpolateAtCentroid); symbolTable.relateToOperator("EvaluateAttributeAtSample", EOpInterpolateAtSample); symbolTable.relateToOperator("EvaluateAttributeSnapped", EOpEvaluateAttributeSnapped); symbolTable.relateToOperator("exp", EOpExp); symbolTable.relateToOperator("exp2", EOpExp2); symbolTable.relateToOperator("f16tof32", EOpF16tof32); symbolTable.relateToOperator("f32tof16", EOpF32tof16); symbolTable.relateToOperator("faceforward", EOpFaceForward); symbolTable.relateToOperator("firstbithigh", EOpFindMSB); symbolTable.relateToOperator("firstbitlow", EOpFindLSB); symbolTable.relateToOperator("floor", EOpFloor); symbolTable.relateToOperator("fma", EOpFma); symbolTable.relateToOperator("fmod", EOpMod); symbolTable.relateToOperator("frac", EOpFract); symbolTable.relateToOperator("frexp", EOpFrexp); symbolTable.relateToOperator("fwidth", EOpFwidth); // symbolTable.relateToOperator("GetRenderTargetSampleCount"); // symbolTable.relateToOperator("GetRenderTargetSamplePosition"); symbolTable.relateToOperator("GroupMemoryBarrier", EOpWorkgroupMemoryBarrier); symbolTable.relateToOperator("GroupMemoryBarrierWithGroupSync", EOpWorkgroupMemoryBarrierWithGroupSync); symbolTable.relateToOperator("InterlockedAdd", EOpInterlockedAdd); symbolTable.relateToOperator("InterlockedAnd", EOpInterlockedAnd); symbolTable.relateToOperator("InterlockedCompareExchange", EOpInterlockedCompareExchange); symbolTable.relateToOperator("InterlockedCompareStore", EOpInterlockedCompareStore); symbolTable.relateToOperator("InterlockedExchange", EOpInterlockedExchange); symbolTable.relateToOperator("InterlockedMax", EOpInterlockedMax); symbolTable.relateToOperator("InterlockedMin", EOpInterlockedMin); symbolTable.relateToOperator("InterlockedOr", EOpInterlockedOr); symbolTable.relateToOperator("InterlockedXor", EOpInterlockedXor); symbolTable.relateToOperator("isfinite", EOpIsFinite); symbolTable.relateToOperator("isinf", EOpIsInf); symbolTable.relateToOperator("isnan", EOpIsNan); symbolTable.relateToOperator("ldexp", EOpLdexp); symbolTable.relateToOperator("length", EOpLength); symbolTable.relateToOperator("lerp", EOpMix); symbolTable.relateToOperator("lit", EOpLit); symbolTable.relateToOperator("log", EOpLog); symbolTable.relateToOperator("log10", EOpLog10); symbolTable.relateToOperator("log2", EOpLog2); symbolTable.relateToOperator("mad", EOpFma); symbolTable.relateToOperator("max", EOpMax); symbolTable.relateToOperator("min", EOpMin); symbolTable.relateToOperator("modf", EOpModf); // symbolTable.relateToOperator("msad4", EOpMsad4); symbolTable.relateToOperator("mul", EOpGenMul); // symbolTable.relateToOperator("noise", EOpNoise); // TODO: check return type symbolTable.relateToOperator("normalize", EOpNormalize); symbolTable.relateToOperator("pow", EOpPow); // symbolTable.relateToOperator("printf", EOpPrintf); // symbolTable.relateToOperator("Process2DQuadTessFactorsAvg"); // symbolTable.relateToOperator("Process2DQuadTessFactorsMax"); // symbolTable.relateToOperator("Process2DQuadTessFactorsMin"); // symbolTable.relateToOperator("ProcessIsolineTessFactors"); // symbolTable.relateToOperator("ProcessQuadTessFactorsAvg"); // symbolTable.relateToOperator("ProcessQuadTessFactorsMax"); // symbolTable.relateToOperator("ProcessQuadTessFactorsMin"); // symbolTable.relateToOperator("ProcessTriTessFactorsAvg"); // symbolTable.relateToOperator("ProcessTriTessFactorsMax"); // symbolTable.relateToOperator("ProcessTriTessFactorsMin"); symbolTable.relateToOperator("radians", EOpRadians); symbolTable.relateToOperator("rcp", EOpRcp); symbolTable.relateToOperator("reflect", EOpReflect); symbolTable.relateToOperator("refract", EOpRefract); symbolTable.relateToOperator("reversebits", EOpBitFieldReverse); symbolTable.relateToOperator("round", EOpRoundEven); symbolTable.relateToOperator("rsqrt", EOpInverseSqrt); symbolTable.relateToOperator("saturate", EOpSaturate); symbolTable.relateToOperator("sign", EOpSign); symbolTable.relateToOperator("sin", EOpSin); symbolTable.relateToOperator("sincos", EOpSinCos); symbolTable.relateToOperator("sinh", EOpSinh); symbolTable.relateToOperator("smoothstep", EOpSmoothStep); symbolTable.relateToOperator("sqrt", EOpSqrt); symbolTable.relateToOperator("step", EOpStep); symbolTable.relateToOperator("tan", EOpTan); symbolTable.relateToOperator("tanh", EOpTanh); symbolTable.relateToOperator("tex1D", EOpTexture); symbolTable.relateToOperator("tex1Dbias", EOpTextureBias); symbolTable.relateToOperator("tex1Dgrad", EOpTextureGrad); symbolTable.relateToOperator("tex1Dlod", EOpTextureLod); symbolTable.relateToOperator("tex1Dproj", EOpTextureProj); symbolTable.relateToOperator("tex2D", EOpTexture); symbolTable.relateToOperator("tex2Dbias", EOpTextureBias); symbolTable.relateToOperator("tex2Dgrad", EOpTextureGrad); symbolTable.relateToOperator("tex2Dlod", EOpTextureLod); symbolTable.relateToOperator("tex2Dproj", EOpTextureProj); symbolTable.relateToOperator("tex3D", EOpTexture); symbolTable.relateToOperator("tex3Dbias", EOpTextureBias); symbolTable.relateToOperator("tex3Dgrad", EOpTextureGrad); symbolTable.relateToOperator("tex3Dlod", EOpTextureLod); symbolTable.relateToOperator("tex3Dproj", EOpTextureProj); symbolTable.relateToOperator("texCUBE", EOpTexture); symbolTable.relateToOperator("texCUBEbias", EOpTextureBias); symbolTable.relateToOperator("texCUBEgrad", EOpTextureGrad); symbolTable.relateToOperator("texCUBElod", EOpTextureLod); symbolTable.relateToOperator("texCUBEproj", EOpTextureProj); symbolTable.relateToOperator("transpose", EOpTranspose); symbolTable.relateToOperator("trunc", EOpTrunc); // Texture methods symbolTable.relateToOperator(BUILTIN_PREFIX "Sample", EOpMethodSample); symbolTable.relateToOperator(BUILTIN_PREFIX "SampleBias", EOpMethodSampleBias); symbolTable.relateToOperator(BUILTIN_PREFIX "SampleCmp", EOpMethodSampleCmp); symbolTable.relateToOperator(BUILTIN_PREFIX "SampleCmpLevelZero", EOpMethodSampleCmpLevelZero); symbolTable.relateToOperator(BUILTIN_PREFIX "SampleGrad", EOpMethodSampleGrad); symbolTable.relateToOperator(BUILTIN_PREFIX "SampleLevel", EOpMethodSampleLevel); symbolTable.relateToOperator(BUILTIN_PREFIX "Load", EOpMethodLoad); symbolTable.relateToOperator(BUILTIN_PREFIX "GetDimensions", EOpMethodGetDimensions); symbolTable.relateToOperator(BUILTIN_PREFIX "GetSamplePosition", EOpMethodGetSamplePosition); symbolTable.relateToOperator(BUILTIN_PREFIX "Gather", EOpMethodGather); symbolTable.relateToOperator(BUILTIN_PREFIX "CalculateLevelOfDetail", EOpMethodCalculateLevelOfDetail); symbolTable.relateToOperator(BUILTIN_PREFIX "CalculateLevelOfDetailUnclamped", EOpMethodCalculateLevelOfDetailUnclamped); // Structure buffer methods (excluding associations already made above for texture methods w/ same name) symbolTable.relateToOperator(BUILTIN_PREFIX "Load2", EOpMethodLoad2); symbolTable.relateToOperator(BUILTIN_PREFIX "Load3", EOpMethodLoad3); symbolTable.relateToOperator(BUILTIN_PREFIX "Load4", EOpMethodLoad4); symbolTable.relateToOperator(BUILTIN_PREFIX "Store", EOpMethodStore); symbolTable.relateToOperator(BUILTIN_PREFIX "Store2", EOpMethodStore2); symbolTable.relateToOperator(BUILTIN_PREFIX "Store3", EOpMethodStore3); symbolTable.relateToOperator(BUILTIN_PREFIX "Store4", EOpMethodStore4); symbolTable.relateToOperator(BUILTIN_PREFIX "IncrementCounter", EOpMethodIncrementCounter); symbolTable.relateToOperator(BUILTIN_PREFIX "DecrementCounter", EOpMethodDecrementCounter); // Append is also a GS method: we don't add it twice symbolTable.relateToOperator(BUILTIN_PREFIX "Consume", EOpMethodConsume); symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedAdd", EOpInterlockedAdd); symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedAnd", EOpInterlockedAnd); symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedCompareExchange", EOpInterlockedCompareExchange); symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedCompareStore", EOpInterlockedCompareStore); symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedExchange", EOpInterlockedExchange); symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedMax", EOpInterlockedMax); symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedMin", EOpInterlockedMin); symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedOr", EOpInterlockedOr); symbolTable.relateToOperator(BUILTIN_PREFIX "InterlockedXor", EOpInterlockedXor); // SM5 Texture methods symbolTable.relateToOperator(BUILTIN_PREFIX "GatherRed", EOpMethodGatherRed); symbolTable.relateToOperator(BUILTIN_PREFIX "GatherGreen", EOpMethodGatherGreen); symbolTable.relateToOperator(BUILTIN_PREFIX "GatherBlue", EOpMethodGatherBlue); symbolTable.relateToOperator(BUILTIN_PREFIX "GatherAlpha", EOpMethodGatherAlpha); symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmp", EOpMethodGatherCmpRed); // alias symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpRed", EOpMethodGatherCmpRed); symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpGreen", EOpMethodGatherCmpGreen); symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpBlue", EOpMethodGatherCmpBlue); symbolTable.relateToOperator(BUILTIN_PREFIX "GatherCmpAlpha", EOpMethodGatherCmpAlpha); // GS methods symbolTable.relateToOperator(BUILTIN_PREFIX "Append", EOpMethodAppend); symbolTable.relateToOperator(BUILTIN_PREFIX "RestartStrip", EOpMethodRestartStrip); // Wave ops symbolTable.relateToOperator("WaveIsFirstLane", EOpSubgroupElect); symbolTable.relateToOperator("WaveGetLaneCount", EOpWaveGetLaneCount); symbolTable.relateToOperator("WaveGetLaneIndex", EOpWaveGetLaneIndex); symbolTable.relateToOperator("WaveActiveAnyTrue", EOpSubgroupAny); symbolTable.relateToOperator("WaveActiveAllTrue", EOpSubgroupAll); symbolTable.relateToOperator("WaveActiveBallot", EOpSubgroupBallot); symbolTable.relateToOperator("WaveReadLaneFirst", EOpSubgroupBroadcastFirst); symbolTable.relateToOperator("WaveReadLaneAt", EOpSubgroupShuffle); symbolTable.relateToOperator("WaveActiveAllEqual", EOpSubgroupAllEqual); symbolTable.relateToOperator("WaveActiveAllEqualBool", EOpSubgroupAllEqual); symbolTable.relateToOperator("WaveActiveCountBits", EOpWaveActiveCountBits); symbolTable.relateToOperator("WaveActiveSum", EOpSubgroupAdd); symbolTable.relateToOperator("WaveActiveProduct", EOpSubgroupMul); symbolTable.relateToOperator("WaveActiveBitAnd", EOpSubgroupAnd); symbolTable.relateToOperator("WaveActiveBitOr", EOpSubgroupOr); symbolTable.relateToOperator("WaveActiveBitXor", EOpSubgroupXor); symbolTable.relateToOperator("WaveActiveMin", EOpSubgroupMin); symbolTable.relateToOperator("WaveActiveMax", EOpSubgroupMax); symbolTable.relateToOperator("WavePrefixSum", EOpSubgroupInclusiveAdd); symbolTable.relateToOperator("WavePrefixProduct", EOpSubgroupInclusiveMul); symbolTable.relateToOperator("WavePrefixCountBits", EOpWavePrefixCountBits); symbolTable.relateToOperator("QuadReadAcrossX", EOpSubgroupQuadSwapHorizontal); symbolTable.relateToOperator("QuadReadAcrossY", EOpSubgroupQuadSwapVertical); symbolTable.relateToOperator("QuadReadAcrossDiagonal", EOpSubgroupQuadSwapDiagonal); symbolTable.relateToOperator("QuadReadLaneAt", EOpSubgroupQuadBroadcast); // Subpass input methods symbolTable.relateToOperator(BUILTIN_PREFIX "SubpassLoad", EOpSubpassLoad); symbolTable.relateToOperator(BUILTIN_PREFIX "SubpassLoadMS", EOpSubpassLoadMS); } // // Add context-dependent (resource-specific) built-ins not handled by the above. These // would be ones that need to be programmatically added because they cannot // be added by simple text strings. For these, also // 1) Map built-in functions to operators, for those that will turn into an operation node // instead of remaining a function call. // 2) Tag extension-related symbols added to their base version with their extensions, so // that if an early version has the extension turned off, there is an error reported on use. // void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/, EShLanguage /*language*/, TSymbolTable& /*symbolTable*/, const TBuiltInResource& /*resources*/) { } } // end namespace glslang glslang-8.13.3559/hlsl/hlslParseables.h000066400000000000000000000051061360464450000175630ustar00rootroot00000000000000// // Copyright (C) 2016 LunarG, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of 3Dlabs Inc. Ltd. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // #ifndef _HLSLPARSEABLES_INCLUDED_ #define _HLSLPARSEABLES_INCLUDED_ #include "../glslang/MachineIndependent/Initialize.h" namespace glslang { // // This is an HLSL specific derivation of TBuiltInParseables. See comment // above TBuiltInParseables for details. // class TBuiltInParseablesHlsl : public TBuiltInParseables { public: POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) TBuiltInParseablesHlsl(); void initialize(int version, EProfile, const SpvVersion& spvVersion); void initialize(const TBuiltInResource& resources, int version, EProfile, const SpvVersion& spvVersion, EShLanguage); void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable); void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources); private: void createMatTimesMat(); }; } // end namespace glslang #endif // _HLSLPARSEABLES_INCLUDED_ glslang-8.13.3559/hlsl/hlslScanContext.cpp000066400000000000000000001064541360464450000202760ustar00rootroot00000000000000// // Copyright (C) 2016 Google, Inc. // Copyright (C) 2016 LunarG, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of Google, Inc., nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // // // HLSL scanning, leveraging the scanning done by the preprocessor. // #include #include #include #include "../glslang/Include/Types.h" #include "../glslang/MachineIndependent/SymbolTable.h" #include "../glslang/MachineIndependent/ParseHelper.h" #include "hlslScanContext.h" #include "hlslTokens.h" // preprocessor includes #include "../glslang/MachineIndependent/preprocessor/PpContext.h" #include "../glslang/MachineIndependent/preprocessor/PpTokens.h" namespace { struct str_eq { bool operator()(const char* lhs, const char* rhs) const { return strcmp(lhs, rhs) == 0; } }; struct str_hash { size_t operator()(const char* str) const { // djb2 unsigned long hash = 5381; int c; while ((c = *str++) != 0) hash = ((hash << 5) + hash) + c; return hash; } }; // A single global usable by all threads, by all versions, by all languages. // After a single process-level initialization, this is read only and thread safe std::unordered_map* KeywordMap = nullptr; std::unordered_set* ReservedSet = nullptr; std::unordered_map* SemanticMap = nullptr; }; namespace glslang { void HlslScanContext::fillInKeywordMap() { if (KeywordMap != nullptr) { // this is really an error, as this should called only once per process // but, the only risk is if two threads called simultaneously return; } KeywordMap = new std::unordered_map; (*KeywordMap)["static"] = EHTokStatic; (*KeywordMap)["const"] = EHTokConst; (*KeywordMap)["unorm"] = EHTokUnorm; (*KeywordMap)["snorm"] = EHTokSNorm; (*KeywordMap)["extern"] = EHTokExtern; (*KeywordMap)["uniform"] = EHTokUniform; (*KeywordMap)["volatile"] = EHTokVolatile; (*KeywordMap)["precise"] = EHTokPrecise; (*KeywordMap)["shared"] = EHTokShared; (*KeywordMap)["groupshared"] = EHTokGroupShared; (*KeywordMap)["linear"] = EHTokLinear; (*KeywordMap)["centroid"] = EHTokCentroid; (*KeywordMap)["nointerpolation"] = EHTokNointerpolation; (*KeywordMap)["noperspective"] = EHTokNoperspective; (*KeywordMap)["sample"] = EHTokSample; (*KeywordMap)["row_major"] = EHTokRowMajor; (*KeywordMap)["column_major"] = EHTokColumnMajor; (*KeywordMap)["packoffset"] = EHTokPackOffset; (*KeywordMap)["in"] = EHTokIn; (*KeywordMap)["out"] = EHTokOut; (*KeywordMap)["inout"] = EHTokInOut; (*KeywordMap)["layout"] = EHTokLayout; (*KeywordMap)["globallycoherent"] = EHTokGloballyCoherent; (*KeywordMap)["inline"] = EHTokInline; (*KeywordMap)["point"] = EHTokPoint; (*KeywordMap)["line"] = EHTokLine; (*KeywordMap)["triangle"] = EHTokTriangle; (*KeywordMap)["lineadj"] = EHTokLineAdj; (*KeywordMap)["triangleadj"] = EHTokTriangleAdj; (*KeywordMap)["PointStream"] = EHTokPointStream; (*KeywordMap)["LineStream"] = EHTokLineStream; (*KeywordMap)["TriangleStream"] = EHTokTriangleStream; (*KeywordMap)["InputPatch"] = EHTokInputPatch; (*KeywordMap)["OutputPatch"] = EHTokOutputPatch; (*KeywordMap)["Buffer"] = EHTokBuffer; (*KeywordMap)["vector"] = EHTokVector; (*KeywordMap)["matrix"] = EHTokMatrix; (*KeywordMap)["void"] = EHTokVoid; (*KeywordMap)["string"] = EHTokString; (*KeywordMap)["bool"] = EHTokBool; (*KeywordMap)["int"] = EHTokInt; (*KeywordMap)["uint"] = EHTokUint; (*KeywordMap)["uint64_t"] = EHTokUint64; (*KeywordMap)["dword"] = EHTokDword; (*KeywordMap)["half"] = EHTokHalf; (*KeywordMap)["float"] = EHTokFloat; (*KeywordMap)["double"] = EHTokDouble; (*KeywordMap)["min16float"] = EHTokMin16float; (*KeywordMap)["min10float"] = EHTokMin10float; (*KeywordMap)["min16int"] = EHTokMin16int; (*KeywordMap)["min12int"] = EHTokMin12int; (*KeywordMap)["min16uint"] = EHTokMin16uint; (*KeywordMap)["bool1"] = EHTokBool1; (*KeywordMap)["bool2"] = EHTokBool2; (*KeywordMap)["bool3"] = EHTokBool3; (*KeywordMap)["bool4"] = EHTokBool4; (*KeywordMap)["float1"] = EHTokFloat1; (*KeywordMap)["float2"] = EHTokFloat2; (*KeywordMap)["float3"] = EHTokFloat3; (*KeywordMap)["float4"] = EHTokFloat4; (*KeywordMap)["int1"] = EHTokInt1; (*KeywordMap)["int2"] = EHTokInt2; (*KeywordMap)["int3"] = EHTokInt3; (*KeywordMap)["int4"] = EHTokInt4; (*KeywordMap)["double1"] = EHTokDouble1; (*KeywordMap)["double2"] = EHTokDouble2; (*KeywordMap)["double3"] = EHTokDouble3; (*KeywordMap)["double4"] = EHTokDouble4; (*KeywordMap)["uint1"] = EHTokUint1; (*KeywordMap)["uint2"] = EHTokUint2; (*KeywordMap)["uint3"] = EHTokUint3; (*KeywordMap)["uint4"] = EHTokUint4; (*KeywordMap)["half1"] = EHTokHalf1; (*KeywordMap)["half2"] = EHTokHalf2; (*KeywordMap)["half3"] = EHTokHalf3; (*KeywordMap)["half4"] = EHTokHalf4; (*KeywordMap)["min16float1"] = EHTokMin16float1; (*KeywordMap)["min16float2"] = EHTokMin16float2; (*KeywordMap)["min16float3"] = EHTokMin16float3; (*KeywordMap)["min16float4"] = EHTokMin16float4; (*KeywordMap)["min10float1"] = EHTokMin10float1; (*KeywordMap)["min10float2"] = EHTokMin10float2; (*KeywordMap)["min10float3"] = EHTokMin10float3; (*KeywordMap)["min10float4"] = EHTokMin10float4; (*KeywordMap)["min16int1"] = EHTokMin16int1; (*KeywordMap)["min16int2"] = EHTokMin16int2; (*KeywordMap)["min16int3"] = EHTokMin16int3; (*KeywordMap)["min16int4"] = EHTokMin16int4; (*KeywordMap)["min12int1"] = EHTokMin12int1; (*KeywordMap)["min12int2"] = EHTokMin12int2; (*KeywordMap)["min12int3"] = EHTokMin12int3; (*KeywordMap)["min12int4"] = EHTokMin12int4; (*KeywordMap)["min16uint1"] = EHTokMin16uint1; (*KeywordMap)["min16uint2"] = EHTokMin16uint2; (*KeywordMap)["min16uint3"] = EHTokMin16uint3; (*KeywordMap)["min16uint4"] = EHTokMin16uint4; (*KeywordMap)["bool1x1"] = EHTokBool1x1; (*KeywordMap)["bool1x2"] = EHTokBool1x2; (*KeywordMap)["bool1x3"] = EHTokBool1x3; (*KeywordMap)["bool1x4"] = EHTokBool1x4; (*KeywordMap)["bool2x1"] = EHTokBool2x1; (*KeywordMap)["bool2x2"] = EHTokBool2x2; (*KeywordMap)["bool2x3"] = EHTokBool2x3; (*KeywordMap)["bool2x4"] = EHTokBool2x4; (*KeywordMap)["bool3x1"] = EHTokBool3x1; (*KeywordMap)["bool3x2"] = EHTokBool3x2; (*KeywordMap)["bool3x3"] = EHTokBool3x3; (*KeywordMap)["bool3x4"] = EHTokBool3x4; (*KeywordMap)["bool4x1"] = EHTokBool4x1; (*KeywordMap)["bool4x2"] = EHTokBool4x2; (*KeywordMap)["bool4x3"] = EHTokBool4x3; (*KeywordMap)["bool4x4"] = EHTokBool4x4; (*KeywordMap)["int1x1"] = EHTokInt1x1; (*KeywordMap)["int1x2"] = EHTokInt1x2; (*KeywordMap)["int1x3"] = EHTokInt1x3; (*KeywordMap)["int1x4"] = EHTokInt1x4; (*KeywordMap)["int2x1"] = EHTokInt2x1; (*KeywordMap)["int2x2"] = EHTokInt2x2; (*KeywordMap)["int2x3"] = EHTokInt2x3; (*KeywordMap)["int2x4"] = EHTokInt2x4; (*KeywordMap)["int3x1"] = EHTokInt3x1; (*KeywordMap)["int3x2"] = EHTokInt3x2; (*KeywordMap)["int3x3"] = EHTokInt3x3; (*KeywordMap)["int3x4"] = EHTokInt3x4; (*KeywordMap)["int4x1"] = EHTokInt4x1; (*KeywordMap)["int4x2"] = EHTokInt4x2; (*KeywordMap)["int4x3"] = EHTokInt4x3; (*KeywordMap)["int4x4"] = EHTokInt4x4; (*KeywordMap)["uint1x1"] = EHTokUint1x1; (*KeywordMap)["uint1x2"] = EHTokUint1x2; (*KeywordMap)["uint1x3"] = EHTokUint1x3; (*KeywordMap)["uint1x4"] = EHTokUint1x4; (*KeywordMap)["uint2x1"] = EHTokUint2x1; (*KeywordMap)["uint2x2"] = EHTokUint2x2; (*KeywordMap)["uint2x3"] = EHTokUint2x3; (*KeywordMap)["uint2x4"] = EHTokUint2x4; (*KeywordMap)["uint3x1"] = EHTokUint3x1; (*KeywordMap)["uint3x2"] = EHTokUint3x2; (*KeywordMap)["uint3x3"] = EHTokUint3x3; (*KeywordMap)["uint3x4"] = EHTokUint3x4; (*KeywordMap)["uint4x1"] = EHTokUint4x1; (*KeywordMap)["uint4x2"] = EHTokUint4x2; (*KeywordMap)["uint4x3"] = EHTokUint4x3; (*KeywordMap)["uint4x4"] = EHTokUint4x4; (*KeywordMap)["bool1x1"] = EHTokBool1x1; (*KeywordMap)["bool1x2"] = EHTokBool1x2; (*KeywordMap)["bool1x3"] = EHTokBool1x3; (*KeywordMap)["bool1x4"] = EHTokBool1x4; (*KeywordMap)["bool2x1"] = EHTokBool2x1; (*KeywordMap)["bool2x2"] = EHTokBool2x2; (*KeywordMap)["bool2x3"] = EHTokBool2x3; (*KeywordMap)["bool2x4"] = EHTokBool2x4; (*KeywordMap)["bool3x1"] = EHTokBool3x1; (*KeywordMap)["bool3x2"] = EHTokBool3x2; (*KeywordMap)["bool3x3"] = EHTokBool3x3; (*KeywordMap)["bool3x4"] = EHTokBool3x4; (*KeywordMap)["bool4x1"] = EHTokBool4x1; (*KeywordMap)["bool4x2"] = EHTokBool4x2; (*KeywordMap)["bool4x3"] = EHTokBool4x3; (*KeywordMap)["bool4x4"] = EHTokBool4x4; (*KeywordMap)["float1x1"] = EHTokFloat1x1; (*KeywordMap)["float1x2"] = EHTokFloat1x2; (*KeywordMap)["float1x3"] = EHTokFloat1x3; (*KeywordMap)["float1x4"] = EHTokFloat1x4; (*KeywordMap)["float2x1"] = EHTokFloat2x1; (*KeywordMap)["float2x2"] = EHTokFloat2x2; (*KeywordMap)["float2x3"] = EHTokFloat2x3; (*KeywordMap)["float2x4"] = EHTokFloat2x4; (*KeywordMap)["float3x1"] = EHTokFloat3x1; (*KeywordMap)["float3x2"] = EHTokFloat3x2; (*KeywordMap)["float3x3"] = EHTokFloat3x3; (*KeywordMap)["float3x4"] = EHTokFloat3x4; (*KeywordMap)["float4x1"] = EHTokFloat4x1; (*KeywordMap)["float4x2"] = EHTokFloat4x2; (*KeywordMap)["float4x3"] = EHTokFloat4x3; (*KeywordMap)["float4x4"] = EHTokFloat4x4; (*KeywordMap)["half1x1"] = EHTokHalf1x1; (*KeywordMap)["half1x2"] = EHTokHalf1x2; (*KeywordMap)["half1x3"] = EHTokHalf1x3; (*KeywordMap)["half1x4"] = EHTokHalf1x4; (*KeywordMap)["half2x1"] = EHTokHalf2x1; (*KeywordMap)["half2x2"] = EHTokHalf2x2; (*KeywordMap)["half2x3"] = EHTokHalf2x3; (*KeywordMap)["half2x4"] = EHTokHalf2x4; (*KeywordMap)["half3x1"] = EHTokHalf3x1; (*KeywordMap)["half3x2"] = EHTokHalf3x2; (*KeywordMap)["half3x3"] = EHTokHalf3x3; (*KeywordMap)["half3x4"] = EHTokHalf3x4; (*KeywordMap)["half4x1"] = EHTokHalf4x1; (*KeywordMap)["half4x2"] = EHTokHalf4x2; (*KeywordMap)["half4x3"] = EHTokHalf4x3; (*KeywordMap)["half4x4"] = EHTokHalf4x4; (*KeywordMap)["double1x1"] = EHTokDouble1x1; (*KeywordMap)["double1x2"] = EHTokDouble1x2; (*KeywordMap)["double1x3"] = EHTokDouble1x3; (*KeywordMap)["double1x4"] = EHTokDouble1x4; (*KeywordMap)["double2x1"] = EHTokDouble2x1; (*KeywordMap)["double2x2"] = EHTokDouble2x2; (*KeywordMap)["double2x3"] = EHTokDouble2x3; (*KeywordMap)["double2x4"] = EHTokDouble2x4; (*KeywordMap)["double3x1"] = EHTokDouble3x1; (*KeywordMap)["double3x2"] = EHTokDouble3x2; (*KeywordMap)["double3x3"] = EHTokDouble3x3; (*KeywordMap)["double3x4"] = EHTokDouble3x4; (*KeywordMap)["double4x1"] = EHTokDouble4x1; (*KeywordMap)["double4x2"] = EHTokDouble4x2; (*KeywordMap)["double4x3"] = EHTokDouble4x3; (*KeywordMap)["double4x4"] = EHTokDouble4x4; (*KeywordMap)["sampler"] = EHTokSampler; (*KeywordMap)["sampler1D"] = EHTokSampler1d; (*KeywordMap)["sampler2D"] = EHTokSampler2d; (*KeywordMap)["sampler3D"] = EHTokSampler3d; (*KeywordMap)["samplerCube"] = EHTokSamplerCube; (*KeywordMap)["sampler_state"] = EHTokSamplerState; (*KeywordMap)["SamplerState"] = EHTokSamplerState; (*KeywordMap)["SamplerComparisonState"] = EHTokSamplerComparisonState; (*KeywordMap)["texture"] = EHTokTexture; (*KeywordMap)["Texture1D"] = EHTokTexture1d; (*KeywordMap)["Texture1DArray"] = EHTokTexture1darray; (*KeywordMap)["Texture2D"] = EHTokTexture2d; (*KeywordMap)["Texture2DArray"] = EHTokTexture2darray; (*KeywordMap)["Texture3D"] = EHTokTexture3d; (*KeywordMap)["TextureCube"] = EHTokTextureCube; (*KeywordMap)["TextureCubeArray"] = EHTokTextureCubearray; (*KeywordMap)["Texture2DMS"] = EHTokTexture2DMS; (*KeywordMap)["Texture2DMSArray"] = EHTokTexture2DMSarray; (*KeywordMap)["RWTexture1D"] = EHTokRWTexture1d; (*KeywordMap)["RWTexture1DArray"] = EHTokRWTexture1darray; (*KeywordMap)["RWTexture2D"] = EHTokRWTexture2d; (*KeywordMap)["RWTexture2DArray"] = EHTokRWTexture2darray; (*KeywordMap)["RWTexture3D"] = EHTokRWTexture3d; (*KeywordMap)["RWBuffer"] = EHTokRWBuffer; (*KeywordMap)["SubpassInput"] = EHTokSubpassInput; (*KeywordMap)["SubpassInputMS"] = EHTokSubpassInputMS; (*KeywordMap)["AppendStructuredBuffer"] = EHTokAppendStructuredBuffer; (*KeywordMap)["ByteAddressBuffer"] = EHTokByteAddressBuffer; (*KeywordMap)["ConsumeStructuredBuffer"] = EHTokConsumeStructuredBuffer; (*KeywordMap)["RWByteAddressBuffer"] = EHTokRWByteAddressBuffer; (*KeywordMap)["RWStructuredBuffer"] = EHTokRWStructuredBuffer; (*KeywordMap)["StructuredBuffer"] = EHTokStructuredBuffer; (*KeywordMap)["TextureBuffer"] = EHTokTextureBuffer; (*KeywordMap)["class"] = EHTokClass; (*KeywordMap)["struct"] = EHTokStruct; (*KeywordMap)["cbuffer"] = EHTokCBuffer; (*KeywordMap)["ConstantBuffer"] = EHTokConstantBuffer; (*KeywordMap)["tbuffer"] = EHTokTBuffer; (*KeywordMap)["typedef"] = EHTokTypedef; (*KeywordMap)["this"] = EHTokThis; (*KeywordMap)["namespace"] = EHTokNamespace; (*KeywordMap)["true"] = EHTokBoolConstant; (*KeywordMap)["false"] = EHTokBoolConstant; (*KeywordMap)["for"] = EHTokFor; (*KeywordMap)["do"] = EHTokDo; (*KeywordMap)["while"] = EHTokWhile; (*KeywordMap)["break"] = EHTokBreak; (*KeywordMap)["continue"] = EHTokContinue; (*KeywordMap)["if"] = EHTokIf; (*KeywordMap)["else"] = EHTokElse; (*KeywordMap)["discard"] = EHTokDiscard; (*KeywordMap)["return"] = EHTokReturn; (*KeywordMap)["switch"] = EHTokSwitch; (*KeywordMap)["case"] = EHTokCase; (*KeywordMap)["default"] = EHTokDefault; // TODO: get correct set here ReservedSet = new std::unordered_set; ReservedSet->insert("auto"); ReservedSet->insert("catch"); ReservedSet->insert("char"); ReservedSet->insert("const_cast"); ReservedSet->insert("enum"); ReservedSet->insert("explicit"); ReservedSet->insert("friend"); ReservedSet->insert("goto"); ReservedSet->insert("long"); ReservedSet->insert("mutable"); ReservedSet->insert("new"); ReservedSet->insert("operator"); ReservedSet->insert("private"); ReservedSet->insert("protected"); ReservedSet->insert("public"); ReservedSet->insert("reinterpret_cast"); ReservedSet->insert("short"); ReservedSet->insert("signed"); ReservedSet->insert("sizeof"); ReservedSet->insert("static_cast"); ReservedSet->insert("template"); ReservedSet->insert("throw"); ReservedSet->insert("try"); ReservedSet->insert("typename"); ReservedSet->insert("union"); ReservedSet->insert("unsigned"); ReservedSet->insert("using"); ReservedSet->insert("virtual"); SemanticMap = new std::unordered_map; // in DX9, all outputs had to have a semantic associated with them, that was either consumed // by the system or was a specific register assignment // in DX10+, only semantics with the SV_ prefix have any meaning beyond decoration // Fxc will only accept DX9 style semantics in compat mode // Also, in DX10 if a SV value is present as the input of a stage, but isn't appropriate for that // stage, it would just be ignored as it is likely there as part of an output struct from one stage // to the next bool bParseDX9 = false; if (bParseDX9) { (*SemanticMap)["PSIZE"] = EbvPointSize; (*SemanticMap)["FOG"] = EbvFogFragCoord; (*SemanticMap)["DEPTH"] = EbvFragDepth; (*SemanticMap)["VFACE"] = EbvFace; (*SemanticMap)["VPOS"] = EbvFragCoord; } (*SemanticMap)["SV_POSITION"] = EbvPosition; (*SemanticMap)["SV_VERTEXID"] = EbvVertexIndex; (*SemanticMap)["SV_VIEWPORTARRAYINDEX"] = EbvViewportIndex; (*SemanticMap)["SV_TESSFACTOR"] = EbvTessLevelOuter; (*SemanticMap)["SV_SAMPLEINDEX"] = EbvSampleId; (*SemanticMap)["SV_RENDERTARGETARRAYINDEX"] = EbvLayer; (*SemanticMap)["SV_PRIMITIVEID"] = EbvPrimitiveId; (*SemanticMap)["SV_OUTPUTCONTROLPOINTID"] = EbvInvocationId; (*SemanticMap)["SV_ISFRONTFACE"] = EbvFace; (*SemanticMap)["SV_INSTANCEID"] = EbvInstanceIndex; (*SemanticMap)["SV_INSIDETESSFACTOR"] = EbvTessLevelInner; (*SemanticMap)["SV_GSINSTANCEID"] = EbvInvocationId; (*SemanticMap)["SV_DISPATCHTHREADID"] = EbvGlobalInvocationId; (*SemanticMap)["SV_GROUPTHREADID"] = EbvLocalInvocationId; (*SemanticMap)["SV_GROUPINDEX"] = EbvLocalInvocationIndex; (*SemanticMap)["SV_GROUPID"] = EbvWorkGroupId; (*SemanticMap)["SV_DOMAINLOCATION"] = EbvTessCoord; (*SemanticMap)["SV_DEPTH"] = EbvFragDepth; (*SemanticMap)["SV_COVERAGE"] = EbvSampleMask; (*SemanticMap)["SV_DEPTHGREATEREQUAL"] = EbvFragDepthGreater; (*SemanticMap)["SV_DEPTHLESSEQUAL"] = EbvFragDepthLesser; (*SemanticMap)["SV_STENCILREF"] = EbvFragStencilRef; } void HlslScanContext::deleteKeywordMap() { delete KeywordMap; KeywordMap = nullptr; delete ReservedSet; ReservedSet = nullptr; delete SemanticMap; SemanticMap = nullptr; } // Wrapper for tokenizeClass() to get everything inside the token. void HlslScanContext::tokenize(HlslToken& token) { EHlslTokenClass tokenClass = tokenizeClass(token); token.tokenClass = tokenClass; } glslang::TBuiltInVariable HlslScanContext::mapSemantic(const char* upperCase) { auto it = SemanticMap->find(upperCase); if (it != SemanticMap->end()) return it->second; else return glslang::EbvNone; } // // Fill in token information for the next token, except for the token class. // Returns the enum value of the token class of the next token found. // Return 0 (EndOfTokens) on end of input. // EHlslTokenClass HlslScanContext::tokenizeClass(HlslToken& token) { do { parserToken = &token; TPpToken ppToken; int token = ppContext.tokenize(ppToken); if (token == EndOfInput) return EHTokNone; tokenText = ppToken.name; loc = ppToken.loc; parserToken->loc = loc; switch (token) { case ';': return EHTokSemicolon; case ',': return EHTokComma; case ':': return EHTokColon; case '=': return EHTokAssign; case '(': return EHTokLeftParen; case ')': return EHTokRightParen; case '.': return EHTokDot; case '!': return EHTokBang; case '-': return EHTokDash; case '~': return EHTokTilde; case '+': return EHTokPlus; case '*': return EHTokStar; case '/': return EHTokSlash; case '%': return EHTokPercent; case '<': return EHTokLeftAngle; case '>': return EHTokRightAngle; case '|': return EHTokVerticalBar; case '^': return EHTokCaret; case '&': return EHTokAmpersand; case '?': return EHTokQuestion; case '[': return EHTokLeftBracket; case ']': return EHTokRightBracket; case '{': return EHTokLeftBrace; case '}': return EHTokRightBrace; case '\\': parseContext.error(loc, "illegal use of escape character", "\\", ""); break; case PPAtomAddAssign: return EHTokAddAssign; case PPAtomSubAssign: return EHTokSubAssign; case PPAtomMulAssign: return EHTokMulAssign; case PPAtomDivAssign: return EHTokDivAssign; case PPAtomModAssign: return EHTokModAssign; case PpAtomRight: return EHTokRightOp; case PpAtomLeft: return EHTokLeftOp; case PpAtomRightAssign: return EHTokRightAssign; case PpAtomLeftAssign: return EHTokLeftAssign; case PpAtomAndAssign: return EHTokAndAssign; case PpAtomOrAssign: return EHTokOrAssign; case PpAtomXorAssign: return EHTokXorAssign; case PpAtomAnd: return EHTokAndOp; case PpAtomOr: return EHTokOrOp; case PpAtomXor: return EHTokXorOp; case PpAtomEQ: return EHTokEqOp; case PpAtomGE: return EHTokGeOp; case PpAtomNE: return EHTokNeOp; case PpAtomLE: return EHTokLeOp; case PpAtomDecrement: return EHTokDecOp; case PpAtomIncrement: return EHTokIncOp; case PpAtomColonColon: return EHTokColonColon; case PpAtomConstInt: parserToken->i = ppToken.ival; return EHTokIntConstant; case PpAtomConstUint: parserToken->i = ppToken.ival; return EHTokUintConstant; case PpAtomConstFloat16: parserToken->d = ppToken.dval; return EHTokFloat16Constant; case PpAtomConstFloat: parserToken->d = ppToken.dval; return EHTokFloatConstant; case PpAtomConstDouble: parserToken->d = ppToken.dval; return EHTokDoubleConstant; case PpAtomIdentifier: { EHlslTokenClass token = tokenizeIdentifier(); return token; } case PpAtomConstString: { parserToken->string = NewPoolTString(tokenText); return EHTokStringConstant; } case EndOfInput: return EHTokNone; default: if (token < PpAtomMaxSingle) { char buf[2]; buf[0] = (char)token; buf[1] = 0; parseContext.error(loc, "unexpected token", buf, ""); } else if (tokenText[0] != 0) parseContext.error(loc, "unexpected token", tokenText, ""); else parseContext.error(loc, "unexpected token", "", ""); break; } } while (true); } EHlslTokenClass HlslScanContext::tokenizeIdentifier() { if (ReservedSet->find(tokenText) != ReservedSet->end()) return reservedWord(); auto it = KeywordMap->find(tokenText); if (it == KeywordMap->end()) { // Should have an identifier of some sort return identifierOrType(); } keyword = it->second; switch (keyword) { // qualifiers case EHTokStatic: case EHTokConst: case EHTokSNorm: case EHTokUnorm: case EHTokExtern: case EHTokUniform: case EHTokVolatile: case EHTokShared: case EHTokGroupShared: case EHTokLinear: case EHTokCentroid: case EHTokNointerpolation: case EHTokNoperspective: case EHTokSample: case EHTokRowMajor: case EHTokColumnMajor: case EHTokPackOffset: case EHTokIn: case EHTokOut: case EHTokInOut: case EHTokPrecise: case EHTokLayout: case EHTokGloballyCoherent: case EHTokInline: return keyword; // primitive types case EHTokPoint: case EHTokLine: case EHTokTriangle: case EHTokLineAdj: case EHTokTriangleAdj: return keyword; // stream out types case EHTokPointStream: case EHTokLineStream: case EHTokTriangleStream: return keyword; // Tessellation patches case EHTokInputPatch: case EHTokOutputPatch: return keyword; case EHTokBuffer: case EHTokVector: case EHTokMatrix: return keyword; // scalar types case EHTokVoid: case EHTokString: case EHTokBool: case EHTokInt: case EHTokUint: case EHTokUint64: case EHTokDword: case EHTokHalf: case EHTokFloat: case EHTokDouble: case EHTokMin16float: case EHTokMin10float: case EHTokMin16int: case EHTokMin12int: case EHTokMin16uint: // vector types case EHTokBool1: case EHTokBool2: case EHTokBool3: case EHTokBool4: case EHTokFloat1: case EHTokFloat2: case EHTokFloat3: case EHTokFloat4: case EHTokInt1: case EHTokInt2: case EHTokInt3: case EHTokInt4: case EHTokDouble1: case EHTokDouble2: case EHTokDouble3: case EHTokDouble4: case EHTokUint1: case EHTokUint2: case EHTokUint3: case EHTokUint4: case EHTokHalf1: case EHTokHalf2: case EHTokHalf3: case EHTokHalf4: case EHTokMin16float1: case EHTokMin16float2: case EHTokMin16float3: case EHTokMin16float4: case EHTokMin10float1: case EHTokMin10float2: case EHTokMin10float3: case EHTokMin10float4: case EHTokMin16int1: case EHTokMin16int2: case EHTokMin16int3: case EHTokMin16int4: case EHTokMin12int1: case EHTokMin12int2: case EHTokMin12int3: case EHTokMin12int4: case EHTokMin16uint1: case EHTokMin16uint2: case EHTokMin16uint3: case EHTokMin16uint4: // matrix types case EHTokBool1x1: case EHTokBool1x2: case EHTokBool1x3: case EHTokBool1x4: case EHTokBool2x1: case EHTokBool2x2: case EHTokBool2x3: case EHTokBool2x4: case EHTokBool3x1: case EHTokBool3x2: case EHTokBool3x3: case EHTokBool3x4: case EHTokBool4x1: case EHTokBool4x2: case EHTokBool4x3: case EHTokBool4x4: case EHTokInt1x1: case EHTokInt1x2: case EHTokInt1x3: case EHTokInt1x4: case EHTokInt2x1: case EHTokInt2x2: case EHTokInt2x3: case EHTokInt2x4: case EHTokInt3x1: case EHTokInt3x2: case EHTokInt3x3: case EHTokInt3x4: case EHTokInt4x1: case EHTokInt4x2: case EHTokInt4x3: case EHTokInt4x4: case EHTokUint1x1: case EHTokUint1x2: case EHTokUint1x3: case EHTokUint1x4: case EHTokUint2x1: case EHTokUint2x2: case EHTokUint2x3: case EHTokUint2x4: case EHTokUint3x1: case EHTokUint3x2: case EHTokUint3x3: case EHTokUint3x4: case EHTokUint4x1: case EHTokUint4x2: case EHTokUint4x3: case EHTokUint4x4: case EHTokFloat1x1: case EHTokFloat1x2: case EHTokFloat1x3: case EHTokFloat1x4: case EHTokFloat2x1: case EHTokFloat2x2: case EHTokFloat2x3: case EHTokFloat2x4: case EHTokFloat3x1: case EHTokFloat3x2: case EHTokFloat3x3: case EHTokFloat3x4: case EHTokFloat4x1: case EHTokFloat4x2: case EHTokFloat4x3: case EHTokFloat4x4: case EHTokHalf1x1: case EHTokHalf1x2: case EHTokHalf1x3: case EHTokHalf1x4: case EHTokHalf2x1: case EHTokHalf2x2: case EHTokHalf2x3: case EHTokHalf2x4: case EHTokHalf3x1: case EHTokHalf3x2: case EHTokHalf3x3: case EHTokHalf3x4: case EHTokHalf4x1: case EHTokHalf4x2: case EHTokHalf4x3: case EHTokHalf4x4: case EHTokDouble1x1: case EHTokDouble1x2: case EHTokDouble1x3: case EHTokDouble1x4: case EHTokDouble2x1: case EHTokDouble2x2: case EHTokDouble2x3: case EHTokDouble2x4: case EHTokDouble3x1: case EHTokDouble3x2: case EHTokDouble3x3: case EHTokDouble3x4: case EHTokDouble4x1: case EHTokDouble4x2: case EHTokDouble4x3: case EHTokDouble4x4: return keyword; // texturing types case EHTokSampler: case EHTokSampler1d: case EHTokSampler2d: case EHTokSampler3d: case EHTokSamplerCube: case EHTokSamplerState: case EHTokSamplerComparisonState: case EHTokTexture: case EHTokTexture1d: case EHTokTexture1darray: case EHTokTexture2d: case EHTokTexture2darray: case EHTokTexture3d: case EHTokTextureCube: case EHTokTextureCubearray: case EHTokTexture2DMS: case EHTokTexture2DMSarray: case EHTokRWTexture1d: case EHTokRWTexture1darray: case EHTokRWTexture2d: case EHTokRWTexture2darray: case EHTokRWTexture3d: case EHTokRWBuffer: case EHTokAppendStructuredBuffer: case EHTokByteAddressBuffer: case EHTokConsumeStructuredBuffer: case EHTokRWByteAddressBuffer: case EHTokRWStructuredBuffer: case EHTokStructuredBuffer: case EHTokTextureBuffer: case EHTokSubpassInput: case EHTokSubpassInputMS: return keyword; // variable, user type, ... case EHTokClass: case EHTokStruct: case EHTokTypedef: case EHTokCBuffer: case EHTokConstantBuffer: case EHTokTBuffer: case EHTokThis: case EHTokNamespace: return keyword; case EHTokBoolConstant: if (strcmp("true", tokenText) == 0) parserToken->b = true; else parserToken->b = false; return keyword; // control flow case EHTokFor: case EHTokDo: case EHTokWhile: case EHTokBreak: case EHTokContinue: case EHTokIf: case EHTokElse: case EHTokDiscard: case EHTokReturn: case EHTokCase: case EHTokSwitch: case EHTokDefault: return keyword; default: parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc); return EHTokNone; } } EHlslTokenClass HlslScanContext::identifierOrType() { parserToken->string = NewPoolTString(tokenText); return EHTokIdentifier; } // Give an error for use of a reserved symbol. // However, allow built-in declarations to use reserved words, to allow // extension support before the extension is enabled. EHlslTokenClass HlslScanContext::reservedWord() { if (! parseContext.symbolTable.atBuiltInLevel()) parseContext.error(loc, "Reserved word.", tokenText, "", ""); return EHTokNone; } } // end namespace glslang glslang-8.13.3559/hlsl/hlslScanContext.h000066400000000000000000000067601360464450000177420ustar00rootroot00000000000000// // Copyright (C) 2016 Google, Inc. // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of Google, Inc., nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // // // This holds context specific to the HLSL scanner, which // sits between the preprocessor scanner and HLSL parser. // #ifndef HLSLSCANCONTEXT_H_ #define HLSLSCANCONTEXT_H_ #include "../glslang/MachineIndependent/ParseHelper.h" #include "hlslTokens.h" namespace glslang { class TPpContext; class TPpToken; // // Everything needed to fully describe a token. // struct HlslToken { HlslToken() : string(nullptr) { loc.init(); } TSourceLoc loc; // location of token in the source EHlslTokenClass tokenClass; // what kind of token it is union { // what data the token holds glslang::TString *string; // for identifiers int i; // for literals unsigned int u; bool b; double d; }; }; // // The state of scanning and translating raw tokens to slightly richer // semantics, like knowing if an identifier is an existing symbol, or // user-defined type. // class HlslScanContext { public: HlslScanContext(TParseContextBase& parseContext, TPpContext& ppContext) : parseContext(parseContext), ppContext(ppContext) { } virtual ~HlslScanContext() { } static void fillInKeywordMap(); static void deleteKeywordMap(); void tokenize(HlslToken&); glslang::TBuiltInVariable mapSemantic(const char*); protected: HlslScanContext(HlslScanContext&); HlslScanContext& operator=(HlslScanContext&); EHlslTokenClass tokenizeClass(HlslToken&); EHlslTokenClass tokenizeIdentifier(); EHlslTokenClass identifierOrType(); EHlslTokenClass reservedWord(); EHlslTokenClass identifierOrReserved(bool reserved); EHlslTokenClass nonreservedKeyword(int version); TParseContextBase& parseContext; TPpContext& ppContext; TSourceLoc loc; TPpToken* ppToken; HlslToken* parserToken; const char* tokenText; EHlslTokenClass keyword; }; } // end namespace glslang #endif // HLSLSCANCONTEXT_H_ glslang-8.13.3559/hlsl/hlslTokenStream.cpp000066400000000000000000000106211360464450000202670ustar00rootroot00000000000000// // 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 glslang-8.13.3559/hlsl/hlslTokenStream.h000066400000000000000000000074201360464450000177370ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/hlsl/hlslTokens.h000066400000000000000000000171541360464450000167530ustar00rootroot00000000000000// // 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_ glslang-8.13.3559/hlsl/pch.cpp000066400000000000000000000031231360464450000157210ustar00rootroot00000000000000// // 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 "pch.h" glslang-8.13.3559/hlsl/pch.h000066400000000000000000000037451360464450000154000ustar00rootroot00000000000000#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 "hlslParseHelper.h" #include "hlslScanContext.h" #include "hlslGrammar.h" #include "hlslAttributes.h" #include "../glslang/MachineIndependent/Scan.h" #include "../glslang/MachineIndependent/preprocessor/PpContext.h" #include "../glslang/OSDependent/osinclude.h" #include #include #include #include #include #endif /* _PCH_H */ glslang-8.13.3559/known_good.json000066400000000000000000000007651360464450000165510ustar00rootroot00000000000000{ "commits" : [ { "name" : "spirv-tools", "site" : "github", "subrepo" : "KhronosGroup/SPIRV-Tools", "subdir" : "External/spirv-tools", "commit" : "5c019b5923c1f6bf00a3ac28114ec4a7b1faa0e2" }, { "name" : "spirv-tools/external/spirv-headers", "site" : "github", "subrepo" : "KhronosGroup/SPIRV-Headers", "subdir" : "External/spirv-tools/external/spirv-headers", "commit" : "204cd131c42b90d129073719f2766293ce35c081" } ] } glslang-8.13.3559/known_good_khr.json000066400000000000000000000007201360464450000174040ustar00rootroot00000000000000{ "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" } ] } glslang-8.13.3559/kokoro/000077500000000000000000000000001360464450000150065ustar00rootroot00000000000000glslang-8.13.3559/kokoro/linux-clang-release-bazel/000077500000000000000000000000001360464450000217405ustar00rootroot00000000000000glslang-8.13.3559/kokoro/linux-clang-release-bazel/build.sh000066400000000000000000000040721360464450000233760ustar00rootroot00000000000000#!/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 echo $(date): Bazel test completed. glslang-8.13.3559/kokoro/linux-clang-release-bazel/continuous.cfg000066400000000000000000000031621360464450000246310ustar00rootroot00000000000000# 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" glslang-8.13.3559/kokoro/linux-clang-release-bazel/presubmit.cfg000066400000000000000000000031611360464450000244340ustar00rootroot00000000000000# 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" glslang-8.13.3559/kokoro/macos-clang-release-bazel/000077500000000000000000000000001360464450000217035ustar00rootroot00000000000000glslang-8.13.3559/kokoro/macos-clang-release-bazel/build.sh000066400000000000000000000040311360464450000233340ustar00rootroot00000000000000#!/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 echo $(date): Bazel test completed. glslang-8.13.3559/kokoro/macos-clang-release-bazel/continuous.cfg000066400000000000000000000031621360464450000245740ustar00rootroot00000000000000# 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" glslang-8.13.3559/kokoro/macos-clang-release-bazel/presubmit.cfg000066400000000000000000000031611360464450000243770ustar00rootroot00000000000000# 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" glslang-8.13.3559/kokoro/windows-msvc-2015-release-bazel/000077500000000000000000000000001360464450000225445ustar00rootroot00000000000000glslang-8.13.3559/kokoro/windows-msvc-2015-release-bazel/build.bat000066400000000000000000000052351360464450000243400ustar00rootroot00000000000000:: 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 if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL% echo "Tests Completed %DATE% %TIME%" exit /b 0 glslang-8.13.3559/kokoro/windows-msvc-2015-release-bazel/continuous.cfg000066400000000000000000000031711360464450000254350ustar00rootroot00000000000000# 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" glslang-8.13.3559/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg000066400000000000000000000031701360464450000252400ustar00rootroot00000000000000# 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" glslang-8.13.3559/make-revision000077500000000000000000000002561360464450000162040ustar00rootroot00000000000000#!/bin/sh ( echo "// This header is generated by the make-revision script." echo echo \#define GLSLANG_PATCH_LEVEL `git log --oneline | wc -l` ) > glslang/Include/revision.h glslang-8.13.3559/ndk_test/000077500000000000000000000000001360464450000153155ustar00rootroot00000000000000glslang-8.13.3559/ndk_test/Android.mk000066400000000000000000000005261360464450000172310ustar00rootroot00000000000000LOCAL_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 glslang-8.13.3559/ndk_test/jni/000077500000000000000000000000001360464450000160755ustar00rootroot00000000000000glslang-8.13.3559/ndk_test/jni/Application.mk000066400000000000000000000001761360464450000206750ustar00rootroot00000000000000APP_ABI := all APP_BUILD_SCRIPT := Android.mk APP_STL := gnustl_static APP_PLATFORM := android-9 NDK_TOOLCHAIN_VERSION := 4.9 glslang-8.13.3559/ndk_test/test.cpp000066400000000000000000000013241360464450000170000ustar00rootroot00000000000000// 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(); } glslang-8.13.3559/update_glslang_sources.py000077500000000000000000000117721360464450000206230ustar00rootroot00000000000000#!/usr/bin/env python # 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()